• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

codenotary / immudb / 24236186926

10 Apr 2026 09:25AM UTC coverage: 89.169% (-0.09%) from 89.257%
24236186926

push

gh-ci

SimoneLazzaris
fix workflows

38207 of 42848 relevant lines covered (89.17%)

151869.81 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.01
/embedded/sql/sql_parser.go
1
// Code generated by goyacc -l -o sql_parser.go sql_grammar.y. DO NOT EDIT.
2
package sql
3

4
import __yyfmt__ "fmt"
5

6
import "fmt"
7

8
func setResult(l yyLexer, stmts []SQLStmt) {
4,412✔
9
        l.(*lexer).result = stmts
4,412✔
10
}
4,412✔
11

12
type yySymType struct {
13
        yys             int
14
        stmts           []SQLStmt
15
        stmt            SQLStmt
16
        datasource      DataSource
17
        colSpec         *ColSpec
18
        cols            []*ColSelector
19
        rows            []*RowSpec
20
        row             *RowSpec
21
        values          []ValueExp
22
        value           ValueExp
23
        id              string
24
        integer         uint64
25
        float           float64
26
        str             string
27
        boolean         bool
28
        blob            []byte
29
        keyword         string
30
        sqlType         SQLValueType
31
        aggFn           AggregateFn
32
        colNames        []string
33
        col             *ColSelector
34
        sel             Selector
35
        targets         []TargetEntry
36
        jsonFields      []string
37
        distinct        bool
38
        ds              DataSource
39
        tableRef        *tableRef
40
        period          period
41
        openPeriod      *openPeriod
42
        periodInstant   periodInstant
43
        joins           []*JoinSpec
44
        join            *JoinSpec
45
        joinType        JoinType
46
        check           CheckConstraint
47
        exp             ValueExp
48
        binExp          ValueExp
49
        err             error
50
        ordexps         []*OrdExp
51
        opt_ord         bool
52
        logicOp         LogicOperator
53
        cmpOp           CmpOperator
54
        pparam          int
55
        update          *colUpdate
56
        updates         []*colUpdate
57
        onConflict      *OnConflictDo
58
        permission      Permission
59
        sqlPrivilege    SQLPrivilege
60
        sqlPrivileges   []SQLPrivilege
61
        whenThenClauses []whenThenClause
62
        tableElem       TableElem
63
        tableElems      []TableElem
64
        timestampField  TimestampFieldType
65
}
66

67
const CREATE = 57346
68
const DROP = 57347
69
const USE = 57348
70
const DATABASE = 57349
71
const USER = 57350
72
const WITH = 57351
73
const PASSWORD = 57352
74
const READ = 57353
75
const READWRITE = 57354
76
const ADMIN = 57355
77
const SNAPSHOT = 57356
78
const HISTORY = 57357
79
const DIFF = 57358
80
const SINCE = 57359
81
const AFTER = 57360
82
const BEFORE = 57361
83
const UNTIL = 57362
84
const TX = 57363
85
const OF = 57364
86
const INTEGER_TYPE = 57365
87
const BOOLEAN_TYPE = 57366
88
const VARCHAR_TYPE = 57367
89
const UUID_TYPE = 57368
90
const BLOB_TYPE = 57369
91
const TIMESTAMP_TYPE = 57370
92
const FLOAT_TYPE = 57371
93
const JSON_TYPE = 57372
94
const TABLE = 57373
95
const UNIQUE = 57374
96
const INDEX = 57375
97
const ON = 57376
98
const ALTER = 57377
99
const ADD = 57378
100
const RENAME = 57379
101
const TO = 57380
102
const COLUMN = 57381
103
const CONSTRAINT = 57382
104
const PRIMARY = 57383
105
const KEY = 57384
106
const CHECK = 57385
107
const GRANT = 57386
108
const REVOKE = 57387
109
const GRANTS = 57388
110
const FOR = 57389
111
const PRIVILEGES = 57390
112
const BEGIN = 57391
113
const TRANSACTION = 57392
114
const COMMIT = 57393
115
const ROLLBACK = 57394
116
const INSERT = 57395
117
const UPSERT = 57396
118
const INTO = 57397
119
const VALUES = 57398
120
const DELETE = 57399
121
const UPDATE = 57400
122
const SET = 57401
123
const CONFLICT = 57402
124
const DO = 57403
125
const NOTHING = 57404
126
const RETURNING = 57405
127
const SELECT = 57406
128
const DISTINCT = 57407
129
const FROM = 57408
130
const JOIN = 57409
131
const HAVING = 57410
132
const WHERE = 57411
133
const GROUP = 57412
134
const BY = 57413
135
const LIMIT = 57414
136
const OFFSET = 57415
137
const ORDER = 57416
138
const ASC = 57417
139
const DESC = 57418
140
const AS = 57419
141
const UNION = 57420
142
const ALL = 57421
143
const CASE = 57422
144
const WHEN = 57423
145
const THEN = 57424
146
const ELSE = 57425
147
const END = 57426
148
const NOT = 57427
149
const LIKE = 57428
150
const IF = 57429
151
const EXISTS = 57430
152
const IN = 57431
153
const IS = 57432
154
const AUTO_INCREMENT = 57433
155
const NULL = 57434
156
const CAST = 57435
157
const SCAST = 57436
158
const SHOW = 57437
159
const DATABASES = 57438
160
const TABLES = 57439
161
const USERS = 57440
162
const BETWEEN = 57441
163
const EXTRACT = 57442
164
const YEAR = 57443
165
const MONTH = 57444
166
const DAY = 57445
167
const HOUR = 57446
168
const MINUTE = 57447
169
const SECOND = 57448
170
const NPARAM = 57449
171
const PPARAM = 57450
172
const JOINTYPE = 57451
173
const AND = 57452
174
const OR = 57453
175
const CMPOP = 57454
176
const NOT_MATCHES_OP = 57455
177
const IDENTIFIER = 57456
178
const INTEGER_LIT = 57457
179
const FLOAT_LIT = 57458
180
const VARCHAR_LIT = 57459
181
const BOOLEAN_LIT = 57460
182
const BLOB_LIT = 57461
183
const AGGREGATE_FUNC = 57462
184
const ERROR = 57463
185
const DOT = 57464
186
const ARROW = 57465
187
const STMT_SEPARATOR = 57466
188

189
var yyToknames = [...]string{
190
        "$end",
191
        "error",
192
        "$unk",
193
        "CREATE",
194
        "DROP",
195
        "USE",
196
        "DATABASE",
197
        "USER",
198
        "WITH",
199
        "PASSWORD",
200
        "READ",
201
        "READWRITE",
202
        "ADMIN",
203
        "SNAPSHOT",
204
        "HISTORY",
205
        "DIFF",
206
        "SINCE",
207
        "AFTER",
208
        "BEFORE",
209
        "UNTIL",
210
        "TX",
211
        "OF",
212
        "INTEGER_TYPE",
213
        "BOOLEAN_TYPE",
214
        "VARCHAR_TYPE",
215
        "UUID_TYPE",
216
        "BLOB_TYPE",
217
        "TIMESTAMP_TYPE",
218
        "FLOAT_TYPE",
219
        "JSON_TYPE",
220
        "TABLE",
221
        "UNIQUE",
222
        "INDEX",
223
        "ON",
224
        "ALTER",
225
        "ADD",
226
        "RENAME",
227
        "TO",
228
        "COLUMN",
229
        "CONSTRAINT",
230
        "PRIMARY",
231
        "KEY",
232
        "CHECK",
233
        "GRANT",
234
        "REVOKE",
235
        "GRANTS",
236
        "FOR",
237
        "PRIVILEGES",
238
        "BEGIN",
239
        "TRANSACTION",
240
        "COMMIT",
241
        "ROLLBACK",
242
        "INSERT",
243
        "UPSERT",
244
        "INTO",
245
        "VALUES",
246
        "DELETE",
247
        "UPDATE",
248
        "SET",
249
        "CONFLICT",
250
        "DO",
251
        "NOTHING",
252
        "RETURNING",
253
        "SELECT",
254
        "DISTINCT",
255
        "FROM",
256
        "JOIN",
257
        "HAVING",
258
        "WHERE",
259
        "GROUP",
260
        "BY",
261
        "LIMIT",
262
        "OFFSET",
263
        "ORDER",
264
        "ASC",
265
        "DESC",
266
        "AS",
267
        "UNION",
268
        "ALL",
269
        "CASE",
270
        "WHEN",
271
        "THEN",
272
        "ELSE",
273
        "END",
274
        "NOT",
275
        "LIKE",
276
        "IF",
277
        "EXISTS",
278
        "IN",
279
        "IS",
280
        "AUTO_INCREMENT",
281
        "NULL",
282
        "CAST",
283
        "SCAST",
284
        "SHOW",
285
        "DATABASES",
286
        "TABLES",
287
        "USERS",
288
        "BETWEEN",
289
        "EXTRACT",
290
        "YEAR",
291
        "MONTH",
292
        "DAY",
293
        "HOUR",
294
        "MINUTE",
295
        "SECOND",
296
        "NPARAM",
297
        "PPARAM",
298
        "JOINTYPE",
299
        "AND",
300
        "OR",
301
        "CMPOP",
302
        "NOT_MATCHES_OP",
303
        "IDENTIFIER",
304
        "INTEGER_LIT",
305
        "FLOAT_LIT",
306
        "VARCHAR_LIT",
307
        "BOOLEAN_LIT",
308
        "BLOB_LIT",
309
        "AGGREGATE_FUNC",
310
        "ERROR",
311
        "DOT",
312
        "ARROW",
313
        "','",
314
        "'+'",
315
        "'-'",
316
        "'*'",
317
        "'/'",
318
        "'%'",
319
        "'.'",
320
        "STMT_SEPARATOR",
321
        "'('",
322
        "')'",
323
        "'['",
324
        "']'",
325
}
326

327
var yyStatenames = [...]string{}
328

329
const yyEofCode = 1
330
const yyErrCode = 2
331
const yyInitialStackSize = 16
332

333
var yyExca = [...]int16{
334
        -1, 1,
335
        1, -1,
336
        -2, 0,
337
        -1, 139,
338
        86, 278,
339
        89, 278,
340
        -2, 262,
341
        -1, 370,
342
        67, 211,
343
        -2, 206,
344
        -1, 429,
345
        67, 211,
346
        -2, 208,
347
}
348

349
const yyPrivate = 57344
350

351
const yyLast = 1891
352

353
var yyAct = [...]int16{
354
        190, 528, 167, 422, 153, 278, 108, 161, 284, 213,
355
        204, 364, 428, 165, 360, 246, 139, 312, 6, 400,
356
        335, 359, 54, 275, 247, 334, 207, 409, 248, 144,
357
        102, 272, 136, 101, 135, 493, 141, 112, 102, 188,
358
        102, 405, 362, 404, 501, 500, 494, 362, 340, 397,
359
        419, 495, 362, 54, 54, 54, 489, 488, 483, 474,
360
        487, 460, 486, 362, 362, 340, 482, 480, 467, 114,
361
        440, 116, 413, 363, 339, 438, 437, 434, 396, 394,
362
        393, 386, 59, 311, 60, 361, 408, 398, 385, 379,
363
        57, 61, 378, 377, 376, 345, 133, 262, 243, 58,
364
        241, 240, 237, 230, 202, 180, 24, 205, 289, 527,
365
        62, 521, 63, 64, 65, 419, 102, 66, 397, 67,
366
        212, 68, 69, 383, 120, 70, 71, 72, 73, 74,
367
        75, 227, 228, 229, 76, 77, 214, 78, 224, 225,
368
        224, 225, 201, 328, 239, 209, 232, 192, 242, 235,
369
        193, 191, 39, 392, 354, 477, 347, 329, 32, 458,
370
        457, 98, 282, 476, 79, 33, 464, 463, 49, 439,
371
        218, 208, 80, 287, 288, 290, 233, 353, 82, 83,
372
        84, 85, 86, 87, 102, 344, 337, 210, 99, 128,
373
        261, 166, 117, 115, 251, 107, 106, 283, 216, 217,
374
        431, 270, 103, 271, 273, 236, 280, 263, 22, 286,
375
        492, 382, 22, 292, 54, 255, 276, 281, 293, 291,
376
        274, 491, 274, 256, 245, 244, 259, 260, 322, 323,
377
        324, 325, 326, 327, 456, 277, 296, 104, 299, 21,
378
        302, 455, 332, 21, 336, 331, 182, 298, 102, 308,
379
        295, 294, 179, 343, 297, 92, 333, 305, 306, 307,
380
        102, 303, 304, 445, 300, 31, 203, 301, 102, 342,
381
        94, 178, 388, 199, 389, 484, 276, 448, 251, 338,
382
        351, 352, 43, 47, 369, 310, 348, 367, 374, 375,
383
        370, 346, 371, 349, 214, 214, 127, 89, 226, 350,
384
        395, 380, 381, 220, 513, 373, 529, 530, 183, 368,
385
        423, 390, 221, 48, 365, 520, 507, 384, 498, 205,
386
        90, 91, 93, 506, 473, 219, 223, 391, 211, 372,
387
        52, 44, 96, 496, 418, 46, 45, 22, 224, 225,
388
        465, 125, 42, 51, 285, 50, 25, 119, 129, 406,
389
        511, 341, 504, 264, 251, 401, 414, 40, 356, 276,
390
        267, 268, 336, 355, 53, 399, 424, 517, 21, 407,
391
        265, 266, 425, 358, 214, 257, 421, 196, 36, 426,
392
        181, 432, 415, 121, 118, 366, 336, 420, 105, 446,
393
        447, 436, 449, 2, 433, 122, 123, 124, 451, 435,
394
        441, 34, 38, 35, 442, 269, 443, 459, 194, 195,
395
        187, 186, 251, 450, 452, 258, 276, 197, 97, 110,
396
        111, 184, 276, 417, 468, 37, 453, 416, 462, 200,
397
        470, 198, 461, 279, 466, 23, 168, 214, 471, 401,
398
        214, 214, 472, 214, 475, 469, 56, 478, 479, 485,
399
        481, 313, 314, 315, 316, 317, 318, 319, 320, 410,
400
        411, 412, 26, 30, 321, 309, 41, 357, 206, 503,
401
        222, 454, 490, 512, 524, 403, 54, 132, 130, 143,
402
        497, 291, 499, 147, 140, 502, 27, 29, 28, 138,
403
        134, 387, 149, 505, 231, 249, 430, 429, 427, 185,
404
        109, 126, 95, 214, 238, 508, 150, 514, 510, 151,
405
        509, 515, 516, 214, 20, 5, 4, 3, 522, 1,
406
        518, 525, 0, 523, 519, 0, 526, 59, 531, 60,
407
        0, 0, 0, 532, 0, 57, 61, 0, 0, 0,
408
        0, 0, 0, 0, 58, 173, 171, 177, 0, 170,
409
        175, 172, 174, 0, 0, 62, 0, 63, 64, 65,
410
        0, 0, 66, 0, 67, 0, 68, 69, 0, 0,
411
        70, 71, 72, 73, 74, 75, 0, 0, 176, 76,
412
        77, 0, 78, 0, 0, 0, 22, 0, 0, 0,
413
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414
        0, 0, 145, 0, 0, 0, 0, 137, 0, 79,
415
        142, 0, 0, 0, 164, 160, 0, 444, 0, 81,
416
        88, 169, 152, 82, 83, 84, 85, 86, 87, 162,
417
        163, 0, 0, 0, 0, 0, 166, 155, 156, 157,
418
        158, 159, 154, 59, 0, 60, 0, 0, 146, 0,
419
        0, 57, 61, 0, 148, 0, 0, 0, 0, 189,
420
        58, 173, 171, 177, 0, 170, 175, 172, 174, 0,
421
        0, 62, 0, 63, 64, 65, 0, 0, 66, 0,
422
        67, 0, 68, 69, 0, 0, 70, 71, 72, 73,
423
        74, 75, 0, 0, 176, 76, 77, 0, 78, 0,
424
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
425
        0, 0, 0, 0, 0, 0, 0, 0, 145, 0,
426
        0, 0, 0, 137, 0, 79, 142, 0, 0, 0,
427
        164, 160, 0, 80, 0, 81, 88, 169, 152, 82,
428
        83, 84, 85, 86, 87, 162, 163, 0, 0, 0,
429
        0, 0, 166, 155, 156, 157, 158, 159, 154, 59,
430
        0, 60, 0, 0, 146, 0, 0, 57, 61, 0,
431
        148, 0, 0, 0, 0, 0, 58, 173, 171, 177,
432
        0, 170, 175, 172, 174, 0, 0, 62, 0, 63,
433
        64, 65, 0, 0, 66, 0, 67, 0, 68, 69,
434
        0, 0, 70, 71, 72, 73, 74, 75, 0, 0,
435
        176, 76, 77, 0, 78, 0, 0, 0, 0, 0,
436
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
437
        0, 0, 0, 0, 145, 0, 0, 0, 0, 137,
438
        0, 79, 142, 0, 0, 0, 164, 160, 0, 80,
439
        0, 81, 88, 169, 152, 82, 83, 84, 85, 86,
440
        87, 162, 163, 0, 0, 0, 0, 0, 166, 155,
441
        156, 157, 158, 159, 154, 59, 0, 60, 0, 0,
442
        146, 131, 0, 57, 61, 0, 148, 0, 0, 0,
443
        0, 0, 58, 173, 171, 177, 0, 170, 175, 172,
444
        174, 0, 0, 62, 0, 63, 64, 65, 0, 0,
445
        66, 0, 67, 0, 68, 69, 0, 0, 70, 71,
446
        72, 73, 74, 75, 0, 0, 176, 76, 77, 0,
447
        78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
448
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
449
        145, 0, 0, 0, 0, 137, 0, 79, 142, 0,
450
        0, 0, 164, 160, 0, 80, 0, 81, 88, 169,
451
        152, 82, 83, 84, 85, 86, 87, 162, 163, 0,
452
        0, 0, 0, 0, 166, 155, 156, 157, 158, 159,
453
        154, 59, 0, 60, 0, 0, 146, 0, 0, 57,
454
        61, 0, 148, 0, 0, 0, 0, 0, 58, 173,
455
        171, 177, 0, 170, 175, 172, 174, 0, 0, 62,
456
        0, 63, 64, 65, 0, 0, 66, 0, 67, 0,
457
        68, 69, 0, 0, 70, 71, 72, 73, 74, 75,
458
        0, 0, 176, 76, 77, 0, 78, 0, 0, 0,
459
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
460
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
461
        0, 0, 0, 79, 234, 0, 0, 0, 164, 160,
462
        0, 80, 0, 81, 88, 169, 152, 82, 83, 84,
463
        85, 86, 87, 162, 163, 0, 0, 0, 0, 0,
464
        166, 155, 156, 157, 158, 159, 154, 59, 0, 60,
465
        0, 0, 146, 0, 0, 57, 61, 0, 148, 0,
466
        0, 0, 0, 0, 58, 173, 171, 177, 0, 170,
467
        175, 172, 174, 0, 0, 62, 0, 63, 64, 65,
468
        0, 0, 66, 0, 67, 0, 68, 69, 0, 0,
469
        70, 71, 72, 73, 74, 75, 0, 0, 176, 76,
470
        77, 0, 78, 0, 0, 0, 0, 0, 0, 0,
471
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472
        0, 0, 0, 0, 0, 0, 0, 0, 0, 79,
473
        234, 0, 0, 0, 0, 0, 0, 80, 0, 81,
474
        88, 169, 254, 82, 83, 84, 85, 86, 87, 0,
475
        0, 0, 0, 59, 0, 60, 55, 0, 0, 0,
476
        0, 57, 61, 0, 0, 0, 0, 0, 0, 0,
477
        58, 173, 171, 177, 402, 170, 175, 172, 174, 0,
478
        0, 62, 0, 63, 64, 65, 0, 0, 66, 0,
479
        67, 0, 68, 69, 0, 0, 70, 71, 72, 73,
480
        74, 75, 0, 0, 176, 76, 77, 0, 78, 0,
481
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
483
        0, 0, 0, 0, 0, 79, 234, 0, 0, 0,
484
        0, 0, 0, 80, 0, 81, 88, 169, 254, 82,
485
        83, 84, 85, 86, 87, 0, 0, 0, 0, 59,
486
        0, 60, 55, 0, 0, 0, 0, 57, 61, 0,
487
        0, 0, 0, 0, 0, 330, 58, 173, 171, 177,
488
        0, 170, 175, 172, 174, 0, 0, 62, 0, 63,
489
        64, 65, 0, 0, 253, 250, 67, 252, 68, 69,
490
        0, 0, 70, 71, 72, 73, 74, 75, 0, 0,
491
        176, 76, 77, 0, 78, 0, 0, 0, 0, 0,
492
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
493
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
494
        0, 79, 234, 0, 0, 0, 0, 0, 0, 80,
495
        0, 81, 88, 169, 254, 82, 83, 84, 85, 86,
496
        87, 59, 0, 60, 0, 0, 0, 0, 55, 57,
497
        61, 0, 0, 0, 0, 0, 0, 0, 58, 173,
498
        171, 177, 0, 170, 175, 172, 174, 0, 0, 62,
499
        0, 63, 64, 65, 0, 0, 66, 0, 67, 0,
500
        68, 69, 0, 0, 70, 71, 72, 73, 74, 75,
501
        0, 0, 176, 76, 77, 0, 78, 0, 0, 0,
502
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
503
        0, 0, 0, 0, 0, 0, 10, 12, 11, 0,
504
        0, 0, 0, 79, 234, 0, 0, 0, 0, 0,
505
        0, 80, 0, 81, 88, 169, 254, 82, 83, 84,
506
        85, 86, 87, 59, 0, 60, 0, 13, 0, 0,
507
        55, 57, 61, 0, 0, 0, 14, 15, 0, 0,
508
        58, 7, 0, 8, 9, 16, 17, 0, 0, 18,
509
        19, 62, 0, 63, 64, 65, 22, 0, 66, 0,
510
        67, 0, 68, 69, 0, 0, 70, 71, 72, 73,
511
        74, 75, 0, 0, 0, 76, 77, 0, 78, 0,
512
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0,
513
        0, 0, 0, 0, 0, 215, 0, 0, 0, 0,
514
        0, 0, 0, 0, 0, 79, 0, 0, 0, 59,
515
        0, 60, 0, 80, 0, 81, 88, 57, 61, 82,
516
        83, 84, 85, 86, 87, 0, 58, 0, 0, 0,
517
        0, 0, 55, 0, 0, 0, 0, 62, 113, 63,
518
        64, 65, 0, 0, 66, 0, 67, 0, 68, 69,
519
        0, 0, 70, 71, 72, 73, 74, 75, 0, 0,
520
        0, 76, 77, 0, 78, 0, 0, 0, 0, 0,
521
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523
        0, 79, 0, 0, 0, 59, 0, 60, 0, 80,
524
        0, 81, 88, 57, 61, 82, 83, 84, 85, 86,
525
        87, 0, 58, 0, 0, 0, 0, 0, 55, 0,
526
        0, 0, 0, 62, 0, 63, 64, 65, 0, 0,
527
        66, 0, 67, 0, 68, 69, 0, 0, 70, 71,
528
        72, 73, 74, 75, 0, 0, 0, 76, 77, 0,
529
        78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531
        0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
532
        0, 59, 0, 60, 0, 80, 0, 81, 88, 57,
533
        61, 82, 83, 84, 85, 86, 87, 0, 58, 0,
534
        0, 0, 0, 0, 55, 0, 0, 0, 0, 62,
535
        0, 63, 64, 65, 0, 0, 66, 0, 67, 0,
536
        68, 69, 0, 0, 70, 71, 72, 73, 74, 75,
537
        0, 0, 0, 76, 77, 0, 78, 0, 0, 0,
538
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
539
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540
        0, 0, 0, 100, 0, 0, 0, 0, 0, 0,
541
        0, 80, 0, 81, 88, 0, 0, 82, 83, 84,
542
        85, 86, 87, 0, 0, 0, 0, 0, 0, 0,
543
        55,
544
}
545

546
var yyPact = [...]int16{
547
        1492, -1000, -1000, -25, -1000, -1000, -1000, 296, -1000, -1000,
548
        455, 151, 370, 394, 278, 278, 290, 288, 264, 1690,
549
        219, 224, 267, -1000, 1492, -1000, 74, 1776, 150, 355,
550
        82, -1000, 81, 402, 1690, 1604, 79, 1690, 78, 350,
551
        299, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 349,
552
        1690, 1690, 1690, 282, -1000, -1000, -1000, -1000, -1000, -1000,
553
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
554
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
555
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 217,
556
        -1000, -1000, 75, -1000, 301, 754, -1000, -1000, 186, -1000,
557
        167, -27, -1000, 346, 161, 150, 412, -1000, -1000, 391,
558
        638, 638, -1000, 1690, 28, -1000, 372, 408, 424, -1000,
559
        278, 422, -28, -28, 250, 57, 144, -1000, -1000, 73,
560
        262, -1000, -4, 1518, 87, 89, -1000, 870, -1000, 213,
561
        -1000, 4, -29, -1000, -1000, 870, 986, -1000, 870, 111,
562
        -1000, -1000, -30, 21, -31, -1000, -1000, -1000, -1000, -1000,
563
        -32, -1000, -1000, -1000, -1000, 26, -34, -1000, -1000, -1000,
564
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 137, 136,
565
        1314, 1690, 135, 341, 405, -1000, 638, 638, -1000, 870,
566
        -1000, -1000, -35, 1416, 314, 332, 321, 395, 1690, -1000,
567
        1690, 148, 1416, 148, 427, 870, 38, -1000, 85, -1000,
568
        -1000, 77, 870, -1000, -1000, 1690, 870, 870, -1000, 986,
569
        162, 986, 178, 986, 986, 986, -1000, 986, 986, 986,
570
        144, 204, -1000, -1000, -1000, -50, 428, 127, 20, 40,
571
        1208, 870, 1416, 870, 72, 1690, -59, -1000, -1000, -1000,
572
        309, 428, 870, 71, -1000, -37, -1000, 1690, 39, -1000,
573
        -1000, -1000, 1416, -1000, 1416, 1690, 1416, 1416, 63, 37,
574
        325, 320, 339, -47, -1000, -60, -1000, -1000, 242, 352,
575
        -1000, 427, 57, 870, 427, 402, 273, -38, -39, -40,
576
        -43, 1518, 1518, -1000, 89, -1000, 15, -1000, 119, 13,
577
        986, -44, 15, 4, 4, -1000, -1000, -1000, -52, 191,
578
        870, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
579
        -1000, 261, -1000, -1000, -1000, -1000, -1000, -1000, 36, -1000,
580
        -53, -54, 223, -1000, -55, -6, -1000, -1000, -45, -1000,
581
        1314, 1102, -91, -1000, 306, 1416, -46, 448, -61, -1000,
582
        -1000, 318, -1000, -1000, 448, 419, 415, -1000, 274, -9,
583
        -1000, 870, 1416, -1000, 237, 870, 338, 242, -1000, -1000,
584
        91, 1518, -47, -56, 377, 369, -57, -58, 55, -63,
585
        -1000, -1000, -1000, 986, 15, 522, -1000, 179, 870, 870,
586
        195, 870, -1000, -1000, -1000, 428, -1000, 870, 1314, -1000,
587
        -1000, -1000, 1416, 149, 45, 44, 870, -72, 1416, -1000,
588
        -1000, -1000, -1000, -1000, 1416, -1000, 53, 52, 279, -47,
589
        -65, -1000, -1000, 870, -1000, 1102, 237, 250, -1000, 91,
590
        257, -1000, -1000, -74, 1518, 49, 41, 1518, 1518, -66,
591
        1518, 15, -67, -75, 224, -1000, 193, -1000, 870, -71,
592
        -73, -1000, -76, -77, 130, -1000, 118, -100, -87, -1000,
593
        -1000, -82, -1000, -1000, -1000, 271, -1000, -1000, -1000, -1000,
594
        -1000, 248, -1000, 77, -1000, -1000, -88, -89, -1000, -1000,
595
        -1000, -1000, -1000, -1000, 870, -1000, -1000, -1000, -1000, -1000,
596
        311, -1000, -1000, -1000, -1000, -1000, -1000, 255, 245, 427,
597
        1518, 402, -1000, -1000, 308, 230, 870, 1416, 333, -1000,
598
        1518, -1000, 242, 244, -1000, -13, -1000, 870, -1000, 237,
599
        870, 1416, -1000, -1000, -15, 231, -1000, 870, -1000, -1000,
600
        -1000, 231, -1000,
601
}
602

603
var yyPgo = [...]int16{
604
        0, 519, 393, 517, 516, 515, 18, 514, 28, 23,
605
        142, 19, 511, 21, 14, 20, 25, 509, 7, 506,
606
        504, 4, 502, 501, 8, 31, 344, 6, 500, 499,
607
        39, 498, 12, 497, 496, 495, 24, 15, 0, 494,
608
        10, 493, 492, 491, 490, 34, 489, 484, 16, 32,
609
        36, 29, 483, 480, 11, 3, 479, 478, 477, 475,
610
        9, 474, 473, 1, 5, 202, 472, 471, 470, 469,
611
        26, 468, 467, 27, 466, 152, 465, 464, 17, 446,
612
        436, 2, 33, 13, 435,
613
}
614

615
var yyR1 = [...]int8{
616
        0, 1, 2, 2, 84, 84, 3, 3, 3, 4,
617
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
618
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
619
        4, 4, 4, 4, 4, 75, 75, 75, 74, 74,
620
        74, 74, 74, 74, 74, 73, 73, 73, 73, 65,
621
        65, 5, 5, 5, 5, 25, 25, 72, 72, 71,
622
        71, 70, 13, 13, 14, 12, 12, 16, 16, 15,
623
        15, 17, 17, 17, 17, 17, 17, 17, 17, 17,
624
        17, 78, 78, 78, 78, 78, 78, 78, 78, 18,
625
        37, 37, 36, 36, 36, 8, 69, 69, 59, 59,
626
        59, 66, 66, 67, 67, 67, 6, 6, 6, 6,
627
        6, 6, 6, 6, 7, 7, 23, 23, 22, 22,
628
        57, 57, 58, 58, 19, 19, 19, 19, 20, 20,
629
        21, 21, 82, 83, 83, 9, 9, 11, 11, 10,
630
        10, 80, 80, 80, 80, 80, 80, 80, 80, 80,
631
        80, 80, 81, 81, 79, 79, 79, 79, 79, 79,
632
        79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
633
        79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
634
        79, 79, 79, 79, 79, 79, 24, 24, 24, 24,
635
        24, 24, 24, 24, 24, 24, 26, 27, 28, 28,
636
        28, 29, 29, 29, 30, 30, 31, 31, 32, 32,
637
        33, 34, 34, 40, 40, 53, 53, 41, 41, 54,
638
        54, 55, 55, 62, 62, 64, 64, 61, 61, 63,
639
        63, 63, 60, 60, 60, 35, 35, 39, 39, 56,
640
        76, 76, 43, 43, 38, 44, 44, 45, 45, 49,
641
        49, 46, 46, 46, 46, 46, 46, 46, 47, 47,
642
        47, 47, 47, 48, 48, 48, 50, 50, 50, 50,
643
        51, 51, 52, 52, 42, 42, 42, 42, 68, 68,
644
        77, 77, 77, 77, 77, 77,
645
}
646

647
var yyR2 = [...]int8{
648
        0, 1, 2, 3, 0, 1, 1, 1, 1, 2,
649
        1, 1, 1, 6, 3, 2, 3, 3, 9, 6,
650
        3, 8, 9, 7, 5, 6, 6, 8, 6, 6,
651
        7, 7, 3, 8, 8, 2, 1, 3, 1, 1,
652
        1, 1, 1, 1, 1, 0, 1, 1, 1, 0,
653
        3, 6, 5, 7, 8, 2, 1, 0, 4, 1,
654
        3, 3, 1, 3, 3, 1, 3, 0, 1, 1,
655
        3, 1, 1, 1, 1, 1, 6, 1, 1, 1,
656
        1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
657
        1, 3, 1, 1, 3, 6, 0, 2, 0, 3,
658
        3, 0, 1, 0, 1, 2, 1, 4, 2, 2,
659
        3, 2, 2, 4, 13, 3, 0, 1, 0, 1,
660
        1, 1, 2, 4, 1, 2, 4, 4, 2, 3,
661
        1, 3, 1, 1, 1, 1, 3, 1, 3, 0,
662
        3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
663
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
664
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
665
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
666
        1, 1, 1, 1, 1, 1, 3, 4, 4, 4,
667
        4, 4, 4, 2, 6, 7, 1, 2, 0, 2,
668
        2, 0, 2, 2, 2, 1, 0, 1, 1, 2,
669
        6, 0, 1, 0, 2, 0, 3, 0, 2, 0,
670
        2, 0, 2, 0, 3, 0, 4, 2, 4, 0,
671
        1, 1, 0, 1, 2, 2, 4, 0, 1, 5,
672
        4, 5, 0, 2, 1, 3, 1, 3, 1, 2,
673
        1, 3, 3, 4, 5, 4, 3, 1, 4, 6,
674
        6, 1, 1, 3, 3, 1, 3, 3, 3, 1,
675
        2, 1, 3, 1, 1, 1, 3, 6, 0, 1,
676
        1, 1, 1, 1, 1, 1,
677
}
678

679
var yyChk = [...]int16{
680
        -1000, -1, -2, -3, -4, -5, -6, 49, 51, 52,
681
        4, 6, 5, 35, 44, 45, 53, 54, 57, 58,
682
        -7, 95, 64, -84, 131, 50, 7, 31, 33, 32,
683
        8, 114, 7, 14, 31, 33, 8, 31, 8, -75,
684
        79, -74, 64, 4, 53, 58, 57, 5, 35, -75,
685
        55, 55, 66, -26, -81, 114, -79, 13, 22, 5,
686
        7, 14, 33, 35, 36, 37, 40, 42, 44, 45,
687
        48, 49, 50, 51, 52, 53, 57, 58, 60, 87,
688
        95, 97, 101, 102, 103, 104, 105, 106, 98, 78,
689
        96, 97, 31, 98, 46, -22, 65, -2, 87, 114,
690
        87, -82, -81, -65, 87, 33, 114, 114, -27, -28,
691
        17, 18, -81, 34, -82, 114, -82, 114, 34, 48,
692
        124, 34, -26, -26, -26, 59, -23, 79, 114, 47,
693
        -57, 127, -58, -38, -44, -45, -49, 85, -46, -48,
694
        -47, -50, 88, -56, -51, 80, 126, -52, 132, -42,
695
        -19, -17, 100, -21, 120, 115, 116, 117, 118, 119,
696
        93, -18, 107, 108, 92, -83, 114, -81, -80, 99,
697
        27, 24, 29, 23, 30, 28, 56, 25, 85, 85,
698
        132, 34, 85, -65, 9, -29, 20, 19, -30, 21,
699
        -38, -30, -82, 122, 36, 37, 5, 9, 7, -75,
700
        7, -10, 132, -10, -40, 69, -71, -70, 114, -6,
701
        114, 66, 124, -60, -81, 77, 111, 110, -49, 112,
702
        90, 99, -68, 113, 125, 126, 85, 127, 128, 129,
703
        132, -39, -38, -51, 88, -38, 94, 132, -20, 123,
704
        132, 132, 122, 132, 88, 88, -37, -36, -8, -35,
705
        41, -83, 43, 40, 100, -82, 88, 34, 10, -30,
706
        -30, -38, 132, -83, 39, 38, 39, 39, 40, 10,
707
        -81, -81, -25, 56, -6, -9, -83, -25, -64, 6,
708
        -38, -40, 124, 112, -24, -26, 132, 96, 97, 31,
709
        98, -18, -38, -81, -45, -49, -48, 92, 85, -48,
710
        86, 89, -48, -50, -50, -51, -51, -51, -6, -76,
711
        81, 133, -78, 23, 24, 25, 26, 27, 28, 29,
712
        30, -77, 101, 102, 103, 104, 105, 106, 123, 117,
713
        127, -21, -38, -83, -16, -15, -38, 114, -82, 133,
714
        124, 42, -78, -38, 114, 132, -82, 117, -9, -8,
715
        -82, -83, -83, 114, 117, 38, 38, -72, 34, -13,
716
        -14, 132, 124, 133, -54, 72, 33, -64, -70, -38,
717
        -64, -27, 56, -6, 15, 16, 132, 132, 132, 132,
718
        -60, -60, 92, 110, -48, 132, 133, -43, 81, 83,
719
        -38, 66, 117, 133, 133, 77, 133, 124, 132, -36,
720
        -11, -83, 132, -59, 134, 132, 43, -9, 132, -73,
721
        11, 12, 13, 133, 38, -73, 8, 8, 60, 124,
722
        -16, -83, -55, 73, -38, 34, -54, -31, -32, -33,
723
        -34, 109, -60, -13, 133, 22, 22, 133, 133, 114,
724
        133, -48, -6, -15, 95, 84, -38, -38, 82, -38,
725
        -78, -38, -37, -9, -67, 92, 85, 115, 115, -38,
726
        133, -9, -83, 114, 114, 61, -14, 133, -38, -11,
727
        -55, -40, -32, 67, 133, -60, 114, 114, -60, -60,
728
        133, -60, 133, 133, 82, -38, 133, 133, 133, 133,
729
        -66, 91, 92, 135, 133, 133, 62, -53, 70, -24,
730
        133, 133, -38, -69, 41, -41, 68, 71, -64, -60,
731
        -27, 42, -62, 74, -38, -12, -21, 34, -60, -54,
732
        71, 124, -38, -55, -61, -38, -21, 124, -63, 75,
733
        76, -38, -63,
734
}
735

736
var yyDef = [...]int16{
737
        0, -2, 1, 4, 6, 7, 8, 10, 11, 12,
738
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739
        106, 0, 118, 2, 5, 9, 0, 0, 49, 0,
740
        0, 15, 0, 198, 0, 0, 0, 0, 0, 0,
741
        0, 36, 38, 39, 40, 41, 42, 43, 44, 0,
742
        0, 0, 0, 0, 196, 152, 153, 154, 155, 156,
743
        157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
744
        167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
745
        177, 178, 179, 180, 181, 182, 183, 184, 185, 116,
746
        108, 109, 0, 111, 112, 0, 119, 3, 0, 14,
747
        176, 0, 132, 0, 0, 49, 0, 16, 17, 201,
748
        0, 0, 20, 0, 0, 32, 0, 0, 0, 35,
749
        0, 0, 139, 139, 213, 0, 0, 117, 110, 0,
750
        115, 120, 121, 232, 244, 246, 248, 0, 250, -2,
751
        257, 265, 144, 261, 269, 237, 0, 271, 0, 273,
752
        274, 275, 145, 124, 0, 71, 72, 73, 74, 75,
753
        0, 77, 78, 79, 80, 130, 152, 133, 134, 141,
754
        142, 143, 146, 147, 148, 149, 150, 151, 0, 0,
755
        0, 0, 0, 0, 0, 197, 0, 0, 199, 0,
756
        205, 200, 0, 0, 0, 0, 0, 0, 0, 37,
757
        0, 0, 0, 0, 225, 0, 213, 59, 0, 107,
758
        113, 0, 0, 122, 233, 0, 0, 0, 249, 0,
759
        0, 0, 0, 0, 0, 0, 279, 0, 0, 0,
760
        0, 0, 238, 270, 144, 0, 0, 0, 125, 0,
761
        0, 0, 0, 67, 0, 0, 0, 90, 92, 93,
762
        0, 0, 0, 163, 145, 0, 50, 0, 0, 202,
763
        203, 204, 0, 24, 0, 0, 0, 0, 0, 0,
764
        0, 0, 57, 0, 56, 0, 135, 52, 219, 0,
765
        214, 225, 0, 0, 225, 198, 0, 0, 178, 0,
766
        185, 232, 232, 234, 245, 247, 251, 252, 0, 0,
767
        0, 0, 256, 263, 264, 266, 267, 268, 0, 242,
768
        0, 272, 276, 81, 82, 83, 84, 85, 86, 87,
769
        88, 0, 280, 281, 282, 283, 284, 285, 0, 128,
770
        0, 0, 0, 131, 0, 68, 69, 13, 0, 19,
771
        0, 0, 98, 235, 0, 0, 0, 45, 0, 25,
772
        26, 0, 28, 29, 45, 0, 0, 51, 0, 55,
773
        62, 67, 0, 140, 221, 0, 0, 219, 60, 61,
774
        -2, 232, 0, 0, 0, 0, 0, 0, 0, 0,
775
        193, 123, 253, 0, 255, 0, 258, 0, 0, 0,
776
        0, 0, 129, 126, 127, 0, 89, 0, 0, 91,
777
        94, 137, 0, 103, 0, 0, 0, 0, 0, 30,
778
        46, 47, 48, 23, 0, 31, 0, 0, 0, 0,
779
        0, 136, 53, 0, 220, 0, 221, 213, 207, -2,
780
        0, 212, 186, 0, 232, 0, 0, 232, 232, 0,
781
        232, 254, 0, 0, 177, 239, 0, 243, 0, 0,
782
        0, 70, 0, 0, 101, 104, 0, 0, 0, 236,
783
        21, 0, 27, 33, 34, 0, 63, 64, 222, 226,
784
        54, 215, 209, 0, 187, 188, 0, 0, 189, 190,
785
        191, 192, 259, 260, 0, 240, 277, 76, 18, 138,
786
        96, 102, 105, 99, 100, 22, 58, 217, 0, 225,
787
        232, 198, 241, 95, 0, 223, 0, 0, 0, 194,
788
        232, 97, 219, 0, 218, 216, 65, 0, 195, 221,
789
        0, 0, 210, 114, 224, 229, 66, 0, 227, 230,
790
        231, 229, 228,
791
}
792

793
var yyTok1 = [...]uint8{
794
        1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
795
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
796
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
797
        3, 3, 3, 3, 3, 3, 3, 129, 3, 3,
798
        132, 133, 127, 125, 124, 126, 130, 128, 3, 3,
799
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
800
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
801
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
802
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
803
        3, 134, 3, 135,
804
}
805

806
var yyTok2 = [...]uint8{
807
        2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
808
        12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
809
        22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
810
        32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
811
        42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
812
        52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
813
        62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
814
        72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
815
        82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
816
        92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
817
        102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
818
        112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
819
        122, 123, 131,
820
}
821

822
var yyTok3 = [...]int8{
823
        0,
824
}
825

826
var yyErrorMessages = [...]struct {
827
        state int
828
        token int
829
        msg   string
830
}{}
831

832
/*        parser for yacc output        */
833

834
var (
835
        yyDebug        = 0
836
        yyErrorVerbose = false
837
)
838

839
type yyLexer interface {
840
        Lex(lval *yySymType) int
841
        Error(s string)
842
}
843

844
type yyParser interface {
845
        Parse(yyLexer) int
846
        Lookahead() int
847
}
848

849
type yyParserImpl struct {
850
        lval  yySymType
851
        stack [yyInitialStackSize]yySymType
852
        char  int
853
}
854

855
func (p *yyParserImpl) Lookahead() int {
×
856
        return p.char
×
857
}
×
858

859
func yyNewParser() yyParser {
4,561✔
860
        return &yyParserImpl{}
4,561✔
861
}
4,561✔
862

863
const yyFlag = -1000
864

865
func yyTokname(c int) string {
161✔
866
        if c >= 1 && c-1 < len(yyToknames) {
322✔
867
                if yyToknames[c-1] != "" {
322✔
868
                        return yyToknames[c-1]
161✔
869
                }
161✔
870
        }
871
        return __yyfmt__.Sprintf("tok-%v", c)
×
872
}
873

874
func yyStatname(s int) string {
×
875
        if s >= 0 && s < len(yyStatenames) {
×
876
                if yyStatenames[s] != "" {
×
877
                        return yyStatenames[s]
×
878
                }
×
879
        }
880
        return __yyfmt__.Sprintf("state-%v", s)
×
881
}
882

883
func yyErrorMessage(state, lookAhead int) string {
151✔
884
        const TOKSTART = 4
151✔
885

151✔
886
        if !yyErrorVerbose {
155✔
887
                return "syntax error"
4✔
888
        }
4✔
889

890
        for _, e := range yyErrorMessages {
147✔
891
                if e.state == state && e.token == lookAhead {
×
892
                        return "syntax error: " + e.msg
×
893
                }
×
894
        }
895

896
        res := "syntax error: unexpected " + yyTokname(lookAhead)
147✔
897

147✔
898
        // To match Bison, suggest at most four expected tokens.
147✔
899
        expected := make([]int, 0, 4)
147✔
900

147✔
901
        // Look for shiftable tokens.
147✔
902
        base := int(yyPact[state])
147✔
903
        for tok := TOKSTART; tok-1 < len(yyToknames); tok++ {
4,629✔
904
                if n := base + tok; n >= 0 && n < yyLast && int(yyChk[int(yyAct[n])]) == tok {
5,166✔
905
                        if len(expected) == cap(expected) {
818✔
906
                                return res
134✔
907
                        }
134✔
908
                        expected = append(expected, tok)
550✔
909
                }
910
        }
911

912
        if yyDef[state] == -2 {
15✔
913
                i := 0
2✔
914
                for yyExca[i] != -1 || int(yyExca[i+1]) != state {
2✔
915
                        i += 2
×
916
                }
×
917

918
                // Look for tokens that we accept or reduce.
919
                for i += 2; yyExca[i] >= 0; i += 2 {
4✔
920
                        tok := int(yyExca[i])
2✔
921
                        if tok < TOKSTART || yyExca[i+1] == 0 {
4✔
922
                                continue
2✔
923
                        }
924
                        if len(expected) == cap(expected) {
×
925
                                return res
×
926
                        }
×
927
                        expected = append(expected, tok)
×
928
                }
929

930
                // If the default action is to accept or reduce, give up.
931
                if yyExca[i+1] != 0 {
2✔
932
                        return res
×
933
                }
×
934
        }
935

936
        for i, tok := range expected {
27✔
937
                if i == 0 {
25✔
938
                        res += ", expecting "
11✔
939
                } else {
14✔
940
                        res += " or "
3✔
941
                }
3✔
942
                res += yyTokname(tok)
14✔
943
        }
944
        return res
13✔
945
}
946

947
func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
76,663✔
948
        token = 0
76,663✔
949
        char = lex.Lex(lval)
76,663✔
950
        if char <= 0 {
81,075✔
951
                token = int(yyTok1[0])
4,412✔
952
                goto out
4,412✔
953
        }
954
        if char < len(yyTok1) {
99,664✔
955
                token = int(yyTok1[char])
27,413✔
956
                goto out
27,413✔
957
        }
958
        if char >= yyPrivate {
89,676✔
959
                if char < yyPrivate+len(yyTok2) {
89,676✔
960
                        token = int(yyTok2[char-yyPrivate])
44,838✔
961
                        goto out
44,838✔
962
                }
963
        }
964
        for i := 0; i < len(yyTok3); i += 2 {
×
965
                token = int(yyTok3[i+0])
×
966
                if token == char {
×
967
                        token = int(yyTok3[i+1])
×
968
                        goto out
×
969
                }
970
        }
971

972
out:
973
        if token == 0 {
76,663✔
974
                token = int(yyTok2[1]) /* unknown char */
×
975
        }
×
976
        if yyDebug >= 3 {
76,663✔
977
                __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
×
978
        }
×
979
        return char, token
76,663✔
980
}
981

982
func yyParse(yylex yyLexer) int {
4,561✔
983
        return yyNewParser().Parse(yylex)
4,561✔
984
}
4,561✔
985

986
func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
4,561✔
987
        var yyn int
4,561✔
988
        var yyVAL yySymType
4,561✔
989
        var yyDollar []yySymType
4,561✔
990
        _ = yyDollar // silence set and not used
4,561✔
991
        yyS := yyrcvr.stack[:]
4,561✔
992

4,561✔
993
        Nerrs := 0   /* number of errors */
4,561✔
994
        Errflag := 0 /* error recovery flag */
4,561✔
995
        yystate := 0
4,561✔
996
        yyrcvr.char = -1
4,561✔
997
        yytoken := -1 // yyrcvr.char translated into internal numbering
4,561✔
998
        defer func() {
9,122✔
999
                // Make sure we report no lookahead when not parsing.
4,561✔
1000
                yystate = -1
4,561✔
1001
                yyrcvr.char = -1
4,561✔
1002
                yytoken = -1
4,561✔
1003
        }()
4,561✔
1004
        yyp := -1
4,561✔
1005
        goto yystack
4,561✔
1006

1007
ret0:
1008
        return 0
4,410✔
1009

4,410✔
1010
ret1:
4,410✔
1011
        return 1
151✔
1012

151✔
1013
yystack:
151✔
1014
        /* put a state and value onto the stack */
1015
        if yyDebug >= 4 {
331,440✔
1016
                __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
×
1017
        }
×
1018

1019
        yyp++
331,440✔
1020
        if yyp >= len(yyS) {
331,540✔
1021
                nyys := make([]yySymType, len(yyS)*2)
100✔
1022
                copy(nyys, yyS)
100✔
1023
                yyS = nyys
100✔
1024
        }
100✔
1025
        yyS[yyp] = yyVAL
331,440✔
1026
        yyS[yyp].yys = yystate
331,440✔
1027

331,440✔
1028
yynewstate:
331,440✔
1029
        yyn = int(yyPact[yystate])
331,440✔
1030
        if yyn <= yyFlag {
500,694✔
1031
                goto yydefault /* simple state */
169,254✔
1032
        }
1033
        if yyrcvr.char < 0 {
238,849✔
1034
                yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
76,663✔
1035
        }
76,663✔
1036
        yyn += yytoken
162,186✔
1037
        if yyn < 0 || yyn >= yyLast {
169,055✔
1038
                goto yydefault
6,869✔
1039
        }
1040
        yyn = int(yyAct[yyn])
155,317✔
1041
        if int(yyChk[yyn]) == yytoken { /* valid shift */
227,419✔
1042
                yyrcvr.char = -1
72,102✔
1043
                yytoken = -1
72,102✔
1044
                yyVAL = yyrcvr.lval
72,102✔
1045
                yystate = yyn
72,102✔
1046
                if Errflag > 0 {
72,102✔
1047
                        Errflag--
×
1048
                }
×
1049
                goto yystack
72,102✔
1050
        }
1051

1052
yydefault:
1053
        /* default state action */
1054
        yyn = int(yyDef[yystate])
259,338✔
1055
        if yyn == -2 {
275,613✔
1056
                if yyrcvr.char < 0 {
16,275✔
1057
                        yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
×
1058
                }
×
1059

1060
                /* look through exception table */
1061
                xi := 0
16,275✔
1062
                for {
71,530✔
1063
                        if yyExca[xi+0] == -1 && int(yyExca[xi+1]) == yystate {
71,530✔
1064
                                break
16,275✔
1065
                        }
1066
                        xi += 2
38,980✔
1067
                }
1068
                for xi += 2; ; xi += 2 {
55,364✔
1069
                        yyn = int(yyExca[xi+0])
39,089✔
1070
                        if yyn < 0 || yyn == yytoken {
55,364✔
1071
                                break
16,275✔
1072
                        }
1073
                }
1074
                yyn = int(yyExca[xi+1])
16,275✔
1075
                if yyn < 0 {
20,685✔
1076
                        goto ret0
4,410✔
1077
                }
1078
        }
1079
        if yyn == 0 {
255,079✔
1080
                /* error ... attempt to resume parsing */
151✔
1081
                switch Errflag {
151✔
1082
                case 0: /* brand new error */
151✔
1083
                        yylex.Error(yyErrorMessage(yystate, yytoken))
151✔
1084
                        Nerrs++
151✔
1085
                        if yyDebug >= 1 {
151✔
1086
                                __yyfmt__.Printf("%s", yyStatname(yystate))
×
1087
                                __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
×
1088
                        }
×
1089
                        fallthrough
151✔
1090

1091
                case 1, 2: /* incompletely recovered error ... try again */
151✔
1092
                        Errflag = 3
151✔
1093

151✔
1094
                        /* find a state where "error" is a legal shift action */
151✔
1095
                        for yyp >= 0 {
727✔
1096
                                yyn = int(yyPact[yyS[yyp].yys]) + yyErrCode
576✔
1097
                                if yyn >= 0 && yyn < yyLast {
1,103✔
1098
                                        yystate = int(yyAct[yyn]) /* simulate a shift of "error" */
527✔
1099
                                        if int(yyChk[yystate]) == yyErrCode {
527✔
1100
                                                goto yystack
×
1101
                                        }
1102
                                }
1103

1104
                                /* the current p has no shift on "error", pop stack */
1105
                                if yyDebug >= 2 {
576✔
1106
                                        __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
×
1107
                                }
×
1108
                                yyp--
576✔
1109
                        }
1110
                        /* there is no state on the stack with an error shift ... abort */
1111
                        goto ret1
151✔
1112

1113
                case 3: /* no shift yet; clobber input char */
×
1114
                        if yyDebug >= 2 {
×
1115
                                __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
×
1116
                        }
×
1117
                        if yytoken == yyEofCode {
×
1118
                                goto ret1
×
1119
                        }
1120
                        yyrcvr.char = -1
×
1121
                        yytoken = -1
×
1122
                        goto yynewstate /* try again in the same state */
×
1123
                }
1124
        }
1125

1126
        /* reduction by production yyn */
1127
        if yyDebug >= 2 {
254,777✔
1128
                __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
×
1129
        }
×
1130

1131
        yynt := yyn
254,777✔
1132
        yypt := yyp
254,777✔
1133
        _ = yypt // guard against "declared and not used"
254,777✔
1134

254,777✔
1135
        yyp -= int(yyR2[yyn])
254,777✔
1136
        // yyp is now the index of $0. Perform the default action. Iff the
254,777✔
1137
        // reduced production is ε, $1 is possibly out of range.
254,777✔
1138
        if yyp+1 >= len(yyS) {
254,803✔
1139
                nyys := make([]yySymType, len(yyS)*2)
26✔
1140
                copy(nyys, yyS)
26✔
1141
                yyS = nyys
26✔
1142
        }
26✔
1143
        yyVAL = yyS[yyp+1]
254,777✔
1144

254,777✔
1145
        /* consult goto table to find next state */
254,777✔
1146
        yyn = int(yyR1[yyn])
254,777✔
1147
        yyg := int(yyPgo[yyn])
254,777✔
1148
        yyj := yyg + yyS[yyp].yys + 1
254,777✔
1149

254,777✔
1150
        if yyj >= yyLast {
254,777✔
1151
                yystate = int(yyAct[yyg])
×
1152
        } else {
254,777✔
1153
                yystate = int(yyAct[yyj])
254,777✔
1154
                if int(yyChk[yystate]) != -yyn {
468,136✔
1155
                        yystate = int(yyAct[yyg])
213,359✔
1156
                }
213,359✔
1157
        }
1158
        // dummy call; replaced with literal code
1159
        switch yynt {
254,777✔
1160

1161
        case 1:
4,412✔
1162
                yyDollar = yyS[yypt-1 : yypt+1]
4,412✔
1163
                {
8,824✔
1164
                        yyVAL.stmts = yyDollar[1].stmts
4,412✔
1165
                        setResult(yylex, yyDollar[1].stmts)
4,412✔
1166
                }
4,412✔
1167
        case 2:
4,412✔
1168
                yyDollar = yyS[yypt-2 : yypt+1]
4,412✔
1169
                {
8,824✔
1170
                        yyVAL.stmts = []SQLStmt{yyDollar[1].stmt}
4,412✔
1171
                }
4,412✔
1172
        case 3:
103✔
1173
                yyDollar = yyS[yypt-3 : yypt+1]
103✔
1174
                {
206✔
1175
                        yyVAL.stmts = append([]SQLStmt{yyDollar[1].stmt}, yyDollar[3].stmts...)
103✔
1176
                }
103✔
1177
        case 4:
4,034✔
1178
                yyDollar = yyS[yypt-0 : yypt+1]
4,034✔
1179
                {
8,068✔
1180
                }
4,034✔
1181
        case 9:
69✔
1182
                yyDollar = yyS[yypt-2 : yypt+1]
69✔
1183
                {
138✔
1184
                        yyVAL.stmt = &BeginTransactionStmt{}
69✔
1185
                }
69✔
1186
        case 10:
1✔
1187
                yyDollar = yyS[yypt-1 : yypt+1]
1✔
1188
                {
2✔
1189
                        yyVAL.stmt = &BeginTransactionStmt{}
1✔
1190
                }
1✔
1191
        case 11:
174✔
1192
                yyDollar = yyS[yypt-1 : yypt+1]
174✔
1193
                {
348✔
1194
                        yyVAL.stmt = &CommitStmt{}
174✔
1195
                }
174✔
1196
        case 12:
6✔
1197
                yyDollar = yyS[yypt-1 : yypt+1]
6✔
1198
                {
12✔
1199
                        yyVAL.stmt = &RollbackStmt{}
6✔
1200
                }
6✔
1201
        case 13:
3✔
1202
                yyDollar = yyS[yypt-6 : yypt+1]
3✔
1203
                {
6✔
1204
                        yyVAL.stmt = &CreateDatabaseStmt{ifNotExists: true, DB: yyDollar[6].id}
3✔
1205
                }
3✔
1206
        case 14:
20✔
1207
                yyDollar = yyS[yypt-3 : yypt+1]
20✔
1208
                {
40✔
1209
                        yyVAL.stmt = &CreateDatabaseStmt{ifNotExists: false, DB: yyDollar[3].id}
20✔
1210
                }
20✔
1211
        case 15:
3✔
1212
                yyDollar = yyS[yypt-2 : yypt+1]
3✔
1213
                {
6✔
1214
                        yyVAL.stmt = &UseDatabaseStmt{DB: yyDollar[2].id}
3✔
1215
                }
3✔
1216
        case 16:
14✔
1217
                yyDollar = yyS[yypt-3 : yypt+1]
14✔
1218
                {
28✔
1219
                        yyVAL.stmt = &UseDatabaseStmt{DB: yyDollar[3].id}
14✔
1220
                }
14✔
1221
        case 17:
9✔
1222
                yyDollar = yyS[yypt-3 : yypt+1]
9✔
1223
                {
18✔
1224
                        yyVAL.stmt = &UseSnapshotStmt{period: yyDollar[3].period}
9✔
1225
                }
9✔
1226
        case 18:
19✔
1227
                yyDollar = yyS[yypt-9 : yypt+1]
19✔
1228
                {
38✔
1229
                        yyVAL.stmt = newCreateTableStmt(yyDollar[6].str, yyDollar[8].tableElems, true)
19✔
1230
                }
19✔
1231
        case 19:
277✔
1232
                yyDollar = yyS[yypt-6 : yypt+1]
277✔
1233
                {
554✔
1234
                        yyVAL.stmt = newCreateTableStmt(yyDollar[3].str, yyDollar[5].tableElems, false)
277✔
1235
                }
277✔
1236
        case 20:
34✔
1237
                yyDollar = yyS[yypt-3 : yypt+1]
34✔
1238
                {
68✔
1239
                        yyVAL.stmt = &DropTableStmt{table: yyDollar[3].str}
34✔
1240
                }
34✔
1241
        case 21:
137✔
1242
                yyDollar = yyS[yypt-8 : yypt+1]
137✔
1243
                {
274✔
1244
                        yyVAL.stmt = &CreateIndexStmt{ifNotExists: yyDollar[3].boolean, table: yyDollar[5].str, cols: yyDollar[7].colNames}
137✔
1245
                }
137✔
1246
        case 22:
96✔
1247
                yyDollar = yyS[yypt-9 : yypt+1]
96✔
1248
                {
192✔
1249
                        yyVAL.stmt = &CreateIndexStmt{unique: true, ifNotExists: yyDollar[4].boolean, table: yyDollar[6].str, cols: yyDollar[8].colNames}
96✔
1250
                }
96✔
1251
        case 23:
46✔
1252
                yyDollar = yyS[yypt-7 : yypt+1]
46✔
1253
                {
92✔
1254
                        yyVAL.stmt = &DropIndexStmt{table: yyDollar[4].str, cols: yyDollar[6].colNames}
46✔
1255
                }
46✔
1256
        case 24:
75✔
1257
                yyDollar = yyS[yypt-5 : yypt+1]
75✔
1258
                {
150✔
1259
                        yyVAL.stmt = &DropIndexStmt{table: yyDollar[3].str, cols: []string{yyDollar[5].str}}
75✔
1260
                }
75✔
1261
        case 25:
48✔
1262
                yyDollar = yyS[yypt-6 : yypt+1]
48✔
1263
                {
96✔
1264
                        yyVAL.stmt = &AddColumnStmt{table: yyDollar[3].str, colSpec: yyDollar[6].colSpec}
48✔
1265
                }
48✔
1266
        case 26:
38✔
1267
                yyDollar = yyS[yypt-6 : yypt+1]
38✔
1268
                {
76✔
1269
                        yyVAL.stmt = &RenameTableStmt{oldName: yyDollar[3].str, newName: yyDollar[6].str}
38✔
1270
                }
38✔
1271
        case 27:
84✔
1272
                yyDollar = yyS[yypt-8 : yypt+1]
84✔
1273
                {
168✔
1274
                        yyVAL.stmt = &RenameColumnStmt{table: yyDollar[3].str, oldName: yyDollar[6].str, newName: yyDollar[8].str}
84✔
1275
                }
84✔
1276
        case 28:
86✔
1277
                yyDollar = yyS[yypt-6 : yypt+1]
86✔
1278
                {
172✔
1279
                        yyVAL.stmt = &DropColumnStmt{table: yyDollar[3].str, colName: yyDollar[6].str}
86✔
1280
                }
86✔
1281
        case 29:
36✔
1282
                yyDollar = yyS[yypt-6 : yypt+1]
36✔
1283
                {
72✔
1284
                        yyVAL.stmt = &DropConstraintStmt{table: yyDollar[3].str, constraintName: yyDollar[6].id}
36✔
1285
                }
36✔
1286
        case 30:
6✔
1287
                yyDollar = yyS[yypt-7 : yypt+1]
6✔
1288
                {
12✔
1289
                        yyVAL.stmt = &CreateUserStmt{username: yyDollar[3].id, password: yyDollar[6].str, permission: yyDollar[7].permission}
6✔
1290
                }
6✔
1291
        case 31:
5✔
1292
                yyDollar = yyS[yypt-7 : yypt+1]
5✔
1293
                {
10✔
1294
                        yyVAL.stmt = &AlterUserStmt{username: yyDollar[3].id, password: yyDollar[6].str, permission: yyDollar[7].permission}
5✔
1295
                }
5✔
1296
        case 32:
3✔
1297
                yyDollar = yyS[yypt-3 : yypt+1]
3✔
1298
                {
6✔
1299
                        yyVAL.stmt = &DropUserStmt{username: yyDollar[3].id}
3✔
1300
                }
3✔
1301
        case 33:
3✔
1302
                yyDollar = yyS[yypt-8 : yypt+1]
3✔
1303
                {
6✔
1304
                        yyVAL.stmt = &AlterPrivilegesStmt{database: yyDollar[5].str, user: yyDollar[8].id, privileges: yyDollar[2].sqlPrivileges, isGrant: true}
3✔
1305
                }
3✔
1306
        case 34:
3✔
1307
                yyDollar = yyS[yypt-8 : yypt+1]
3✔
1308
                {
6✔
1309
                        yyVAL.stmt = &AlterPrivilegesStmt{database: yyDollar[5].str, user: yyDollar[8].id, privileges: yyDollar[2].sqlPrivileges}
3✔
1310
                }
3✔
1311
        case 35:
4✔
1312
                yyDollar = yyS[yypt-2 : yypt+1]
4✔
1313
                {
8✔
1314
                        yyVAL.sqlPrivileges = allPrivileges
4✔
1315
                }
4✔
1316
        case 36:
2✔
1317
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1318
                {
4✔
1319
                        yyVAL.sqlPrivileges = []SQLPrivilege{yyDollar[1].sqlPrivilege}
2✔
1320
                }
2✔
1321
        case 37:
6✔
1322
                yyDollar = yyS[yypt-3 : yypt+1]
6✔
1323
                {
12✔
1324
                        yyVAL.sqlPrivileges = append(yyDollar[3].sqlPrivileges, yyDollar[1].sqlPrivilege)
6✔
1325
                }
6✔
1326
        case 38:
2✔
1327
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1328
                {
4✔
1329
                        yyVAL.sqlPrivilege = SQLPrivilegeSelect
2✔
1330
                }
2✔
1331
        case 39:
×
1332
                yyDollar = yyS[yypt-1 : yypt+1]
×
1333
                {
×
1334
                        yyVAL.sqlPrivilege = SQLPrivilegeCreate
×
1335
                }
×
1336
        case 40:
2✔
1337
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1338
                {
4✔
1339
                        yyVAL.sqlPrivilege = SQLPrivilegeInsert
2✔
1340
                }
2✔
1341
        case 41:
2✔
1342
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1343
                {
4✔
1344
                        yyVAL.sqlPrivilege = SQLPrivilegeUpdate
2✔
1345
                }
2✔
1346
        case 42:
2✔
1347
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1348
                {
4✔
1349
                        yyVAL.sqlPrivilege = SQLPrivilegeDelete
2✔
1350
                }
2✔
1351
        case 43:
×
1352
                yyDollar = yyS[yypt-1 : yypt+1]
×
1353
                {
×
1354
                        yyVAL.sqlPrivilege = SQLPrivilegeDrop
×
1355
                }
×
1356
        case 44:
×
1357
                yyDollar = yyS[yypt-1 : yypt+1]
×
1358
                {
×
1359
                        yyVAL.sqlPrivilege = SQLPrivilegeAlter
×
1360
                }
×
1361
        case 45:
×
1362
                yyDollar = yyS[yypt-0 : yypt+1]
×
1363
                {
×
1364
                        yyVAL.permission = PermissionReadWrite
×
1365
                }
×
1366
        case 46:
5✔
1367
                yyDollar = yyS[yypt-1 : yypt+1]
5✔
1368
                {
10✔
1369
                        yyVAL.permission = PermissionReadOnly
5✔
1370
                }
5✔
1371
        case 47:
4✔
1372
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1373
                {
8✔
1374
                        yyVAL.permission = PermissionReadWrite
4✔
1375
                }
4✔
1376
        case 48:
2✔
1377
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1378
                {
4✔
1379
                        yyVAL.permission = PermissionAdmin
2✔
1380
                }
2✔
1381
        case 49:
254✔
1382
                yyDollar = yyS[yypt-0 : yypt+1]
254✔
1383
                {
508✔
1384
                        yyVAL.boolean = false
254✔
1385
                }
254✔
1386
        case 50:
3✔
1387
                yyDollar = yyS[yypt-3 : yypt+1]
3✔
1388
                {
6✔
1389
                        yyVAL.boolean = true
3✔
1390
                }
3✔
1391
        case 51:
2,110✔
1392
                yyDollar = yyS[yypt-6 : yypt+1]
2,110✔
1393
                {
4,220✔
1394
                        yyVAL.stmt = &UpsertIntoStmt{isInsert: true, tableRef: yyDollar[3].tableRef, cols: yyDollar[4].colNames, ds: yyDollar[5].ds, onConflict: yyDollar[6].onConflict}
2,110✔
1395
                }
2,110✔
1396
        case 52:
247✔
1397
                yyDollar = yyS[yypt-5 : yypt+1]
247✔
1398
                {
494✔
1399
                        yyVAL.stmt = &UpsertIntoStmt{tableRef: yyDollar[3].tableRef, cols: yyDollar[4].colNames, ds: yyDollar[5].ds}
247✔
1400
                }
247✔
1401
        case 53:
14✔
1402
                yyDollar = yyS[yypt-7 : yypt+1]
14✔
1403
                {
28✔
1404
                        yyVAL.stmt = &DeleteFromStmt{tableRef: yyDollar[3].tableRef, where: yyDollar[4].exp, indexOn: yyDollar[5].colNames, limit: yyDollar[6].exp, offset: yyDollar[7].exp}
14✔
1405
                }
14✔
1406
        case 54:
26✔
1407
                yyDollar = yyS[yypt-8 : yypt+1]
26✔
1408
                {
52✔
1409
                        yyVAL.stmt = &UpdateStmt{tableRef: yyDollar[2].tableRef, updates: yyDollar[4].updates, where: yyDollar[5].exp, indexOn: yyDollar[6].colNames, limit: yyDollar[7].exp, offset: yyDollar[8].exp}
26✔
1410
                }
26✔
1411
        case 55:
2,354✔
1412
                yyDollar = yyS[yypt-2 : yypt+1]
2,354✔
1413
                {
4,708✔
1414
                        yyVAL.ds = &valuesDataSource{rows: yyDollar[2].rows}
2,354✔
1415
                }
2,354✔
1416
        case 56:
3✔
1417
                yyDollar = yyS[yypt-1 : yypt+1]
3✔
1418
                {
6✔
1419
                        yyVAL.ds = yyDollar[1].stmt.(DataSource)
3✔
1420
                }
3✔
1421
        case 57:
2,107✔
1422
                yyDollar = yyS[yypt-0 : yypt+1]
2,107✔
1423
                {
4,214✔
1424
                        yyVAL.onConflict = nil
2,107✔
1425
                }
2,107✔
1426
        case 58:
3✔
1427
                yyDollar = yyS[yypt-4 : yypt+1]
3✔
1428
                {
6✔
1429
                        yyVAL.onConflict = &OnConflictDo{}
3✔
1430
                }
3✔
1431
        case 59:
26✔
1432
                yyDollar = yyS[yypt-1 : yypt+1]
26✔
1433
                {
52✔
1434
                        yyVAL.updates = []*colUpdate{yyDollar[1].update}
26✔
1435
                }
26✔
1436
        case 60:
2✔
1437
                yyDollar = yyS[yypt-3 : yypt+1]
2✔
1438
                {
4✔
1439
                        yyVAL.updates = append(yyDollar[1].updates, yyDollar[3].update)
2✔
1440
                }
2✔
1441
        case 61:
28✔
1442
                yyDollar = yyS[yypt-3 : yypt+1]
28✔
1443
                {
56✔
1444
                        yyVAL.update = &colUpdate{col: yyDollar[1].id, op: yyDollar[2].cmpOp, val: yyDollar[3].exp}
28✔
1445
                }
28✔
1446
        case 62:
2,367✔
1447
                yyDollar = yyS[yypt-1 : yypt+1]
2,367✔
1448
                {
4,734✔
1449
                        yyVAL.rows = []*RowSpec{yyDollar[1].row}
2,367✔
1450
                }
2,367✔
1451
        case 63:
105✔
1452
                yyDollar = yyS[yypt-3 : yypt+1]
105✔
1453
                {
210✔
1454
                        yyVAL.rows = append(yyDollar[1].rows, yyDollar[3].row)
105✔
1455
                }
105✔
1456
        case 64:
2,472✔
1457
                yyDollar = yyS[yypt-3 : yypt+1]
2,472✔
1458
                {
4,944✔
1459
                        yyVAL.row = &RowSpec{Values: yyDollar[2].values}
2,472✔
1460
                }
2,472✔
1461
        case 65:
33✔
1462
                yyDollar = yyS[yypt-1 : yypt+1]
33✔
1463
                {
66✔
1464
                        yyVAL.cols = []*ColSelector{yyDollar[1].col}
33✔
1465
                }
33✔
1466
        case 66:
18✔
1467
                yyDollar = yyS[yypt-3 : yypt+1]
18✔
1468
                {
36✔
1469
                        yyVAL.cols = append(yyDollar[1].cols, yyDollar[3].col)
18✔
1470
                }
18✔
1471
        case 67:
132✔
1472
                yyDollar = yyS[yypt-0 : yypt+1]
132✔
1473
                {
264✔
1474
                        yyVAL.values = nil
132✔
1475
                }
132✔
1476
        case 68:
2,523✔
1477
                yyDollar = yyS[yypt-1 : yypt+1]
2,523✔
1478
                {
5,046✔
1479
                        yyVAL.values = yyDollar[1].values
2,523✔
1480
                }
2,523✔
1481
        case 69:
2,544✔
1482
                yyDollar = yyS[yypt-1 : yypt+1]
2,544✔
1483
                {
5,088✔
1484
                        yyVAL.values = []ValueExp{yyDollar[1].exp}
2,544✔
1485
                }
2,544✔
1486
        case 70:
6,567✔
1487
                yyDollar = yyS[yypt-3 : yypt+1]
6,567✔
1488
                {
13,134✔
1489
                        yyVAL.values = append(yyDollar[1].values, yyDollar[3].exp)
6,567✔
1490
                }
6,567✔
1491
        case 71:
964✔
1492
                yyDollar = yyS[yypt-1 : yypt+1]
964✔
1493
                {
1,928✔
1494
                        yyVAL.value = &Integer{val: int64(yyDollar[1].integer)}
964✔
1495
                }
964✔
1496
        case 72:
67✔
1497
                yyDollar = yyS[yypt-1 : yypt+1]
67✔
1498
                {
134✔
1499
                        yyVAL.value = &Float64{val: float64(yyDollar[1].float)}
67✔
1500
                }
67✔
1501
        case 73:
833✔
1502
                yyDollar = yyS[yypt-1 : yypt+1]
833✔
1503
                {
1,666✔
1504
                        yyVAL.value = &Varchar{val: yyDollar[1].str}
833✔
1505
                }
833✔
1506
        case 74:
249✔
1507
                yyDollar = yyS[yypt-1 : yypt+1]
249✔
1508
                {
498✔
1509
                        yyVAL.value = &Bool{val: yyDollar[1].boolean}
249✔
1510
                }
249✔
1511
        case 75:
94✔
1512
                yyDollar = yyS[yypt-1 : yypt+1]
94✔
1513
                {
188✔
1514
                        yyVAL.value = &Blob{val: yyDollar[1].blob}
94✔
1515
                }
94✔
1516
        case 76:
59✔
1517
                yyDollar = yyS[yypt-6 : yypt+1]
59✔
1518
                {
118✔
1519
                        yyVAL.value = &Cast{val: yyDollar[3].exp, t: yyDollar[5].sqlType}
59✔
1520
                }
59✔
1521
        case 77:
170✔
1522
                yyDollar = yyS[yypt-1 : yypt+1]
170✔
1523
                {
340✔
1524
                        yyVAL.value = yyDollar[1].value
170✔
1525
                }
170✔
1526
        case 78:
7,334✔
1527
                yyDollar = yyS[yypt-1 : yypt+1]
7,334✔
1528
                {
14,668✔
1529
                        yyVAL.value = &Param{id: yyDollar[1].id}
7,334✔
1530
                }
7,334✔
1531
        case 79:
175✔
1532
                yyDollar = yyS[yypt-1 : yypt+1]
175✔
1533
                {
350✔
1534
                        yyVAL.value = &Param{id: fmt.Sprintf("param%d", yyDollar[1].pparam), pos: yyDollar[1].pparam}
175✔
1535
                }
175✔
1536
        case 80:
103✔
1537
                yyDollar = yyS[yypt-1 : yypt+1]
103✔
1538
                {
206✔
1539
                        yyVAL.value = &NullValue{t: AnyType}
103✔
1540
                }
103✔
1541
        case 81:
426✔
1542
                yyDollar = yyS[yypt-1 : yypt+1]
426✔
1543
                {
852✔
1544
                        yyVAL.sqlType = IntegerType
426✔
1545
                }
426✔
1546
        case 82:
62✔
1547
                yyDollar = yyS[yypt-1 : yypt+1]
62✔
1548
                {
124✔
1549
                        yyVAL.sqlType = BooleanType
62✔
1550
                }
62✔
1551
        case 83:
156✔
1552
                yyDollar = yyS[yypt-1 : yypt+1]
156✔
1553
                {
312✔
1554
                        yyVAL.sqlType = VarcharType
156✔
1555
                }
156✔
1556
        case 84:
4✔
1557
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1558
                {
8✔
1559
                        yyVAL.sqlType = UUIDType
4✔
1560
                }
4✔
1561
        case 85:
41✔
1562
                yyDollar = yyS[yypt-1 : yypt+1]
41✔
1563
                {
82✔
1564
                        yyVAL.sqlType = BLOBType
41✔
1565
                }
41✔
1566
        case 86:
82✔
1567
                yyDollar = yyS[yypt-1 : yypt+1]
82✔
1568
                {
164✔
1569
                        yyVAL.sqlType = TimestampType
82✔
1570
                }
82✔
1571
        case 87:
27✔
1572
                yyDollar = yyS[yypt-1 : yypt+1]
27✔
1573
                {
54✔
1574
                        yyVAL.sqlType = Float64Type
27✔
1575
                }
27✔
1576
        case 88:
10✔
1577
                yyDollar = yyS[yypt-1 : yypt+1]
10✔
1578
                {
20✔
1579
                        yyVAL.sqlType = JSONType
10✔
1580
                }
10✔
1581
        case 89:
176✔
1582
                yyDollar = yyS[yypt-4 : yypt+1]
176✔
1583
                {
352✔
1584
                        yyVAL.value = &FnCall{fn: yyDollar[1].id, params: yyDollar[3].values}
176✔
1585
                }
176✔
1586
        case 90:
296✔
1587
                yyDollar = yyS[yypt-1 : yypt+1]
296✔
1588
                {
592✔
1589
                        yyVAL.tableElems = []TableElem{yyDollar[1].tableElem}
296✔
1590
                }
296✔
1591
        case 91:
605✔
1592
                yyDollar = yyS[yypt-3 : yypt+1]
605✔
1593
                {
1,210✔
1594
                        yyVAL.tableElems = append(yyDollar[1].tableElems, yyDollar[3].tableElem)
605✔
1595
                }
605✔
1596
        case 92:
675✔
1597
                yyDollar = yyS[yypt-1 : yypt+1]
675✔
1598
                {
1,350✔
1599
                        yyVAL.tableElem = yyDollar[1].colSpec
675✔
1600
                }
675✔
1601
        case 93:
10✔
1602
                yyDollar = yyS[yypt-1 : yypt+1]
10✔
1603
                {
20✔
1604
                        yyVAL.tableElem = yyDollar[1].check
10✔
1605
                }
10✔
1606
        case 94:
216✔
1607
                yyDollar = yyS[yypt-3 : yypt+1]
216✔
1608
                {
432✔
1609
                        yyVAL.tableElem = PrimaryKeyConstraint(yyDollar[3].colNames)
216✔
1610
                }
216✔
1611
        case 95:
723✔
1612
                yyDollar = yyS[yypt-6 : yypt+1]
723✔
1613
                {
1,446✔
1614
                        yyVAL.colSpec = &ColSpec{
723✔
1615
                                colName:       yyDollar[1].str,
723✔
1616
                                colType:       yyDollar[2].sqlType,
723✔
1617
                                maxLen:        int(yyDollar[3].integer),
723✔
1618
                                notNull:       yyDollar[4].boolean || yyDollar[6].boolean,
723✔
1619
                                autoIncrement: yyDollar[5].boolean,
723✔
1620
                                primaryKey:    yyDollar[6].boolean,
723✔
1621
                        }
723✔
1622
                }
723✔
1623
        case 96:
685✔
1624
                yyDollar = yyS[yypt-0 : yypt+1]
685✔
1625
                {
1,370✔
1626
                        yyVAL.boolean = false
685✔
1627
                }
685✔
1628
        case 97:
38✔
1629
                yyDollar = yyS[yypt-2 : yypt+1]
38✔
1630
                {
76✔
1631
                        yyVAL.boolean = true
38✔
1632
                }
38✔
1633
        case 98:
658✔
1634
                yyDollar = yyS[yypt-0 : yypt+1]
658✔
1635
                {
1,316✔
1636
                        yyVAL.integer = 0
658✔
1637
                }
658✔
1638
        case 99:
61✔
1639
                yyDollar = yyS[yypt-3 : yypt+1]
61✔
1640
                {
122✔
1641
                        yyVAL.integer = yyDollar[2].integer
61✔
1642
                }
61✔
1643
        case 100:
4✔
1644
                yyDollar = yyS[yypt-3 : yypt+1]
4✔
1645
                {
8✔
1646
                        yyVAL.integer = yyDollar[2].integer
4✔
1647
                }
4✔
1648
        case 101:
639✔
1649
                yyDollar = yyS[yypt-0 : yypt+1]
639✔
1650
                {
1,278✔
1651
                        yyVAL.boolean = false
639✔
1652
                }
639✔
1653
        case 102:
84✔
1654
                yyDollar = yyS[yypt-1 : yypt+1]
84✔
1655
                {
168✔
1656
                        yyVAL.boolean = true
84✔
1657
                }
84✔
1658
        case 103:
681✔
1659
                yyDollar = yyS[yypt-0 : yypt+1]
681✔
1660
                {
1,362✔
1661
                        yyVAL.boolean = false
681✔
1662
                }
681✔
1663
        case 104:
33✔
1664
                yyDollar = yyS[yypt-1 : yypt+1]
33✔
1665
                {
66✔
1666
                        yyVAL.boolean = false
33✔
1667
                }
33✔
1668
        case 105:
9✔
1669
                yyDollar = yyS[yypt-2 : yypt+1]
9✔
1670
                {
18✔
1671
                        yyVAL.boolean = true
9✔
1672
                }
9✔
1673
        case 106:
830✔
1674
                yyDollar = yyS[yypt-1 : yypt+1]
830✔
1675
                {
1,660✔
1676
                        yyVAL.stmt = yyDollar[1].stmt
830✔
1677
                }
830✔
1678
        case 107:
11✔
1679
                yyDollar = yyS[yypt-4 : yypt+1]
11✔
1680
                {
22✔
1681
                        yyVAL.stmt = &UnionStmt{
11✔
1682
                                distinct: yyDollar[3].distinct,
11✔
1683
                                left:     yyDollar[1].stmt.(DataSource),
11✔
1684
                                right:    yyDollar[4].stmt.(DataSource),
11✔
1685
                        }
11✔
1686
                }
11✔
1687
        case 108:
1✔
1688
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1689
                {
2✔
1690
                        yyVAL.stmt = &SelectStmt{
1✔
1691
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "databases"}},
1✔
1692
                        }
1✔
1693
                }
1✔
1694
        case 109:
1✔
1695
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1696
                {
2✔
1697
                        yyVAL.stmt = &SelectStmt{
1✔
1698
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "tables"}},
1✔
1699
                        }
1✔
1700
                }
1✔
1701
        case 110:
×
1702
                yyDollar = yyS[yypt-3 : yypt+1]
×
1703
                {
×
1704
                        yyVAL.stmt = &SelectStmt{
×
1705
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "table", params: []ValueExp{&Varchar{val: yyDollar[3].id}}}},
×
1706
                        }
×
1707
                }
×
1708
        case 111:
6✔
1709
                yyDollar = yyS[yypt-2 : yypt+1]
6✔
1710
                {
12✔
1711
                        yyVAL.stmt = &SelectStmt{
6✔
1712
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "users"}},
6✔
1713
                        }
6✔
1714
                }
6✔
1715
        case 112:
1✔
1716
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1717
                {
2✔
1718
                        yyVAL.stmt = &SelectStmt{
1✔
1719
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "grants"}},
1✔
1720
                        }
1✔
1721
                }
1✔
1722
        case 113:
1✔
1723
                yyDollar = yyS[yypt-4 : yypt+1]
1✔
1724
                {
2✔
1725
                        yyVAL.stmt = &SelectStmt{
1✔
1726
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "grants", params: []ValueExp{&Varchar{val: yyDollar[4].id}}}},
1✔
1727
                        }
1✔
1728
                }
1✔
1729
        case 114:
832✔
1730
                yyDollar = yyS[yypt-13 : yypt+1]
832✔
1731
                {
1,664✔
1732
                        yyVAL.stmt = &SelectStmt{
832✔
1733
                                distinct: yyDollar[2].distinct,
832✔
1734
                                targets:  yyDollar[3].targets,
832✔
1735
                                ds:       yyDollar[5].ds,
832✔
1736
                                indexOn:  yyDollar[6].colNames,
832✔
1737
                                joins:    yyDollar[7].joins,
832✔
1738
                                where:    yyDollar[8].exp,
832✔
1739
                                groupBy:  yyDollar[9].cols,
832✔
1740
                                having:   yyDollar[10].exp,
832✔
1741
                                orderBy:  yyDollar[11].ordexps,
832✔
1742
                                limit:    yyDollar[12].exp,
832✔
1743
                                offset:   yyDollar[13].exp,
832✔
1744
                        }
832✔
1745
                }
832✔
1746
        case 115:
10✔
1747
                yyDollar = yyS[yypt-3 : yypt+1]
10✔
1748
                {
20✔
1749
                        yyVAL.stmt = &SelectStmt{
10✔
1750
                                distinct: yyDollar[2].distinct,
10✔
1751
                                targets:  yyDollar[3].targets,
10✔
1752
                                ds:       &valuesDataSource{rows: []*RowSpec{{}}},
10✔
1753
                        }
10✔
1754
                }
10✔
1755
        case 116:
11✔
1756
                yyDollar = yyS[yypt-0 : yypt+1]
11✔
1757
                {
22✔
1758
                        yyVAL.distinct = true
11✔
1759
                }
11✔
1760
        case 117:
1✔
1761
                yyDollar = yyS[yypt-1 : yypt+1]
1✔
1762
                {
2✔
1763
                        yyVAL.distinct = false
1✔
1764
                }
1✔
1765
        case 118:
835✔
1766
                yyDollar = yyS[yypt-0 : yypt+1]
835✔
1767
                {
1,670✔
1768
                        yyVAL.distinct = false
835✔
1769
                }
835✔
1770
        case 119:
8✔
1771
                yyDollar = yyS[yypt-1 : yypt+1]
8✔
1772
                {
16✔
1773
                        yyVAL.distinct = true
8✔
1774
                }
8✔
1775
        case 120:
397✔
1776
                yyDollar = yyS[yypt-1 : yypt+1]
397✔
1777
                {
794✔
1778
                        yyVAL.targets = nil
397✔
1779
                }
397✔
1780
        case 121:
446✔
1781
                yyDollar = yyS[yypt-1 : yypt+1]
446✔
1782
                {
892✔
1783
                        yyVAL.targets = yyDollar[1].targets
446✔
1784
                }
446✔
1785
        case 122:
446✔
1786
                yyDollar = yyS[yypt-2 : yypt+1]
446✔
1787
                {
892✔
1788
                        yyVAL.targets = []TargetEntry{{Exp: yyDollar[1].exp, As: yyDollar[2].id}}
446✔
1789
                }
446✔
1790
        case 123:
485✔
1791
                yyDollar = yyS[yypt-4 : yypt+1]
485✔
1792
                {
970✔
1793
                        yyVAL.targets = append(yyDollar[1].targets, TargetEntry{Exp: yyDollar[3].exp, As: yyDollar[4].id})
485✔
1794
                }
485✔
1795
        case 124:
1,585✔
1796
                yyDollar = yyS[yypt-1 : yypt+1]
1,585✔
1797
                {
3,170✔
1798
                        yyVAL.sel = yyDollar[1].col
1,585✔
1799
                }
1,585✔
1800
        case 125:
39✔
1801
                yyDollar = yyS[yypt-2 : yypt+1]
39✔
1802
                {
78✔
1803
                        yyVAL.sel = &JSONSelector{ColSelector: yyDollar[1].col, fields: yyDollar[2].jsonFields}
39✔
1804
                }
39✔
1805
        case 126:
66✔
1806
                yyDollar = yyS[yypt-4 : yypt+1]
66✔
1807
                {
132✔
1808
                        yyVAL.sel = &AggColSelector{aggFn: yyDollar[1].aggFn, col: "*"}
66✔
1809
                }
66✔
1810
        case 127:
67✔
1811
                yyDollar = yyS[yypt-4 : yypt+1]
67✔
1812
                {
134✔
1813
                        yyVAL.sel = &AggColSelector{aggFn: yyDollar[1].aggFn, table: yyDollar[3].col.table, col: yyDollar[3].col.col}
67✔
1814
                }
67✔
1815
        case 128:
39✔
1816
                yyDollar = yyS[yypt-2 : yypt+1]
39✔
1817
                {
78✔
1818
                        yyVAL.jsonFields = []string{yyDollar[2].str}
39✔
1819
                }
39✔
1820
        case 129:
19✔
1821
                yyDollar = yyS[yypt-3 : yypt+1]
19✔
1822
                {
38✔
1823
                        yyVAL.jsonFields = append(yyVAL.jsonFields, yyDollar[3].str)
19✔
1824
                }
19✔
1825
        case 130:
1,594✔
1826
                yyDollar = yyS[yypt-1 : yypt+1]
1,594✔
1827
                {
3,188✔
1828
                        yyVAL.col = &ColSelector{col: yyDollar[1].str}
1,594✔
1829
                }
1,594✔
1830
        case 131:
148✔
1831
                yyDollar = yyS[yypt-3 : yypt+1]
148✔
1832
                {
296✔
1833
                        yyVAL.col = &ColSelector{table: yyDollar[1].str, col: yyDollar[3].str}
148✔
1834
                }
148✔
1835
        case 134:
196✔
1836
                yyDollar = yyS[yypt-1 : yypt+1]
196✔
1837
                {
392✔
1838
                        yyVAL.str = yyDollar[1].keyword
196✔
1839
                }
196✔
1840
        case 135:
2,721✔
1841
                yyDollar = yyS[yypt-1 : yypt+1]
2,721✔
1842
                {
5,442✔
1843
                        yyVAL.colNames = []string{yyDollar[1].str}
2,721✔
1844
                }
2,721✔
1845
        case 136:
6,486✔
1846
                yyDollar = yyS[yypt-3 : yypt+1]
6,486✔
1847
                {
12,972✔
1848
                        yyVAL.colNames = append(yyDollar[1].colNames, yyDollar[3].str)
6,486✔
1849
                }
6,486✔
1850
        case 137:
174✔
1851
                yyDollar = yyS[yypt-1 : yypt+1]
174✔
1852
                {
348✔
1853
                        yyVAL.colNames = []string{yyDollar[1].str}
174✔
1854
                }
174✔
1855
        case 138:
72✔
1856
                yyDollar = yyS[yypt-3 : yypt+1]
72✔
1857
                {
144✔
1858
                        yyVAL.colNames = yyDollar[2].colNames
72✔
1859
                }
72✔
1860
        case 139:
1✔
1861
                yyDollar = yyS[yypt-0 : yypt+1]
1✔
1862
                {
2✔
1863
                        yyVAL.colNames = nil
1✔
1864
                }
1✔
1865
        case 140:
2,370✔
1866
                yyDollar = yyS[yypt-3 : yypt+1]
2,370✔
1867
                {
4,740✔
1868
                        yyVAL.colNames = yyDollar[2].colNames
2,370✔
1869
                }
2,370✔
1870
        case 152:
15,351✔
1871
                yyDollar = yyS[yypt-1 : yypt+1]
15,351✔
1872
                {
30,702✔
1873
                        yyVAL.str = yyDollar[1].id
15,351✔
1874
                }
15,351✔
1875
        case 153:
1,125✔
1876
                yyDollar = yyS[yypt-1 : yypt+1]
1,125✔
1877
                {
2,250✔
1878
                        yyVAL.str = string(yyDollar[1].keyword)
1,125✔
1879
                }
1,125✔
1880
        case 186:
807✔
1881
                yyDollar = yyS[yypt-3 : yypt+1]
807✔
1882
                {
1,614✔
1883
                        yyDollar[1].tableRef.period = yyDollar[2].period
807✔
1884
                        yyDollar[1].tableRef.as = yyDollar[3].id
807✔
1885
                        yyVAL.ds = yyDollar[1].tableRef
807✔
1886
                }
807✔
1887
        case 187:
13✔
1888
                yyDollar = yyS[yypt-4 : yypt+1]
13✔
1889
                {
26✔
1890
                        yyVAL.ds = &valuesDataSource{inferTypes: true, rows: yyDollar[3].rows}
13✔
1891
                }
13✔
1892
        case 188:
11✔
1893
                yyDollar = yyS[yypt-4 : yypt+1]
11✔
1894
                {
22✔
1895
                        yyDollar[2].stmt.(*SelectStmt).as = yyDollar[4].id
11✔
1896
                        yyVAL.ds = yyDollar[2].stmt.(DataSource)
11✔
1897
                }
11✔
1898
        case 189:
4✔
1899
                yyDollar = yyS[yypt-4 : yypt+1]
4✔
1900
                {
8✔
1901
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "databases"}, as: yyDollar[4].id}
4✔
1902
                }
4✔
1903
        case 190:
4✔
1904
                yyDollar = yyS[yypt-4 : yypt+1]
4✔
1905
                {
8✔
1906
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "tables"}, as: yyDollar[4].id}
4✔
1907
                }
4✔
1908
        case 191:
×
1909
                yyDollar = yyS[yypt-4 : yypt+1]
×
1910
                {
×
1911
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "table", params: []ValueExp{&Varchar{val: yyDollar[3].id}}}}
×
1912
                }
×
1913
        case 192:
1✔
1914
                yyDollar = yyS[yypt-4 : yypt+1]
1✔
1915
                {
2✔
1916
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "users"}, as: yyDollar[4].id}
1✔
1917
                }
1✔
1918
        case 193:
6✔
1919
                yyDollar = yyS[yypt-2 : yypt+1]
6✔
1920
                {
12✔
1921
                        yyVAL.ds = &FnDataSourceStmt{fnCall: yyDollar[1].value.(*FnCall), as: yyDollar[2].id}
6✔
1922
                }
6✔
1923
        case 194:
2✔
1924
                yyDollar = yyS[yypt-6 : yypt+1]
2✔
1925
                {
4✔
1926
                        yyVAL.ds = &tableRef{table: yyDollar[4].id, history: true, as: yyDollar[6].id}
2✔
1927
                }
2✔
1928
        case 195:
8✔
1929
                yyDollar = yyS[yypt-7 : yypt+1]
8✔
1930
                {
16✔
1931
                        yyVAL.ds = &tableRef{table: yyDollar[4].id, diff: true, period: yyDollar[6].period, as: yyDollar[7].id}
8✔
1932
                }
8✔
1933
        case 196:
3,220✔
1934
                yyDollar = yyS[yypt-1 : yypt+1]
3,220✔
1935
                {
6,440✔
1936
                        yyVAL.tableRef = &tableRef{table: yyDollar[1].str}
3,220✔
1937
                }
3,220✔
1938
        case 197:
824✔
1939
                yyDollar = yyS[yypt-2 : yypt+1]
824✔
1940
                {
1,648✔
1941
                        yyVAL.period = period{start: yyDollar[1].openPeriod, end: yyDollar[2].openPeriod}
824✔
1942
                }
824✔
1943
        case 198:
749✔
1944
                yyDollar = yyS[yypt-0 : yypt+1]
749✔
1945
                {
1,498✔
1946
                        yyVAL.openPeriod = nil
749✔
1947
                }
749✔
1948
        case 199:
49✔
1949
                yyDollar = yyS[yypt-2 : yypt+1]
49✔
1950
                {
98✔
1951
                        yyVAL.openPeriod = &openPeriod{inclusive: true, instant: yyDollar[2].periodInstant}
49✔
1952
                }
49✔
1953
        case 200:
26✔
1954
                yyDollar = yyS[yypt-2 : yypt+1]
26✔
1955
                {
52✔
1956
                        yyVAL.openPeriod = &openPeriod{instant: yyDollar[2].periodInstant}
26✔
1957
                }
26✔
1958
        case 201:
774✔
1959
                yyDollar = yyS[yypt-0 : yypt+1]
774✔
1960
                {
1,548✔
1961
                        yyVAL.openPeriod = nil
774✔
1962
                }
774✔
1963
        case 202:
39✔
1964
                yyDollar = yyS[yypt-2 : yypt+1]
39✔
1965
                {
78✔
1966
                        yyVAL.openPeriod = &openPeriod{inclusive: true, instant: yyDollar[2].periodInstant}
39✔
1967
                }
39✔
1968
        case 203:
11✔
1969
                yyDollar = yyS[yypt-2 : yypt+1]
11✔
1970
                {
22✔
1971
                        yyVAL.openPeriod = &openPeriod{instant: yyDollar[2].periodInstant}
11✔
1972
                }
11✔
1973
        case 204:
68✔
1974
                yyDollar = yyS[yypt-2 : yypt+1]
68✔
1975
                {
136✔
1976
                        yyVAL.periodInstant = periodInstant{instantType: txInstant, exp: yyDollar[2].exp}
68✔
1977
                }
68✔
1978
        case 205:
57✔
1979
                yyDollar = yyS[yypt-1 : yypt+1]
57✔
1980
                {
114✔
1981
                        yyVAL.periodInstant = periodInstant{instantType: timeInstant, exp: yyDollar[1].exp}
57✔
1982
                }
57✔
1983
        case 206:
815✔
1984
                yyDollar = yyS[yypt-0 : yypt+1]
815✔
1985
                {
1,630✔
1986
                        yyVAL.joins = nil
815✔
1987
                }
815✔
1988
        case 207:
17✔
1989
                yyDollar = yyS[yypt-1 : yypt+1]
17✔
1990
                {
34✔
1991
                        yyVAL.joins = yyDollar[1].joins
17✔
1992
                }
17✔
1993
        case 208:
17✔
1994
                yyDollar = yyS[yypt-1 : yypt+1]
17✔
1995
                {
34✔
1996
                        yyVAL.joins = []*JoinSpec{yyDollar[1].join}
17✔
1997
                }
17✔
1998
        case 209:
7✔
1999
                yyDollar = yyS[yypt-2 : yypt+1]
7✔
2000
                {
14✔
2001
                        yyVAL.joins = append([]*JoinSpec{yyDollar[1].join}, yyDollar[2].joins...)
7✔
2002
                }
7✔
2003
        case 210:
24✔
2004
                yyDollar = yyS[yypt-6 : yypt+1]
24✔
2005
                {
48✔
2006
                        yyVAL.join = &JoinSpec{joinType: yyDollar[1].joinType, ds: yyDollar[3].ds, indexOn: yyDollar[4].colNames, cond: yyDollar[6].exp}
24✔
2007
                }
24✔
2008
        case 211:
3✔
2009
                yyDollar = yyS[yypt-0 : yypt+1]
3✔
2010
                {
6✔
2011
                        yyVAL.joinType = InnerJoin
3✔
2012
                }
3✔
2013
        case 212:
21✔
2014
                yyDollar = yyS[yypt-1 : yypt+1]
21✔
2015
                {
42✔
2016
                        yyVAL.joinType = yyDollar[1].joinType
21✔
2017
                }
21✔
2018
        case 213:
427✔
2019
                yyDollar = yyS[yypt-0 : yypt+1]
427✔
2020
                {
854✔
2021
                        yyVAL.exp = nil
427✔
2022
                }
427✔
2023
        case 214:
445✔
2024
                yyDollar = yyS[yypt-2 : yypt+1]
445✔
2025
                {
890✔
2026
                        yyVAL.exp = yyDollar[2].exp
445✔
2027
                }
445✔
2028
        case 215:
799✔
2029
                yyDollar = yyS[yypt-0 : yypt+1]
799✔
2030
                {
1,598✔
2031
                        yyVAL.cols = nil
799✔
2032
                }
799✔
2033
        case 216:
33✔
2034
                yyDollar = yyS[yypt-3 : yypt+1]
33✔
2035
                {
66✔
2036
                        yyVAL.cols = yyDollar[3].cols
33✔
2037
                }
33✔
2038
        case 217:
825✔
2039
                yyDollar = yyS[yypt-0 : yypt+1]
825✔
2040
                {
1,650✔
2041
                        yyVAL.exp = nil
825✔
2042
                }
825✔
2043
        case 218:
7✔
2044
                yyDollar = yyS[yypt-2 : yypt+1]
7✔
2045
                {
14✔
2046
                        yyVAL.exp = yyDollar[2].exp
7✔
2047
                }
7✔
2048
        case 219:
832✔
2049
                yyDollar = yyS[yypt-0 : yypt+1]
832✔
2050
                {
1,664✔
2051
                        yyVAL.exp = nil
832✔
2052
                }
832✔
2053
        case 220:
40✔
2054
                yyDollar = yyS[yypt-2 : yypt+1]
40✔
2055
                {
80✔
2056
                        yyVAL.exp = yyDollar[2].exp
40✔
2057
                }
40✔
2058
        case 221:
868✔
2059
                yyDollar = yyS[yypt-0 : yypt+1]
868✔
2060
                {
1,736✔
2061
                        yyVAL.exp = nil
868✔
2062
                }
868✔
2063
        case 222:
4✔
2064
                yyDollar = yyS[yypt-2 : yypt+1]
4✔
2065
                {
8✔
2066
                        yyVAL.exp = yyDollar[2].exp
4✔
2067
                }
4✔
2068
        case 223:
672✔
2069
                yyDollar = yyS[yypt-0 : yypt+1]
672✔
2070
                {
1,344✔
2071
                        yyVAL.ordexps = nil
672✔
2072
                }
672✔
2073
        case 224:
160✔
2074
                yyDollar = yyS[yypt-3 : yypt+1]
160✔
2075
                {
320✔
2076
                        yyVAL.ordexps = yyDollar[3].ordexps
160✔
2077
                }
160✔
2078
        case 225:
866✔
2079
                yyDollar = yyS[yypt-0 : yypt+1]
866✔
2080
                {
1,732✔
2081
                        yyVAL.colNames = nil
866✔
2082
                }
866✔
2083
        case 226:
30✔
2084
                yyDollar = yyS[yypt-4 : yypt+1]
30✔
2085
                {
60✔
2086
                        yyVAL.colNames = yyDollar[4].colNames
30✔
2087
                }
30✔
2088
        case 227:
160✔
2089
                yyDollar = yyS[yypt-2 : yypt+1]
160✔
2090
                {
320✔
2091
                        yyVAL.ordexps = []*OrdExp{{exp: yyDollar[1].exp, descOrder: yyDollar[2].opt_ord}}
160✔
2092
                }
160✔
2093
        case 228:
39✔
2094
                yyDollar = yyS[yypt-4 : yypt+1]
39✔
2095
                {
78✔
2096
                        yyVAL.ordexps = append(yyDollar[1].ordexps, &OrdExp{exp: yyDollar[3].exp, descOrder: yyDollar[4].opt_ord})
39✔
2097
                }
39✔
2098
        case 229:
61✔
2099
                yyDollar = yyS[yypt-0 : yypt+1]
61✔
2100
                {
122✔
2101
                        yyVAL.opt_ord = false
61✔
2102
                }
61✔
2103
        case 230:
43✔
2104
                yyDollar = yyS[yypt-1 : yypt+1]
43✔
2105
                {
86✔
2106
                        yyVAL.opt_ord = false
43✔
2107
                }
43✔
2108
        case 231:
95✔
2109
                yyDollar = yyS[yypt-1 : yypt+1]
95✔
2110
                {
190✔
2111
                        yyVAL.opt_ord = true
95✔
2112
                }
95✔
2113
        case 232:
1,669✔
2114
                yyDollar = yyS[yypt-0 : yypt+1]
1,669✔
2115
                {
3,338✔
2116
                        yyVAL.id = ""
1,669✔
2117
                }
1,669✔
2118
        case 233:
27✔
2119
                yyDollar = yyS[yypt-1 : yypt+1]
27✔
2120
                {
54✔
2121
                        yyVAL.id = yyDollar[1].str
27✔
2122
                }
27✔
2123
        case 234:
78✔
2124
                yyDollar = yyS[yypt-2 : yypt+1]
78✔
2125
                {
156✔
2126
                        yyVAL.id = yyDollar[2].str
78✔
2127
                }
78✔
2128
        case 235:
7✔
2129
                yyDollar = yyS[yypt-2 : yypt+1]
7✔
2130
                {
14✔
2131
                        yyVAL.check = CheckConstraint{exp: yyDollar[2].exp}
7✔
2132
                }
7✔
2133
        case 236:
3✔
2134
                yyDollar = yyS[yypt-4 : yypt+1]
3✔
2135
                {
6✔
2136
                        yyVAL.check = CheckConstraint{name: yyDollar[2].id, exp: yyDollar[4].exp}
3✔
2137
                }
3✔
2138
        case 237:
20✔
2139
                yyDollar = yyS[yypt-0 : yypt+1]
20✔
2140
                {
40✔
2141
                        yyVAL.exp = nil
20✔
2142
                }
20✔
2143
        case 238:
5✔
2144
                yyDollar = yyS[yypt-1 : yypt+1]
5✔
2145
                {
10✔
2146
                        yyVAL.exp = yyDollar[1].exp
5✔
2147
                }
5✔
2148
        case 239:
25✔
2149
                yyDollar = yyS[yypt-5 : yypt+1]
25✔
2150
                {
50✔
2151
                        yyVAL.exp = &CaseWhenExp{
25✔
2152
                                exp:      yyDollar[2].exp,
25✔
2153
                                whenThen: yyDollar[3].whenThenClauses,
25✔
2154
                                elseExp:  yyDollar[4].exp,
25✔
2155
                        }
25✔
2156
                }
25✔
2157
        case 240:
25✔
2158
                yyDollar = yyS[yypt-4 : yypt+1]
25✔
2159
                {
50✔
2160
                        yyVAL.whenThenClauses = []whenThenClause{{when: yyDollar[2].exp, then: yyDollar[4].exp}}
25✔
2161
                }
25✔
2162
        case 241:
6✔
2163
                yyDollar = yyS[yypt-5 : yypt+1]
6✔
2164
                {
12✔
2165
                        yyVAL.whenThenClauses = append(yyDollar[1].whenThenClauses, whenThenClause{when: yyDollar[3].exp, then: yyDollar[5].exp})
6✔
2166
                }
6✔
2167
        case 242:
6✔
2168
                yyDollar = yyS[yypt-0 : yypt+1]
6✔
2169
                {
12✔
2170
                        yyVAL.exp = nil
6✔
2171
                }
6✔
2172
        case 243:
19✔
2173
                yyDollar = yyS[yypt-2 : yypt+1]
19✔
2174
                {
38✔
2175
                        yyVAL.exp = yyDollar[2].exp
19✔
2176
                }
19✔
2177
        case 244:
11,338✔
2178
                yyDollar = yyS[yypt-1 : yypt+1]
11,338✔
2179
                {
22,676✔
2180
                        yyVAL.exp = yyDollar[1].exp
11,338✔
2181
                }
11,338✔
2182
        case 245:
52✔
2183
                yyDollar = yyS[yypt-3 : yypt+1]
52✔
2184
                {
104✔
2185
                        yyVAL.exp = &BinBoolExp{left: yyDollar[1].exp, op: Or, right: yyDollar[3].exp}
52✔
2186
                }
52✔
2187
        case 247:
127✔
2188
                yyDollar = yyS[yypt-3 : yypt+1]
127✔
2189
                {
254✔
2190
                        yyVAL.exp = &BinBoolExp{left: yyDollar[1].exp, op: And, right: yyDollar[3].exp}
127✔
2191
                }
127✔
2192
        case 249:
25✔
2193
                yyDollar = yyS[yypt-2 : yypt+1]
25✔
2194
                {
50✔
2195
                        yyVAL.exp = &NotBoolExp{exp: yyDollar[2].exp}
25✔
2196
                }
25✔
2197
        case 251:
451✔
2198
                yyDollar = yyS[yypt-3 : yypt+1]
451✔
2199
                {
902✔
2200
                        yyVAL.exp = &CmpBoolExp{left: yyDollar[1].exp, op: yyDollar[2].cmpOp, right: yyDollar[3].exp}
451✔
2201
                }
451✔
2202
        case 252:
3✔
2203
                yyDollar = yyS[yypt-3 : yypt+1]
3✔
2204
                {
6✔
2205
                        yyVAL.exp = &CmpBoolExp{left: yyDollar[1].exp, op: EQ, right: &NullValue{t: AnyType}}
3✔
2206
                }
3✔
2207
        case 253:
2✔
2208
                yyDollar = yyS[yypt-4 : yypt+1]
2✔
2209
                {
4✔
2210
                        yyVAL.exp = &CmpBoolExp{left: yyDollar[1].exp, op: NE, right: &NullValue{t: AnyType}}
2✔
2211
                }
2✔
2212
        case 254:
2✔
2213
                yyDollar = yyS[yypt-5 : yypt+1]
2✔
2214
                {
4✔
2215
                        yyVAL.exp = &BinBoolExp{
2✔
2216
                                left: &CmpBoolExp{
2✔
2217
                                        left:  yyDollar[1].exp,
2✔
2218
                                        op:    GE,
2✔
2219
                                        right: yyDollar[3].exp,
2✔
2220
                                },
2✔
2221
                                op: And,
2✔
2222
                                right: &CmpBoolExp{
2✔
2223
                                        left:  yyDollar[1].exp,
2✔
2224
                                        op:    LE,
2✔
2225
                                        right: yyDollar[5].exp,
2✔
2226
                                },
2✔
2227
                        }
2✔
2228
                }
2✔
2229
        case 255:
33✔
2230
                yyDollar = yyS[yypt-4 : yypt+1]
33✔
2231
                {
66✔
2232
                        yyVAL.exp = &LikeBoolExp{val: yyDollar[1].exp, notLike: yyDollar[2].boolean, pattern: yyDollar[4].exp}
33✔
2233
                }
33✔
2234
        case 256:
1✔
2235
                yyDollar = yyS[yypt-3 : yypt+1]
1✔
2236
                {
2✔
2237
                        yyVAL.exp = &LikeBoolExp{val: yyDollar[1].exp, notLike: true, pattern: yyDollar[3].exp}
1✔
2238
                }
1✔
2239
        case 258:
2✔
2240
                yyDollar = yyS[yypt-4 : yypt+1]
2✔
2241
                {
4✔
2242
                        yyVAL.exp = &ExistsBoolExp{q: (yyDollar[3].stmt).(DataSource)}
2✔
2243
                }
2✔
2244
        case 259:
1✔
2245
                yyDollar = yyS[yypt-6 : yypt+1]
1✔
2246
                {
2✔
2247
                        yyVAL.exp = &InSubQueryExp{val: yyDollar[1].exp, notIn: yyDollar[2].boolean, q: yyDollar[5].stmt.(*SelectStmt)}
1✔
2248
                }
1✔
2249
        case 260:
14✔
2250
                yyDollar = yyS[yypt-6 : yypt+1]
14✔
2251
                {
28✔
2252
                        yyVAL.exp = &InListExp{val: yyDollar[1].exp, notIn: yyDollar[2].boolean, values: yyDollar[5].values}
14✔
2253
                }
14✔
2254
        case 261:
25✔
2255
                yyDollar = yyS[yypt-1 : yypt+1]
25✔
2256
                {
50✔
2257
                        yyVAL.exp = yyDollar[1].exp
25✔
2258
                }
25✔
2259
        case 263:
33✔
2260
                yyDollar = yyS[yypt-3 : yypt+1]
33✔
2261
                {
66✔
2262
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: ADDOP, right: yyDollar[3].exp}
33✔
2263
                }
33✔
2264
        case 264:
19✔
2265
                yyDollar = yyS[yypt-3 : yypt+1]
19✔
2266
                {
38✔
2267
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: SUBSOP, right: yyDollar[3].exp}
19✔
2268
                }
19✔
2269
        case 266:
19✔
2270
                yyDollar = yyS[yypt-3 : yypt+1]
19✔
2271
                {
38✔
2272
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: MULTOP, right: yyDollar[3].exp}
19✔
2273
                }
19✔
2274
        case 267:
18✔
2275
                yyDollar = yyS[yypt-3 : yypt+1]
18✔
2276
                {
36✔
2277
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: DIVOP, right: yyDollar[3].exp}
18✔
2278
                }
18✔
2279
        case 268:
6✔
2280
                yyDollar = yyS[yypt-3 : yypt+1]
6✔
2281
                {
12✔
2282
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: MODOP, right: yyDollar[3].exp}
6✔
2283
                }
6✔
2284
        case 270:
11✔
2285
                yyDollar = yyS[yypt-2 : yypt+1]
11✔
2286
                {
22✔
2287
                        i, isInt := yyDollar[2].exp.(*Integer)
11✔
2288
                        if isInt {
16✔
2289
                                i.val = -i.val
5✔
2290
                                yyVAL.exp = i
5✔
2291
                        } else {
11✔
2292
                                yyVAL.exp = &NumExp{left: &Integer{val: 0}, op: SUBSOP, right: yyDollar[2].exp}
6✔
2293
                        }
6✔
2294
                }
2295
        case 272:
240✔
2296
                yyDollar = yyS[yypt-3 : yypt+1]
240✔
2297
                {
480✔
2298
                        yyVAL.exp = yyDollar[2].exp
240✔
2299
                }
240✔
2300
        case 274:
1,757✔
2301
                yyDollar = yyS[yypt-1 : yypt+1]
1,757✔
2302
                {
3,514✔
2303
                        yyVAL.exp = yyDollar[1].sel
1,757✔
2304
                }
1,757✔
2305
        case 275:
10,048✔
2306
                yyDollar = yyS[yypt-1 : yypt+1]
10,048✔
2307
                {
20,096✔
2308
                        yyVAL.exp = yyDollar[1].value
10,048✔
2309
                }
10,048✔
2310
        case 276:
26✔
2311
                yyDollar = yyS[yypt-3 : yypt+1]
26✔
2312
                {
52✔
2313
                        yyVAL.exp = &Cast{val: yyDollar[1].exp, t: yyDollar[3].sqlType}
26✔
2314
                }
26✔
2315
        case 277:
29✔
2316
                yyDollar = yyS[yypt-6 : yypt+1]
29✔
2317
                {
58✔
2318
                        yyVAL.exp = &ExtractFromTimestampExp{Field: yyDollar[3].timestampField, Exp: yyDollar[5].exp}
29✔
2319
                }
29✔
2320
        case 278:
45✔
2321
                yyDollar = yyS[yypt-0 : yypt+1]
45✔
2322
                {
90✔
2323
                        yyVAL.boolean = false
45✔
2324
                }
45✔
2325
        case 279:
3✔
2326
                yyDollar = yyS[yypt-1 : yypt+1]
3✔
2327
                {
6✔
2328
                        yyVAL.boolean = true
3✔
2329
                }
3✔
2330
        case 280:
9✔
2331
                yyDollar = yyS[yypt-1 : yypt+1]
9✔
2332
                {
18✔
2333
                        yyVAL.timestampField = TimestampFieldTypeYear
9✔
2334
                }
9✔
2335
        case 281:
4✔
2336
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
2337
                {
8✔
2338
                        yyVAL.timestampField = TimestampFieldTypeMonth
4✔
2339
                }
4✔
2340
        case 282:
4✔
2341
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
2342
                {
8✔
2343
                        yyVAL.timestampField = TimestampFieldTypeDay
4✔
2344
                }
4✔
2345
        case 283:
4✔
2346
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
2347
                {
8✔
2348
                        yyVAL.timestampField = TimestampFieldTypeHour
4✔
2349
                }
4✔
2350
        case 284:
4✔
2351
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
2352
                {
8✔
2353
                        yyVAL.timestampField = TimestampFieldTypeMinute
4✔
2354
                }
4✔
2355
        case 285:
4✔
2356
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
2357
                {
8✔
2358
                        yyVAL.timestampField = TimestampFieldTypeSecond
4✔
2359
                }
4✔
2360
        }
2361
        goto yystack /* stack new state and value */
254,777✔
2362
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc