select.xml 71.0 KB
Newer Older
1
<?xml version="1.0" encoding="UTF-8"?>
T
tuohai666 已提交
2
<!--
3 4 5 6 7 8 9 10 11 12 13 14 15 16
  ~ Licensed to the Apache Software Foundation (ASF) under one or more
  ~ contributor license agreements.  See the NOTICE file distributed with
  ~ this work for additional information regarding copyright ownership.
  ~ The ASF licenses this file to You under the Apache License, Version 2.0
  ~ (the "License"); you may not use this file except in compliance with
  ~ the License.  You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
T
tuohai666 已提交
17 18
  -->

19 20
<sql-parser-test-cases>
    <select sql-case-id="select_constant_without_table" >
21
        <projections start-index="7" stop-index="12">
22
            <expression-projection alias="a" start-index="7" stop-index="12" />
23
        </projections>
24
    </select>
T
terrymanu 已提交
25
    
26
    <select sql-case-id="select_with_same_table_name_and_alias" parameters="1, 1">
27
        <table name="t_order" alias="t_order" start-index="22" stop-index="28" />
28 29 30 31 32
        <projections start-index="7" stop-index="15">
            <shorthand-projection start-index="7" stop-index="15">
                <owner name="t_order" start-index="7" stop-index="13" />
            </shorthand-projection>
        </projections>
33
        <where start-index="38" stop-index="71">
34 35
            <and-predicate>
                <predicate start-index="44" stop-index="54">
36
                    <column-left-value name="user_id" start-index="44" stop-index="50" />
37 38 39 40 41
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
42 43
                </predicate>
                <predicate start-index="60" stop-index="71">
44
                    <column-left-value name="order_id" start-index="60" stop-index="67" />
45 46 47 48 49
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                    </compare-right-value>
50 51 52
                </predicate>
            </and-predicate>
        </where>
53
    </select>
C
codefairy08 已提交
54
    
55
    <select sql-case-id="select_with_same_table_name_and_alias_column_with_owner" parameters="1, 1">
56
        <table name="t_order" alias="t_order" start-index="52" stop-index="58" />
57 58 59 60 61 62 63 64 65
        <projections start-index="7" stop-index="45">
            <column-projection name="order_id" start-index="7" stop-index="22">
                <owner name="t_order" start-index="7" stop-index="13" />
            </column-projection>
            <column-projection name="user_id" start-index="24" stop-index="38">
                <owner name="t_order" start-index="24" stop-index="30" />
            </column-projection>
            <column-projection name="status" start-index="40" stop-index="45" />
        </projections>
66
        <where start-index="68" stop-index="109">
67 68
            <and-predicate>
                <predicate start-index="74" stop-index="92">
69
                    <column-left-value name="user_id" start-index="74" stop-index="88">
70
                        <owner name="t_order" start-index="74" stop-index="80" />
71
                    </column-left-value>
72 73 74 75 76
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
77 78
                </predicate>
                <predicate start-index="98" stop-index="109">
79
                    <column-left-value name="order_id" start-index="98" stop-index="105" />
80 81 82 83 84
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                    </compare-right-value>
85 86 87
                </predicate>
            </and-predicate>
        </where>
88
    </select>
T
terrymanu 已提交
89
    
90
    <select sql-case-id="select_not_equal_with_single_table" parameters="1">
91
        <table name="t_order_item" start-index="14" stop-index="25" />
92 93 94
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
95
        <where start-index="27" stop-index="44">
96 97
            <and-predicate>
                <predicate start-index="33" stop-index="44">
98
                    <column-left-value name="item_id" start-index="33" stop-index="39" />
99 100 101 102 103
                    <operator type="&lt;&gt;" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
104 105 106
                </predicate>
            </and-predicate>
        </where>
107 108 109
        <order-by>
            <column-item name="item_id" />
        </order-by>
110
    </select>
T
terrymanu 已提交
111
    
112
    <select sql-case-id="select_exclamation_equal_with_single_table" parameters="1">
113
        <table name="t_order_item" start-index="14" stop-index="25" />
114 115 116
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
117
        <where start-index="27" stop-index="44">
118 119
            <and-predicate>
                <predicate start-index="33" stop-index="44">
120
                    <column-left-value name="item_id" start-index="33" stop-index="39" />
121 122 123 124 125
                    <operator type="!=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
126 127 128
                </predicate>
            </and-predicate>
        </where>
129 130 131
        <order-by>
            <column-item name="item_id" />
        </order-by>
132
    </select>
T
terrymanu 已提交
133
    
134
    <select sql-case-id="select_not_in_with_single_table" parameters="100000, 100001">
135
        <table name="t_order_item" start-index="14" stop-index="25" />
136 137 138
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
139
        <where start-index="27" stop-index="77" literal-stop-index="87">
140 141 142
            <!-- FIXME cannot parse IS NOT NULL -->
            <!--<and-predicate>-->
                <!--<predicate start-index="33" stop-index="51">-->
143
                    <!--<column-left-value name="item_id" start-index="33" stop-index="39" />-->
144 145
                <!--</predicate>-->
                <!--<predicate start-index="57" stop-index="77" literal-stop-index="87">-->
146
                    <!--<column-left-value name="item_id" start-index="57" stop-index="63" />-->
147 148 149
                <!--</predicate>-->
            <!--</and-predicate>-->
        </where>
150 151 152
        <order-by>
            <column-item name="item_id" />
        </order-by>
153
    </select>
T
terrymanu 已提交
154
    
155
    <select sql-case-id="select_not_between_with_single_table" parameters="100000, 100001">
156
        <table name="t_order_item" start-index="14" stop-index="25" />
157 158 159
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
160
        <where start-index="27" stop-index="83" literal-stop-index="93">
161 162 163
            <!-- FIXME can not parse IS NOT NULL -->
            <!--<and-predicate>-->
                <!--<predicate start-index="33" stop-index="51">-->
164
                    <!--<column-left-value name="item_id" start-index="33" stop-index="39" />-->
165 166
                <!--</predicate>-->
                <!--<predicate start-index="57" stop-index="83">-->
167
                    <!--<column-left-value name="item_id" start-index="57" stop-index="63" />-->
168 169 170
                <!--</predicate>-->
            <!--</and-predicate>-->
        </where>
171 172 173
        <order-by>
            <column-item name="item_id" />
        </order-by>
174
    </select>
T
terrymanu 已提交
175
    
176
    <select sql-case-id="select_equal_with_single_table" parameters="1, 1">
177
        <table name="t_order" start-index="14" stop-index="20" />
178 179 180
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
181
        <where start-index="22" stop-index="33">
182 183
            <and-predicate>
                <predicate start-index="28" stop-index="38">
184
                    <column-left-value name="user_id" start-index="28" stop-index="34" />
185 186 187 188 189
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
190 191
                </predicate>
                <predicate start-index="44" stop-index="55">
192
                    <column-left-value name="order_id" start-index="44" stop-index="51" />
193 194 195 196 197
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                    </compare-right-value>
198 199 200
                </predicate>
            </and-predicate>
        </where>
201
    </select>
202
    
203
    <select sql-case-id="select_equal_with_same_sharding_column" parameters="1, 2">
204
        <table name="t_order" start-index="14" stop-index="20" />
205 206 207
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
208
        <where start-index="22" stop-index="56">
209 210
            <and-predicate>
                <predicate start-index="28" stop-index="39">
211
                    <column-left-value name="order_id" start-index="28" stop-index="35" />
212 213 214 215 216
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
217 218
                </predicate>
                <predicate start-index="45" stop-index="56">
219
                    <column-left-value name="order_id" start-index="45" stop-index="52" />
220 221 222 223 224
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="2" />
                    </compare-right-value>
225 226 227
                </predicate>
            </and-predicate>
        </where>
228
    </select>
T
terrymanu 已提交
229
    
230
    <select sql-case-id="select_between_with_single_table" parameters="1, 10, 2, 5">
231
        <table name="t_order" start-index="14" stop-index="20" />
232
        <projections start-index="7" stop-index="7">
233
            <shorthand-projection start-index="7" stop-index="7" />
234
        </projections>
235
        <where start-index="22" stop-index="107">
236 237
            <and-predicate>
                <predicate start-index="28" stop-index="50" literal-stop-index="51">
238
                    <column-left-value name="user_id" start-index="28" stop-index="34" />
L
Liang Zhang 已提交
239 240 241 242 243 244
                    <between-right-value>
                        <between-parameter-marker-expression value="0" />
                        <between-literal-expression value="1" />
                        <and-parameter-marker-expression value="1" />
                        <and-literal-expression value="10" />
                    </between-right-value>
245 246
                </predicate>
                <predicate start-index="56" stop-index="79" literal-start-index="57" literal-stop-index="80">
247
                    <column-left-value name="order_id" start-index="56" stop-index="63" literal-start-index="57" literal-stop-index="64" />
L
Liang Zhang 已提交
248 249 250 251 252 253
                    <between-right-value>
                        <between-parameter-marker-expression value="2" />
                        <between-literal-expression value="2" />
                        <and-parameter-marker-expression value="3" />
                        <and-literal-expression value="5" />
                    </between-right-value>
254 255 256
                </predicate>
            </and-predicate>
        </where>
257 258 259 260
        <order-by>
            <column-item name="user_id" />
            <column-item name="order_id" />
        </order-by>
261
    </select>
262
    
263
    <select sql-case-id="select_comparison_symbol_with_single_table" parameters="1, 10, 2, 5">
264
        <table name="t_order" start-index="14" stop-index="20" />
265
        <projections start-index="7" stop-index="7">
266
            <shorthand-projection start-index="7" stop-index="7" />
267
        </projections>
268
        <where start-index="22" stop-index="119" literal-stop-index="120">
269 270
            <and-predicate>
                <predicate start-index="28" stop-index="39">
271
                    <column-left-value name="user_id" start-index="28" stop-index="34" />
272 273 274 275 276
                    <operator type="&gt;=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
277 278
                </predicate>
                <predicate start-index="45" stop-index="56" literal-stop-index="57">
279
                    <column-left-value name="user_id" start-index="45" stop-index="51" />
280 281 282 283 284
                    <operator type="&lt;=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="10" />
                    </compare-right-value>
285 286
                </predicate>
                <predicate start-index="62" stop-index="74" literal-start-index="63" literal-stop-index="75">
287
                    <column-left-value name="order_id" start-index="62" stop-index="69" literal-start-index="63" literal-stop-index="70" />
288 289 290 291 292
                    <operator type="&gt;=" />
                    <compare-right-value>
                        <parameter-marker-expression value="2" />
                        <literal-expression value="2" />
                    </compare-right-value>
293 294
                </predicate>
                <predicate start-index="80" stop-index="92" literal-start-index="81" literal-stop-index="93">
295
                    <column-left-value name="order_id" start-index="80" stop-index="87" literal-start-index="81" literal-stop-index="88" />
296 297 298 299 300
                    <operator type="&lt;=" />
                    <compare-right-value>
                        <parameter-marker-expression value="3" />
                        <literal-expression value="5" />
                    </compare-right-value>
301 302 303
                </predicate>
            </and-predicate>
        </where>
304 305 306 307
        <order-by>
            <column-item name="user_id" />
            <column-item name="order_id" />
        </order-by>
308
    </select>
T
terrymanu 已提交
309
    
310
    <select sql-case-id="select_in_with_single_table" parameters="1, 2, 3, 9, 10">
311
        <table name="t_order" start-index="14" stop-index="20" />
312
        <projections start-index="7" stop-index="7">
313
            <shorthand-projection start-index="7" stop-index="7" />
314
        </projections>
315
        <where start-index="22" stop-index="70" literal-stop-index="71">
316 317
            <and-predicate>
                <predicate start-index="28" stop-index="47">
318
                    <column-left-value name="user_id" start-index="28" stop-index="34" />
319 320 321 322 323 324 325 326
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <parameter-marker-expression value="2" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                        <literal-expression value="3" />
                    </in-right-value>
327 328
                </predicate>
                <predicate start-index="53" stop-index="70" literal-stop-index="71">
329
                    <column-left-value name="order_id" start-index="53" stop-index="60" />
330 331 332 333 334 335
                    <in-right-value>
                        <parameter-marker-expression value="3" />
                        <parameter-marker-expression value="4" />
                        <literal-expression value="9" />
                        <literal-expression value="10" />
                    </in-right-value>
336 337 338
                </predicate>
            </and-predicate>
        </where>
339 340 341 342
        <order-by>
            <column-item name="user_id" />
            <column-item name="order_id" />
        </order-by>
343
    </select>
T
terrymanu 已提交
344
    
345
    <select sql-case-id="select_in_with_same_sharding_column" parameters="1000, 1001, 1001, 1002">
346
        <table name="t_order" start-index="14" stop-index="20" />
347
        <projections start-index="7" stop-index="7">
348
            <shorthand-projection start-index="7" stop-index="7" />
349
        </projections>
350
        <where start-index="22" stop-index="68" literal-stop-index="80">
351 352
            <and-predicate>
                <predicate start-index="28" stop-index="45" literal-stop-index="51">
353
                    <column-left-value name="order_id" start-index="28" stop-index="35" />
354 355 356 357 358 359
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1000" />
                        <literal-expression value="1001" />
                    </in-right-value>
360 361
                </predicate>
                <predicate start-index="51" stop-index="68" literal-start-index="57" literal-stop-index="80">
362
                    <column-left-value name="order_id" start-index="51" stop-index="58" literal-start-index="57" literal-stop-index="64" />
363 364 365 366 367 368
                    <in-right-value>
                        <parameter-marker-expression value="2" />
                        <parameter-marker-expression value="3" />
                        <literal-expression value="1001" />
                        <literal-expression value="1002" />
                    </in-right-value>
369 370 371
                </predicate>
            </and-predicate>
        </where>
372 373 374
        <order-by>
            <column-item name="order_id" />
        </order-by>
375
    </select>
T
terrymanu 已提交
376
    
377
    <select sql-case-id="select_count_like_concat" parameters="'init', 1, 2, 9, 10">
378
        <table name="t_order" alias="o" start-index="37" stop-index="43" />
379 380 381
        <projections start-index="7" stop-index="30">
            <aggregation-projection type="COUNT" inner-expression-start-index="12" alias="orders_count" start-index="7" stop-index="14" />
        </projections>
382
        <where start-index="47" stop-index="142" literal-stop-index="148">
383 384 385
            <and-predicate>
                <!-- TODO assert predicate with like  -->
                <!--<predicate start-index="62" stop-index="79">-->
386
                    <!--<column-left-value name="status" start-index="53" stop-index="60">-->
387 388 389 390
                        <!--<owner name="o" start-index="53" stop-index="53" />-->
                    <!--</column>-->
                <!--</predicate>-->
                <predicate start-index="93" stop-index="111" literal-start-index="98" literal-stop-index="116">
391
                    <column-left-value name="user_id" start-index="93" stop-index="101" literal-start-index="98" literal-stop-index="106">
392
                        <owner name="o" start-index="93" stop-index="93" literal-start-index="98" literal-stop-index="98" />
393
                    </column-left-value>
394 395 396 397 398 399
                    <in-right-value>
                        <parameter-marker-expression value="1" />
                        <parameter-marker-expression value="2" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
400 401
                </predicate>
                <predicate start-index="117" stop-index="142" literal-start-index="122" literal-stop-index="148">
402
                    <column-left-value name="order_id" start-index="117" stop-index="126" literal-start-index="122" literal-stop-index="131">
403
                        <owner name="o" start-index="117" stop-index="117" literal-start-index="122" literal-stop-index="122" />
404
                    </column-left-value>
L
Liang Zhang 已提交
405 406 407 408 409 410
                    <between-right-value>
                        <between-parameter-marker-expression value="3" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="4" />
                        <and-literal-expression value="10" />
                    </between-right-value>
411 412 413
                </predicate>
            </and-predicate>
        </where>
414
    </select>
415
    
416
    <select sql-case-id="select_count_tilde_concat" parameters="'init', 1, 2, 9, 10">
417
        <table name="t_order" alias="o" start-index="37" stop-index="43" />
418 419 420
        <projections start-index="7" stop-index="30">
            <aggregation-projection type="COUNT" inner-expression-start-index="12" alias="orders_count" start-index="7" stop-index="14" />
        </projections>
421
        <where start-index="47" stop-index="140" literal-stop-index="146">
422 423 424
            <and-predicate>
                <!-- TODO add predication assert for ~~ -->
                <!--<predicate start-index="62" stop-index="79">-->
425
                    <!--<column-left-value name="status" start-index="53" stop-index="60">-->
426 427 428 429
                        <!--<owner name="o" start-index="53" stop-index="53" />-->
                    <!--</column>-->
                <!--</predicate>-->
                <predicate start-index="91" stop-index="109" literal-start-index="96" literal-stop-index="114">
430
                    <column-left-value name="user_id" start-index="91" stop-index="99" literal-start-index="96" literal-stop-index="104">
431
                        <owner name="o" start-index="91" stop-index="91" literal-start-index="96" literal-stop-index="96" />
432
                    </column-left-value>
433 434 435 436 437 438
                    <in-right-value>
                        <parameter-marker-expression value="1" />
                        <parameter-marker-expression value="2" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
439 440
                </predicate>
                <predicate start-index="115" stop-index="140" literal-start-index="120" literal-stop-index="146">
441
                    <column-left-value name="order_id" start-index="115" stop-index="124" literal-start-index="120" literal-stop-index="129">
442
                        <owner name="o" start-index="115" stop-index="115" literal-start-index="120" literal-stop-index="120" />
443
                    </column-left-value>
L
Liang Zhang 已提交
444 445 446 447 448 449
                    <between-right-value>
                        <between-parameter-marker-expression value="3" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="4" />
                        <and-literal-expression value="10" />
                    </between-right-value>
450 451 452
                </predicate>
            </and-predicate>
        </where>
453
    </select>
T
terrymanu 已提交
454
    
455
    <select sql-case-id="select_sharding_route_with_binding_tables" parameters="1, 2, 9, 10">
456 457
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="31" stop-index="42" />
458
        <projections start-index="7" stop-index="9">
459 460 461
            <shorthand-projection start-index="7" stop-index="9">
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
462
        </projections>
463
        <where start-index="99" stop-index="154" literal-stop-index="155">
464 465
            <and-predicate>
                <predicate start-index="105" stop-index="123">
466
                    <column-left-value name="user_id" start-index="105" stop-index="113">
467
                        <owner name="o" start-index="105" stop-index="105" />
468
                    </column-left-value>
469 470 471 472 473 474
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
475 476
                </predicate>
                <predicate start-index="129" stop-index="154" literal-stop-index="155">
477
                    <column-left-value name="order_id" start-index="129" stop-index="138">
478
                        <owner name="o" start-index="129" stop-index="129" />
479
                    </column-left-value>
L
Liang Zhang 已提交
480 481 482 483 484 485
                    <between-right-value>
                        <between-parameter-marker-expression value="2" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="3" />
                        <and-literal-expression value="10" />
                    </between-right-value>
486 487 488
                </predicate>
            </and-predicate>
        </where>
489 490 491 492 493
        <order-by>
            <column-item name="item_id">
                <owner name="i" start-index="165" stop-index="165" literal-start-index="166" literal-stop-index="166" />
            </column-item>
        </order-by>
494
    </select>
495
    
496
    <select sql-case-id="select_full_route_with_binding_tables">
497 498
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="31" stop-index="42" />
499 500 501 502 503
        <projections start-index="7" stop-index="9">
            <shorthand-projection start-index="7" stop-index="9">
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
        </projections>
504 505 506 507 508
        <order-by>
            <column-item name="item_id">
                <owner name="i" start-index="108" stop-index="108" />
            </column-item>
        </order-by>
509
    </select>
T
terrymanu 已提交
510
    
511
    <select sql-case-id="select_sharding_route_with_broadcast_table" parameters="1, 2, 9, 10, 'init'">
512 513 514
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="31" stop-index="42" />
        <table name="t_broadcast_table" alias="c" start-index="104" stop-index="120" />
515 516 517 518 519
        <projections start-index="7" stop-index="9">
            <shorthand-projection start-index="7" stop-index="9">
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
        </projections>
520
        <where start-index="147" stop-index="219" literal-stop-index="225">
521 522
            <and-predicate>
                <predicate start-index="153" stop-index="171">
523
                    <column-left-value name="user_id" start-index="153" stop-index="161">
524
                        <owner name="o" start-index="153" stop-index="153" />
525
                    </column-left-value>
526 527 528 529 530 531
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
532 533
                </predicate>
                <predicate start-index="177" stop-index="202" literal-stop-index="203">
534
                    <column-left-value name="order_id" start-index="177" stop-index="186">
535
                        <owner name="o" start-index="177" stop-index="177" />
536
                    </column-left-value>
L
Liang Zhang 已提交
537 538 539 540 541 542
                    <between-right-value>
                        <between-parameter-marker-expression value="2" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="3" />
                        <and-literal-expression value="10" />
                    </between-right-value>
543 544
                </predicate>
                <predicate start-index="208" stop-index="219" literal-start-index="209" literal-stop-index="225">
545
                    <column-left-value name="status" start-index="208" stop-index="215" literal-start-index="209" literal-stop-index="216">
546
                        <owner name="o" start-index="208" stop-index="208" literal-start-index="209" literal-stop-index="209" />
547
                    </column-left-value>
548 549 550 551 552
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="init" />
                    </compare-right-value>
553 554 555
                </predicate>
            </and-predicate>
        </where>
556 557 558 559 560
        <order-by>
            <column-item name="item_id">
                <owner name="i" start-index="230" stop-index="230" literal-start-index="236" literal-stop-index="236" />
            </column-item>
        </order-by>
561
    </select>
T
tuohai666 已提交
562
    
563
    <select sql-case-id="select_keyword_table_name_with_back_quotes" parameters="1, 2, 9, 10, 'init'">
564 565 566
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="31" stop-index="42" />
        <table name="select" alias="c" start-delimiter="`" end-delimiter="`" start-index="104" stop-index="111" />
567 568 569 570 571
        <projections start-index="7" stop-index="9">
            <shorthand-projection start-index="7" stop-index="9">
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
        </projections>
572
        <where start-index="138" stop-index="210" literal-stop-index="216">
573 574
            <and-predicate>
                <predicate start-index="144" stop-index="162">
575
                    <column-left-value name="user_id" start-index="144" stop-index="152">
576
                        <owner name="o" start-index="144" stop-index="144" />
577
                    </column-left-value>
578 579 580 581 582 583
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
584 585
                </predicate>
                <predicate start-index="168" stop-index="193" literal-stop-index="194">
586
                    <column-left-value name="order_id" start-index="168" stop-index="177">
587
                        <owner name="o" start-index="168" stop-index="168" />
588
                    </column-left-value>
L
Liang Zhang 已提交
589 590 591 592 593 594
                    <between-right-value>
                        <between-parameter-marker-expression value="2" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="3" />
                        <and-literal-expression value="10" />
                    </between-right-value>
595 596
                </predicate>
                <predicate start-index="199" stop-index="210" literal-start-index="200" literal-stop-index="216">
597
                    <column-left-value name="status" start-index="199" stop-index="206" literal-start-index="200" literal-stop-index="207">
598
                        <owner name="o" start-index="199" stop-index="199" literal-start-index="200" literal-stop-index="200" />
599
                    </column-left-value>
600 601 602 603 604
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="init" />
                    </compare-right-value>
605 606 607
                </predicate>
            </and-predicate>
        </where>
608 609 610 611 612
        <order-by>
            <column-item name="item_id">
                <owner name="i" start-index="221" stop-index="221" literal-start-index="227" literal-stop-index="227" />
            </column-item>
        </order-by>
613
    </select>
T
tuohai666 已提交
614
    
615
    <select sql-case-id="select_keyword_table_name_with_double_quotes" parameters="1, 2, 9, 10, 'init'">
616 617 618
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="31" stop-index="42" />
        <table name="select" alias="c" start-delimiter="&quot;" end-delimiter="&quot;" start-index="104" stop-index="111" />
619 620 621 622 623
        <projections start-index="7" stop-index="9">
            <shorthand-projection start-index="7" stop-index="9" >
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
        </projections>
624
        <where start-index="138" stop-index="210" literal-stop-index="216">
625 626
            <and-predicate>
                <predicate start-index="144" stop-index="162">
627
                    <column-left-value name="user_id" start-index="144" stop-index="152">
628
                        <owner name="o" start-index="144" stop-index="144" />
629
                    </column-left-value>
630 631 632 633 634 635
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
636 637
                </predicate>
                <predicate start-index="168" stop-index="193" literal-stop-index="194">
638
                    <column-left-value name="order_id" start-index="168" stop-index="177">
639
                        <owner name="o" start-index="168" stop-index="168" />
640
                    </column-left-value>
L
Liang Zhang 已提交
641 642 643 644 645 646
                    <between-right-value>
                        <between-parameter-marker-expression value="2" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="3" />
                        <and-literal-expression value="10" />
                    </between-right-value>
647 648
                </predicate>
                <predicate start-index="199" stop-index="210" literal-start-index="200" literal-stop-index="216">
649
                    <column-left-value name="status" start-index="199" stop-index="206" literal-start-index="200" literal-stop-index="207">
650
                        <owner name="c" start-index="199" stop-index="199" literal-start-index="200" literal-stop-index="200" />
651
                    </column-left-value>
652 653 654 655 656
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="init" />
                    </compare-right-value>
657 658 659
                </predicate>
            </and-predicate>
        </where>
660 661 662 663 664
        <order-by>
            <column-item name="item_id">
                <owner name="i" start-index="221" stop-index="221" literal-start-index="227" literal-stop-index="227" />
            </column-item>
        </order-by>
665
    </select>
T
tuohai666 已提交
666
    
667
    <select sql-case-id="select_keyword_table_name_with_square_brackets" parameters="1, 2, 9, 10, 'init'">
668 669 670
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="31" stop-index="42" />
        <table name="select" alias="c" start-delimiter="[" end-delimiter="]" start-index="104" stop-index="111" />
671 672 673 674 675
        <projections start-index="7" stop-index="9">
            <shorthand-projection start-index="7" stop-index="9">
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
        </projections>
676
        <where start-index="138" stop-index="210" literal-stop-index="216">
677 678
            <and-predicate>
                <predicate start-index="144" stop-index="162">
679
                    <column-left-value name="user_id" start-index="144" stop-index="152">
680
                        <owner name="o" start-index="144" stop-index="144" />
681
                    </column-left-value>
682 683 684 685 686 687
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1" />
                        <literal-expression value="2" />
                    </in-right-value>
688 689
                </predicate>
                <predicate start-index="168" stop-index="193" literal-stop-index="194">
690
                    <column-left-value name="order_id" start-index="168" stop-index="177">
691
                        <owner name="o" start-index="168" stop-index="168" />
692
                    </column-left-value>
L
Liang Zhang 已提交
693 694 695 696 697 698
                    <between-right-value>
                        <between-parameter-marker-expression value="2" />
                        <between-literal-expression value="9" />
                        <and-parameter-marker-expression value="3" />
                        <and-literal-expression value="10" />
                    </between-right-value>
699 700
                </predicate>
                <predicate start-index="199" stop-index="210" literal-start-index="200" literal-stop-index="216">
701
                    <column-left-value name="status" start-index="199" stop-index="206" literal-start-index="200" literal-stop-index="207">
702
                        <owner name="c" start-index="199" stop-index="199" literal-start-index="200" literal-stop-index="200" />
703
                    </column-left-value>
704 705 706 707 708
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="init" />
                    </compare-right-value>
709 710 711
                </predicate>
            </and-predicate>
        </where>
712 713 714 715 716
        <order-by>
            <column-item name="item_id">
                <owner name="i" start-index="221" stop-index="221" literal-start-index="227" literal-stop-index="227" />
            </column-item>
        </order-by>
717
    </select>
718
    
719
    <select sql-case-id="select_alias_as_keyword" parameters="1">
720
        <table name="t_order_item" alias="length" start-index="36" stop-index="47" />
721 722 723 724 725
        <projections start-index="7" stop-index="29">
            <column-projection name="item_id" alias="password" start-index="7" stop-index="20">
                <owner name="length" start-index="7" stop-index="12" />
            </column-projection>>
        </projections>
726
        <where start-index="56" stop-index="79">
727 728
            <and-predicate>
                <predicate start-index="62" stop-index="79">
729
                    <column-left-value name="item_id" start-index="62" stop-index="75">
730
                        <owner name="length" start-index="62" stop-index="67" />
731
                    </column-left-value>
732 733 734 735 736
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
737 738 739
                </predicate>
            </and-predicate>
        </where>
740
    </select>
741
    
742
    <select sql-case-id="select_with_force_index_join" parameters="1000">
743 744
        <table name="t_order" alias="o" start-index="16" stop-index="22" />
        <table name="t_order_item" alias="i" start-index="56" stop-index="67" />
745 746 747 748 749
        <projections start-index="7" stop-index="9">
            <shorthand-projection start-index="7" stop-index="9">
                <owner name="i" start-index="7" stop-index="7" />
            </shorthand-projection>
        </projections>
750
        <where start-index="96" stop-index="115" literal-stop-index="118">
751 752
            <and-predicate>
                <predicate start-index="102" stop-index="115" literal-stop-index="118">
753
                    <column-left-value name="order_id" start-index="102" stop-index="111">
754
                        <owner name="o" start-index="102" stop-index="102" />
755
                    </column-left-value>
756 757 758 759 760
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1000" />
                    </compare-right-value>
761 762 763
                </predicate>
            </and-predicate>
        </where>
764
    </select>
765

766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804
    <select sql-case-id="select_equal_with_geography" parameters="'{&quot;rule2&quot;:&quot;null2&quot;}', 100, 200, 1, 2">
        <table name="t_order" start-index="14" stop-index="20" />
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
        <where start-index="22" stop-index="148" literal-stop-index="170">
            <and-predicate>
                <predicate start-index="28" stop-index="42" literal-stop-index="60">
                    <column-left-value name="rule" start-index="28" stop-index="31" />
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="{&quot;rule2&quot;:&quot;null2&quot;}'::json" />
                    </compare-right-value>
                </predicate>
                <predicate start-index="48" stop-index="115" literal-start-index="66" literal-stop-index="137">
                    <column-left-value name="start_point" start-index="48" stop-index="58" literal-start-index="66" literal-stop-index="76" />
                    <operator type="=" />
                    <!-- TODO assert expression -->
                </predicate>
                <predicate start-index="121" stop-index="131" literal-start-index="143" literal-stop-index="153">
                    <column-left-value name="user_id" start-index="121" stop-index="127" literal-start-index="143" literal-stop-index="149" />
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="3" />
                        <literal-expression value="1" />
                    </compare-right-value>
                </predicate>
                <predicate start-index="137" stop-index="148" literal-start-index="159" literal-stop-index="170">
                    <column-left-value name="order_id" start-index="137" stop-index="144" literal-start-index="159" literal-stop-index="166" />
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="2" />
                    </compare-right-value>
                </predicate>
            </and-predicate>
        </where>
    </select>
805

806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845
    <select sql-case-id="select_in_with_geography" parameters="'{&quot;rule2&quot;:&quot;null2&quot;}', '{&quot;rule3&quot;:&quot;null3&quot;}', 100, 200, 1, 2">
        <table name="t_order" start-index="14" stop-index="20" />
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
        <where start-index="22" stop-index="161" literal-stop-index="201">
            <and-predicate>
                <predicate start-index="28" stop-index="55" literal-stop-index="91">
                    <column-left-value name="rule" start-index="28" stop-index="31" />
                    <in-right-value>
                        <parameter-marker-expression value="0" />
                        <parameter-marker-expression value="1" />
                        <literal-expression value="{&quot;rule2&quot;:&quot;null2&quot;}'::json" />
                        <literal-expression value="{&quot;rule3&quot;:&quot;null3&quot;}'::json" />
                    </in-right-value>
                </predicate>
                <predicate start-index="61" stop-index="128" literal-start-index="97" literal-stop-index="168">
                    <column-left-value name="start_point" start-index="61" stop-index="71" literal-start-index="97" literal-stop-index="107" />
                    <operator type="=" />
                    <!-- TODO assert expr -->
                </predicate>
                <predicate start-index="134" stop-index="144" literal-start-index="174" literal-stop-index="184">
                    <column-left-value name="user_id" start-index="134" stop-index="140" literal-start-index="174" literal-stop-index="180" />
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="1" />
                    </compare-right-value>
                </predicate>
                <predicate start-index="150" stop-index="161" literal-start-index="190" literal-stop-index="201">
                    <column-left-value name="order_id" start-index="150" stop-index="157" literal-start-index="190" literal-stop-index="197" />
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="5" />
                        <literal-expression value="2" />
                    </compare-right-value>
                </predicate>
            </and-predicate>
        </where>
    </select>
T
tuohai666 已提交
846
    
847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878
    <select sql-case-id="select_between_with_geography" parameters="'{&quot;rule2&quot;:&quot;null2&quot;}', '{&quot;rule3&quot;:&quot;null3&quot;}', 100, 200, 1">
        <table name="t_order" start-index="14" stop-index="20" />
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
        <where start-index="22" stop-index="151" literal-stop-index="191">
            <and-predicate>
                <predicate start-index="28" stop-index="61" literal-stop-index="97">
                    <column-left-value name="rule" start-index="28" stop-index="31" />
                    <between-right-value>
                        <between-parameter-marker-expression value="0" />
                        <between-literal-expression value="{&quot;rule2&quot;:&quot;null2&quot;}'::json" />
                        <and-parameter-marker-expression value="1" />
                        <and-literal-expression value="{&quot;rule3&quot;:&quot;null3&quot;}'::json" />
                    </between-right-value>
                </predicate>
                <predicate start-index="67" stop-index="134" literal-start-index="103" literal-stop-index="174">
                    <column-left-value name="start_point" start-index="67" stop-index="77" literal-start-index="103" literal-stop-index="113" />
                    <operator type="=" />
                    <!-- TODO assert right value -->
                </predicate>
                <predicate start-index="140" stop-index="151" literal-start-index="180" literal-stop-index="191">
                    <column-left-value name="order_id" start-index="140" stop-index="147" literal-start-index="180" literal-stop-index="187" />
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="4" />
                        <literal-expression value="1" />
                    </compare-right-value>
                </predicate>
            </and-predicate>
        </where>
    </select>
T
tuohai666 已提交
879
    
880
    <select sql-case-id="select_with_double_quotes" parameters="1">
881
        <table name="t_order_item" start-delimiter="&quot;" end-delimiter="&quot;" start-index="14" stop-index="27" />
882 883 884
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
885
        <where start-index="29" stop-index="48">
886 887
            <and-predicate>
                <predicate start-index="35" stop-index="48">
888
                    <column-left-value name="item_id" start-delimiter="&quot;" end-delimiter="&quot;" start-index="35" stop-index="43" />
889 890 891 892 893
                    <operator type="!=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="1" />
                    </compare-right-value>
894 895 896
                </predicate>
            </and-predicate>
        </where>
897 898 899
        <order-by>
            <column-item name="item_id" />
        </order-by>
900
    </select>
kimmking's avatar
kimmking 已提交
901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916

    <select sql-case-id="select_distinct_with_single_column_without_order_by" >
        <table name="t_order_item" start-index="29" stop-index="40" />
        <projections start-index="16" stop-index="22" distinct-row="true">
            <column-projection name="item_id" start-index="16" stop-index="22" />
        </projections>
    </select>

    <select sql-case-id="select_distinct_with_multi_column_without_order_by" >
        <table name="t_order" start-index="47" stop-index="53" />
        <projections start-index="16" stop-index="40" distinct-row="true">
            <column-projection name="order_id" start-index="16" stop-index="23" />
            <column-projection name="user_id" start-index="26" stop-index="32" />
            <column-projection name="status" start-index="35" stop-index="40" />
        </projections>
    </select>
T
tristaZero 已提交
917
    
918
    <select sql-case-id="select_distinct_with_single_column" >
919
        <table name="t_order_item" start-index="29" stop-index="40" />
920 921 922
        <projections start-index="16" stop-index="22" distinct-row="true">
            <column-projection name="item_id" start-index="16" stop-index="22" />
        </projections>
923 924 925
        <order-by>
            <column-item name="item_id" />
        </order-by>
926
    </select>
T
terrymanu 已提交
927
    
928
    <select sql-case-id="select_distinct_with_owner_column" >
929
        <table name="t_order" start-index="38" stop-index="44" />
930 931 932 933 934
        <projections start-index="16" stop-index="31" distinct-row="true">
            <column-projection name="order_id" start-index="16" stop-index="31">
                <owner name="t_order" start-index="16" stop-index="22" />
            </column-projection>
        </projections>
935 936 937
        <order-by>
            <column-item name="order_id" />
        </order-by>
938
    </select>
T
terrymanu 已提交
939
    
940
    <select sql-case-id="select_distinct_with_multi_column" >
941
        <table name="t_order" start-index="47" stop-index="53" />
942 943 944 945 946
        <projections start-index="16" stop-index="40" distinct-row="true">
            <column-projection name="order_id" start-index="16" stop-index="23" />
            <column-projection name="user_id" start-index="26" stop-index="32" />
            <column-projection name="status" start-index="35" stop-index="40" />
        </projections>
947 948 949
        <order-by>
            <column-item name="order_id" />
        </order-by>
950
    </select>
T
tristaZero 已提交
951
    
952
    <select sql-case-id="select_distinct_with_star" >
953
        <table name="t_order" start-index="23" stop-index="29" />
954 955 956
        <projections distinct-row="true" start-index="16" stop-index="16">
            <shorthand-projection start-index="16" stop-index="16" />
        </projections>
957
        <where start-index="31" stop-index="51">
958 959
            <and-predicate>
                <predicate start-index="37" stop-index="51">
960
                    <column-left-value name="order_id" start-index="37" stop-index="44" />
961 962 963 964
                    <operator type="&gt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
965 966 967
                </predicate>
            </and-predicate>
        </where>
968 969 970
        <order-by>
            <column-item name="order_id" />
        </order-by>
971
    </select>
T
terrymanu 已提交
972
    
973
    <select sql-case-id="select_distinct_with_owner_star">
974 975
        <table name="t_order" start-index="54" stop-index="60" />
        <table name="t_order_item" start-index="63" stop-index="74" />
976 977 978 979 980 981 982 983
        <projections distinct-row="true" start-index="16" stop-index="47">
            <shorthand-projection start-index="16" stop-index="24">
                <owner name="t_order" start-index="16" stop-index="22" />
            </shorthand-projection>
            <column-projection name="order_id" start-index="27" stop-index="47">
                <owner name="t_order_item" start-index="27" stop-index="38" />
            </column-projection>
        </projections>
984
        <where start-index="76" stop-index="121">
985 986
            <and-predicate>
                <predicate start-index="82" stop-index="121">
987
                    <column-left-value name="order_id" start-index="82" stop-index="97">
988
                        <owner name="t_order" start-index="82" stop-index="88" />
989 990 991 992
                    </column-left-value>
                    <column-right-value name="order_id" start-index="101" stop-index="121">
                        <owner name="t_order_item" start-index="101" stop-index="112" />
                    </column-right-value>
993 994 995
                </predicate>
            </and-predicate>
        </where>
996 997 998 999 1000
        <order-by>
            <column-item name="order_id">
                <owner name="t_order" start-index="132" stop-index="138" />
            </column-item>
        </order-by>
1001
    </select>
T
tristaZero 已提交
1002
    
1003
    <select sql-case-id="select_distinct_with_sum" >
1004
        <table name="t_order" start-index="37" stop-index="43" />
1005
        <projections start-index="7" stop-index="30">
1006
            <aggregation-distinct-projection type="SUM" inner-expression-start-index="10" distinct-expression="order_id" alias="s" start-index="7" stop-index="28" />
1007
        </projections>
1008
        <where start-index="45" stop-index="65">
1009 1010
            <and-predicate>
                <predicate start-index="51" stop-index="65">
1011
                    <column-left-value name="order_id" start-index="51" stop-index="58" />
1012 1013 1014 1015
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1016 1017 1018
                </predicate>
            </and-predicate>
        </where>
1019
    </select>
1020
    
1021
    <select sql-case-id="select_distinct_with_count">
1022
        <table name="t_order" start-index="39" stop-index="45" />
1023 1024
        <projections start-index="7" stop-index="32">
            <aggregation-distinct-projection type="COUNT" inner-expression-start-index="12" distinct-expression="order_id" alias="c" start-index="7" stop-index="30" />
1025
        </projections>
1026
        <where start-index="47" stop-index="67">
1027 1028
            <and-predicate>
                <predicate start-index="53" stop-index="67">
1029
                    <column-left-value name="order_id" start-index="53" stop-index="60" />
1030 1031 1032 1033
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1034 1035 1036
                </predicate>
            </and-predicate>
        </where>
1037
    </select>
T
terrymanu 已提交
1038
    
1039
    <select sql-case-id="select_distinct_with_avg">
1040
        <table name="t_order" start-index="35" stop-index="41" />
1041
        <projections start-index="7" stop-index="28">
1042
            <aggregation-distinct-projection type="AVG" inner-expression-start-index="10" distinct-expression="order_id" start-index="7" stop-index="28" />
1043
        </projections>
1044
        <where start-index="43" stop-index="63">
1045 1046
            <and-predicate>
                <predicate start-index="49" stop-index="63">
1047
                    <column-left-value name="order_id" start-index="49" stop-index="56" />
1048 1049 1050 1051
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1052 1053 1054
                </predicate>
            </and-predicate>
        </where>
1055
    </select>
T
tristaZero 已提交
1056
    
1057
    <select sql-case-id="select_distinct_with_count_sum" >
1058
        <table name="t_order" start-index="61" stop-index="67" />
1059
        <projections start-index="7" stop-index="54">
1060 1061
            <aggregation-distinct-projection type="COUNT" inner-expression-start-index="12" distinct-expression="order_id" start-index="7" stop-index="30" />
            <aggregation-distinct-projection type="SUM" inner-expression-start-index="36" distinct-expression="order_id" start-index="33" stop-index="54" />
1062
        </projections>
1063
        <where start-index="75" stop-index="89">
1064 1065
            <and-predicate>
                <predicate start-index="75" stop-index="89">
1066
                    <column-left-value name="order_id" start-index="75" stop-index="82" />
1067 1068 1069 1070
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1071 1072 1073
                </predicate>
            </and-predicate>
        </where>
1074
    </select>
T
terrymanu 已提交
1075
    
1076
    <select sql-case-id="select_distinct_with_single_count_group_by" >
1077
        <table name="t_order" start-index="49" stop-index="55" />
1078
        <projections start-index="7" stop-index="42">
1079 1080
            <column-projection name="order_id" start-index="7" stop-index="14" />
            <aggregation-distinct-projection type="COUNT" inner-expression-start-index="22" distinct-expression="order_id" alias="c" start-index="17" stop-index="40" />
1081
        </projections>
1082
        <where start-index="57" stop-index="77">
1083 1084
            <and-predicate>
                <predicate start-index="63" stop-index="77">
1085
                    <column-left-value name="order_id" start-index="63" stop-index="70" />
1086 1087 1088 1089
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1090 1091 1092
                </predicate>
            </and-predicate>
        </where>
1093 1094 1095
        <group-by>
            <column-item name="order_id" />
        </group-by>
1096 1097 1098
        <order-by>
            <column-item name="order_id" />
        </order-by>
1099
    </select>
1100
    
1101
    <select sql-case-id="select_distinct_with_count_group_by" >
1102
        <table name="t_order" start-index="49" stop-index="55" />
1103
        <projections start-index="7" stop-index="42">
1104 1105
            <aggregation-distinct-projection type="COUNT" inner-expression-start-index="12" distinct-expression="order_id" alias="c" start-index="7" stop-index="30" />
            <column-projection name="order_id" start-index="35" stop-index="42" />
1106
        </projections>
1107 1108 1109
        <group-by>
            <column-item name="order_id" />
        </group-by>
1110 1111 1112
        <order-by>
            <column-item name="order_id" />
        </order-by>
1113
    </select>
1114
    
1115
    <select sql-case-id="select_distinct_function">
1116
        <table name="t_order_item" start-index="30" stop-index="41" />
1117 1118 1119
        <projections distinct-row="true" start-index="15" stop-index="23">
            <expression-projection start-index="15" stop-index="23" />
        </projections>
1120 1121 1122
        <order-by>
            <column-item name="item_id" />
        </order-by>
1123
    </select>
T
tristaZero 已提交
1124
    
1125
    <select sql-case-id="select_distinct_with_count_calculation" >
1126
        <table name="t_order" start-index="49" stop-index="55" />
1127
        <projections start-index="7" stop-index="42">
1128
            <aggregation-distinct-projection type="COUNT" inner-expression-start-index="12" distinct-expression="user_id+order_id" alias="c" start-index="7" stop-index="40" />
1129
        </projections>
1130
        <where start-index="57" stop-index="77">
1131 1132
            <and-predicate>
                <predicate start-index="63" stop-index="77">
1133
                    <column-left-value name="order_id" start-index="63" stop-index="70" />
1134 1135 1136 1137
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1138 1139 1140
                </predicate>
            </and-predicate>
        </where>
1141
    </select>
1142
    
1143
    <select sql-case-id="select_distinct_with_aggregation_functions" >
1144
        <table name="t_order" start-index="77" stop-index="83" />
1145
        <projections start-index="7" stop-index="69">
1146 1147 1148
            <aggregation-distinct-projection type="SUM" inner-expression-start-index="10" distinct-expression="order_id" start-index="7" stop-index="28" />
            <aggregation-distinct-projection type="COUNT" inner-expression-start-index="35" distinct-expression="order_id" start-index="30" stop-index="53" />
            <aggregation-projection type="COUNT" inner-expression-start-index="60" start-index="55" stop-index="69" />
1149
        </projections>
1150
        <where start-index="85" stop-index="105">
1151 1152
            <and-predicate>
                <predicate start-index="91" stop-index="105">
1153
                    <column-left-value name="order_id" start-index="91" stop-index="98" />
1154 1155 1156 1157
                    <operator type="&lt;" />
                    <compare-right-value>
                        <literal-expression value="1100" />
                    </compare-right-value>
1158 1159 1160
                </predicate>
            </and-predicate>
        </where>
1161
    </select>
C
codefairy08 已提交
1162
    
1163
    <select sql-case-id="select_with_schema" >
1164
        <table name="t_order" start-index="14" stop-index="24">
1165 1166
                <owner name="db1" start-index="14" stop-index="16" />
            </table>
1167
        <projections start-index="7" stop-index="7">
1168
            <shorthand-projection start-index="7" stop-index="7" />
1169
        </projections>
1170
    </select>
C
codefairy08 已提交
1171
    
1172
    <select sql-case-id="select_escape_with_single_quota" >
1173
        <table name="t_order" start-index="14" stop-index="20" />
1174 1175 1176
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
1177
        <where start-index="22" stop-index="38">
1178 1179
            <and-predicate>
                <predicate start-index="28" stop-index="38">
1180
                    <column-left-value name="status" start-index="28" stop-index="33" />
1181 1182 1183 1184
                    <operator type="=" />
                    <compare-right-value>
                        <literal-expression value="\'" />
                    </compare-right-value>
1185 1186 1187
                </predicate>
            </and-predicate>
        </where>
1188
    </select>
C
codefairy08 已提交
1189
    
1190
    <select sql-case-id="select_escape_with_double_quota" >
1191
        <table name="t_order" start-index="14" stop-index="20" />
1192 1193 1194
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
1195
        <where start-index="22" stop-index="38">
1196 1197
            <and-predicate>
                <predicate start-index="28" stop-index="38">
1198 1199 1200
                    <column-left-value name="status" start-index="28" stop-index="33" />
                    <!-- FIXME incorrect parse result as column type: "\"" -->
                    <column-right-value name="\" start-delimiter="&quot;" end-delimiter="&quot;" start-index="35" stop-index="38" />
1201 1202 1203
                </predicate>
            </and-predicate>
        </where>
1204
    </select>
C
codefairy08 已提交
1205
    
1206
    <select sql-case-id="select_with_block_comment" >
1207
        <table name="t_order" start-index="83" stop-index="89" />
1208 1209 1210
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
1211
        <where start-index="90" stop-index="104">
1212 1213 1214
            <and-predicate>
                <!-- FIXME \n's index is incorrect --> 
                <predicate start-index="97" stop-index="106">
1215
                    <column-left-value name="status" start-index="97" stop-index="102" />
1216 1217 1218 1219
                    <operator type="=" />
                    <compare-right-value>
                        <literal-expression value="1" />
                    </compare-right-value>
1220 1221 1222
                </predicate>
            </and-predicate>
        </where>
1223
    </select>
C
codefairy08 已提交
1224
    
1225
    <select sql-case-id="select_with_single_comment" >
1226
        <table name="t_order" start-index="78" stop-index="84" />
1227 1228 1229
        <projections start-index="7" stop-index="7">
            <shorthand-projection start-index="7" stop-index="7" />
        </projections>
1230
        <!-- FIXME incorrect for start index and stop index with \n -->
1231
        <where start-index="85" stop-index="101">
1232 1233
            <and-predicate>
                <predicate start-index="92" stop-index="101">
1234
                    <column-left-value name="status" start-index="92" stop-index="97" />
1235 1236 1237 1238
                    <operator type="=" />
                    <compare-right-value>
                        <literal-expression value="1" />
                    </compare-right-value>
1239 1240 1241
                </predicate>
            </and-predicate>
        </where>
1242
    </select>
C
codefairy08 已提交
1243
    
1244
    <select sql-case-id="select_alias_as_single_quote_string">
1245
        <table name="t_order" start-index="31" stop-index="37" />
1246
        <projections start-index="7" stop-index="24">
1247
            <column-projection alias="status" name="status" start-index="7" stop-index="12" />
1248
        </projections>
1249
    </select>
C
codefairy08 已提交
1250
    
1251
    <select sql-case-id="select_alias_as_string_double_quote">
1252
        <table name="t_order" start-index="31" stop-index="37" />
1253
        <projections start-index="7" stop-index="24">
1254
            <column-projection name="status" alias="status" start-index="7" stop-index="12" />
1255
        </projections>
1256
    </select>
T
terrymanu 已提交
1257
    
1258
    <select sql-case-id="select_special_function_nested" parameters="12, 1000">
1259
        <table name="t_order" start-index="48" stop-index="54" />
1260 1261
        <projections start-index="7" stop-index="41">
            <aggregation-projection type="SUM" inner-expression-start-index="10" alias="func_status" start-index="7" stop-index="29" />
1262
        </projections>
1263
        <where start-index="56" stop-index="89" literal-stop-index="93">
1264 1265
            <and-predicate>
                <predicate start-index="62" stop-index="72" literal-stop-index="73">
1266
                    <column-left-value name="user_id" start-index="62" stop-index="68" />
1267 1268 1269 1270 1271
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="12" />
                    </compare-right-value>
1272 1273
                </predicate>
                <predicate start-index="78" stop-index="89" literal-start-index="79" literal-stop-index="93">
1274
                    <column-left-value name="order_id" start-index="78" stop-index="85" literal-start-index="79" literal-stop-index="86" />
1275 1276 1277 1278 1279
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1000" />
                    </compare-right-value>
1280 1281 1282
                </predicate>
            </and-predicate>
        </where>
1283
    </select>
T
terrymanu 已提交
1284
    
1285
    <select sql-case-id="select_with_interval_function" parameters="12, 1000">
1286
        <table name="t_order" start-index="45" stop-index="51" />
1287 1288
        <projections start-index="7" stop-index="38">
            <expression-projection alias="func_status" start-index="7" stop-index="26" />
1289
        </projections>
1290
        <where start-index="53" stop-index="86" literal-stop-index="90">
1291 1292
            <and-predicate>
                <predicate start-index="59" stop-index="69" literal-stop-index="70">
1293
                    <column-left-value name="user_id" start-index="59" stop-index="65" />
1294 1295 1296 1297 1298
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="12" />
                    </compare-right-value>
1299 1300
                </predicate>
                <predicate start-index="75" stop-index="86" literal-start-index="76" literal-stop-index="90">
1301
                    <column-left-value name="order_id" start-index="75" stop-index="82" literal-start-index="76" literal-stop-index="83" />
1302 1303 1304 1305 1306
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="1" />
                        <literal-expression value="1000" />
                    </compare-right-value>
1307 1308 1309
                </predicate>
            </and-predicate>
        </where>
1310
    </select>
T
terrymanu 已提交
1311
    
1312
    <select sql-case-id="select_with_left_function">
1313
        <table name="t_order_item" start-index="44" stop-index="55" />
1314 1315
        <projections start-index="7" stop-index="37">
            <expression-projection start-index="7" stop-index="37" />
1316
        </projections>
1317
        <where start-index="57" stop-index="74">
1318 1319
            <and-predicate>
                <predicate start-index="63" stop-index="74">
1320
                    <column-left-value name="user_id" start-index="63" stop-index="69" />
1321 1322 1323 1324
                    <operator type="=" />
                    <compare-right-value>
                        <literal-expression value="10" />
                    </compare-right-value>
1325 1326 1327
                </predicate>
            </and-predicate>
        </where>
1328
    </select>
T
terrymanu 已提交
1329
    
1330
    <select sql-case-id="select_for_update" parameters="10">
1331
        <table name="t_order" start-index="14" stop-index="20" />
1332
        <projections start-index="7" stop-index="7">
1333
            <shorthand-projection start-index="7" stop-index="7" />
1334
        </projections>
1335
        <where start-index="22" stop-index="38" literal-stop-index="39">
1336 1337
            <and-predicate>
                <predicate start-index="28" stop-index="38" literal-stop-index="39">
1338
                    <column-left-value name="user_id" start-index="28" stop-index="34"  literal-stop-index="34" />
1339 1340 1341 1342 1343
                    <operator type="=" />
                    <compare-right-value>
                        <parameter-marker-expression value="0" />
                        <literal-expression value="10" />
                    </compare-right-value>
1344 1345 1346
                </predicate>
            </and-predicate>
        </where>
1347
    </select>
T
terrymanu 已提交
1348
    
1349
    <select sql-case-id="select_database">
1350
        <projections start-index="7" stop-index="16">
1351
            <expression-projection start-index="7" stop-index="16" />
1352
        </projections>
1353
    </select>
T
terrymanu 已提交
1354
    
1355
    <select sql-case-id="select_with_mod_function">
1356
        <table name="t_order" start-index="14" stop-index="20" />
1357
        <projections start-index="7" stop-index="7">
1358
            <shorthand-projection start-index="7" stop-index="7" />
1359
        </projections>
1360
        <where start-index="22" stop-index="47">
1361 1362
            <!-- FIXME cannot parse expr in left value -->
        </where>
1363
    </select>
T
terrymanu 已提交
1364
    
1365
    <select sql-case-id="select_with_date_format_function">
1366
        <table name="t_order" start-index="14" stop-index="20" />
1367
        <projections start-index="7" stop-index="7">
1368
            <shorthand-projection start-index="7" stop-index="7" />
1369
        </projections>
1370
        <where start-index="22" stop-index="79">
1371 1372 1373 1374 1375
            <!-- FIXME cannot parse expr in left value for predicate -->
            <!--<and-predicate>-->
                <!--<predicate start-index="28" stop-index="79" />-->
            <!--</and-predicate>-->
        </where>
1376
    </select>
T
terrymanu 已提交
1377
    
1378
    <select sql-case-id="select_with_spatial_function">
1379
        <table name="t_order" start-index="14" stop-index="20" />
1380
        <projections start-index="7" stop-index="7">
1381
            <shorthand-projection start-index="7" stop-index="7" />
1382
        </projections>
1383
        <where start-index="22" stop-index="106">
1384 1385 1386 1387 1388
            <!-- FIXME cannot parse expr in left value -->
            <!--<and-predicate>-->
                <!--<predicate start-index="28" stop-index="106" />-->
            <!--</and-predicate>-->
        </where>
1389
    </select>
N
Nicholas Jiang 已提交
1390

1391
    <select sql-case-id="select_current_user">
1392 1393
        <projections start-index="7" stop-index="18">
            <expression-projection start-index="7" stop-index="18" />
1394
        </projections>
1395 1396
    </select>
</sql-parser-test-cases>