Open dynamobi-build opened 12 years ago
[author="jvs", created="Fri, 23 Dec 2005 11:22:09 -0500 (GMT-05:00)"]
In eigenchange 4814, I implemented new syntax:
EXPLAIN PLAN
[ { EXCLUDING | INCLUDING [ ALL ] } ATTRIBUTES ]
[ { WITH | WITHOUT } IMPLEMENTATION ]
[ AS XML ]
FOR query-or-DML-statement
The default detail level is INCLUDING ATTRIBUTES. EXCLUDING ATTRIBUTES displays only operator names, while INCLUDING ALL ATTRIBUTES adds additional attributes (currently just cost).
Now, theoretically if rels wanted to tack on extra information, they can test with "if planWriter.getDetailLevel() == SqlExplainLevel.ALL_ATTRIBUTES)", and then pass longer arrays. However, the array-based mechanism for properties is confusing (mismatching array lengths based on number of children) and difficult to use once optional attributes are possible. Also, the XML plan writer is a little world of its own, so I just left a TODO there. So I'm leaving this issue until we enhance the internal interface.
[author="jvs", created="Tue, 27 Dec 2005 14:23:51 -0500 (GMT-05:00)"] Changing priority to minor since display of cost was the most important thing.
[author="jvs", created="Sun, 13 Aug 2006 15:55:30 -0500 (GMT-05:00)"]
Discussion in FRG-182 has another example of where controlling the verbosity would be nice.
[author="jvs", created="Thu, 20 Sep 2007 21:18:34 -0500 (GMT-05:00)"]
LDB-168 logs the need for better reporting of cost in final plan for LucidDB.
[reporter="jvs", created="Wed, 21 Dec 2005 10:41:56 -0500 (GMT-05:00)"] Need to allow rels to flag whether each attributes should be an input to the digest; purely informational attributes such as cost should NOT be inputs to the digest.
Even though we have an XML format, probably still need a detail parameter controlling how much information is displayed, since sometimes we care about cost in diff-based tests, but often we don't.