Hi Preston,
Please see inline...
=== Query 1 ===
doc("books.xml")
What do these keywords mean?
UNPARTITIONED
QUANT_ONE
QUANT_QUESTION
UNPARTITIONED is an Algebricks annotation attached to each operator to
indicate that no analysis about partitioning has been performed. At
first, when an Algebricks plan is created by the translator, the
operators are unpartitioned. Partitioning is later introduced by rewrite
rules.
QUANT_??? are quantifiers used to construct Sequence Types. They serve a
similar purpose as ?, *, + in regular expressions.
=== Query 2 ===
doc("books.xml")/bookstore/book/title
we set up a sequence of all the books from the data supplied in the
iterator $$14.
… Repeat again for "title"
… Finally sort the complete output.
Looks like we assign a count, but do not use it. Is that true?
Good question. A variable assigned to the count() function is to support
the last() function in path expression evaluation.
Why does the iterator have to variables?
During iteration over sequences, we need to bind a value to each item
and also to the index of that item to support position() and also the at
$i syntax for "for" clauses in XQuery.
What do these keywords mean?
QUANT_STAR
This is a quantifier as explained above (Construction of sequence types).
=== Query 3 ===
doc("books.xml")/bookstore/book[price<30]
7. The final output is sorted.
how do you define a subplan? Is that for each level of the query?
The subplan operator is used to maintain the correct cardinality of
tuples at each point in the expression tree.
The best way to understand the use of subplan would be to consider some
example input and run through a manual evaluation of the expressions.
Vinayak