blob: 815cdd370f03fde93ab1ac9a3e106ed0134a24a0 [file] [log] [blame]
Till Westmann5b431ca2015-10-01 19:16:11 -07001<!--
2 ! Licensed to the Apache Software Foundation (ASF) under one
3 ! or more contributor license agreements. See the NOTICE file
4 ! distributed with this work for additional information
5 ! regarding copyright ownership. The ASF licenses this file
6 ! to you under the Apache License, Version 2.0 (the
7 ! "License"); you may not use this file except in compliance
8 ! with the License. You may obtain a copy of the License at
9 !
10 ! http://www.apache.org/licenses/LICENSE-2.0
11 !
12 ! Unless required by applicable law or agreed to in writing,
13 ! software distributed under the License is distributed on an
14 ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 ! KIND, either express or implied. See the License for the
16 ! specific language governing permissions and limitations
17 ! under the License.
18 !-->
vinayakb38b7ca42012-03-05 05:44:15 +000019<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
20<HTML>
21<HEAD>
22<TITLE>BNF for AQL.jj</TITLE>
23</HEAD>
24<BODY>
25<H1 ALIGN=CENTER>BNF for AQL.jj</H1>
26<H2 ALIGN=CENTER>TOKENS</H2>
27<TABLE>
28 <!-- Token -->
29 <TR>
30 <TD>
31 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -080032&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
33&lt;ASC: "asc"&gt;
34| &lt;AT: "at"&gt;
35| &lt;BY: "by"&gt;
36| &lt;DATASET: "dataset"&gt;
37| &lt;DECOR: "decor"&gt;
38| &lt;DESC: "desc"&gt;
39| &lt;DISTINCT: "distinct"&gt;
40| &lt;ELSE: "else"&gt;
41| &lt;EVERY: "every"&gt;
42| &lt;FOR: "for"&gt;
43| &lt;FROM: "from"&gt;
44| &lt;GROUP: "group"&gt;
45| &lt;IF: "if"&gt;
46| &lt;IN: "in"&gt;
47| &lt;LET: "let"&gt;
48| &lt;LIMIT: "limit"&gt;
49| &lt;OFFSET: "offset"&gt;
50| &lt;ORDER: "order"&gt;
51| &lt;RETURN: "return"&gt;
52| &lt;SATISFIES: "satisfies"&gt;
53| &lt;SELECT: "select"&gt;
54| &lt;SOME: "some"&gt;
55| &lt;THEN: "then"&gt;
56| &lt;UNION: "union"&gt;
57| &lt;WHERE: "where"&gt;
58| &lt;WITH: "with"&gt;
buyingyiccd67fe2015-05-19 11:53:39 -070059| &lt;KEEPING: "keeping"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -080060}
61
62 </PRE>
63 </TD>
64 </TR>
65 <!-- Token -->
66 <TR>
67 <TD>
68 <PRE>
69&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +000070&lt;CARET: "^"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -080071| &lt;DIV: "/"&gt;
72| &lt;IDIV: "idiv"&gt;
73| &lt;MINUS: "-"&gt;
74| &lt;MOD: "%"&gt;
75| &lt;MUL: "*"&gt;
76| &lt;PLUS: "+"&gt;
77| &lt;LEFTPAREN: "("&gt;
78| &lt;RIGHTPAREN: ")"&gt;
79| &lt;LEFTBRACKET: "["&gt;
80| &lt;RIGHTBRACKET: "]"&gt;
81| &lt;COLON: ":"&gt;
82| &lt;COMMA: ","&gt;
83| &lt;DOT: "."&gt;
84| &lt;QUES: "?"&gt;
85| &lt;LT: "&lt;"&gt;
86| &lt;GT: "&gt;"&gt;
87| &lt;LE: "&lt;="&gt;
88| &lt;GE: "&gt;="&gt;
89| &lt;EQ: "="&gt;
90| &lt;NE: "!="&gt;
91| &lt;SIMILAR: "~="&gt;
92| &lt;ASSIGN: ":="&gt;
93| &lt;AND: "and"&gt;
94| &lt;OR: "or"&gt;
95}
96
97 </PRE>
98 </TD>
99 </TR>
100 <!-- Token -->
101 <TR>
102 <TD>
103 <PRE>
104&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
105&lt;LEFTBRACE: "{"&gt; : DEFAULT
vinayakb38b7ca42012-03-05 05:44:15 +0000106}
107
108 </PRE>
109 </TD>
110 </TR>
111 <!-- Token -->
112 <TR>
113 <TD>
114 <PRE>
115&lt;DEFAULT&gt; TOKEN : {
buyingyi2fd7fa62014-11-24 19:31:55 -0800116&lt;RIGHTBRACE: "}"&gt; : {
vinayakb38b7ca42012-03-05 05:44:15 +0000117}
118
119 </PRE>
120 </TD>
121 </TR>
122 <!-- Token -->
123 <TR>
124 <TD>
125 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800126&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
127&lt;LEFTDBLBRACE: "{{"&gt; : IN_DBL_BRACE
vinayakb38b7ca42012-03-05 05:44:15 +0000128}
129
130 </PRE>
131 </TD>
132 </TR>
133 <!-- Token -->
134 <TR>
135 <TD>
136 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800137&lt;IN_DBL_BRACE&gt; TOKEN : {
138&lt;RIGHTDBLBRACE: "}}"&gt; : {
vinayakb38b7ca42012-03-05 05:44:15 +0000139}
140
141 </PRE>
142 </TD>
143 </TR>
144 <!-- Token -->
145 <TR>
146 <TD>
147 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800148&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000149&lt;INTEGER_LITERAL: (&lt;DIGIT&gt;)+&gt;
150}
151
152 </PRE>
153 </TD>
154 </TR>
155 <!-- Token -->
156 <TR>
157 <TD>
158 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800159&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000160&lt;NULL: "null"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800161| &lt;TRUE: "true"&gt;
162| &lt;FALSE: "false"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000163}
164
165 </PRE>
166 </TD>
167 </TR>
168 <!-- Token -->
169 <TR>
170 <TD>
171 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800172&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000173&lt;#DIGIT: ["0"-"9"]&gt;
174}
175
176 </PRE>
177 </TD>
178 </TR>
179 <!-- Token -->
180 <TR>
181 <TD>
182 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800183&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
184&lt;DOUBLE_LITERAL: &lt;DIGITS&gt; | &lt;DIGITS&gt; ("." &lt;DIGITS&gt;)? | "." &lt;DIGITS&gt;&gt;
185| &lt;FLOAT_LITERAL: &lt;DIGITS&gt; ("f" | "F") | &lt;DIGITS&gt; ("." &lt;DIGITS&gt; ("f" | "F"))? | "." &lt;DIGITS&gt; ("f" | "F")&gt;
186| &lt;DIGITS: (&lt;DIGIT&gt;)+&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000187}
188
189 </PRE>
190 </TD>
191 </TR>
192 <!-- Token -->
193 <TR>
194 <TD>
195 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800196&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000197&lt;#LETTER: ["A"-"Z","a"-"z"]&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800198| &lt;SPECIALCHARS: ["$","_","-"]&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000199}
200
201 </PRE>
202 </TD>
203 </TR>
204 <!-- Token -->
205 <TR>
206 <TD>
207 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800208&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
209&lt;STRING_LITERAL: "\"" (&lt;EscapeQuot&gt; | &lt;EscapeBslash&gt; | &lt;EscapeSlash&gt; | &lt;EscapeBspace&gt; | &lt;EscapeFormf&gt; | &lt;EscapeNl&gt; | &lt;EscapeCr&gt; | &lt;EscapeTab&gt; | ~["\"","\\"])* "\"" | "\'" (&lt;EscapeApos&gt; | &lt;EscapeBslash&gt; | &lt;EscapeSlash&gt; | &lt;EscapeBspace&gt; | &lt;EscapeFormf&gt; | &lt;EscapeNl&gt; | &lt;EscapeCr&gt; | &lt;EscapeTab&gt; | ~["\'","\\"])* "\'"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000210| &lt;#EscapeQuot: "\\\""&gt;
211| &lt;#EscapeApos: "\\\'"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800212| &lt;#EscapeBslash: "\\\\"&gt;
213| &lt;#EscapeSlash: "\\/"&gt;
214| &lt;#EscapeBspace: "\\b"&gt;
215| &lt;#EscapeFormf: "\\f"&gt;
216| &lt;#EscapeNl: "\\n"&gt;
217| &lt;#EscapeCr: "\\r"&gt;
218| &lt;#EscapeTab: "\\t"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000219}
220
221 </PRE>
222 </TD>
223 </TR>
224 <!-- Token -->
225 <TR>
226 <TD>
227 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800228&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
229&lt;IDENTIFIER: &lt;LETTER&gt; (&lt;LETTER&gt; | &lt;DIGIT&gt; | &lt;SPECIALCHARS&gt;)*&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000230}
231
232 </PRE>
233 </TD>
234 </TR>
235 <!-- Token -->
236 <TR>
237 <TD>
238 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800239&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
240&lt;VARIABLE: "$" &lt;LETTER&gt; (&lt;LETTER&gt; | &lt;DIGIT&gt; | "_")*&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000241}
242
243 </PRE>
244 </TD>
245 </TR>
246 <!-- Token -->
247 <TR>
248 <TD>
249 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800250&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000251" "
252| "\t"
253| "\r"
254| "\n"
255}
256
257 </PRE>
258 </TD>
259 </TR>
260 <!-- Token -->
261 <TR>
262 <TD>
263 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800264&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000265&lt;"//" (~["\n"])* "\n"&gt;
266}
267
268 </PRE>
269 </TD>
270 </TR>
271 <!-- Token -->
272 <TR>
273 <TD>
274 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800275&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000276&lt;"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?&gt;
277}
278
279 </PRE>
280 </TD>
281 </TR>
282 <!-- Token -->
283 <TR>
284 <TD>
285 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800286&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000287"/*" : INSIDE_COMMENT
288}
289
290 </PRE>
291 </TD>
292 </TR>
293 <!-- Token -->
294 <TR>
295 <TD>
296 <PRE>
297&lt;INSIDE_COMMENT&gt; SPECIAL : {
298&lt;"+" (" ")* (~["*"])*&gt;
299}
300
301 </PRE>
302 </TD>
303 </TR>
304 <!-- Token -->
305 <TR>
306 <TD>
307 <PRE>
308&lt;INSIDE_COMMENT&gt; SKIP : {
309"/*" : {
310}
311
312 </PRE>
313 </TD>
314 </TR>
315 <!-- Token -->
316 <TR>
317 <TD>
318 <PRE>
319&lt;INSIDE_COMMENT&gt; SKIP : {
320"*/" : {
321| &lt;~[]&gt;
322}
323
324 </PRE>
325 </TD>
326 </TR>
327</TABLE>
328<H2 ALIGN=CENTER>NON-TERMINALS</H2>
329<TABLE>
330<TR>
331<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">Statement</A></TD>
332<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800333<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod2">SingleStatement</A> ( ";" )? )* &lt;EOF&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000334</TR>
335<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800336<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SingleStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000337<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700338<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000339</TR>
340<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800341<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">DataverseDeclaration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000342<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700343<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000344</TR>
345<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800346<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">CreateStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000347<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700348<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000349</TR>
350<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700351<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">TypeSpecification</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000352<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700353<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod26">TypeName</A> <A HREF="#prod27">IfNotExists</A> "as" <A HREF="#prod28">TypeExpr</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800354</TR>
355<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700356<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">NodegroupSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800357<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700358<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800359</TR>
360<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700361<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">DatasetSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800362<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700363<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800364</TR>
365<TR>
366<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">RefreshExternalDatasetStatement</A></TD>
367<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700368<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800369</TR>
370<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700371<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">RunStatement</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800372<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700373<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800374</TR>
375<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700376<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">IndexSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800377<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700378<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800379</TR>
380<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700381<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">CompactionPolicy</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800382<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700383<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800384</TR>
385<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700386<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">FilterField</A></TD>
387<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
388<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
389</TR>
390<TR>
391<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">IndexType</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800392<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
393<TD ALIGN=LEFT VALIGN=BASELINE>( "btree" | "rtree" | "keyword" | "ngram" &lt;LEFTPAREN&gt; &lt;INTEGER_LITERAL&gt; &lt;RIGHTPAREN&gt; )</TD>
394</TR>
395<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700396<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">DataverseSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800397<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700398<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> ( "with format" <A HREF="#prod37">StringLiteral</A> )?</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800399</TR>
400<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700401<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FunctionSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800402<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700403<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800404</TR>
405<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700406<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">FeedSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800407<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700408<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800409</TR>
410<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700411<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">ParameterList</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800412<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
413<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( &lt;VARIABLE&gt; ( &lt;COMMA&gt; &lt;VARIABLE&gt; )* )? &lt;RIGHTPAREN&gt;</TD>
414</TR>
415<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700416<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">IfNotExists</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800417<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
418<TD ALIGN=LEFT VALIGN=BASELINE>( "if not exists" )?</TD>
419</TR>
420<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700421<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">ApplyFunction</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800422<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700423<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod38">FunctionName</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800424</TR>
425<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700426<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">GetPolicy</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800427<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700428<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod18">Identifier</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800429</TR>
430<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700431<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">FunctionSignature</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800432<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700433<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> "@" &lt;INTEGER_LITERAL&gt;</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800434</TR>
435<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700436<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">PrimaryKey</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800437<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700438<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )*</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800439</TR>
440<TR>
441<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">DropStatement</A></TD>
442<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700443<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800444</TR>
445<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700446<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">IfExists</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800447<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
448<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;IF&gt; "exists" )?</TD>
449</TR>
450<TR>
451<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">InsertStatement</A></TD>
452<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700453<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800454</TR>
455<TR>
456<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">DeleteStatement</A></TD>
457<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700458<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800459</TR>
460<TR>
461<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">UpdateStatement</A></TD>
462<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700463<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800464</TR>
465<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700466<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">UpdateClause</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800467<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700468<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod40">Expression</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000469</TR>
470<TR>
471<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
472<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800473<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">InsertStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000474</TR>
475<TR>
476<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
477<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800478<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod11">DeleteStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000479</TR>
480<TR>
481<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
482<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800483<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod12">UpdateStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000484</TR>
485<TR>
486<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
487<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700488<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000489</TR>
490<TR>
491<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SetStatement</A></TD>
492<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700493<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod18">Identifier</A> <A HREF="#prod37">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000494</TR>
495<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800496<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">WriteStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000497<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700498<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000499</TR>
500<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800501<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">LoadStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000502<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700503<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000504</TR>
505<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700506<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">AdapterName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000507<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700508<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000509</TR>
510<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800511<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">CompactStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000512<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700513<TD ALIGN=LEFT VALIGN=BASELINE>"compact" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000514</TR>
515<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800516<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">FeedStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000517<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700518<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000519</TR>
520<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700521<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Configuration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000522<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700523<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000524</TR>
525<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700526<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">KeyValuePair</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000527<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700528<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000529</TR>
530<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700531<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">Properties</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000532<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700533<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000534</TR>
535<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700536<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">Property</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000537<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700538<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;EQ&gt; ( <A HREF="#prod37">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000539</TR>
540<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700541<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">TypeExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000542<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700543<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000544</TR>
545<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700546<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">RecordTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000547<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700548<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000549</TR>
550<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700551<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">RecordField</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000552<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700553<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;COLON&gt; <A HREF="#prod28">TypeExpr</A> ( &lt;QUES&gt; )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000554</TR>
555<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700556<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">TypeReference</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000557<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700558<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000559</TR>
560<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700561<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">OrderedListTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000562<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700563<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod28">TypeExpr</A> ) &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000564</TR>
565<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700566<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">UnorderedListTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000567<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700568<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod28">TypeExpr</A> ) &lt;RIGHTDBLBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000569</TR>
570<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700571<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">FunctionName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000572<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700573<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000574</TR>
575<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700576<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">TypeName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000577<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700578<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod29">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000579</TR>
580<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700581<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000582<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
583<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IDENTIFIER&gt;</TD>
584</TR>
585<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800586<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
587<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700588<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000589</TR>
590<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700591<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000592<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800593<TD ALIGN=LEFT VALIGN=BASELINE>&lt;STRING_LITERAL&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000594</TR>
595<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700596<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000597<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700598<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000599</TR>
600<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700601<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">DoubleQualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000602<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700603<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000604</TR>
605<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800606<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FunctionDeclaration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000607<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700608<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000609</TR>
610<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800611<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">Query</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000612<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700613<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000614</TR>
615<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700616<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000617<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700618<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000619</TR>
620<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700621<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">OperatorExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000622<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700623<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">AndExpr</A> ( &lt;OR&gt; <A HREF="#prod59">AndExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000624</TR>
625<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700626<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">AndExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000627<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700628<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">RelExpr</A> ( &lt;AND&gt; <A HREF="#prod60">RelExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000629</TR>
630<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700631<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">RelExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000632<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700633<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000634</TR>
635<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700636<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">AddExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000637<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700638<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">MultExpr</A> ( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) <A HREF="#prod62">MultExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000639</TR>
640<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700641<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">MultExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000642<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700643<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000644</TR>
645<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700646<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnionExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000647<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700648<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod64">UnaryExpr</A> ( &lt;UNION&gt; ( <A HREF="#prod64">UnaryExpr</A> ) )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000649</TR>
650<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700651<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">UnaryExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000652<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700653<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) )? <A HREF="#prod65">ValueExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000654</TR>
655<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700656<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">ValueExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000657<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700658<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod66">PrimaryExpr</A> ( <A HREF="#prod67">Field</A> | <A HREF="#prod68">Index</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000659</TR>
660<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700661<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Field</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000662<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700663<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DOT&gt; <A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000664</TR>
665<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700666<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">Index</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000667<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700668<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod40">Expression</A> | &lt;QUES&gt; ) &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000669</TR>
670<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700671<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">PrimaryExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000672<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700673<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000674</TR>
675<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700676<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">Literal</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800677<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700678<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800679</TR>
680<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700681<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">VariableRef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000682<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
683<TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
684</TR>
685<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700686<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">Variable</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000687<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
688<TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
689</TR>
690<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700691<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">ListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000692<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700693<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod76">OrderedListConstructor</A> | <A HREF="#prod77">UnorderedListConstructor</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000694</TR>
695<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700696<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">OrderedListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000697<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700698<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000699</TR>
700<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700701<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">UnorderedListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000702<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700703<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000704</TR>
705<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700706<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">RecordConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000707<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700708<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000709</TR>
710<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700711<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">FieldBinding</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000712<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700713<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A> &lt;COLON&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000714</TR>
715<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700716<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">FunctionCallExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000717<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700718<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000719</TR>
720<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700721<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">DatasetAccessExpression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000722<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700723<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000724</TR>
725<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700726<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">ParenthesizedExpression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000727<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700728<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000729</TR>
730<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700731<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">IfThenElse</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000732<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700733<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000734</TR>
735<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700736<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">FLWOGR</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000737<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700738<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000739</TR>
740<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700741<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">Clause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000742<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700743<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000744</TR>
745<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700746<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">ForClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000747<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700748<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000749</TR>
750<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700751<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">LetClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000752<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700753<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000754</TR>
755<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700756<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">WhereClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000757<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700758<TD ALIGN=LEFT VALIGN=BASELINE>&lt;WHERE&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000759</TR>
760<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700761<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">OrderbyClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000762<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700763<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000764</TR>
765<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700766<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">GroupClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000767<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700768<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000769</TR>
770<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700771<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">LimitClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000772<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700773<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LIMIT&gt; <A HREF="#prod40">Expression</A> ( &lt;OFFSET&gt; <A HREF="#prod40">Expression</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000774</TR>
775<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700776<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod86">DistinctClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000777<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700778<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800779</TR>
780<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700781<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">QuantifiedExpression</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800782<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700783<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000784</TR>
785</TABLE>
786</BODY>
787</HTML>