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

codenotary / immudb / 18752576117

23 Oct 2025 02:55PM UTC coverage: 89.257% (+0.01%) from 89.247%
18752576117

Pull #2076

gh-ci

els-tmiller
enable fargate credentials

Signed-off-by: Tim Miller <tim.miller@elsevier.com>
Pull Request #2076: S3 Storage - Fargate Credentials

452 of 493 new or added lines in 8 files covered. (91.68%)

412 existing lines in 4 files now uncovered.

37970 of 42540 relevant lines covered (89.26%)

149626.95 hits per line

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

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

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

325
var yyStatenames = [...]string{}
326

327
const yyEofCode = 1
328
const yyErrCode = 2
329
const yyInitialStackSize = 16
330

331
var yyExca = [...]int16{
332
        -1, 1,
333
        1, -1,
334
        -2, 0,
335
        -1, 139,
336
        85, 277,
337
        88, 277,
338
        -2, 261,
339
        -1, 370,
340
        66, 210,
341
        -2, 205,
342
        -1, 428,
343
        66, 210,
344
        -2, 207,
345
}
346

347
const yyPrivate = 57344
348

349
const yyLast = 1864
350

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

541
var yyPact = [...]int16{
542
        298, -1000, -1000, -9, -1000, -1000, -1000, 308, -1000, -1000,
543
        420, 184, 378, 423, 421, 421, 302, 299, 278, 1665,
544
        239, 217, 280, -1000, 298, -1000, 82, 1750, 151, 375,
545
        98, -1000, 97, 442, 1665, 1580, 95, 1665, 92, 365,
546
        312, 29, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 363,
547
        1665, 1665, 1665, 294, -1000, -1000, -1000, -1000, -1000, -1000,
548
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
549
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
550
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 237,
551
        -1000, -1000, 91, -1000, 314, 746, -1000, -1000, 208, -1000,
552
        205, -13, -1000, 362, 188, 151, 445, -1000, -1000, 397,
553
        631, 631, -1000, 1665, 37, -1000, 413, 415, 460, -1000,
554
        421, 458, -17, -17, 263, 79, 163, -1000, -1000, 87,
555
        275, -1000, 28, 1495, 77, 112, -1000, 861, -1000, 104,
556
        -1000, 11, -18, -1000, -1000, 861, 976, -1000, 861, 137,
557
        -1000, -1000, -22, 32, -24, -1000, -1000, -1000, -1000, -1000,
558
        -25, -1000, -1000, -1000, -1000, 36, -30, -1000, -1000, -1000,
559
        -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 172, 168,
560
        1293, 1665, 164, 361, 409, -1000, 631, 631, -1000, 861,
561
        -1000, -1000, -36, 1394, 339, 335, 332, 403, 1665, -1000,
562
        1665, 177, 1394, 177, 462, 861, 74, -1000, 101, -1000,
563
        -1000, 1192, 861, -1000, -1000, 1665, 861, 861, -1000, 976,
564
        150, 976, 198, 976, 976, 976, -1000, 976, 976, 976,
565
        163, 226, -1000, -1000, -1000, -50, 463, 176, 12, 48,
566
        1091, 861, 1394, 861, 86, 1665, -59, -1000, -1000, -1000,
567
        327, 463, 861, 83, -1000, -37, -1000, 1665, 45, -1000,
568
        -1000, -1000, 1394, -1000, 1394, 1665, 1394, 1394, 81, 44,
569
        346, 343, 360, -47, -1000, -61, -1000, -1000, 253, 373,
570
        -1000, 462, 79, 861, 462, 442, 273, -38, -39, -40,
571
        -43, 1495, 1495, -1000, 112, -1000, 5, -1000, 145, 31,
572
        976, -44, 5, 11, 11, -1000, -1000, -1000, -52, 227,
573
        861, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
574
        -1000, 274, -1000, -1000, -1000, -1000, -1000, -1000, 43, -1000,
575
        -53, -54, 244, -1000, -55, 27, -1000, -1000, -45, -1000,
576
        1293, 76, -92, -1000, 321, 1394, -46, 450, -62, -1000,
577
        -1000, 342, -1000, -1000, 450, 456, 414, -1000, 288, 24,
578
        -1000, 861, 1394, -1000, 250, 861, 354, 253, -1000, -1000,
579
        117, 1495, -47, -56, 391, -57, -58, 73, -60, -1000,
580
        -1000, -1000, 976, 5, 516, -1000, 199, 861, 861, 219,
581
        861, -1000, -1000, -1000, 463, -1000, 861, 1293, -1000, -1000,
582
        -1000, 1394, 147, 53, 51, 861, -63, 1394, -1000, -1000,
583
        -1000, -1000, -1000, 1394, -1000, 72, 70, 285, -47, -64,
584
        -1000, -1000, 861, -1000, 76, 250, 263, -1000, 117, 271,
585
        -1000, -1000, -73, 1495, 58, 1495, 1495, -65, 1495, 5,
586
        -66, -75, 217, -1000, 215, -1000, 861, -83, -86, -1000,
587
        -76, -80, 153, -1000, 144, -103, -87, -1000, -1000, -81,
588
        -1000, -1000, -1000, 277, -1000, -1000, -1000, -1000, -1000, 261,
589
        -1000, 1192, -1000, -1000, -100, -1000, -1000, -1000, -1000, -1000,
590
        -1000, 861, -1000, -1000, -1000, -1000, -1000, 329, -1000, -1000,
591
        -1000, -1000, -1000, -1000, 267, 259, 462, 1495, -1000, -1000,
592
        324, 246, 861, 1394, 351, -1000, -1000, 253, 257, -1000,
593
        21, -1000, 861, 250, 861, 1394, -1000, -1000, -1, 243,
594
        -1000, 861, -1000, -1000, -1000, 243, -1000,
595
}
596

597
var yyPgo = [...]int16{
598
        0, 569, 432, 562, 561, 558, 18, 556, 26, 12,
599
        143, 21, 554, 17, 11, 16, 19, 553, 7, 549,
600
        547, 4, 546, 541, 9, 29, 382, 24, 536, 535,
601
        36, 534, 15, 533, 532, 531, 23, 13, 0, 528,
602
        10, 526, 525, 524, 519, 33, 518, 514, 34, 28,
603
        44, 35, 512, 511, 8, 3, 510, 509, 507, 506,
604
        6, 505, 501, 1, 5, 227, 498, 497, 496, 495,
605
        25, 494, 493, 20, 480, 153, 476, 475, 14, 471,
606
        470, 2, 27, 58, 469,
607
}
608

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

641
var yyR2 = [...]int8{
642
        0, 1, 2, 3, 0, 1, 1, 1, 1, 2,
643
        1, 1, 1, 6, 3, 2, 3, 3, 9, 6,
644
        3, 8, 9, 7, 5, 6, 6, 8, 6, 6,
645
        7, 7, 3, 8, 8, 2, 1, 3, 1, 1,
646
        1, 1, 1, 1, 1, 0, 1, 1, 1, 0,
647
        3, 6, 5, 7, 8, 2, 1, 0, 4, 1,
648
        3, 3, 1, 3, 3, 1, 3, 0, 1, 1,
649
        3, 1, 1, 1, 1, 1, 6, 1, 1, 1,
650
        1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
651
        1, 3, 1, 1, 3, 6, 0, 2, 0, 3,
652
        3, 0, 1, 0, 1, 2, 1, 4, 2, 2,
653
        3, 2, 2, 4, 13, 3, 0, 1, 0, 1,
654
        1, 1, 2, 4, 1, 2, 4, 4, 2, 3,
655
        1, 3, 1, 1, 1, 1, 3, 1, 3, 0,
656
        3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660
        1, 1, 1, 1, 1, 1, 3, 4, 4, 4,
661
        4, 4, 4, 2, 6, 1, 2, 0, 2, 2,
662
        0, 2, 2, 2, 1, 0, 1, 1, 2, 6,
663
        0, 1, 0, 2, 0, 3, 0, 2, 0, 2,
664
        0, 2, 0, 3, 0, 4, 2, 4, 0, 1,
665
        1, 0, 1, 2, 2, 4, 0, 1, 5, 4,
666
        5, 0, 2, 1, 3, 1, 3, 1, 2, 1,
667
        3, 3, 4, 5, 4, 3, 1, 4, 6, 6,
668
        1, 1, 3, 3, 1, 3, 3, 3, 1, 2,
669
        1, 3, 1, 1, 1, 3, 6, 0, 1, 1,
670
        1, 1, 1, 1, 1,
671
}
672

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

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

785
var yyTok1 = [...]uint8{
786
        1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
787
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
788
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
789
        3, 3, 3, 3, 3, 3, 3, 128, 3, 3,
790
        131, 132, 126, 124, 123, 125, 129, 127, 3, 3,
791
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
792
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
793
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
794
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
795
        3, 133, 3, 134,
796
}
797

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

814
var yyTok3 = [...]int8{
815
        0,
816
}
817

818
var yyErrorMessages = [...]struct {
819
        state int
820
        token int
821
        msg   string
822
}{}
823

824
/*        parser for yacc output        */
825

826
var (
827
        yyDebug        = 0
828
        yyErrorVerbose = false
829
)
830

831
type yyLexer interface {
832
        Lex(lval *yySymType) int
833
        Error(s string)
834
}
835

836
type yyParser interface {
837
        Parse(yyLexer) int
838
        Lookahead() int
839
}
840

841
type yyParserImpl struct {
842
        lval  yySymType
843
        stack [yyInitialStackSize]yySymType
844
        char  int
845
}
846

UNCOV
847
func (p *yyParserImpl) Lookahead() int {
×
UNCOV
848
        return p.char
×
UNCOV
849
}
×
850

851
func yyNewParser() yyParser {
4,308✔
852
        return &yyParserImpl{}
4,308✔
853
}
4,308✔
854

855
const yyFlag = -1000
856

857
func yyTokname(c int) string {
161✔
858
        if c >= 1 && c-1 < len(yyToknames) {
322✔
859
                if yyToknames[c-1] != "" {
322✔
860
                        return yyToknames[c-1]
161✔
861
                }
161✔
862
        }
UNCOV
863
        return __yyfmt__.Sprintf("tok-%v", c)
×
864
}
865

UNCOV
866
func yyStatname(s int) string {
×
UNCOV
867
        if s >= 0 && s < len(yyStatenames) {
×
UNCOV
868
                if yyStatenames[s] != "" {
×
UNCOV
869
                        return yyStatenames[s]
×
UNCOV
870
                }
×
871
        }
UNCOV
872
        return __yyfmt__.Sprintf("state-%v", s)
×
873
}
874

875
func yyErrorMessage(state, lookAhead int) string {
151✔
876
        const TOKSTART = 4
151✔
877

151✔
878
        if !yyErrorVerbose {
155✔
879
                return "syntax error"
4✔
880
        }
4✔
881

882
        for _, e := range yyErrorMessages {
147✔
UNCOV
883
                if e.state == state && e.token == lookAhead {
×
UNCOV
884
                        return "syntax error: " + e.msg
×
UNCOV
885
                }
×
886
        }
887

888
        res := "syntax error: unexpected " + yyTokname(lookAhead)
147✔
889

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

147✔
893
        // Look for shiftable tokens.
147✔
894
        base := int(yyPact[state])
147✔
895
        for tok := TOKSTART; tok-1 < len(yyToknames); tok++ {
4,482✔
896
                if n := base + tok; n >= 0 && n < yyLast && int(yyChk[int(yyAct[n])]) == tok {
5,019✔
897
                        if len(expected) == cap(expected) {
818✔
898
                                return res
134✔
899
                        }
134✔
900
                        expected = append(expected, tok)
550✔
901
                }
902
        }
903

904
        if yyDef[state] == -2 {
15✔
905
                i := 0
2✔
906
                for yyExca[i] != -1 || int(yyExca[i+1]) != state {
2✔
UNCOV
907
                        i += 2
×
UNCOV
908
                }
×
909

910
                // Look for tokens that we accept or reduce.
911
                for i += 2; yyExca[i] >= 0; i += 2 {
4✔
912
                        tok := int(yyExca[i])
2✔
913
                        if tok < TOKSTART || yyExca[i+1] == 0 {
4✔
914
                                continue
2✔
915
                        }
UNCOV
916
                        if len(expected) == cap(expected) {
×
UNCOV
917
                                return res
×
UNCOV
918
                        }
×
UNCOV
919
                        expected = append(expected, tok)
×
920
                }
921

922
                // If the default action is to accept or reduce, give up.
923
                if yyExca[i+1] != 0 {
2✔
UNCOV
924
                        return res
×
UNCOV
925
                }
×
926
        }
927

928
        for i, tok := range expected {
27✔
929
                if i == 0 {
25✔
930
                        res += ", expecting "
11✔
931
                } else {
14✔
932
                        res += " or "
3✔
933
                }
3✔
934
                res += yyTokname(tok)
14✔
935
        }
936
        return res
13✔
937
}
938

939
func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
69,139✔
940
        token = 0
69,139✔
941
        char = lex.Lex(lval)
69,139✔
942
        if char <= 0 {
73,298✔
943
                token = int(yyTok1[0])
4,159✔
944
                goto out
4,159✔
945
        }
946
        if char < len(yyTok1) {
89,051✔
947
                token = int(yyTok1[char])
24,071✔
948
                goto out
24,071✔
949
        }
950
        if char >= yyPrivate {
81,818✔
951
                if char < yyPrivate+len(yyTok2) {
81,818✔
952
                        token = int(yyTok2[char-yyPrivate])
40,909✔
953
                        goto out
40,909✔
954
                }
955
        }
UNCOV
956
        for i := 0; i < len(yyTok3); i += 2 {
×
UNCOV
957
                token = int(yyTok3[i+0])
×
UNCOV
958
                if token == char {
×
UNCOV
959
                        token = int(yyTok3[i+1])
×
UNCOV
960
                        goto out
×
961
                }
962
        }
963

964
out:
965
        if token == 0 {
69,139✔
UNCOV
966
                token = int(yyTok2[1]) /* unknown char */
×
UNCOV
967
        }
×
968
        if yyDebug >= 3 {
69,139✔
UNCOV
969
                __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
×
UNCOV
970
        }
×
971
        return char, token
69,139✔
972
}
973

974
func yyParse(yylex yyLexer) int {
4,308✔
975
        return yyNewParser().Parse(yylex)
4,308✔
976
}
4,308✔
977

978
func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
4,308✔
979
        var yyn int
4,308✔
980
        var yyVAL yySymType
4,308✔
981
        var yyDollar []yySymType
4,308✔
982
        _ = yyDollar // silence set and not used
4,308✔
983
        yyS := yyrcvr.stack[:]
4,308✔
984

4,308✔
985
        Nerrs := 0   /* number of errors */
4,308✔
986
        Errflag := 0 /* error recovery flag */
4,308✔
987
        yystate := 0
4,308✔
988
        yyrcvr.char = -1
4,308✔
989
        yytoken := -1 // yyrcvr.char translated into internal numbering
4,308✔
990
        defer func() {
8,616✔
991
                // Make sure we report no lookahead when not parsing.
4,308✔
992
                yystate = -1
4,308✔
993
                yyrcvr.char = -1
4,308✔
994
                yytoken = -1
4,308✔
995
        }()
4,308✔
996
        yyp := -1
4,308✔
997
        goto yystack
4,308✔
998

999
ret0:
1000
        return 0
4,157✔
1001

4,157✔
1002
ret1:
4,157✔
1003
        return 1
151✔
1004

151✔
1005
yystack:
151✔
1006
        /* put a state and value onto the stack */
1007
        if yyDebug >= 4 {
297,460✔
UNCOV
1008
                __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
×
UNCOV
1009
        }
×
1010

1011
        yyp++
297,460✔
1012
        if yyp >= len(yyS) {
297,560✔
1013
                nyys := make([]yySymType, len(yyS)*2)
100✔
1014
                copy(nyys, yyS)
100✔
1015
                yyS = nyys
100✔
1016
        }
100✔
1017
        yyS[yyp] = yyVAL
297,460✔
1018
        yyS[yyp].yys = yystate
297,460✔
1019

297,460✔
1020
yynewstate:
297,460✔
1021
        yyn = int(yyPact[yystate])
297,460✔
1022
        if yyn <= yyFlag {
448,379✔
1023
                goto yydefault /* simple state */
150,919✔
1024
        }
1025
        if yyrcvr.char < 0 {
215,680✔
1026
                yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
69,139✔
1027
        }
69,139✔
1028
        yyn += yytoken
146,541✔
1029
        if yyn < 0 || yyn >= yyLast {
150,849✔
1030
                goto yydefault
4,308✔
1031
        }
1032
        yyn = int(yyAct[yyn])
142,233✔
1033
        if int(yyChk[yyn]) == yytoken { /* valid shift */
207,064✔
1034
                yyrcvr.char = -1
64,831✔
1035
                yytoken = -1
64,831✔
1036
                yyVAL = yyrcvr.lval
64,831✔
1037
                yystate = yyn
64,831✔
1038
                if Errflag > 0 {
64,831✔
UNCOV
1039
                        Errflag--
×
UNCOV
1040
                }
×
1041
                goto yystack
64,831✔
1042
        }
1043

1044
yydefault:
1045
        /* default state action */
1046
        yyn = int(yyDef[yystate])
232,629✔
1047
        if yyn == -2 {
247,206✔
1048
                if yyrcvr.char < 0 {
14,577✔
UNCOV
1049
                        yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
×
UNCOV
1050
                }
×
1051

1052
                /* look through exception table */
1053
                xi := 0
14,577✔
1054
                for {
63,767✔
1055
                        if yyExca[xi+0] == -1 && int(yyExca[xi+1]) == yystate {
63,767✔
1056
                                break
14,577✔
1057
                        }
1058
                        xi += 2
34,613✔
1059
                }
1060
                for xi += 2; ; xi += 2 {
49,086✔
1061
                        yyn = int(yyExca[xi+0])
34,509✔
1062
                        if yyn < 0 || yyn == yytoken {
49,086✔
1063
                                break
14,577✔
1064
                        }
1065
                }
1066
                yyn = int(yyExca[xi+1])
14,577✔
1067
                if yyn < 0 {
18,734✔
1068
                        goto ret0
4,157✔
1069
                }
1070
        }
1071
        if yyn == 0 {
228,623✔
1072
                /* error ... attempt to resume parsing */
151✔
1073
                switch Errflag {
151✔
1074
                case 0: /* brand new error */
151✔
1075
                        yylex.Error(yyErrorMessage(yystate, yytoken))
151✔
1076
                        Nerrs++
151✔
1077
                        if yyDebug >= 1 {
151✔
UNCOV
1078
                                __yyfmt__.Printf("%s", yyStatname(yystate))
×
UNCOV
1079
                                __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
×
UNCOV
1080
                        }
×
1081
                        fallthrough
151✔
1082

1083
                case 1, 2: /* incompletely recovered error ... try again */
151✔
1084
                        Errflag = 3
151✔
1085

151✔
1086
                        /* find a state where "error" is a legal shift action */
151✔
1087
                        for yyp >= 0 {
727✔
1088
                                yyn = int(yyPact[yyS[yyp].yys]) + yyErrCode
576✔
1089
                                if yyn >= 0 && yyn < yyLast {
1,110✔
1090
                                        yystate = int(yyAct[yyn]) /* simulate a shift of "error" */
534✔
1091
                                        if int(yyChk[yystate]) == yyErrCode {
534✔
UNCOV
1092
                                                goto yystack
×
1093
                                        }
1094
                                }
1095

1096
                                /* the current p has no shift on "error", pop stack */
1097
                                if yyDebug >= 2 {
576✔
UNCOV
1098
                                        __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
×
UNCOV
1099
                                }
×
1100
                                yyp--
576✔
1101
                        }
1102
                        /* there is no state on the stack with an error shift ... abort */
1103
                        goto ret1
151✔
1104

UNCOV
1105
                case 3: /* no shift yet; clobber input char */
×
1106
                        if yyDebug >= 2 {
×
1107
                                __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
×
UNCOV
1108
                        }
×
UNCOV
1109
                        if yytoken == yyEofCode {
×
UNCOV
1110
                                goto ret1
×
1111
                        }
UNCOV
1112
                        yyrcvr.char = -1
×
UNCOV
1113
                        yytoken = -1
×
UNCOV
1114
                        goto yynewstate /* try again in the same state */
×
1115
                }
1116
        }
1117

1118
        /* reduction by production yyn */
1119
        if yyDebug >= 2 {
228,321✔
UNCOV
1120
                __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
×
UNCOV
1121
        }
×
1122

1123
        yynt := yyn
228,321✔
1124
        yypt := yyp
228,321✔
1125
        _ = yypt // guard against "declared and not used"
228,321✔
1126

228,321✔
1127
        yyp -= int(yyR2[yyn])
228,321✔
1128
        // yyp is now the index of $0. Perform the default action. Iff the
228,321✔
1129
        // reduced production is ε, $1 is possibly out of range.
228,321✔
1130
        if yyp+1 >= len(yyS) {
228,347✔
1131
                nyys := make([]yySymType, len(yyS)*2)
26✔
1132
                copy(nyys, yyS)
26✔
1133
                yyS = nyys
26✔
1134
        }
26✔
1135
        yyVAL = yyS[yyp+1]
228,321✔
1136

228,321✔
1137
        /* consult goto table to find next state */
228,321✔
1138
        yyn = int(yyR1[yyn])
228,321✔
1139
        yyg := int(yyPgo[yyn])
228,321✔
1140
        yyj := yyg + yyS[yyp].yys + 1
228,321✔
1141

228,321✔
1142
        if yyj >= yyLast {
228,321✔
UNCOV
1143
                yystate = int(yyAct[yyg])
×
1144
        } else {
228,321✔
1145
                yystate = int(yyAct[yyj])
228,321✔
1146
                if int(yyChk[yystate]) != -yyn {
418,897✔
1147
                        yystate = int(yyAct[yyg])
190,576✔
1148
                }
190,576✔
1149
        }
1150
        // dummy call; replaced with literal code
1151
        switch yynt {
228,321✔
1152

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