alasql 0.3.9 → 0.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/bin/alasql-cli.js +1 -1
  2. package/dist/alasql-worker.js +2 -2
  3. package/dist/alasql-worker.min.js +1 -1
  4. package/dist/alasql.fs.js +11231 -11231
  5. package/dist/alasql.js +17 -17
  6. package/dist/alasql.min.js +2 -16
  7. package/package.json +1 -1
  8. package/.npmignore +0 -15
  9. package/utils/2ch/2ch.js +0 -69
  10. package/utils/2ch/README.md +0 -3
  11. package/utils/2repl.js +0 -21
  12. package/utils/README.md +0 -16
  13. package/utils/a.a +0 -0
  14. package/utils/a.jison +0 -2455
  15. package/utils/a.js +0 -2546
  16. package/utils/a1.html +0 -120
  17. package/utils/abc.tsv +0 -4
  18. package/utils/callback/cb1.js +0 -59
  19. package/utils/callback/cb2.js +0 -45
  20. package/utils/closure/README.md +0 -1
  21. package/utils/closure/compiler.jar +0 -0
  22. package/utils/cordova/alasql-cordova.js +0 -134
  23. package/utils/cordova/filestorage.js +0 -138
  24. package/utils/cordova/test.js +0 -5
  25. package/utils/cordova/test1.js +0 -27
  26. package/utils/cordova/test1.json +0 -1
  27. package/utils/d31/1.html +0 -133
  28. package/utils/d31/2.html +0 -130
  29. package/utils/d31/3.html +0 -131
  30. package/utils/d31/5.html +0 -133
  31. package/utils/d31/d3.v3.min.js +0 -5
  32. package/utils/d31/force.csv +0 -29
  33. package/utils/d31/forcerus.csv +0 -29
  34. package/utils/d31/index.html +0 -120
  35. package/utils/d3graph/index.html +0 -98
  36. package/utils/d3graph/links.json +0 -58
  37. package/utils/d3graph/nodes.json +0 -38
  38. package/utils/graph/CREATE CLASS G1 +0 -39
  39. package/utils/graph/README.md +0 -3
  40. package/utils/graph/idea.txt +0 -22
  41. package/utils/graph/ides 150428.txt +0 -24
  42. package/utils/graph/index.html +0 -68
  43. package/utils/graph/miserables.json +0 -337
  44. package/utils/indexeddb/index.html +0 -24
  45. package/utils/main.html +0 -207
  46. package/utils/mainww.html +0 -9
  47. package/utils/mainww1.html +0 -15
  48. package/utils/minisql/minisql.js +0 -377
  49. package/utils/redj/README.md +0 -10
  50. package/utils/redj/redj.js +0 -44
  51. package/utils/test.js +0 -6
  52. package/utils/testbench.html +0 -15
  53. package/utils/testbench.worker.html +0 -15
package/utils/a.jison DELETED
@@ -1,2455 +0,0 @@
1
- /*
2
- //
3
- // alasqlparser.jison
4
- // SQL Parser for AlaSQL
5
- // (c) 2014-2015, Andrey Gershun
6
- //
7
- //
8
- */
9
-
10
- %lex
11
- %options case-insensitive
12
- %%
13
-
14
- \`\`([^\`])+\`\` return 'AA'
15
- \[\?\] return 'AB'
16
- '@[' return 'AC'
17
- \[([^\]])*?\] return 'AD'
18
- \`([^\`])*?\` return 'AD'
19
-
20
- N(['](\\.|[^']|\\\')*?['])+ return 'AF'
21
- X(['](\\.|[^']|\\\')*?['])+ return 'AF'
22
- (['](\\.|[^']|\\\')*?['])+ return 'AH'
23
- (["](\\.|[^"]|\\\")*?["])+ return 'AH'
24
-
25
- "--"(.*?)($|\r\n|\r|\n) return /* return COMMENT */
26
-
27
- \s+ /* skip whitespace */
28
- '||' return 'AJ'
29
- '&&' return 'AK'
30
- 'ABSOLUTE' return 'AL'
31
- 'ACTION' return 'AM'
32
- 'ADD' return 'AN'
33
- 'AGGR' return 'AO'
34
- 'ALL' return 'AP'
35
- 'ALTER' return 'AQ'
36
- 'AND' return 'AK'
37
- 'ANTI' return 'AW'
38
- 'ANY' return 'DT'
39
- 'APPLY' return 'AU'
40
- 'ARRAY' return 'AV'
41
- 'AS' return 'AW'
42
- 'ASSERT' return 'AX'
43
- 'ASC' return 'AY'
44
- 'ATTACH' return 'AZ'
45
- AUTO(_)?INCREMENT return 'Aa'
46
- 'AVG' return 'Ab'
47
-
48
- 'BEGIN' return 'Ac'
49
- 'BETWEEN' return 'Ad'
50
- 'BREAK' return 'Ae'
51
- NOT\s+BETWEEN return 'NOT_BETWEEN'
52
- NOT\s+LIKE return 'NOT_LIKE'
53
- 'BY' return 'Af'
54
-
55
- 'CASE' return 'Ag'
56
- 'CAST' return 'Ah'
57
- 'CHECK' return 'Ai'
58
- 'CLASS' return 'Ag'
59
- 'CLOSE' return 'Ak'
60
- 'COLLATE' return 'Al'
61
- COLUMN return 'Am'
62
- COLUMNS return 'Am'
63
- "COMMIT" return 'Ao'
64
- "CONSTRAINT" return 'Ap'
65
- "CONTENT" return 'Aq'
66
- "CONTINUE" return 'Ar'
67
- "CONVERT" return 'As'
68
- "CORRESPONDING" return 'At'
69
- "COUNT" return 'Au'
70
- 'CREATE' return 'Av'
71
- "CROSS" return 'Aw'
72
- 'CUBE' return 'Ax'
73
- "CURRENT_TIMESTAMP" return 'CURRENT_TIMESTAMP'
74
- "CURSOR" return 'Ay'
75
- DATABASE(S)? return 'Az'
76
- 'DECLARE' return 'A0'
77
- 'DEFAULT' return 'A1'
78
- 'DELETE' return 'A2'
79
- 'DELETED' return 'A3'
80
- 'DESC' return 'AY'
81
- 'DETACH' return 'A5'
82
- 'DISTINCT' return 'A6'
83
- DOUBLE\s+PRECISION return 'A7'
84
- 'DROP' return 'A8'
85
- 'ECHO' return 'A9'
86
- 'EDGE' return 'BA'
87
- 'END' return 'BB'
88
- 'ENUM' return 'BC'
89
- 'ELSE' return 'BD'
90
- 'EXCEPT' return 'BE'
91
- 'EXISTS' return 'BF'
92
- 'EXPLAIN' return 'BG'
93
- 'FALSE' return 'BH'
94
- 'FETCH' return 'BI'
95
- 'FIRST' return 'BJ'
96
- 'FOREIGN' return 'BK'
97
- 'FROM' return 'BL'
98
- 'GO' return 'BM'
99
- 'GRAPH' return 'BN'
100
- 'GROUP' return 'BO'
101
- 'GROUPING' return 'BP'
102
- 'HAVING' return 'BQ'
103
- 'HELP' return 'BR'
104
- 'IF' return 'BS'
105
- 'IDENTITY' return 'Aa'
106
- 'IS' return 'BU'
107
- 'IN' return 'BV'
108
- 'INDEX' return 'BW'
109
- 'INNER' return 'BX'
110
- 'INSERT' return 'BY'
111
- 'INSERTED' return 'BZ'
112
- 'INTERSECT' return 'Ba'
113
- 'INTO' return 'Bb'
114
- 'JOIN' return 'Bc'
115
- 'KEY' return 'Bd'
116
- 'LAST' return 'Be'
117
- 'LET' return 'Bf'
118
- 'LEFT' return 'Bg'
119
- 'LIKE' return 'Bh'
120
- 'LIMIT' return 'Bi'
121
- 'MATCHED' return 'Bg'
122
- 'MATRIX' return 'Bk'
123
- "MAX" return 'Bl'
124
- "MERGE" return 'Bm'
125
- "MIN" return 'Bn'
126
- "MINUS" return 'BE'
127
- "MODIFY" return 'Bp'
128
- 'NATURAL' return 'Bq'
129
- 'NEXT' return 'Br'
130
- 'NEW' return 'Bs'
131
- 'NOCASE' return 'Bt'
132
- 'NO' return 'Bu'
133
- 'NOT' return 'Bv'
134
- 'NULL' return 'Bw'
135
- 'OFF' return 'Bx'
136
- 'ON' return 'By'
137
- 'ONLY' return 'Bz'
138
- 'OFFSET' return 'B0'
139
- 'OPEN' return 'B1'
140
- 'OPTION' return 'B2'
141
- 'OR' return 'AJ'
142
- 'ORDER' return 'B4'
143
- 'OUTER' return 'B5'
144
- 'OVER' return 'B6'
145
- 'PATH' return 'B7'
146
- 'PARTITION' return 'B8'
147
- 'PERCENT' return 'B9'
148
- 'PLAN' return 'CA'
149
- 'PRIMARY' return 'CB'
150
- 'PRINT' return 'CC'
151
- 'PRIOR' return 'CD'
152
- 'QUERY' return 'CE'
153
- 'READ' return 'CF'
154
- 'RECORDSET' return 'CG'
155
- 'REDUCE' return 'CH'
156
- 'REFERENCES' return 'CI'
157
- 'RELATIVE' return 'CJ'
158
- 'REMOVE' return 'CK'
159
- 'RENAME' return 'CL'
160
- 'REQUIRE' return 'CM'
161
- 'RESTORE' return 'CN'
162
- 'RETURNS' return 'CO'
163
- 'RIGHT' return 'CP'
164
- 'ROLLBACK' return 'CQ'
165
- 'ROLLUP' return 'CR'
166
- 'ROW' return 'CS'
167
- SCHEMA(S)? return 'Az'
168
- 'SEARCH' return 'CU'
169
- 'SELECT' return 'CV'
170
- 'SEMI' return 'CW'
171
- SET return 'CX'
172
- SETS return 'CX'
173
- 'SHOW' return 'CZ'
174
- 'SOME' return 'Ca'
175
- 'SOURCE' return 'Cb'
176
- 'STRATEGY' return 'Cc'
177
- 'STORE' return 'Cd'
178
- 'SUM' return 'Ce'
179
- 'TABLE' return 'Cf'
180
- 'TABLES' return 'Cf'
181
- 'TARGET' return 'Ch'
182
- 'TEMP' return 'Ci'
183
- 'TEMPORARY' return 'Ci'
184
- 'TEXTSTRING' return 'Ck'
185
- 'THEN' return 'Cl'
186
- 'TIMEOUT' return 'Cm'
187
- 'TO' return 'Cn'
188
- 'TOP' return 'Co'
189
- 'TRAN' return 'Cp'
190
- 'TRANSACTION' return 'Cp'
191
- 'TRUE' return 'Cr'
192
- 'TRUNCATE' return 'Cs'
193
- 'UNION' return 'Ct'
194
- 'UNIQUE' return 'Cu'
195
- 'UPDATE' return 'Cv'
196
- 'USE' return 'Cw'
197
- /* 'USER' return 'Cx' */
198
- 'USING' return 'Cy'
199
- VALUE(S)? return 'Cz'
200
- 'VERTEX' return 'C0'
201
- 'VIEW' return 'C1'
202
- 'WHEN' return 'C2'
203
- 'WHERE' return 'C3'
204
- 'WHILE' return 'C4'
205
- 'WITH' return 'C5'
206
- 'WORK' return 'Cp' /* Is this keyword required? */
207
-
208
- (\d*[.])?\d+[eE]\d+ return 'C7'
209
- (\d*[.])?\d+ return 'C7'
210
-
211
- '->' return 'C9'
212
- '#' return 'DA'
213
- '+' return 'DB'
214
- '-' return 'DC'
215
- '*' return 'DD'
216
- '/' return 'DE'
217
- '%' return 'DF'
218
- '!===' return 'DG'
219
- '===' return 'DH'
220
- '!==' return 'DI'
221
- '==' return 'DJ'
222
- '>=' return 'DK'
223
- '>' return 'DL'
224
- '<=' return 'DM'
225
- '<>' return 'DN'
226
- '<' return 'DO'
227
- '=' return 'DP'
228
- '!=' return 'DN'
229
- '(' return 'DR'
230
- ')' return 'DS'
231
- '@' return 'DT'
232
- '{' return 'DU'
233
- '}' return 'DV'
234
-
235
- ']' return 'DW'
236
-
237
- ':-' return 'DX'
238
- '?-' return 'DY'
239
- '.' return 'DZ'
240
- ',' return 'Da'
241
- '::' return 'Db'
242
- ':' return 'Dc'
243
- ';' return 'Dd'
244
- '$' return 'De'
245
- '?' return 'Df'
246
- '!' return 'Dg'
247
- '^' return 'Dh'
248
-
249
- [a-zA-Z_][a-zA-Z_0-9]* return 'A7'
250
-
251
- <<EOF>> return 'Dg'
252
- . return 'Dk'
253
-
254
- /lex
255
- %left Da
256
- %left Db
257
- %left AJ
258
- /* %left AK */
259
- %left AK Ad NOT_BETWEEN
260
- /*%left AND*/
261
- %left DL DK DO DM DP DN DJ DI DH DG
262
- %left BV
263
- %left Bv
264
- %left BU
265
- %left Bh NOT_LIKE
266
- %left DB DC
267
- %left DD DE DF
268
- %left Dh
269
- %left DZ C9 Dg
270
- %left DA
271
-
272
- %ebnf
273
- %start main
274
- %%
275
-
276
  Gl
277
- : A7
278
- {
279
- if (yy.casesensitive) $$ = $1;
280
- else $$ = $1.toLowerCase();
281
- }
282
- | AD
283
- { $$ = doubleq($1.substr(1,$1.length-2)); }
284
- ;
285
-
286
- main
287
- : Dl Dg
288
- { return new yy.Statements({statements:$1}); }
289
- ;
290
-
291
1
  Dl
292
- : Dl (SEMICOLON|GO) Dn
293
- { $$ = $1; if($3) $1.push($3); }
294
- | Dn
295
- { $$ = [$1]; }
296
- | Dm
297
- { $$ = [$1]; }
298
- ;
299
-
300
2
  Dm
301
- : BG Dn
302
- { $$ = $2; $2.explain = true; }
303
- | BG CE CA Dn
304
- { $$ = $4; $4.explain = true;}
305
- ;
306
-
307
3
  Dn
308
- : Do
309
- {
310
- $$ = $1;
311
-
312
- // TODO combine exists and queries
313
- if(yy.exists) $$.exists = yy.exists;
314
- delete yy.exists;
315
- if(yy.queries) $$.queries = yy.queries;
316
- delete yy.queries;
317
- }
318
- ;
319
-
320
4
  Do
321
- : { $$ = undefined; }
322
- | AlterTable
323
- | AttachDatabase
324
- | FW
325
- | CreateIndex
326
- | CreateGraph
327
- | CreateTable
328
- | Ff
329
- | GW
330
- | CreateVertex
331
- | GG
332
- | Delete
333
- | FV
334
- | FZ
335
- | Fa
336
- | DropTable
337
- | Fh
338
- | If
339
- | Insert
340
- | GK
341
- | FU
342
- | Select
343
- | Fe
344
- | Fc
345
- | ShowDatabases
346
- | Fd
347
- | Fb
348
- | GJ
349
- | WithSelect
350
-
351
- | F4
352
- | F2
353
- | F3
354
- | EndTransaction
355
- | FY
356
- | Update
357
- | Help
358
- | EX
359
-
360
- | Fn
361
- | Fo
362
- | F7
363
- | F8
364
- | F9
365
- | GA
366
- | GB
367
- | GC
368
- | Fx
369
- | Fm
370
- | Gh
371
- | Gk
372
-
373
- /* PLugins */
374
-
375
- | GD
376
-
377
- /*
378
- | Store
379
- | F5
380
-
381
- | DeclareCursor
382
- | Fi
383
- | Fk
384
- | Fg
385
-
386
- | CreateTrigger
387
- | DropTrigger
388
- | SavePoint
389
- | Reindex
390
- | StoreDatabase
391
- | StoreTable
392
- | RestoreDatabase
393
- | RestoreTable
394
-
395
- | F7
396
- | BulkInsert
397
-
398
- | CreateFunction
399
- | CreateProcedure
400
- | Loop
401
- | ForLoop
402
- */
403
- ;
404
-
405
- /* C5 */
406
-
407
- WithSelect
408
- : C5 Dp Select
409
- { $$ = new yy.WithSelect({withs: $2, select:$3}); }
410
- ;
411
-
412
5
  Dp
413
- : Dp Da Dq
414
- { $1.push($3); $$=$1; }
415
- | Dq
416
- { $$ = [$1]; }
417
- ;
418
-
419
6
  Dq
420
- : Gl AW DR Select DS
421
- { $$ = {name:$1, select:$4}; }
422
- ;
423
-
424
- /* CV */
425
-
426
- Select
427
- : SelectClause RemoveClause? D4 D5 EH EI EN EQ EM
428
- {
429
- yy.extend($$,$1); yy.extend($$,$2); yy.extend($$,$3); yy.extend($$,$4);
430
- yy.extend($$,$5); yy.extend($$,$6);yy.extend($$,$7);
431
- yy.extend($$,$8); yy.extend($$,$9);
432
- $$ = $1;
433
- /* if(yy.exists) $$.exists = yy.exists;
434
- delete yy.exists;
435
- if(yy.queries) $$.queries = yy.queries;
436
- delete yy.queries;
437
- */ }
438
- | CU SearchSelector* D4 SearchFrom?
439
- /* SearchLimit? SearchStrategy? SearchTimeout? */
440
- {
441
- $$ = new yy.Search({selectors:$2, from:$4});
442
- yy.extend($$,$3);
443
- }
444
- ;
445
-
446
7
  Dr
447
- : CK COLUMN? Ds
448
- { $$ = {removecolumns:$3}; }
449
- ;
450
-
451
8
  Ds
452
- : Ds Da Dt
453
- { $$ = $1; $$.push($3); }
454
- | Dt
455
- { $$ = [$1]; }
456
- ;
457
-
458
9
  Dt
459
- : EV
460
- { $$ = $1; }
461
- | Bh Ek
462
- { $$ = {like:$2}; }
463
- ;
464
-
465
10
  Du
466
- : Gl
467
- { $$ = {srchid:"PROP", args: [$1]}; }
468
-
469
- | B4 Af DR EO DS
470
- { $$ = {srchid:"ORDERBY", args: $4}; }
471
- | B4 Af DR DIRECTION? DS
472
- {
473
- var dir = $4;
474
- if(!dir) dir = 'ASC';
475
- $$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
476
- }
477
-
478
- | C9 Gl
479
- { $$ = {srchid:"APROP", args: [$2]}; }
480
- | Dh
481
- { $$ = {selid:"ROOT"};}
482
- | DP EW
483
- { $$ = {srchid:"EQ", args: [$2]}; }
484
- | Bh EW
485
- { $$ = {srchid:"LIKE", args: [$2]}; }
486
- | DR SearchSelector+ DS
487
- { $$ = {selid:"WITH", args: $2}; }
488
- | C5 DR SearchSelector+ DS
489
- { $$ = {selid:"WITH", args: $3}; }
490
- | Gl DR ExprList? DS
491
- { $$ = {srchid:$1.toUpperCase(), args:$3}; }
492
- | C3 DR EW DS
493
- { $$ = {srchid:"WHERE", args:[$3]}; }
494
- | Ag DR Gl DS
495
- { $$ = {srchid:"CLASS", args:[$3]}; }
496
- | C7
497
- { $$ = {srchid:"PROP", args: [$1]}; }
498
- | AH
499
- { $$ = {srchid:"NAME", args: [$1.substr(1,$1.length-2)]}; }
500
- | DE
501
- { $$ = {srchid:"CHILD"}; }
502
- | C0
503
- { $$ = {srchid:"VERTEX"}; }
504
- | BA
505
- { $$ = {srchid:"EDGE"}; }
506
- | Dg
507
- { $$ = {srchid:"REF"}; }
508
- | DA Gl
509
- { $$ = {srchid:"SHARP", args:[$2]}; }
510
- | DF Gl
511
- { $$ = {srchid:"ATTR", args:((typeof $2 == 'undefined')?undefined:[$2])}; }
512
- | DF DE
513
- { $$ = {srchid:"ATTR"}; }
514
- | DL
515
- { $$ = {srchid:"OUT"}; }
516
- | DO
517
- { $$ = {srchid:"IN"}; }
518
- | De
519
- { $$ = {srchid:"CONTENT"}; } /* TODO Decide! */
520
- /* | A2 DR DS
521
- { $$ = {srchid:"DELETE"}; }
522
- */ | DZ DOT
523
- { $$ = {srchid:"PARENT"}; }
524
- | Fp
525
- { $$ = {srchid:"EX",args:[new yy.Json({value:$1})]}; }
526
- | DT Gl
527
- { $$ = {srchid:"AT", args:[$2]}; }
528
- | AW DT Gl
529
- { $$ = {srchid:"AS", args:[$3]}; }
530
- | Cn DT Gl
531
- { $$ = {srchid:"TO", args:[$3]}; }
532
- | CX DR Ex DS
533
- { $$ = {srchid:"SET", args:$3}; }
534
-
535
- | Cz
536
- { $$ = {srchid:"VALUE"}; }
537
- | Dc Gl
538
- { $$ = {srchid:"CLASS", args:[$2]}; }
539
- | Du Dw
540
- { $$ = {selid:$2,args:[$1] }; }
541
-
542
- | Bv DR SearchSelector* DS
543
- { $$ = {selid:"NOT",args:$3 }; }
544
- | BS DR SearchSelector* DS
545
- { $$ = {selid:"IF",args:$3 }; }
546
- | Ef DR SearchSelector* DS
547
- { $$ = {selid:$1,args:$3 }; }
548
- | (DISTINCT|UNIQUE) DR SearchSelector* DS
549
- { $$ = {selid:'DISTINCT',args:$3 }; }
550
- | Ct DR Dv DS
551
- { $$ = {selid:'UNION',args:$3 }; }
552
- | Ct AP DR Dv DS
553
- { $$ = {selid:'UNIONALL',args:$4 }; }
554
- | AP DR SearchSelector* DS
555
- { $$ = {selid:'ALL',args:[$3] }; }
556
- | DT DR SearchSelector* DS
557
- { $$ = {selid:'ANY',args:[$3] }; }
558
- | Ba DR Dv DS
559
- { $$ = {selid:'INTERSECT',args:$3 }; }
560
- | BE DR Dv DS
561
- { $$ = {selid:'EXCEPT',args:$3 }; }
562
- | AK DR Dv DS
563
- { $$ = {selid:'AND',args:$3 }; }
564
- | AJ DR Dv DS
565
- { $$ = {selid:'OR',args:$3 }; }
566
- | B7 DR Du DS
567
- { $$ = {selid:'PATH',args:[$3] }; }
568
- | CO DR ES DS
569
- { $$ = {srchid:'RETURNS',args:$3 }; }
570
- ;
571
-
572
11
  Dv
573
- : Dv Da SearchSelector*
574
- { $$ = $1; $$.push($3);}
575
- | SearchSelector*
576
- { $$ = [$1]; }
577
- ;
578
-
579
12
  Dw
580
- : DB
581
- { $$ = "PLUS"; }
582
- | DD
583
- { $$ = "STAR"; }
584
- | Df
585
- { $$ = "QUESTION"; }
586
- ;
587
-
588
13
  Dx
589
- : BL EW
590
- { $$ = $2; }
591
- ;
592
-
593
- /*
594
- SearchLet
595
- : Bf
596
- ;
597
-
598
14
  Dy
599
- : C4 EW
600
- ;
601
15
  Dz
602
- : Bi EW
603
- ;
604
-
605
16
  D0
606
- : Cc Gl
607
- ;
608
-
609
17
  D1
610
- : Cm EW
611
- ;
612
-
613
- */
614
-
615
- SelectClause
616
- :
617
- /*
618
-
619
- { $$ = new yy.Select({ columns:new yy.Column({columnid:'_'}), modifier: 'COLUMN' }); }
620
- |
621
- */
622
-
623
- D2 A6 D3 ES
624
- { $$ = new yy.Select({ columns:$4, distinct: true }); yy,extend($$, $1); yy.extend($$, $3); }
625
- | D2 Cu D3 ES
626
- { $$ = new yy.Select({ columns:$4, distinct: true }); yy,extend($$, $1);yy.extend($$, $3); }
627
- | D2 AP D3 ES
628
- { $$ = new yy.Select({ columns:$4, all:true }); yy,extend($$, $1);yy.extend($$, $3); }
629
- | D2 D3 ResultColumns?
630
- {
631
- if(!$3) {
632
- $$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});
633
- } else {
634
- $$ = new yy.Select({ columns:$3 }); yy,extend($$, $1);yy.extend($$, $2);
635
- }
636
- }
637
- /* |
638
- { $$ = new yy.Select({columns:[new yy.Column({columnid:'_', modifier:'COLUMN'})]});}
639
- */ ;
640
-
641
18
  D2
642
- : CV
643
- { $$ = undefined; }
644
- | CV Cz
645
- { $$ = {modifier:'VALUE'}}
646
- | CV CS
647
- { $$ = {modifier:'ROW'}}
648
- | CV Am
649
- { $$ = {modifier:'COLUMN'}}
650
- | CV Bk
651
- { $$ = {modifier:'MATRIX'}}
652
- | CV Ck
653
- { $$ = {modifier:'TEXTSTRING'}}
654
- | CV BW
655
- { $$ = {modifier:'INDEX'}}
656
- | CV CG
657
- { $$ = {modifier:'RECORDSET'}}
658
- ;
659
-
660
19
  D3
661
- : Co Ei PERCENT?
662
- { $$ = {top: $2, percent:(typeof $3 != 'undefined'?true:undefined)}; }
663
- | Co DR Ei DS
664
- { $$ = {top: $3}; }
665
- | { $$ = undefined; }
666
- ;
667
-
668
20
  D4
669
- : {$$ = undefined; }
670
- | Bb EA
671
- {$$ = {into: $2} }
672
- | Bb Eg
673
- {$$ = {into: $2} }
674
- | Bb Eo
675
- {$$ = {into: $2} }
676
- | Bb Em
677
- {$$ = {into: $2} }
678
- | Bb AH
679
- {
680
- var s = $2;
681
- s = s.substr(1,s.length-2);
682
- var x3 = s.substr(-3).toUpperCase();
683
- var x4 = s.substr(-4).toUpperCase();
684
- if(s[0] == '#') {
685
- $$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
686
- } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
687
- $$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
688
- } else if(x4=='XLSX' || x4 == 'JSON') {
689
- $$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
690
- }
691
- }
692
- ;
693
-
694
21
  D5
695
- : BL D7
696
- { $$ = { from: $2 }; }
697
- /* | BL D8 EB
698
- { $$ = { from: [$2], joins: $3 }; }
699
- */ | BL D7 EB
700
- { $$ = { from: $2, joins: $3 }; }
701
- /* | BL DR D8 EB DS
702
- { $$ = { from: [$3], joins: $4 }; }
703
- */ | BL DR D7 EB DS
704
- { $$ = { from: $3, joins: $4 }; }
705
- |
706
- { $$ = undefined; }
707
- ;
708
-
709
22
  D6
710
- : Aw AU DR Select DS Gl
711
- { $$ = new yy.Apply({select: $4, applymode:'CROSS', as:$6}); }
712
- | Aw AU DR Select DS AW Gl
713
- { $$ = new yy.Apply({select: $4, applymode:'CROSS', as:$7}); }
714
- /* {
715
- if(!yy.exists) yy.exists = [];
716
- $$ = new yy.Apply({select: $4, applymode:'CROSS', as:$7,existsidx:yy.exists.length});
717
- yy.exists.push($3);
718
-
719
- }
720
- */ | B5 AU DR Select DS Gl
721
- { $$ = new yy.Apply({select: $4, applymode:'OUTER', as:$6}); }
722
- | B5 AU DR Select DS AW Gl
723
- { $$ = new yy.Apply({select: $4, applymode:'OUTER', as:$7}); }
724
- ;
725
-
726
23
  D7
727
- : D8
728
- { $$ = [$1]; }
729
- | D7 Da D8
730
- { $$ = $1; $1.push($3); }
731
- ;
732
-
733
24
  D8
734
- : DR Select DS Gl
735
- { $$ = $2; $$.as = $4 }
736
- | DR Select DS AW Gl
737
- { $$ = $2; $$.as = $5 }
738
- | DR Select DS /* default alias */
739
- { $$ = $2; $$.as = 'default' }
740
-
741
- | Fp AS? Literal?
742
- { $$ = new yy.Json({value:$1}); $1.as = $3 }
743
-
744
- | EA Gl
745
- { $$ = $1; $1.as = $2 }
746
- | EA AW Gl
747
- { $$ = $1; $1.as = $3 }
748
- | EA
749
- { $$ = $1; }
750
-
751
- | Eo Gl
752
- { $$ = $1; $1.as = $2; }
753
- | Eo AW Gl
754
- { $$ = $1; $1.as = $3; }
755
- | Eo
756
- { $$ = $1; $1.as = 'default'; }
757
-
758
- | Eg
759
- { $$ = $1; $1.as = 'default'; }
760
- | Eg Gl
761
- { $$ = $1; $1.as = $2; }
762
- | Eg AW Gl
763
- { $$ = $1; $1.as = $3; }
764
-
765
- | Em
766
- { $$ = $1; $1.as = 'default'; }
767
- | Em Gl
768
- { $$ = $1; $1.as = $2; }
769
- | Em AW Gl
770
- { $$ = $1; $1.as = $3; }
771
-
772
- | D9
773
- { $$ = $1; $1.as = 'default'; }
774
- | D9 Gl
775
- { $$ = $1; $1.as = $2; }
776
- | D9 AW Gl
777
- { $$ = $1; $1.as = $3; }
778
- ;
779
-
780
25
  D9
781
- : AH
782
- {
783
- var s = $1;
784
- s = s.substr(1,s.length-2);
785
- var x3 = s.substr(-3).toUpperCase();
786
- var x4 = s.substr(-4).toUpperCase();
787
- var r;
788
- if(s[0] == '#') {
789
- r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
790
- } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
791
- r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
792
- } else if(x4=='XLSX' || x4 == 'JSON') {
793
- r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
794
- } else {
795
- throw new Error('Unknown string in BL clause');
796
- };
797
- $$ = r;
798
- }
799
- ;
800
-
801
26
  EA
802
- : Gl DZ Gl
803
- {
804
- if($1 == 'INFORMATION_SCHEMA') {
805
- $$ = new yy.FuncValue({funcid: $1, args:[new yy.StringValue({value:$3})]});
806
- } else {
807
- $$ = new yy.Table({databaseid: $1, tableid:$3});
808
- }
809
- }
810
- | Gl
811
- { $$ = new yy.Table({tableid: $1});}
812
- ;
813
-
814
27
  EB
815
- : EB EC
816
- { $$ = $1; $1.push($2); }
817
- | EB D6
818
- { $$ = $1; $1.push($2); }
819
- | EC
820
- { $$ = [$1]; }
821
- | D6
822
- { $$ = [$1]; }
823
- ;
824
-
825
28
  EC
826
- : EE ED EG
827
- { $$ = new yy.Join($1); yy.extend($$, $2); yy.extend($$, $3); }
828
- ;
829
-
830
29
  ED
831
- : EA
832
- { $$ = {table: $1}; }
833
- | EA Gl
834
- { $$ = {table: $1, as: $2 } ; }
835
- | EA AW Gl
836
- { $$ = {table: $1, as: $3 } ; }
837
- | Fp AS? Literal?
838
- { $$ = {json:new yy.Json({value:$1,as:$3})}; }
839
- | Eo Gl
840
- { $$ = {param: $1, as: $2 } ; }
841
- | Eo AW Gl
842
- { $$ = {param: $1, as: $3 } ; }
843
- | DR Select DS Gl
844
- { $$ = {select: $1, as: $4} ; }
845
- | DR Select DS AW Gl
846
- { $$ = {select: $1, as: $5 } ; }
847
- | Eg
848
- { $$ = {funcid:$1, as:'default'}; }
849
- | Eg Gl
850
- { $$ = {funcid:$1, as: $2}; }
851
- | Eg AW Gl
852
- { $$ = {funcid:$1, as: $3}; }
853
-
854
- | Em
855
- { $$ = {variable:$1,as:'default'}; }
856
- | Em Gl
857
- { $$ = {variable:$1,as:$2}; }
858
- | Em AW Gl
859
- { $$ = {variable:$1,as:$3} }
860
- ;
861
-
862
30
  EE
863
- : EF
864
- { $$ = { joinmode: $1 } ; }
865
- | Bq EF
866
- { $$ = {joinmode: $1, natural:true} ; }
867
- ;
868
-
869
31
  EF
870
- : Bc
871
- { $$ = "INNER"; }
872
- | BX Bc
873
- { $$ = "INNER"; }
874
- | Bg Bc
875
- { $$ = "LEFT"; }
876
- | Bg B5 Bc
877
- { $$ = "LEFT"; }
878
- | CP Bc
879
- { $$ = "RIGHT"; }
880
- | CP B5 Bc
881
- { $$ = "RIGHT"; }
882
- | B5 Bc
883
- { $$ = "OUTER"; }
884
- | FULL B5 Bc
885
- { $$ = "OUTER"; }
886
- | CW Bc
887
- { $$ = "SEMI"; }
888
- | AW Bc
889
- { $$ = "ANTI"; }
890
- | Aw Bc
891
- { $$ = "CROSS"; }
892
- ;
893
-
894
32
  EG
895
- : By EW
896
- { $$ = {on: $2}; }
897
- | Cy E2
898
- { $$ = {using: $2}; }
899
- |
900
- { $$ = undefined; }
901
- ;
902
-
903
33
  EH
904
- : { $$ = undefined; }
905
- | C3 EW
906
- { $$ = {where: new yy.Expression({expression:$2})}; }
907
- ;
908
-
909
34
  EI
910
- : { $$ = undefined; }
911
- | BO Af EJ EL
912
- { $$ = {group:$3}; yy.extend($$,$4); }
913
- ;
914
-
915
35
  EJ
916
- : EK
917
- { $$ = [$1]; }
918
- | EJ Da EK
919
- { $$ = $1; $1.push($3); }
920
- ;
921
-
922
36
  EK
923
- : BP CX DR EJ DS
924
- { $$ = new yy.GroupExpression({type:'GROUPING SETS', group: $4}); }
925
- | CR DR EJ DS
926
- { $$ = new yy.GroupExpression({type:'ROLLUP', group: $3}); }
927
- | Ax DR EJ DS
928
- { $$ = new yy.GroupExpression({type:'CUBE', group: $3}); }
929
- | EW
930
- { $$ = $1; }
931
- ;
932
-
933
-
934
37
  EL
935
- : { $$ = undefined; }
936
- | BQ EW
937
- { $$ = {having:$2}}
938
- ;
939
-
940
38
  EM
941
- : { $$ = undefined; }
942
- | Ct Select
943
- { $$ = {union: $2} ; }
944
- | Ct AP Select
945
- { $$ = {unionall: $3} ; }
946
- | BE Select
947
- { $$ = {except: $2} ; }
948
- | Ba Select
949
- { $$ = {intersect: $2} ; }
950
- | Ct At Select
951
- { $$ = {union: $3, corresponding:true} ; }
952
- | Ct AP At Select
953
- { $$ = {unionall: $4, corresponding:true} ; }
954
- | BE At Select
955
- { $$ = {except: $3, corresponding:true} ; }
956
- | Ba At Select
957
- { $$ = {intersect: $3, corresponding:true} ; }
958
- ;
959
-
960
39
  EN
961
- : { $$ = undefined; }
962
- | B4 Af EO
963
- { $$ = {order:$3}}
964
- ;
965
-
966
40
  EO
967
- : EP
968
- { $$ = [$1]; }
969
- | EO Da EP
970
- { $$ = $1; $1.push($3)}
971
- ;
972
-
973
41
  EP
974
- : EW
975
- { $$ = new yy.Expression({expression: $1, direction:'ASC'}) }
976
- | EW AY
977
- { $$ = new yy.Expression({expression: $1, direction:$2.toUpperCase()}) }
978
- | EW Al Bt
979
- { $$ = new yy.Expression({expression: $1, direction:'ASC', nocase:true}) }
980
- | EW Al Bt AY
981
- { $$ = new yy.Expression({expression: $1, direction:$4.toUpperCase(), nocase:true}) }
982
- ;
983
-
984
42
  EQ
985
- : { $$ = undefined; }
986
- | Bi Ei ER
987
- { $$ = {limit:$2}; yy.extend($$, $3)}
988
- ;
989
-
990
43
  ER
991
- : { $$ = undefined; }
992
- | B0 Ei
993
- { $$ = {offset:$2}}
994
- ;
995
-
996
-
997
44
  ES
998
- : ES Da ET
999
- { $1.push($3); $$ = $1; }
1000
- | ET
1001
- { $$ = [$1]; }
1002
- ;
1003
-
1004
45
  ET
1005
- : EW AW Gl
1006
- { $1.as = $3; $$ = $1;}
1007
- | EW Gl
1008
- { $1.as = $2; $$ = $1;}
1009
- | EW AW C7
1010
- { $1.as = $3; $$ = $1;}
1011
- | EW C7
1012
- { $1.as = $2; $$ = $1;}
1013
- | EW AW Ek
1014
- { $1.as = $3; $$ = $1;}
1015
- | EW Ek
1016
- { $1.as = $2; $$ = $1;}
1017
- | EW
1018
- { $$ = $1; }
1019
- ;
1020
-
1021
46
  EU
1022
- : Gl DZ Gl DZ DD
1023
- { $$ = new yy.Column({columid: $5, tableid: $3, databaseid:$1}); }
1024
- | Gl DZ DD
1025
- { $$ = new yy.Column({columnid: $3, tableid: $1}); }
1026
- | DD
1027
- { $$ = new yy.Column({columnid:$1}); }
1028
- ;
1029
-
1030
47
  EV
1031
- : Gl DZ Gl DZ Gl
1032
- { $$ = new yy.Column({columnid: $5, tableid: $3, databaseid:$1});}
1033
- | Gl DZ Gl
1034
- { $$ = new yy.Column({columnid: $3, tableid: $1});}
1035
- | Gl DZ Cz
1036
- { $$ = new yy.Column({columnid: $3, tableid: $1});}
1037
- | Gl
1038
- { $$ = new yy.Column({columnid: $1});}
1039
- ;
1040
-
1041
48
  EW
1042
- : Eb
1043
- { $$ = $1; }
1044
- | Eg
1045
- { $$ = $1; }
1046
- | Et
1047
- { $$ = $1; }
1048
- | EV
1049
- { $$ = $1; }
1050
- | EU
1051
- { $$ = $1; }
1052
- | Ei
1053
- { $$ = $1; }
1054
- | Eg
1055
- { $$ = $1; }
1056
- | Ek
1057
- { $$ = $1; }
1058
- | El
1059
- { $$ = $1; }
1060
- | Eo
1061
- { $$ = $1; }
1062
- | Em
1063
- { $$ = $1; }
1064
- | En
1065
- { $$ = $1; }
1066
- | Ep
1067
- { $$ = $1; }
1068
- | EZ
1069
- { $$ = $1; }
1070
- | Fp
1071
- { $$ = new yy.Json({value:$1}); }
1072
- /* | AC Ft
1073
- { $$ = new yy.Json({value:$2}); }
1074
- */ | EY
1075
- { $$ = $1; }
1076
- /* | DT DR EW DS
1077
- { $$ = new yy.FuncValue({funcid: 'CLONEDEEP', args:[$3]}); }
1078
- */
1079
- /* | DT DR Fp DS
1080
- { $$ = new yy.Json({value:$3}); }
1081
- */ | DR Select DS
1082
- {
1083
- if(!yy.queries) yy.queries = [];
1084
- yy.queries.push($2);
1085
- $2.queriesidx = yy.queries.length;
1086
- $$ = $2;
1087
- }
1088
- | DR Insert DS
1089
- {
1090
- if(!yy.queries) yy.queries = [];
1091
- yy.queries.push($2);
1092
- $2.queriesidx = yy.queries.length;
1093
- $$ = $2;
1094
- }
1095
- | DR (CreateVertex|CreateEdge) DS
1096
- {
1097
- if(!yy.queries) yy.queries = [];
1098
- yy.queries.push($2);
1099
- $2.queriesidx = yy.queries.length;
1100
- $$ = $2;
1101
- }
1102
-
1103
- | EX
1104
- {$$ = $1}
1105
- | CURRENT_TIMESTAMP
1106
- { $$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});}
1107
- /* | Cx
1108
- { $$ = new yy.FuncValue({funcid:'USER'});}
1109
- */ ;
1110
-
1111
49
  EX
1112
- : AA
1113
- { $$ = new yy.JavaScript({value:$1.substr(2,$1.length-4)}); }
1114
- ;
1115
-
1116
50
  EY
1117
- : Bs Gl
1118
- { $$ = new yy.FuncValue({funcid:$2, newid:true}); }
1119
- | Bs Eg
1120
- { $$ = $2; yy.extend($$,{newid:true}); }
1121
- ;
1122
-
1123
-
1124
51
  EZ
1125
- : Ah DR EW AW FN DS
1126
- { $$ = new yy.Convert({expression:$3}) ; yy.extend($$,$5) ; }
1127
- | Ah DR EW AW FN Da C7 DS
1128
- { $$ = new yy.Convert({expression:$3, style:$7}) ; yy.extend($$,$5) ; }
1129
- | As DR FN Da EW DS
1130
- { $$ = new yy.Convert({expression:$5}) ; yy.extend($$,$3) ; }
1131
- | As DR FN Da EW Da C7 DS
1132
- { $$ = new yy.Convert({expression:$5, style:$7}) ; yy.extend($$,$3) ; }
1133
- ;
1134
-
1135
52
  Ea
1136
- : Ei
1137
- { $$ = $1; }
1138
- | Ek
1139
- { $$ = $1; }
1140
- | Eg
1141
- { $$ = $1; }
1142
- | El
1143
- { $$ = $1; }
1144
- | Eo
1145
- { $$ = $1; }
1146
- | Eg
1147
- { $$ = $1; }
1148
- | CURRENT_TIMESTAMP
1149
- { $$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); }
1150
- /* | Cx
1151
- { $$ = new yy.FuncValue({funcid:'USER'}); }
1152
- */ ;
1153
-
1154
-
1155
53
  Eb
1156
- : Ef DR Eh DS Ec
1157
- {
1158
- if($3.length > 1 && ($1.toUpperCase() == 'MAX' || $1.toUpperCase() == 'MIN')) {
1159
- $$ = new yy.FuncValue({funcid:$1,args:$3});
1160
- } else {
1161
- $$ = new yy.AggrValue({aggregatorid: $1.toUpperCase(), expression: $3.pop(), over:$5});
1162
- }
1163
- }
1164
- | Ef DR A6 EW DS Ec
1165
- { $$ = new yy.AggrValue({aggregatorid: $1.toUpperCase(), expression: $4, distinct:true, over:$6}); }
1166
- | Ef DR AP EW DS Ec
1167
- { $$ = new yy.AggrValue({aggregatorid: $1.toUpperCase(), expression: $4,
1168
- over:$6}); }
1169
- ;
1170
-
1171
54
  Ec
1172
- :
1173
- {$$ = undefined; }
1174
- | B6 DR Ed DS
1175
- { $$ = new yy.Over(); yy.extend($$,$3); }
1176
- | B6 DR Ee DS
1177
- { $$ = new yy.Over(); yy.extend($$,$3); }
1178
- | B6 DR Ed Ee DS
1179
- { $$ = new yy.Over(); yy.extend($$,$3); yy.extend($$,$4);}
1180
- ;
1181
-
1182
55
  Ed
1183
- : B8 Af EJ
1184
- { $$ = {partition:$3}; }
1185
- ;
1186
56
  Ee
1187
- : B4 Af EO
1188
- { $$ = {order:$3}; }
1189
- ;
1190
57
  Ef
1191
- : Ce { $$ = "SUM"; }
1192
- | Au { $$ = "COUNT"; }
1193
- | Bn { $$ = "MIN"; }
1194
- | Bl { $$ = "MAX"; }
1195
- | Ab { $$ = "AVG"; }
1196
- | BJ { $$ = "FIRST"; }
1197
- | Be { $$ = "LAST"; }
1198
- | AO { $$ = "AGGR"; }
1199
- | AV { $$ = "ARRAY"; }
1200
- /* | CH { $$ = "REDUCE"; } */
1201
- ;
1202
-
1203
58
  Eg
1204
- : Gl DR (DISTINCT|ALL)? Eh DS
1205
- {
1206
- var funcid = $1;
1207
- var exprlist = $4;
1208
- if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {
1209
- $$ = new yy.FuncValue({funcid: funcid, args: exprlist});
1210
- } else if(alasql.aggr[$1]) {
1211
- $$ = new yy.AggrValue({aggregatorid: 'REDUCE',
1212
- funcid: funcid, expression: exprlist.pop(),distinct:($3=='DISTINCT') });
1213
- } else {
1214
- $$ = new yy.FuncValue({funcid: funcid, args: exprlist});
1215
- };
1216
- }
1217
- | Gl DR DS
1218
- { $$ = new yy.FuncValue({ funcid: $1 }) }
1219
- ;
1220
-
1221
59
  Eh
1222
- : EW
1223
- { $$ = [$1]; }
1224
- | Eh Da EW
1225
- { $1.push($3); $$ = $1 }
1226
- ;
1227
-
1228
60
  Ei
1229
- : C7
1230
- { $$ = new yy.NumValue({value:+$1}); }
1231
- ;
1232
-
1233
61
  Eg
1234
- : Cr
1235
- { $$ = new yy.LogicValue({value:true}); }
1236
- | BH
1237
- { $$ = new yy.LogicValue({value:false}); }
1238
- ;
1239
-
1240
62
  Ek
1241
- : AH
1242
- { $$ = new yy.StringValue({value: $1.substr(1,$1.length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); }
1243
- | AF
1244
- { $$ = new yy.StringValue({value: $1.substr(2,$1.length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); }
1245
- ;
1246
-
1247
63
  El
1248
- : Bw
1249
- { $$ = new yy.NullValue({value:undefined}); }
1250
- ;
1251
-
1252
64
  Em
1253
- : DT Gl
1254
- { $$ = new yy.VarValue({variable:$2}); }
1255
- ;
1256
-
1257
65
  En
1258
- : BF DR Select DS
1259
- {
1260
- if(!yy.exists) yy.exists = [];
1261
- $$ = new yy.ExistsValue({value:$3, existsidx:yy.exists.length});
1262
- yy.exists.push($3);
1263
- }
1264
- ;
1265
-
1266
-
1267
66
  Eo
1268
- : De (Literal|NUMBER)
1269
- { $$ = new yy.ParamValue({param: $2}); }
1270
- /* | De C7
1271
- { $$ = new yy.ParamValue({param: $2}); }
1272
- */ | Dc Gl
1273
- { $$ = new yy.ParamValue({param: $2}); }
1274
- | Df
1275
- {
1276
- if(typeof yy.question == 'undefined') yy.question = 0;
1277
- $$ = new yy.ParamValue({param: yy.question++});
1278
- }
1279
- | AB
1280
- {
1281
- if(typeof yy.question == 'undefined') yy.question = 0;
1282
- $$ = new yy.ParamValue({param: yy.question++, array:true});
1283
- }
1284
- ;
1285
-
1286
-
1287
67
  Ep
1288
- : Ag EW Eq Es BB
1289
- { $$ = new yy.CaseValue({expression:$2, whens: $3, elses: $4}); }
1290
- | Ag Eq Es BB
1291
- { $$ = new yy.CaseValue({whens: $2, elses: $3}); }
1292
- ;
1293
-
1294
68
  Eq
1295
- : Eq Er
1296
- { $$ = $1; $$.push($2); }
1297
- | Er
1298
- { $$ = [$1]; }
1299
- ;
1300
-
1301
69
  Er
1302
- : C2 EW Cl EW
1303
- { $$ = {when: $2, then: $4 }; }
1304
- ;
1305
-
1306
70
  Es
1307
- : BD EW
1308
- { $$ = $2; }
1309
- |
1310
- { $$ = undefined; }
1311
- ;
1312
-
1313
71
  Et
1314
- : EW Bh EW
1315
- { $$ = new yy.Op({left:$1, op:'LIKE', right:$3}); }
1316
- | EW NOT_LIKE EW
1317
- { $$ = new yy.Op({left:$1, op:'NOT LIKE', right:$3 }); }
1318
- | EW DB EW
1319
- { $$ = new yy.Op({left:$1, op:'+', right:$3}); }
1320
- | EW DC EW
1321
- { $$ = new yy.Op({left:$1, op:'-', right:$3}); }
1322
- | EW DD EW
1323
- { $$ = new yy.Op({left:$1, op:'*', right:$3}); }
1324
- | EW DE EW
1325
- { $$ = new yy.Op({left:$1, op:'/', right:$3}); }
1326
- | EW DF EW
1327
- { $$ = new yy.Op({left:$1, op:'%', right:$3}); }
1328
- | EW Dh EW
1329
- { $$ = new yy.Op({left:$1, op:'^', right:$3}); }
1330
-
1331
- | EW C9 Gl
1332
- { $$ = new yy.Op({left:$1, op:'->' , right:$3}); }
1333
- | EW C9 Ei
1334
- { $$ = new yy.Op({left:$1, op:'->' , right:$3}); }
1335
- | EW C9 DR EW DS
1336
- { $$ = new yy.Op({left:$1, op:'->' , right:$4}); }
1337
- | EW C9 Eg
1338
- { $$ = new yy.Op({left:$1, op:'->' , right:$3}); }
1339
-
1340
- | EW Dg Gl
1341
- { $$ = new yy.Op({left:$1, op:'!' , right:$3}); }
1342
- | EW Dg Ei
1343
- { $$ = new yy.Op({left:$1, op:'!' , right:$3}); }
1344
- | EW Dg DR EW DS
1345
- { $$ = new yy.Op({left:$1, op:'!' , right:$4}); }
1346
- | EW Dg Eg
1347
- { $$ = new yy.Op({left:$1, op:'!' , right:$3}); }
1348
-
1349
-
1350
-
1351
-
1352
- | EW DL EW
1353
- { $$ = new yy.Op({left:$1, op:'>' , right:$3}); }
1354
- | EW DK EW
1355
- { $$ = new yy.Op({left:$1, op:'>=' , right:$3}); }
1356
- | EW DO EW
1357
- { $$ = new yy.Op({left:$1, op:'<' , right:$3}); }
1358
- | EW DM EW
1359
- { $$ = new yy.Op({left:$1, op:'<=' , right:$3}); }
1360
- | EW DP EW
1361
- { $$ = new yy.Op({left:$1, op:'=' , right:$3}); }
1362
- | EW DJ EW
1363
- { $$ = new yy.Op({left:$1, op:'==' , right:$3}); }
1364
- | EW DH EW
1365
- { $$ = new yy.Op({left:$1, op:'===' , right:$3}); }
1366
- | EW DN EW
1367
- { $$ = new yy.Op({left:$1, op:'!=' , right:$3}); }
1368
- | EW DI EW
1369
- { $$ = new yy.Op({left:$1, op:'!==' , right:$3}); }
1370
- | EW DG EW
1371
- { $$ = new yy.Op({left:$1, op:'!===' , right:$3}); }
1372
-
1373
- | EW Ev Ew DR Select DS
1374
- {
1375
- if(!yy.queries) yy.queries = [];
1376
- $$ = new yy.Op({left:$1, op:$2 , allsome:$3, right:$5, queriesidx: yy.queries.length});
1377
- yy.queries.push($5);
1378
- }
1379
-
1380
- | EW Ev Ew DR Eh DS
1381
- {
1382
- $$ = new yy.Op({left:$1, op:$2 , allsome:$3, right:$5});
1383
- }
1384
-
1385
- | EW AK EW
1386
- {
1387
- if($1.op == 'BETWEEN1') {
1388
-
1389
- if($1.left.op == 'AND') {
1390
- $$ = new yy.Op({left:$1.left.left,op:'AND',right:
1391
- new yy.Op({left:$1.left.right, op:'BETWEEN',
1392
- right1:$1.right, right2:$3})
1393
- });
1394
- } else {
1395
- $$ = new yy.Op({left:$1.left, op:'BETWEEN',
1396
- right1:$1.right, right2:$3});
1397
- }
1398
-
1399
- } else if($1.op == 'NOT BETWEEN1') {
1400
- if($1.left.op == 'AND') {
1401
- $$ = new yy.Op({left:$1.left.left,op:'AND',right:
1402
- new yy.Op({left:$1.left.right, op:'NOT BETWEEN',
1403
- right1:$1.right, right2:$3})
1404
- });
1405
- } else {
1406
- $$ = new yy.Op({left:$1.left, op:'NOT BETWEEN',
1407
- right1:$1.right, right2:$3});
1408
- }
1409
- } else {
1410
- $$ = new yy.Op({left:$1, op:'AND', right:$3});
1411
- }
1412
-
1413
-
1414
- }
1415
- | EW AJ EW
1416
- { $$ = new yy.Op({left:$1, op:'OR' , right:$3}); }
1417
- | Bv EW
1418
- { $$ = new yy.UniOp({op:'NOT' , right:$2}); }
1419
- | DC EW
1420
- { $$ = new yy.UniOp({op:'-' , right:$2}); }
1421
- | DB EW
1422
- { $$ = new yy.UniOp({op:'+' , right:$2}); }
1423
- | DA EW
1424
- { $$ = new yy.UniOp({op:'#' , right:$2}); }
1425
- | DR EW DS
1426
- { $$ = new yy.UniOp({right: $2}); }
1427
-
1428
- | EW BV DR Select DS
1429
- {
1430
- if(!yy.queries) yy.queries = [];
1431
- $$ = new yy.Op({left: $1, op:'IN', right:$4, queriesidx: yy.queries.length});
1432
- yy.queries.push($4);
1433
- }
1434
-
1435
- | EW Bv BV DR Select DS
1436
- {
1437
- if(!yy.queries) yy.queries = [];
1438
- $$ = new yy.Op({left: $1, op:'NOT IN', right:$5, queriesidx: yy.queries.length});
1439
- yy.queries.push($5);
1440
- }
1441
-
1442
- | EW BV DR Eh DS
1443
- { $$ = new yy.Op({left: $1, op:'IN', right:$4}); }
1444
-
1445
- | EW Bv BV DR Eh DS
1446
- { $$ = new yy.Op({left: $1, op:'NOT IN', right:$5}); }
1447
-
1448
- | EW BV DR DS
1449
- { $$ = new yy.Op({left: $1, op:'IN', right:[]}); }
1450
-
1451
- | EW Bv BV DR DS
1452
- { $$ = new yy.Op({left: $1, op:'NOT IN', right:[]}); }
1453
-
1454
- | EW BV Eu
1455
- { $$ = new yy.Op({left: $1, op:'IN', right:$3}); }
1456
-
1457
- | EW Bv BV Eu
1458
- { $$ = new yy.Op({left: $1, op:'NOT IN', right:$4}); }
1459
-
1460
-
1461
- /*
1462
- Hack - it impossimle to parse Ad AK and AK expressions with grammar.
1463
- At least, I do not know how.
1464
- */
1465
- | EW Ad EW
1466
- {
1467
- /* var expr = $3;
1468
- if(expr.left && expr.left.op == 'AND') {
1469
- $$ = new yy.Op({left:new yy.Op({left:$1, op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right });
1470
- } else {
1471
- */
1472
- $$ = new yy.Op({left:$1, op:'BETWEEN1', right:$3 });
1473
- // }
1474
- }
1475
- | EW NOT_BETWEEN EW
1476
- {
1477
- // var expr = $3;
1478
- // if(expr.left && expr.left.op == 'AND') {
1479
- // $$ = new yy.Op({left:new yy.Op({left:$1, op:'NOT BETWEEN', right:expr.left}), op:'AND', right:expr.right });
1480
- // } else {
1481
- $$ = new yy.Op({left:$1, op:'NOT BETWEEN1', right:$3 });
1482
- // }
1483
- }
1484
- | EW BU EW
1485
- { $$ = new yy.Op({op:'IS' , left:$1, right:$3}); }
1486
- | EW Db FN
1487
- { $$ = new yy.Convert({expression:$1}) ; yy.extend($$,$3) ; }
1488
- ;
1489
-
1490
72
  Eu
1491
- : EV
1492
- { $$ = $1;}
1493
- | Eg
1494
- { $$ = $1;}
1495
- | DT DR EW DS
1496
- { $$ = $3;}
1497
- ;
1498
-
1499
73
  Ev
1500
- : DL { $$ = $1; }
1501
- | DK { $$ = $1; }
1502
- | DO { $$ = $1; }
1503
- | DM { $$ = $1; }
1504
- | DP { $$ = $1; }
1505
- | DN { $$ = $1; }
1506
- ;
1507
-
1508
74
  Ew
1509
- : AP
1510
- { $$ = 'ALL'; }
1511
- | Ca
1512
- { $$ = 'SOME'; }
1513
- | DT
1514
- { $$ = 'ANY'; }
1515
- ;
1516
-
1517
- /* PART TWO */
1518
-
1519
- /* Cv */
1520
-
1521
- Update
1522
- : Cv EA CX Ex C3 EW
1523
- { $$ = new yy.Update({table:$2, columns:$4, where:$6}); }
1524
- | Cv EA CX Ex
1525
- { $$ = new yy.Update({table:$2, columns:$4}); }
1526
- ;
1527
-
1528
75
  Ex
1529
- : Ey
1530
- { $$ = [$1]; }
1531
- | Ex Da Ey
1532
- { $$ = $1; $1.push($3); }
1533
- ;
1534
-
1535
76
  Ey
1536
- : EV DP EW
1537
- /* TODO Replace columnid with column */
1538
- { $$ = new yy.SetColumn({column:$1, expression:$3})}
1539
- ;
1540
-
1541
- /* A2 */
1542
-
1543
- Delete
1544
- : A2 BL EA C3 EW
1545
- { $$ = new yy.Delete({table:$3, where:$5});}
1546
- | A2 BL EA
1547
- { $$ = new yy.Delete({table:$3});}
1548
- ;
1549
-
1550
- /* BY */
1551
-
1552
- Insert
1553
- : BY Ez EA Cz ValuesListsList
1554
- { $$ = new yy.Insert({into:$3, values: $5}); }
1555
- | BY Ez EA A1 Cz
1556
- { $$ = new yy.Insert({into:$3, default: true}) ; }
1557
- | BY Ez EA DR E2 DS Cz ValuesListsList
1558
- { $$ = new yy.Insert({into:$3, columns: $5, values: $8}); }
1559
- | BY Ez EA Select
1560
- { $$ = new yy.Insert({into:$3, select: $4}); }
1561
- | BY Ez EA DR E2 DS Select
1562
- { $$ = new yy.Insert({into:$3, columns: $5, select: $7}); }
1563
- ;
1564
-
1565
77
  Ez
1566
- :
1567
- | Bb
1568
- ;
1569
- /*
1570
- TableParamFunc
1571
- : EA
1572
- { $$ = $1; }
1573
- | Eo
1574
- { $$ = $1; }
1575
- | Eg
1576
- { $$ = $1; }
1577
- ;
1578
- */
1579
-
1580
- ValuesListsList
1581
- : DR E0 DS
1582
- { $$ = [$2]; }
1583
- | Fp
1584
- { $$ = [$1]; }
1585
- | Eo
1586
- { $$ = [$1]; }
1587
- | ValuesListsList Da DR E0 DS
1588
- {$$ = $1; $1.push($4)}
1589
- | ValuesListsList Da Fp
1590
- {$$ = $1; $1.push($3)}
1591
- | ValuesListsList Da Eo
1592
- {$$ = $1; $1.push($3)}
1593
- ;
1594
-
1595
78
  E0
1596
- : EW
1597
- { $$ = [$1]; }
1598
- | E0 Da EW
1599
- {$$ = $1; $1.push($3)}
1600
- ;
1601
-
1602
79
  E1
1603
- : Ei
1604
- | Ek
1605
- | Eg
1606
- | El
1607
- | DateValue
1608
- | Eo
1609
- ;
1610
-
1611
80
  E2
1612
- : EV
1613
- { $$ = [$1]; }
1614
- | E2 Da EV
1615
- {$$ = $1; $1.push($3)}
1616
- ;
1617
-
1618
- /* Av Cf */
1619
-
1620
- CreateTable
1621
- : Av E6 E3 E7 EA DR E8 DS E4
1622
- {
1623
- $$ = new yy.CreateTable({table:$5});
1624
- yy.extend($$,$2);
1625
- yy.extend($$,$3);
1626
- yy.extend($$,$4);
1627
- yy.extend($$,$7);
1628
- yy.extend($$,$9);
1629
- }
1630
- | Av E6 E3 E7 EA
1631
- {
1632
- $$ = new yy.CreateTable({table:$5});
1633
- yy.extend($$,$2);
1634
- yy.extend($$,$3);
1635
- yy.extend($$,$4);
1636
- }
1637
- ;
1638
-
1639
81
  E3
1640
- : Cf
1641
- { $$ = undefined; }
1642
- | Ag
1643
- { $$ = {class:true}; }
1644
- ;
1645
-
1646
82
  E4
1647
- :
1648
- | E5
1649
- ;
1650
-
1651
83
  E5
1652
- : E5 CreateTableOption
1653
- | CreateTableOption
1654
- ;
1655
-
1656
- /* TODO: Remove this section */
1657
- CreateTableOption
1658
- : A1
1659
- | A7 DP Gl
1660
- | Aa DP Ei
1661
- ;
1662
-
1663
84
  E6
1664
- : { $$ = undefined; }
1665
- | Ci
1666
- { $$ = {temporary:true}; }
1667
- ;
1668
-
1669
85
  E7
1670
- : { $$ = undefined; }
1671
- | BS Bv BF
1672
- { $$ = {ifnotexists: true}; }
1673
- ;
1674
-
1675
86
  E8
1676
- : ColumnDefsList Da E9
1677
- { $$ = {columns: $1, constraints: $3}; }
1678
- | ColumnDefsList
1679
- { $$ = {columns: $1}; }
1680
- | AW Select
1681
- { $$ = {as: $2} }
1682
- ;
1683
-
1684
87
  E9
1685
- : FA
1686
- { $$ = [$1];}
1687
- | E9 Da FA
1688
- { $1.push($3); $$ = $1; }
1689
- ;
1690
-
1691
88
  FA
1692
- : FB FD
1693
- { $2.constraintid = $1; $$ = $2; }
1694
- | FB FE
1695
- { $2.constraintid = $1; $$ = $2; }
1696
- | FB FJ
1697
- { $2.constraintid = $1; $$ = $2; }
1698
- | FB FK
1699
- { $2.constraintid = $1; $$ = $2; }
1700
- | FB FC
1701
- { $2.constraintid = $1; $$ = $2; }
1702
- ;
1703
-
1704
89
  FB
1705
- : { $$ = undefined; }
1706
- | Ap Gl
1707
- { $$ = $2; }
1708
- ;
1709
-
1710
90
  FC
1711
- : Ai DR EW DS
1712
- { $$ = {type: 'CHECK', expression: $3}; }
1713
- ;
1714
-
1715
91
  FD
1716
- : CB Bd Literal? DR FL DS
1717
- { $$ = {type: 'PRIMARY KEY', columns: $5, clustered:($3+'').toUpperCase()}; }
1718
- ;
1719
-
1720
92
  FE
1721
- : BK Bd DR FL DS CI EA ParColsList?
1722
- FG
1723
- { $$ = {type: 'FOREIGN KEY', columns: $4, fktable: $7, fkcolumns: $8}; }
1724
- ;
1725
-
1726
93
  FF
1727
- : DR FL DS
1728
- { $$ = $2; }
1729
- ;
1730
-
1731
94
  FG
1732
- :
1733
- { $$ = undefined; }
1734
- | FH FI
1735
- { $$ = undefined; }
1736
- ;
1737
-
1738
95
  FH
1739
- : By A2 Bu AM
1740
- {$$ = undefined; }
1741
- ;
1742
96
  FI
1743
- : By Cv Bu AM
1744
- {$$ = undefined; }
1745
- ;
1746
-
1747
97
  FJ
1748
- : Cu Literal? DR E2 DS
1749
- {
1750
- $$ = {type: 'UNIQUE', columns: $4, clustered:($2+'').toUpperCase()};
1751
- }
1752
- ;
1753
-
1754
98
  FK
1755
- : BW Gl DR E2 DS
1756
- | Bd Gl DR E2 DS
1757
- ;
1758
99
  FL
1759
- : Gl
1760
- { $$ = [$1]; }
1761
- | AH
1762
- { $$ = [$1]; }
1763
- | FL Da Gl
1764
- { $$ = $1; $1.push($3); }
1765
- | FL Da AH
1766
- { $$ = $1; $1.push($3); }
1767
- ;
1768
-
1769
- /*
1770
- OrderedColsList
1771
- : Gl
1772
- { $$ = [$1]; }
1773
- | AH
1774
- { $$ = [$1]; }
1775
- | OrderedColsList Da Gl
1776
- { $$ = $1; $1.push($3); }
1777
- | OrderedColsList Da AH
1778
- { $$ = $1; $1.push($3); }
1779
- ;
1780
- */
1781
- ColumnDefsList
1782
- : FM
1783
- { $$ = [$1];}
1784
- | ColumnDefsList Da FM
1785
- { $1.push($3); $$ = $1; }
1786
- ;
1787
-
1788
100
  FM
1789
- : Gl FN FP
1790
- { $$ = new yy.ColumnDef({columnid:$1}); yy.extend($$,$2); yy.extend($$,$3);}
1791
- | Gl ColumnConstraints
1792
- { $$ = new yy.ColumnDef({columnid:$1}); yy.extend($$,$2); }
1793
- | Gl
1794
- { $$ = new yy.ColumnDef({columnid:$1, dbtypeid: ''}); }
1795
- ;
1796
-
1797
101
  FN
1798
- : A7 DR FO Da C7 DS
1799
- { $$ = {dbtypeid: $1, dbsize: $3, dbprecision: +$5} }
1800
- | A7 DR FO DS
1801
- { $$ = {dbtypeid: $1, dbsize: $3} }
1802
- | A7
1803
- { $$ = {dbtypeid: $1} }
1804
- | BC DR E0 DS
1805
- { $$ = {dbtypeid: 'ENUM', enumvalues: $3} }
1806
- ;
1807
-
1808
102
  FO
1809
- : C7
1810
- { $$ = +$1; }
1811
- | Bl
1812
- { $$ = "MAX"; }
1813
- ;
1814
-
1815
103
  FP
1816
- : {$$ = undefined}
1817
- | FQ
1818
- { $$ = $1; }
1819
- ;
1820
-
1821
-
1822
104
  FQ
1823
- : FQ FS
1824
- {
1825
- yy.extend($1,$2); $$ = $1;
1826
- }
1827
- | FS
1828
- { $$ = $1; }
1829
- ;
1830
-
1831
105
  FR
1832
- : DR Gl DS
1833
- { $$ = $2; }
1834
- ;
1835
-
1836
106
  FS
1837
- : CB Bd
1838
- {$$ = {primarykey:true};}
1839
- | BK Bd CI EA ParLiteral?
1840
- {$$ = {foreignkey:{table:$4, columnid: $5}};}
1841
- | CI EA ParLiteral?
1842
- {$$ = {foreignkey:{table:$2, columnid: $3}};}
1843
- | Aa DR Ei Da Ei DS
1844
- { $$ = {identity: {value:$3,step:$5}} }
1845
- | Aa
1846
- { $$ = {identity: {value:1,step:1}} }
1847
- | A1 Ea
1848
- {$$ = {default:$2};}
1849
- | A1 DR EW DS
1850
- {$$ = {default:$3};}
1851
- | Bw
1852
- {$$ = {null:true}; }
1853
- | Bv Bw
1854
- {$$ = {notnull:true}; }
1855
- | FC
1856
- {$$ = {check:$1}; }
1857
- | Cu
1858
- {$$ = {unique:true}; }
1859
- ;
1860
-
1861
- /* A8 Cf */
1862
-
1863
- DropTable
1864
- : A8 (TABLE|CLASS) FT EA
1865
- { $$ = new yy.DropTable({table:$4,type:$2}); yy.extend($$, $3); }
1866
- ;
1867
-
1868
107
  FT
1869
- : { $$ = undefined; }
1870
- | BS BF
1871
- { $$ = {ifexists: true};}
1872
- ;
1873
-
1874
- /* AQ Cf */
1875
-
1876
- AlterTable
1877
- : AQ Cf EA CL Cn Gl
1878
- { $$ = new yy.AlterTable({table:$3, renameto: $6});}
1879
- | AQ Cf EA AN Am FM
1880
- { $$ = new yy.AlterTable({table:$3, addcolumn: $6});}
1881
- | AQ Cf EA Bp Am FM
1882
- { $$ = new yy.AlterTable({table:$3, modifycolumn: $6});}
1883
- | AQ Cf EA CL Am Gl Cn Gl
1884
- { $$ = new yy.AlterTable({table:$3, renamecolumn: $6, to: $8});}
1885
- | AQ Cf EA A8 Am Gl
1886
- { $$ = new yy.AlterTable({table:$3, dropcolumn: $6});}
1887
- ;
1888
-
1889
108
  FU
1890
- : CL Cf EA Cn Gl
1891
- { $$ = new yy.AlterTable({table:$3, renameto: $5});}
1892
- ;
1893
-
1894
- /* DATABASES */
1895
-
1896
- AttachDatabase
1897
- : AZ Gl Az Gl
1898
- { $$ = new yy.AttachDatabase({databaseid:$4, engineid:$2.toUpperCase() });}
1899
- | AZ Gl Az Gl DR Eh DS
1900
- { $$ = new yy.AttachDatabase({databaseid:$4, engineid:$2.toUpperCase(), args:$6 });}
1901
- | AZ Gl Az Gl AW Gl
1902
- { $$ = new yy.AttachDatabase({databaseid:$4, engineid:$2.toUpperCase(), as:$6 });}
1903
- | AZ Gl Az Gl DR Eh DS AW Gl
1904
- { $$ = new yy.AttachDatabase({databaseid:$4, engineid:$2.toUpperCase(), as:$9, args:$6});}
1905
- ;
1906
-
1907
109
  FV
1908
- : A5 Az Gl
1909
- { $$ = new yy.DetachDatabase({databaseid:$3});}
1910
- ;
1911
-
1912
110
  FW
1913
- : Av Az E7 Gl
1914
- { $$ = new yy.CreateDatabase({databaseid:$4 }); yy.extend($$,$4); }
1915
- | Av Gl Az E7 Gl FX
1916
- { $$ = new yy.CreateDatabase({engineid:$2.toUpperCase(), databaseid:$5, as:$6 }); yy.extend($$,$4); }
1917
- | Av Gl Az E7 Gl DR Eh DS FX
1918
- { $$ = new yy.CreateDatabase({engineid:$2.toUpperCase(), databaseid:$5, args:$7, as:$9 }); yy.extend($$,$4); }
1919
- | Av Gl Az E7 Ek FX
1920
- { $$ = new yy.CreateDatabase({engineid:$2.toUpperCase(),
1921
- as:$6, args:[$5] }); yy.extend($$,$4); }
1922
- ;
1923
-
1924
111
  FX
1925
- :
1926
- {$$ = undefined;}
1927
- | AW Gl
1928
- { $$ = $1; }
1929
- ;
1930
-
1931
112
  FY
1932
- : Cw Az Gl
1933
- { $$ = new yy.UseDatabase({databaseid: $3 });}
1934
- | Cw Gl
1935
- { $$ = new yy.UseDatabase({databaseid: $2 });}
1936
- ;
1937
-
1938
113
  FZ
1939
- : A8 Az FT Gl
1940
- { $$ = new yy.DropDatabase({databaseid: $4 }); yy.extend($$,$3); }
1941
- | A8 Gl Az FT Gl
1942
- { $$ = new yy.DropDatabase({databaseid: $5, engineid:$2.toUpperCase() }); yy.extend($$,$4); }
1943
- | A8 Gl Az FT Ek
1944
- { $$ = new yy.DropDatabase({databaseid: $5, engineid:$2.toUpperCase() }); yy.extend($$,$4); }
1945
- ;
1946
-
1947
- /* INDEXES */
1948
-
1949
- CreateIndex
1950
- :
1951
- Av BW Gl By EA DR EO DS
1952
- { $$ = new yy.CreateIndex({indexid:$3, table:$5, columns:$7})}
1953
- |
1954
-
1955
- Av Cu BW Gl By EA DR EO DS
1956
- { $$ = new yy.CreateIndex({indexid:$4, table:$6, columns:$8, unique:true})}
1957
- ;
1958
-
1959
114
  Fa
1960
- : A8 BW Gl
1961
- { $$ = new yy.DropIndex({indexid:$3});}
1962
- ;
1963
-
1964
- /* CZ COMMAND */
1965
-
1966
- ShowDatabases
1967
- : CZ Az
1968
- { $$ = new yy.ShowDatabases();}
1969
- | CZ Az Bh Ek
1970
- { $$ = new yy.ShowDatabases({like:$4});}
1971
- | CZ Gl Az
1972
- { $$ = new yy.ShowDatabases({engineid:$2.toUpperCase() });}
1973
- | CZ Gl Az Bh Ek
1974
- { $$ = new yy.ShowDatabases({engineid:$2.toUpperCase() , like:$5});}
1975
- ;
1976
-
1977
115
  Fb
1978
- : CZ Cf
1979
- { $$ = new yy.ShowTables();}
1980
- | CZ Cf Bh Ek
1981
- { $$ = new yy.ShowTables({like:$4});}
1982
- | CZ Cf BL Gl
1983
- { $$ = new yy.ShowTables({databaseid: $4});}
1984
- | CZ Cf BL Gl Bh Ek
1985
- { $$ = new yy.ShowTables({like:$6, databaseid: $4});}
1986
- ;
1987
-
1988
116
  Fc
1989
- : CZ Am BL EA
1990
- { $$ = new yy.ShowColumns({table: $4});}
1991
- | CZ Am BL EA BL Gl
1992
- { $$ = new yy.ShowColumns({table: $4, databaseid:$6});}
1993
- ;
1994
-
1995
117
  Fd
1996
- : CZ BW BL EA
1997
- { $$ = new yy.ShowIndex({table: $4});}
1998
- | CZ BW BL EA BL Gl
1999
- { $$ = new yy.ShowIndex({table: $4, databaseid: $6});}
2000
- ;
2001
-
2002
118
  Fe
2003
- : CZ Av Cf EA
2004
- { $$ = new yy.ShowCreateTable({table: $4});}
2005
- | CZ Av Cf EA BL Gl
2006
- { $$ = new yy.ShowCreateTable({table: $4, databaseid:$6});}
2007
- ;
2008
-
2009
119
  Ff
2010
- : Av E6 C1 E7 EA DR E2 DS AW Select SubqueryRestriction?
2011
- {
2012
- $$ = new yy.CreateTable({table:$5,view:true,select:$10,viewcolumns:$7});
2013
- yy.extend($$,$2);
2014
- yy.extend($$,$4);
2015
- }
2016
- | Av E6 C1 E7 EA AW Select SubqueryRestriction?
2017
- {
2018
- $$ = new yy.CreateTable({table:$5,view:true,select:$7});
2019
- yy.extend($$,$2);
2020
- yy.extend($$,$4);
2021
- }
2022
- ;
2023
-
2024
120
  Fg
2025
- : C5 CF Bz
2026
- | C5 Ai B2
2027
- | C5 Ai B2 Ap FA
2028
- ;
2029
-
2030
-
2031
121
  Fh
2032
- : A8 C1 FT EA
2033
- { $$ = new yy.DropTable({table:$4, view:true}); yy.extend($$, $3); }
2034
- ;
2035
- /*
2036
- DeclareCursor
2037
- : A0 Gl Ay FOR Select
2038
- { $$ = new yy.DeclareCursor({cursorid:$2, select:$5}); }
2039
- ;
2040
-
2041
122
  Fi
2042
- : B1 Gl
2043
- { $$ = new yy.OpenCursor({cursorid:$2}); }
2044
- ;
2045
-
2046
123
  Fg
2047
- : Ak Gl
2048
- { $$ = new yy.CloseCursor({cursorid:$2}); }
2049
- ;
2050
-
2051
124
  Fk
2052
- : BI Fl BL Gl
2053
- { $$ = new yy.FetchCursor({cursorid:$4}); yy.extend($$,$2); }
2054
- ;
2055
-
2056
125
  Fl
2057
- : Br
2058
- { $$ = {direction: 'NEXT'}; }
2059
- | CD
2060
- { $$ = {direction: 'PRIOR'}; }
2061
- | BJ
2062
- { $$ = {direction: 'FIRST'}; }
2063
- | Be
2064
- { $$ = {direction: 'LAST'}; }
2065
- | AL Ei
2066
- { $$ = {direction: 'ABSOLUTE', num:$2}; }
2067
- | CJ Ei
2068
- { $$ = {direction: 'RELATIVE', num:$2}; }
2069
- ;
2070
- */
2071
-
2072
- Help
2073
- : BR Ek
2074
- { $$ = new yy.Help({subject:$2.value.toUpperCase()} ) ; }
2075
- | BR
2076
- { $$ = new yy.Help() ; }
2077
- ;
2078
-
2079
126
  Fm
2080
- : DP EW
2081
- { $$ = new yy.ExpressionStatement({expression:$2}); }
2082
- ;
2083
-
2084
127
  Fn
2085
- : Cb Ek
2086
- { $$ = new yy.Source({url:$2.value}); }
2087
- ;
2088
-
2089
128
  Fo
2090
- : AX Fp
2091
- { $$ = new yy.Assert({value:$2}); }
2092
- | AX Ea
2093
- { $$ = new yy.Assert({value:$2.value}); }
2094
- | AX AH Da Fp
2095
- { $$ = new yy.Assert({value:$4, message:$2}); }
2096
- ;
2097
-
2098
129
  Fp
2099
- : DT DR EW DS
2100
- { $$ = $3; }
2101
- | DT Ek
2102
- { $$ = $2.value; }
2103
- | DT Ei
2104
- { $$ = +$2.value; }
2105
- | DT Eg
2106
- { $$ = (!!$2.value); }
2107
- | DT Eo
2108
- { $$ = $2; }
2109
- | Fs
2110
- { $$ = $1; }
2111
- | DT Fs
2112
- { $$ = $2; }
2113
- | AC Ft
2114
- { $$ = $2; }
2115
- ;
2116
-
2117
130
  Fq
2118
- : Fp
2119
- { $$ = $1; }
2120
- | Fr
2121
- { $$ = $1; }
2122
- ;
2123
-
2124
131
  Fr
2125
- : Ei
2126
- { $$ = +$1.value; }
2127
- | Ek
2128
- { $$ = ""+$1.value; }
2129
- | Eg
2130
- { $$ = $1.value; }
2131
- | EV
2132
- { $$ = $1; }
2133
- | El
2134
- { $$ = $1.value; }
2135
- | Eo
2136
- { $$ = $1; }
2137
- | Eg
2138
- { $$ = $1; }
2139
- | DR EW DS
2140
- { $$ = $2}
2141
- ;
2142
-
2143
-
2144
132
  Fs
2145
- : DU Fu DV
2146
- { $$ = $2; }
2147
- | DU Fu Da DV
2148
- { $$ = $2; }
2149
- | DU DV
2150
- { $$ = {}; }
2151
- ;
2152
-
2153
133
  Ft
2154
- : Fw DW
2155
- { $$ = $1; }
2156
- | Fw Da DW
2157
- { $$ = $1; }
2158
- | DW
2159
- { $$ = []; }
2160
- ;
2161
-
2162
134
  Fu
2163
- : Fu Da Fv
2164
- { yy.extend($1,$3); $$ = $1; }
2165
- | Fv
2166
- { $$ = $1; }
2167
- ;
2168
-
2169
135
  Fv
2170
- : AH Dc Fq
2171
- { $$ = {}; $$[$1.substr(1,$1.length-2)] = $3; }
2172
- | C7 Dc Fq
2173
- { $$ = {}; $$[$1] = $3; }
2174
- | Gl Dc Fq
2175
- { $$ = {}; $$[$1] = $3; }
2176
- /* | AH Dc Eo
2177
- { $$ = {}; $$[$1.substr(1,$1.length-2)] = $3; }
2178
- | C7 Dc Eo
2179
- { $$ = {}; $$[$1] = $3; }
2180
- | A7 Dc Eo
2181
- { $$ = {}; $$[$1] = $3; }
2182
- */ ;
2183
-
2184
136
  Fw
2185
- : Fw Da Fq
2186
- { $1.push($3); $$ = $1; }
2187
- | Fq
2188
- { $$ = [$1]; }
2189
- ;
2190
-
2191
137
  Fx
2192
- : CX Gl F1
2193
- { $$ = new yy.SetVariable({variable:$2.toLowerCase(), value:$3});}
2194
- | CX Fy Gl DP EW
2195
- { $$ = new yy.SetVariable({variable:$3, expression:$5, method:$2});}
2196
- | CX Fy Gl Fz DP EW
2197
- { $$ = new yy.SetVariable({variable:$3, props: $4, expression:$6, method:$2});}
2198
- ;
2199
-
2200
138
  Fy
2201
- : DT
2202
- {$$ = '@'; }
2203
- | De
2204
- {$$ = '$'; }
2205
- ;
2206
-
2207
139
  Fz
2208
- : Fz C9 F0
2209
- { $1.push($3); $$ = $1; }
2210
- | C9 F0
2211
- { $$ = [$2]; }
2212
- ;
2213
-
2214
140
  F0
2215
- : Gl
2216
- { $$ = $1; }
2217
- | C7
2218
- { $$ = $1; }
2219
- | DR EW DS
2220
- { $$ = $2; }
2221
- ;
2222
-
2223
141
  F1
2224
- : By
2225
- { $$ = true; }
2226
- | Bx
2227
- { $$ = false; }
2228
- ;
2229
-
2230
142
  F2
2231
- : Ao Cp
2232
- { $$ = new yy.CommitTransaction(); }
2233
- ;
2234
-
2235
143
  F3
2236
- : CQ Cp
2237
- { $$ = new yy.RollbackTransaction(); }
2238
- ;
2239
-
2240
144
  F4
2241
- : Ac Cp
2242
- { $$ = new yy.BeginTransaction(); }
2243
- ;
2244
-
2245
- /*
2246
- Store
2247
- : Cd
2248
- { $$ = new yy.Store(); }
2249
- | Cd Gl
2250
- { $$ = new yy.Store({databaseid: $2}); }
2251
- ;
2252
-
2253
145
  F5
2254
- : CN
2255
- { $$ = new yy.Restore(); }
2256
- | CN Gl
2257
- { $$ = new yy.Restore({databaseid: $2}); }
2258
- ;
2259
- */
2260
-
2261
- If
2262
- :
2263
- /* BS EW Dn
2264
- { $$ = new yy.If({expression:$2,thenstat:$3});
2265
- if($3.exists) $$.exists = $3.exists;
2266
- if($3.queries) $$.queries = $3.queries;
2267
- }
2268
- |
2269
-
2270
- */
2271
- BS EW Dn F6
2272
- { $$ = new yy.If({expression:$2,thenstat:$3, elsestat:$4});
2273
- if($3.exists) $$.exists = $3.exists;
2274
- if($3.queries) $$.queries = $3.queries;
2275
- }
2276
-
2277
- | BS EW Dn
2278
- {
2279
- $$ = new yy.If({expression:$2,thenstat:$3});
2280
- if($3.exists) $$.exists = $3.exists;
2281
- if($3.queries) $$.queries = $3.queries;
2282
- }
2283
- ;
2284
-
2285
146
  F6
2286
- : BD Dn
2287
- {$$ = $2;}
2288
- ;
2289
-
2290
147
  F7
2291
- : C4 EW Dn
2292
- { $$ = new yy.While({expression:$2,loopstat:$3});
2293
- if($3.exists) $$.exists = $3.exists;
2294
- if($3.queries) $$.queries = $3.queries;
2295
- }
2296
- ;
2297
-
2298
148
  F8
2299
- : Ar
2300
- { $$ = new yy.Continue(); }
2301
- ;
2302
-
2303
149
  F9
2304
- : Ae
2305
- { $$ = new yy.Break(); }
2306
- ;
2307
-
2308
150
  GA
2309
- : Ac Dl BB
2310
- { $$ = new yy.BeginEnd({statements:$2}); }
2311
- ;
2312
-
2313
151
  GB
2314
- : CC Eh
2315
- { $$ = new yy.Print({exprs:$2});}
2316
- | CC Select
2317
- { $$ = new yy.Print({select:$2});}
2318
- ;
2319
-
2320
152
  GC
2321
- : CM GE
2322
- { $$ = new yy.Require({paths:$2}); }
2323
- | CM GF
2324
- { $$ = new yy.Require({plugins:$2}); }
2325
- ;
2326
-
2327
- /* For test plugin system */
2328
-
2329
- Plugin
2330
- : A9 {$$ = $1.toUpperCase(); }
2331
- | Gl {$$ = $1.toUpperCase(); }
2332
- ;
2333
-
2334
153
  GD
2335
- : A9 EW
2336
- { $$ = new yy.Echo({expr:$2}); }
2337
- ;
2338
-
2339
-
2340
154
  GE
2341
- : GE Da Ek
2342
- { $1.push($3); $$ = $1; }
2343
- | Ek
2344
- { $$ = [$1]; }
2345
- ;
2346
-
2347
155
  GF
2348
- : GF Da Plugin
2349
- { $1.push($3); $$ = $1; }
2350
- | Plugin
2351
- { $$ = [$1]; }
2352
- ;
2353
-
2354
-
2355
156
  GG
2356
- : A0 GH
2357
- { $$ = new yy.Declare({declares:$2}); }
2358
- ;
2359
-
2360
157
  GH
2361
- : GI
2362
- { $$ = [$1]; }
2363
- | GH Da GI
2364
- { $1.push($3); $$ = $1; }
2365
- ;
2366
-
2367
158
  GI
2368
- : DT Gl FN
2369
- { $$ = {variable: $2}; yy.extend($$,$3); }
2370
- | DT Gl AW FN
2371
- { $$ = {variable: $2}; yy.extend($$,$4); }
2372
- | DT Gl FN DP EW
2373
- { $$ = {variable: $2, expression:$5}; yy.extend($$,$3);}
2374
- | DT Gl AW FN DP EW
2375
- { $$ = {variable: $2, expression:$6}; yy.extend($$,$4);}
2376
- ;
2377
-
2378
159
  GJ
2379
- : Cs Cf EA
2380
- { $$ = new yy.TruncateTable({table:$3});}
2381
- ;
2382
-
2383
160
  GK
2384
- : Bm GL GM GN GO GT
2385
- {
2386
- $$ = new yy.Merge(); yy.extend($$,$2); yy.extend($$,$3);
2387
- yy.extend($$,$4);
2388
- yy.extend($$,{matches:$5});yy.extend($$,$6);
2389
- }
2390
- ;
2391
-
2392
161
  GL
2393
- : D8
2394
- { $$ = {into: $1}; }
2395
- | Bb D8
2396
- { $$ = {into: $2}; }
2397
- ;
2398
-
2399
162
  GM
2400
- : Cy D8
2401
- { $$ = {using: $2}; }
2402
- ;
2403
-
2404
163
  GN
2405
- : By EW
2406
- { $$ = {on:$2}; }
2407
- ;
2408
-
2409
164
  GO
2410
- : GO GP
2411
- { $$ = $1; $$.push($2); }
2412
- | GO GR
2413
- { $$ = $1; $$.push($2); }
2414
- | GP
2415
- { $$ = [$1]; }
2416
- | GR
2417
- { $$ = [$1]; }
2418
- ;
2419
-
2420
165
  GP
2421
- : C2 Bg Cl GQ
2422
- { $$ = {matched:true, action:$4} }
2423
- | C2 Bg AK EW Cl GQ
2424
- { $$ = {matched:true, expr: $4, action:$6} }
2425
- ;
2426
-
2427
166
  GQ
2428
- : A2
2429
- { $$ = {delete:true}; }
2430
- | Cv CX Ex
2431
- { $$ = {update:$3}; }
2432
- ;
2433
-
2434
167
  GR
2435
- : C2 Bv Bg Cl GS
2436
- { $$ = {matched:false, bytarget: true, action:$5} }
2437
- | C2 Bv Bg Af Ch Cl GS
2438
- { $$ = {matched:false, bytarget: true, action:$7} }
2439
- | C2 Bv Bg AK EW Cl GS
2440
- { $$ = {matched:false, bytarget: true, expr:$5, action:$7} }
2441
- | C2 Bv Bg Af Ch AK EW Cl GS
2442
- { $$ = {matched:false, bytarget: true, expr:$7, action:$9} }
2443
- | C2 Bv Bg Af Cb Cl GS
2444
- { $$ = {matched:false, bysource: true, action:$7} }
2445
- | C2 Bv Bg Af Cb AK EW Cl GQ
2446
- { $$ = {matched:false, bysource: true, expr:$7, action:$9} }
2447
- ;
2448
-
2449
168
  GS
2450
- : BY Cz ValuesListsList
2451
- { $$ = {insert:true, values:$3}; }
2452
- | BY DR E2 DS Cz ValuesListsList
2453
- { $$ = {insert:true, values:$6, columns:$3}; }
2454
- | BY A1 Cz
2455
- { $$ = {insert:true, defaultvalues:true}; }
2456
- | BY DR E2 DS A1 Cz
2457
- { $$ = {insert:true, defaultvalues:true, columns:$3}; }
2458
- ;
2459
-
2460
169
  GT
2461
- :
2462
- | OUTPUT ES
2463
- { $$ = {output:{columns:$2}} }
2464
- | OUTPUT ES Bb Fy Gl
2465
- { $$ = {output:{columns:$2, intovar: $5, method:$4}} }
2466
- | OUTPUT ES Bb EA
2467
- { $$ = {output:{columns:$2, intotable: $4}} }
2468
- | OUTPUT ES Bb EA DR E2 DS
2469
- { $$ = {output:{columns:$2, intotable: $4, intocolumns:$6}} }
2470
- ;
2471
-
2472
- /*
2473
- CreateVertex
2474
- : Av C0
2475
- { $$ = new yy.CreateVertex(); }
2476
- | Av C0 CX Ex
2477
- { $$ = new yy.CreateVertex({set: $4}); }
2478
- | Av C0 Gl CX Ex
2479
- { $$ = new yy.CreateVertex({class:$3, set: $5}); }
2480
- | Av C0 Aq Eh
2481
- { $$ = new yy.CreateVertex({content: $4}); }
2482
- | Av C0 Gl Aq Eh
2483
- { $$ = new yy.CreateVertex({class:$3, content: $5}); }
2484
- | Av C0 Gl Select
2485
- { $$ = new yy.CreateVertex({class:$3, select:$4}); }
2486
- | Av C0 Select
2487
- { $$ = new yy.CreateVertex({select:$4}); }
2488
- ;
2489
- */
2490
- CreateVertex
2491
- : Av C0 Literal? SharpValue? StringValue? GV
2492
- {
2493
- $$ = new yy.CreateVertex({class:$3,sharp:$4, name:$5});
2494
- yy.extend($$,$6);
2495
- }
2496
- ;
2497
-
2498
170
  GU
2499
- : DA Gl
2500
- { $$ = $2; }
2501
- ;
2502
-
2503
171
  GV
2504
- :
2505
- {$$ = undefined; }
2506
- | CX Ex
2507
- { $$ = {sets:$2}; }
2508
- | Aq Eh
2509
- { $$ = {content:$2}; }
2510
- | Select
2511
- { $$ = {select:$1}; }
2512
- ;
2513
-
2514
172
  GW
2515
- : Av BA StringValue? BL EW Cn EW GV
2516
- {
2517
- $$ = new yy.CreateEdge({from:$5,to:$7,name:$3});
2518
- yy.extend($$,$8);
2519
- }
2520
- /* | Av BA StringValue? BL EW Cn EW
2521
- {
2522
- $$ = new yy.CreateEdge({from:$5,to:$7,name:$3});
2523
- }
2524
- */ ;
2525
-
2526
-
2527
- /*
2528
173
  GW
2529
- : Av BA Literal?
2530
- BL EW
2531
- Cn EW
2532
- (SET Ex | Aq Expression)?
2533
-
2534
- {
2535
- $$ = new yy.CreateEdge({class:$3, from:$5, to:$7});
2536
- if(typeof $8 != 'undefined') {
2537
- $$.type = $8;
2538
- $$.expre = $9;
2539
- }
2540
- }
2541
-
2542
- ;
2543
- */
2544
-
2545
- CreateGraph
2546
- : Av BN GX
2547
- { $$ = new yy.CreateGraph({graph:$3}); }
2548
- | Av BN BL EW
2549
- { $$ = new yy.CreateGraph({from:$4}); }
2550
- ;
2551
-
2552
174
  GX
2553
- : GX Da GY
2554
- { $$ = $1; $$.push($3); }
2555
- | GY
2556
- { $$ = [$1]; }
2557
- ;
2558
175
  GY
2559
- : Gc Json? GraphAsClause?
2560
- {
2561
- $$ = $1;
2562
- if($2) $$.json = new yy.Json({value:$2});
2563
- if($3) $$.as = $3;
2564
- }
2565
- | (GraphElement|GraphVar) DL Gc Json? GraphAsClause? DL (GraphElement|GraphVar)
2566
- {
2567
- $$ = {source:$1, target: $7};
2568
- if($4) $$.json = new yy.Json({value:$4});
2569
- if($5) $$.as = $5;
2570
- yy.extend($$,$3);
2571
- ;
2572
- }
2573
- | Gl DR GX DS
2574
- ;
2575
-
2576
176
  GZ
2577
- : Fy Gl
2578
- { $$ = {vars:$2, method:$1}; }
2579
- ;
2580
-
2581
177
  Ga
2582
- : AW Fy Gl
2583
- { $$ = $3; }
2584
- ;
2585
-
2586
178
  Gb
2587
- : Fy Gl
2588
- { $$ = $2; }
2589
- ;
2590
-
2591
179
  Gc
2592
- : Literal? SharpLiteral? STRING? ColonLiteral?
2593
- {
2594
- var s3 = $3;
2595
- $$ = {prop:$1, sharp:$2, name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), class:$4};
2596
- }
2597
- ;
2598
-
2599
180
  Gd
2600
- : Dc Gl
2601
- { $$ = $2; }
2602
- ;
2603
-
2604
181
  Ge
2605
- : DA Gl
2606
- { $$ = $2; }
2607
- | DA C7
2608
- { $$ = +$2; }
2609
- ;
2610
-
2611
182
  Gf
2612
- : A2 C0 EW (WHERE Expression)?
2613
- ;
2614
-
2615
183
  Gg
2616
- : A2 BA EW (FROM Expression)? (TO Expression)? (WHERE Expression)?
2617
- ;
2618
-
2619
184
  Gh
2620
- : Gg DX Gi
2621
- { $$ = new yy.AddRule({left:$1, right:$3}); }
2622
- | DX Gi
2623
- { $$ = new yy.AddRule({right:$2}); }
2624
- ;
2625
-
2626
185
  Gi
2627
- : Gi Da Gg
2628
- { $$ = $1; $$.push($3); }
2629
- | Gg
2630
- { $$ = [$1]; }
2631
- ;
2632
-
2633
186
  Gg
2634
- : Gl
2635
- { $$ = new yy.Term({termid:$1}); }
2636
- | Gl DR Gi DS
2637
- { $$ = new yy.Term({termid:$1,args:$3}); }
2638
- ;
2639
-
2640
187
  Gk
2641
- : DY Eg
2642
- ;
2643
-