Temp dataset support:
1. DDLs for creating a temporary dataset
2. Garbage collection for temporary dataset
3. Reading, inserting, and deleting data from (to) a temporary dataset is locking-free (except metadata locks) and logging-free (except flush/merge/job-commit logs).

Change-Id: Id0960acd1b4dfbfa7685dba227634572ca50b126
Reviewed-on: https://asterix-gerrit.ics.uci.edu/241
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Young-Seok Kim <kisskys@gmail.com>
diff --git a/asterix-aql/src/main/javacc/AQL.html b/asterix-aql/src/main/javacc/AQL.html
index 994b1c7..b423f6d 100644
--- a/asterix-aql/src/main/javacc/AQL.html
+++ b/asterix-aql/src/main/javacc/AQL.html
@@ -38,6 +38,7 @@
 | &lt;UNION: "union"&gt;
 | &lt;WHERE: "where"&gt;
 | &lt;WITH: "with"&gt;
+| &lt;KEEPING: "keeping"&gt;
 }
 
    </PRE>
@@ -316,132 +317,137 @@
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SingleStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod3">DataverseDeclaration</A> | <A HREF="#prod4">FunctionDeclaration</A> | <A HREF="#prod5">CreateStatement</A> | <A HREF="#prod6">LoadStatement</A> | <A HREF="#prod7">DropStatement</A> | <A HREF="#prod8">WriteStatement</A> | <A HREF="#prod9">SetStatement</A> | <A HREF="#prod10">InsertStatement</A> | <A HREF="#prod11">DeleteStatement</A> | <A HREF="#prod12">UpdateStatement</A> | <A HREF="#prod13">FeedStatement</A> | <A HREF="#prod14">CompactStatement</A> | <A HREF="#prod15">Query</A> | <A HREF="#prod16">RefreshExternalDatasetStatement</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod3">DataverseDeclaration</A> | <A HREF="#prod4">FunctionDeclaration</A> | <A HREF="#prod5">CreateStatement</A> | <A HREF="#prod6">LoadStatement</A> | <A HREF="#prod7">DropStatement</A> | <A HREF="#prod8">WriteStatement</A> | <A HREF="#prod9">SetStatement</A> | <A HREF="#prod10">InsertStatement</A> | <A HREF="#prod11">DeleteStatement</A> | <A HREF="#prod12">UpdateStatement</A> | <A HREF="#prod13">FeedStatement</A> | <A HREF="#prod14">CompactStatement</A> | <A HREF="#prod15">Query</A> | <A HREF="#prod16">RefreshExternalDatasetStatement</A> | <A HREF="#prod17">RunStatement</A> )</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">DataverseDeclaration</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod18">Identifier</A></TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">CreateStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"create" ( <A HREF="#prod18">TypeSpecification</A> | <A HREF="#prod19">NodegroupSpecification</A> | <A HREF="#prod20">DatasetSpecification</A> | <A HREF="#prod21">IndexSpecification</A> | <A HREF="#prod22">DataverseSpecification</A> | <A HREF="#prod23">FunctionSpecification</A> | <A HREF="#prod24">FeedSpecification</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"create" ( <A HREF="#prod19">TypeSpecification</A> | <A HREF="#prod20">NodegroupSpecification</A> | <A HREF="#prod21">DatasetSpecification</A> | <A HREF="#prod22">IndexSpecification</A> | <A HREF="#prod23">DataverseSpecification</A> | <A HREF="#prod24">FunctionSpecification</A> | <A HREF="#prod25">FeedSpecification</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">TypeSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">TypeSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod25">TypeName</A> <A HREF="#prod26">IfNotExists</A> "as" <A HREF="#prod27">TypeExpr</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod26">TypeName</A> <A HREF="#prod27">IfNotExists</A> "as" <A HREF="#prod28">TypeExpr</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">NodegroupSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">NodegroupSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> "on" <A HREF="#prod17">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod17">Identifier</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">DatasetSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">DatasetSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "external" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod17">Identifier</A> &lt;RIGHTPAREN&gt; <A HREF="#prod26">IfNotExists</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( "on" <A HREF="#prod17">Identifier</A> )? ( "hints" <A HREF="#prod31">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod32">CompactionPolicy</A> ( <A HREF="#prod30">Configuration</A> )? )? | ( "internal" )? &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod17">Identifier</A> &lt;RIGHTPAREN&gt; <A HREF="#prod26">IfNotExists</A> <A HREF="#prod33">PrimaryKey</A> ( "autogenerated" )? ( "on" <A HREF="#prod17">Identifier</A> )? ( "hints" <A HREF="#prod31">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod32">CompactionPolicy</A> ( <A HREF="#prod30">Configuration</A> )? )? ( "with filter on" <A HREF="#prod34">FilterField</A> )? )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "external" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod18">Identifier</A> &lt;RIGHTPAREN&gt; <A HREF="#prod27">IfNotExists</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "on" <A HREF="#prod18">Identifier</A> )? ( "hints" <A HREF="#prod32">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod33">CompactionPolicy</A> ( <A HREF="#prod31">Configuration</A> )? )? | ( "internal" | "temporary" )? &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod18">Identifier</A> &lt;RIGHTPAREN&gt; <A HREF="#prod27">IfNotExists</A> <A HREF="#prod34">PrimaryKey</A> ( "autogenerated" )? ( "on" <A HREF="#prod18">Identifier</A> )? ( "hints" <A HREF="#prod32">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod33">CompactionPolicy</A> ( <A HREF="#prod31">Configuration</A> )? )? ( "with filter on" <A HREF="#prod35">FilterField</A> )? )</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">RefreshExternalDatasetStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">IndexSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">RunStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> "on" <A HREF="#prod28">QualifiedName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod17">Identifier</A> ) ( &lt;COMMA&gt; <A HREF="#prod17">Identifier</A> )* &lt;RIGHTPAREN&gt; ( "type" <A HREF="#prod35">IndexType</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"run" <A HREF="#prod18">Identifier</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; )? )* &lt;RIGHTPAREN&gt; &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> "to" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">CompactionPolicy</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">IndexSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod29">QualifiedName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod18">Identifier</A> ) ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )* &lt;RIGHTPAREN&gt; ( "type" <A HREF="#prod36">IndexType</A> )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">FilterField</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">CompactionPolicy</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">IndexType</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">FilterField</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">IndexType</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>( "btree" | "rtree" | "keyword" | "ngram" &lt;LEFTPAREN&gt; &lt;INTEGER_LITERAL&gt; &lt;RIGHTPAREN&gt; )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">DataverseSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">DataverseSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> ( "with format" <A HREF="#prod36">StringLiteral</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> ( "with format" <A HREF="#prod37">StringLiteral</A> )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">FunctionSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FunctionSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod37">FunctionName</A> <A HREF="#prod26">IfNotExists</A> <A HREF="#prod38">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTBRACE&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod38">FunctionName</A> <A HREF="#prod27">IfNotExists</A> <A HREF="#prod39">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTBRACE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FeedSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">FeedSpecification</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "feed" <A HREF="#prod28">QualifiedName</A> <A HREF="#prod26">IfNotExists</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( <A HREF="#prod40">ApplyFunction</A> )? )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "feed" <A HREF="#prod29">QualifiedName</A> <A HREF="#prod27">IfNotExists</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( <A HREF="#prod41">ApplyFunction</A> )? )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">ParameterList</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">ParameterList</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( &lt;VARIABLE&gt; ( &lt;COMMA&gt; &lt;VARIABLE&gt; )* )? &lt;RIGHTPAREN&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">IfNotExists</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">IfNotExists</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>( "if not exists" )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">ApplyFunction</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">ApplyFunction</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod37">FunctionName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod38">FunctionName</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">GetPolicy</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">GetPolicy</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod18">Identifier</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">FunctionSignature</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">FunctionSignature</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">FunctionName</A> "@" &lt;INTEGER_LITERAL&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> "@" &lt;INTEGER_LITERAL&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">PrimaryKey</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">PrimaryKey</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod17">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod17">Identifier</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )*</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">DropStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> <A HREF="#prod43">IfExists</A> | "index" <A HREF="#prod44">DoubleQualifiedName</A> <A HREF="#prod43">IfExists</A> | "nodegroup" <A HREF="#prod17">Identifier</A> <A HREF="#prod43">IfExists</A> | "type" <A HREF="#prod25">TypeName</A> <A HREF="#prod43">IfExists</A> | "dataverse" <A HREF="#prod17">Identifier</A> <A HREF="#prod43">IfExists</A> | "function" <A HREF="#prod42">FunctionSignature</A> <A HREF="#prod43">IfExists</A> | "feed" <A HREF="#prod28">QualifiedName</A> <A HREF="#prod43">IfExists</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> <A HREF="#prod44">IfExists</A> | "index" <A HREF="#prod45">DoubleQualifiedName</A> <A HREF="#prod44">IfExists</A> | "nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod44">IfExists</A> | "type" <A HREF="#prod26">TypeName</A> <A HREF="#prod44">IfExists</A> | "dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod44">IfExists</A> | "function" <A HREF="#prod43">FunctionSignature</A> <A HREF="#prod44">IfExists</A> | "feed" <A HREF="#prod29">QualifiedName</A> <A HREF="#prod44">IfExists</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">IfExists</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">IfExists</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>( &lt;IF&gt; "exists" )?</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">InsertStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">DeleteStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod45">Variable</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> ( &lt;WHERE&gt; <A HREF="#prod39">Expression</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod46">Variable</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> ( &lt;WHERE&gt; <A HREF="#prod40">Expression</A> )?</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">UpdateStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod45">Variable</A> &lt;IN&gt; <A HREF="#prod39">Expression</A> &lt;WHERE&gt; <A HREF="#prod39">Expression</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod46">UpdateClause</A> ( &lt;COMMA&gt; <A HREF="#prod46">UpdateClause</A> )* ) &lt;RIGHTPAREN&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod46">Variable</A> &lt;IN&gt; <A HREF="#prod40">Expression</A> &lt;WHERE&gt; <A HREF="#prod40">Expression</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod47">UpdateClause</A> ( &lt;COMMA&gt; <A HREF="#prod47">UpdateClause</A> )* ) &lt;RIGHTPAREN&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">UpdateClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">UpdateClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod39">Expression</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod40">Expression</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE></TD>
@@ -461,302 +467,302 @@
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod46">UpdateClause</A> ( &lt;ELSE&gt; <A HREF="#prod46">UpdateClause</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod47">UpdateClause</A> ( &lt;ELSE&gt; <A HREF="#prod47">UpdateClause</A> )?</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SetStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod17">Identifier</A> <A HREF="#prod36">StringLiteral</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod18">Identifier</A> <A HREF="#prod37">StringLiteral</A></TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">WriteStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod17">Identifier</A> &lt;COLON&gt; <A HREF="#prod36">StringLiteral</A> ( "using" <A HREF="#prod36">StringLiteral</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod18">Identifier</A> &lt;COLON&gt; <A HREF="#prod37">StringLiteral</A> ( "using" <A HREF="#prod37">StringLiteral</A> )?</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">LoadStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"load" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( "pre-sorted" )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"load" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "pre-sorted" )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">AdapterName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">AdapterName</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">CompactStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"compact" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"compact" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">FeedStatement</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod28">QualifiedName</A> "to" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> ( <A HREF="#prod41">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod28">QualifiedName</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod29">QualifiedName</A> "to" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> ( <A HREF="#prod42">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod29">QualifiedName</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">Configuration</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Configuration</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( <A HREF="#prod47">KeyValuePair</A> ( &lt;COMMA&gt; <A HREF="#prod47">KeyValuePair</A> )* )? &lt;RIGHTPAREN&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( <A HREF="#prod48">KeyValuePair</A> ( &lt;COMMA&gt; <A HREF="#prod48">KeyValuePair</A> )* )? &lt;RIGHTPAREN&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">KeyValuePair</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">KeyValuePair</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod36">StringLiteral</A> &lt;EQ&gt; <A HREF="#prod36">StringLiteral</A> &lt;RIGHTPAREN&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod37">StringLiteral</A> &lt;EQ&gt; <A HREF="#prod37">StringLiteral</A> &lt;RIGHTPAREN&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Properties</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">Properties</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LEFTPAREN&gt; <A HREF="#prod48">Property</A> ( &lt;COMMA&gt; <A HREF="#prod48">Property</A> )* &lt;RIGHTPAREN&gt; )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LEFTPAREN&gt; <A HREF="#prod49">Property</A> ( &lt;COMMA&gt; <A HREF="#prod49">Property</A> )* &lt;RIGHTPAREN&gt; )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">Property</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">Property</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> &lt;EQ&gt; ( <A HREF="#prod36">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;EQ&gt; ( <A HREF="#prod37">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">TypeExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">TypeExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod49">RecordTypeDef</A> | <A HREF="#prod50">TypeReference</A> | <A HREF="#prod51">OrderedListTypeDef</A> | <A HREF="#prod52">UnorderedListTypeDef</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod50">RecordTypeDef</A> | <A HREF="#prod51">TypeReference</A> | <A HREF="#prod52">OrderedListTypeDef</A> | <A HREF="#prod53">UnorderedListTypeDef</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">RecordTypeDef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">RecordTypeDef</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? &lt;LEFTBRACE&gt; ( <A HREF="#prod53">RecordField</A> ( &lt;COMMA&gt; <A HREF="#prod53">RecordField</A> )* )? &lt;RIGHTBRACE&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? &lt;LEFTBRACE&gt; ( <A HREF="#prod54">RecordField</A> ( &lt;COMMA&gt; <A HREF="#prod54">RecordField</A> )* )? &lt;RIGHTBRACE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">RecordField</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">RecordField</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> &lt;COLON&gt; <A HREF="#prod27">TypeExpr</A> ( &lt;QUES&gt; )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;COLON&gt; <A HREF="#prod28">TypeExpr</A> ( &lt;QUES&gt; )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">TypeReference</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">TypeReference</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">OrderedListTypeDef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">OrderedListTypeDef</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod27">TypeExpr</A> ) &lt;RIGHTBRACKET&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod28">TypeExpr</A> ) &lt;RIGHTBRACKET&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">UnorderedListTypeDef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">UnorderedListTypeDef</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod27">TypeExpr</A> ) &lt;RIGHTDBLBRACE&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod28">TypeExpr</A> ) &lt;RIGHTDBLBRACE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">FunctionName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">FunctionName</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> ( "#" <A HREF="#prod17">Identifier</A> )? | "#" <A HREF="#prod17">Identifier</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> ( "#" <A HREF="#prod18">Identifier</A> )? | "#" <A HREF="#prod18">Identifier</A> )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">TypeName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">TypeName</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod28">QualifiedName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod29">QualifiedName</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">Identifier</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">Identifier</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>&lt;IDENTIFIER&gt;</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod36">StringLiteral</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">StringLiteral</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">StringLiteral</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">StringLiteral</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>&lt;STRING_LITERAL&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">QualifiedName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">QualifiedName</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">DoubleQualifiedName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">DoubleQualifiedName</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> &lt;DOT&gt; <A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;DOT&gt; <A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )?</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FunctionDeclaration</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod17">Identifier</A> <A HREF="#prod38">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTBRACE&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod18">Identifier</A> <A HREF="#prod39">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTBRACE&gt;</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">Query</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">Expression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">Expression</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod54">OperatorExpr</A> | <A HREF="#prod55">IfThenElse</A> | <A HREF="#prod56">FLWOGR</A> | <A HREF="#prod57">QuantifiedExpression</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod55">OperatorExpr</A> | <A HREF="#prod56">IfThenElse</A> | <A HREF="#prod57">FLWOGR</A> | <A HREF="#prod58">QuantifiedExpression</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">OperatorExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">OperatorExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod58">AndExpr</A> ( &lt;OR&gt; <A HREF="#prod58">AndExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">AndExpr</A> ( &lt;OR&gt; <A HREF="#prod59">AndExpr</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">AndExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">AndExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">RelExpr</A> ( &lt;AND&gt; <A HREF="#prod59">RelExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">RelExpr</A> ( &lt;AND&gt; <A HREF="#prod60">RelExpr</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">RelExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">RelExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">AddExpr</A> ( ( &lt;LT&gt; | &lt;GT&gt; | &lt;LE&gt; | &lt;GE&gt; | &lt;EQ&gt; | &lt;NE&gt; | &lt;SIMILAR&gt; ) <A HREF="#prod60">AddExpr</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">AddExpr</A> ( ( &lt;LT&gt; | &lt;GT&gt; | &lt;LE&gt; | &lt;GE&gt; | &lt;EQ&gt; | &lt;NE&gt; | &lt;SIMILAR&gt; ) <A HREF="#prod61">AddExpr</A> )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">AddExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">AddExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">MultExpr</A> ( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) <A HREF="#prod61">MultExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">MultExpr</A> ( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) <A HREF="#prod62">MultExpr</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">MultExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">MultExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">UnionExpr</A> ( ( &lt;MUL&gt; | &lt;DIV&gt; | &lt;MOD&gt; | &lt;CARET&gt; | &lt;IDIV&gt; ) <A HREF="#prod62">UnionExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnionExpr</A> ( ( &lt;MUL&gt; | &lt;DIV&gt; | &lt;MOD&gt; | &lt;CARET&gt; | &lt;IDIV&gt; ) <A HREF="#prod63">UnionExpr</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">UnionExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnionExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnaryExpr</A> ( &lt;UNION&gt; ( <A HREF="#prod63">UnaryExpr</A> ) )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod64">UnaryExpr</A> ( &lt;UNION&gt; ( <A HREF="#prod64">UnaryExpr</A> ) )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnaryExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">UnaryExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) )? <A HREF="#prod64">ValueExpr</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) )? <A HREF="#prod65">ValueExpr</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">ValueExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">ValueExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod65">PrimaryExpr</A> ( <A HREF="#prod66">Field</A> | <A HREF="#prod67">Index</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod66">PrimaryExpr</A> ( <A HREF="#prod67">Field</A> | <A HREF="#prod68">Index</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">Field</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Field</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DOT&gt; <A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DOT&gt; <A HREF="#prod18">Identifier</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Index</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">Index</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod39">Expression</A> | &lt;QUES&gt; ) &lt;RIGHTBRACKET&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod40">Expression</A> | &lt;QUES&gt; ) &lt;RIGHTBRACKET&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">PrimaryExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">PrimaryExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod68">FunctionCallExpr</A> | <A HREF="#prod69">Literal</A> | <A HREF="#prod70">DatasetAccessExpression</A> | <A HREF="#prod71">VariableRef</A> | <A HREF="#prod72">ListConstructor</A> | <A HREF="#prod73">RecordConstructor</A> | <A HREF="#prod74">ParenthesizedExpression</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod69">FunctionCallExpr</A> | <A HREF="#prod70">Literal</A> | <A HREF="#prod71">DatasetAccessExpression</A> | <A HREF="#prod72">VariableRef</A> | <A HREF="#prod73">ListConstructor</A> | <A HREF="#prod74">RecordConstructor</A> | <A HREF="#prod75">ParenthesizedExpression</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">Literal</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">Literal</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod36">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; | &lt;FLOAT_LITERAL&gt; | &lt;DOUBLE_LITERAL&gt; | &lt;NULL&gt; | &lt;TRUE&gt; | &lt;FALSE&gt; )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod37">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; | &lt;FLOAT_LITERAL&gt; | &lt;DOUBLE_LITERAL&gt; | &lt;NULL&gt; | &lt;TRUE&gt; | &lt;FALSE&gt; )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">VariableRef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">VariableRef</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">Variable</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">Variable</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
 <TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">ListConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">ListConstructor</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod75">OrderedListConstructor</A> | <A HREF="#prod76">UnorderedListConstructor</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod76">OrderedListConstructor</A> | <A HREF="#prod77">UnorderedListConstructor</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">OrderedListConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">OrderedListConstructor</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )* )? &lt;RIGHTBRACKET&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )* )? &lt;RIGHTBRACKET&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">UnorderedListConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">UnorderedListConstructor</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )* )? &lt;RIGHTDBLBRACE&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )* )? &lt;RIGHTDBLBRACE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">RecordConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">RecordConstructor</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACE&gt; ( <A HREF="#prod77">FieldBinding</A> ( &lt;COMMA&gt; <A HREF="#prod77">FieldBinding</A> )* )? &lt;RIGHTBRACE&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACE&gt; ( <A HREF="#prod78">FieldBinding</A> ( &lt;COMMA&gt; <A HREF="#prod78">FieldBinding</A> )* )? &lt;RIGHTBRACE&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">FieldBinding</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">FieldBinding</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod39">Expression</A> &lt;COLON&gt; <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A> &lt;COLON&gt; <A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">FunctionCallExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">FunctionCallExpr</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">FunctionName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )* )? &lt;RIGHTPAREN&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )* )? &lt;RIGHTPAREN&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">DatasetAccessExpression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">DatasetAccessExpression</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DATASET&gt; ( ( <A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> )? ) | ( &lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt; ) )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DATASET&gt; ( ( <A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )? ) | ( &lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt; ) )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">ParenthesizedExpression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">ParenthesizedExpression</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt;</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt;</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">IfThenElse</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">IfThenElse</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod39">Expression</A> &lt;ELSE&gt; <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod40">Expression</A> &lt;ELSE&gt; <A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">FLWOGR</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">FLWOGR</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod78">ForClause</A> | <A HREF="#prod79">LetClause</A> ) ( <A HREF="#prod80">Clause</A> )* ( &lt;RETURN&gt; | &lt;SELECT&gt; ) <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> ) ( <A HREF="#prod81">Clause</A> )* ( &lt;RETURN&gt; | &lt;SELECT&gt; ) <A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">Clause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">Clause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod78">ForClause</A> | <A HREF="#prod79">LetClause</A> | <A HREF="#prod81">WhereClause</A> | <A HREF="#prod82">OrderbyClause</A> | <A HREF="#prod83">GroupClause</A> | <A HREF="#prod84">LimitClause</A> | <A HREF="#prod85">DistinctClause</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> | <A HREF="#prod82">WhereClause</A> | <A HREF="#prod83">OrderbyClause</A> | <A HREF="#prod84">GroupClause</A> | <A HREF="#prod85">LimitClause</A> | <A HREF="#prod86">DistinctClause</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">ForClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">ForClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;FOR&gt; | &lt;FROM&gt; ) <A HREF="#prod45">Variable</A> ( &lt;AT&gt; <A HREF="#prod45">Variable</A> )? &lt;IN&gt; ( <A HREF="#prod39">Expression</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;FOR&gt; | &lt;FROM&gt; ) <A HREF="#prod46">Variable</A> ( &lt;AT&gt; <A HREF="#prod46">Variable</A> )? &lt;IN&gt; ( <A HREF="#prod40">Expression</A> )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">LetClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">LetClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LET&gt; | &lt;WITH&gt; ) <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LET&gt; | &lt;WITH&gt; ) <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">WhereClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">WhereClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;WHERE&gt; <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;WHERE&gt; <A HREF="#prod40">Expression</A></TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">OrderbyClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">OrderbyClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ORDER&gt; &lt;BY&gt; <A HREF="#prod39">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? )* )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ORDER&gt; &lt;BY&gt; <A HREF="#prod40">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? )* )</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">GroupClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">GroupClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;GROUP&gt; &lt;BY&gt; ( <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; ( <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod39">Expression</A> )* ( &lt;DECOR&gt; <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; &lt;DECOR&gt; <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A> )* )? &lt;WITH&gt; <A HREF="#prod71">VariableRef</A> ( &lt;COMMA&gt; <A HREF="#prod71">VariableRef</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;GROUP&gt; &lt;BY&gt; ( <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; ( <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod40">Expression</A> )* ( &lt;DECOR&gt; <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; &lt;DECOR&gt; <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A> )* )? ( &lt;WITH&gt; | &lt;KEEPING&gt; ) <A HREF="#prod72">VariableRef</A> ( &lt;COMMA&gt; <A HREF="#prod72">VariableRef</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">LimitClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">LimitClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LIMIT&gt; <A HREF="#prod39">Expression</A> ( &lt;OFFSET&gt; <A HREF="#prod39">Expression</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LIMIT&gt; <A HREF="#prod40">Expression</A> ( &lt;OFFSET&gt; <A HREF="#prod40">Expression</A> )?</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">DistinctClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod86">DistinctClause</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DISTINCT&gt; &lt;BY&gt; <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DISTINCT&gt; &lt;BY&gt; <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )*</TD>
 </TR>
 <TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">QuantifiedExpression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">QuantifiedExpression</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;SOME&gt; ) | ( &lt;EVERY&gt; ) ) <A HREF="#prod45">Variable</A> &lt;IN&gt; <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod45">Variable</A> &lt;IN&gt; <A HREF="#prod39">Expression</A> )* &lt;SATISFIES&gt; <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;SOME&gt; ) | ( &lt;EVERY&gt; ) ) <A HREF="#prod46">Variable</A> &lt;IN&gt; <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod46">Variable</A> &lt;IN&gt; <A HREF="#prod40">Expression</A> )* &lt;SATISFIES&gt; <A HREF="#prod40">Expression</A></TD>
 </TR>
 </TABLE>
 </BODY>