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

codenotary / immudb / 18658094170

20 Oct 2025 04:13PM UTC coverage: 89.267% (+0.002%) from 89.265%
18658094170

Pull #2076

gh-ci

els-tmiller
fix spacing
Pull Request #2076: S3 Storage - Fargate Credentials

16 of 17 new or added lines in 4 files covered. (94.12%)

452 existing lines in 4 files now uncovered.

37974 of 42540 relevant lines covered (89.27%)

149951.18 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
        sqlType         SQLValueType
30
        aggFn           AggregateFn
31
        ids             []string
32
        col             *ColSelector
33
        sel             Selector
34
        targets         []TargetEntry
35
        jsonFields      []string
36
        distinct        bool
37
        ds              DataSource
38
        tableRef        *tableRef
39
        period          period
40
        openPeriod      *openPeriod
41
        periodInstant   periodInstant
42
        joins           []*JoinSpec
43
        join            *JoinSpec
44
        joinType        JoinType
45
        check           CheckConstraint
46
        exp             ValueExp
47
        binExp          ValueExp
48
        err             error
49
        ordexps         []*OrdExp
50
        opt_ord         bool
51
        logicOp         LogicOperator
52
        cmpOp           CmpOperator
53
        pparam          int
54
        update          *colUpdate
55
        updates         []*colUpdate
56
        onConflict      *OnConflictDo
57
        permission      Permission
58
        sqlPrivilege    SQLPrivilege
59
        sqlPrivileges   []SQLPrivilege
60
        whenThenClauses []whenThenClause
61
        tableElem       TableElem
62
        tableElems      []TableElem
63
}
64

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

173
var yyToknames = [...]string{
174
        "$end",
175
        "error",
176
        "$unk",
177
        "CREATE",
178
        "DROP",
179
        "USE",
180
        "DATABASE",
181
        "USER",
182
        "WITH",
183
        "PASSWORD",
184
        "READ",
185
        "READWRITE",
186
        "ADMIN",
187
        "SNAPSHOT",
188
        "HISTORY",
189
        "SINCE",
190
        "AFTER",
191
        "BEFORE",
192
        "UNTIL",
193
        "TX",
194
        "OF",
195
        "TIMESTAMP",
196
        "TABLE",
197
        "UNIQUE",
198
        "INDEX",
199
        "ON",
200
        "ALTER",
201
        "ADD",
202
        "RENAME",
203
        "TO",
204
        "COLUMN",
205
        "CONSTRAINT",
206
        "PRIMARY",
207
        "KEY",
208
        "CHECK",
209
        "GRANT",
210
        "REVOKE",
211
        "GRANTS",
212
        "FOR",
213
        "PRIVILEGES",
214
        "BEGIN",
215
        "TRANSACTION",
216
        "COMMIT",
217
        "ROLLBACK",
218
        "INSERT",
219
        "UPSERT",
220
        "INTO",
221
        "VALUES",
222
        "DELETE",
223
        "UPDATE",
224
        "SET",
225
        "CONFLICT",
226
        "DO",
227
        "NOTHING",
228
        "RETURNING",
229
        "SELECT",
230
        "DISTINCT",
231
        "FROM",
232
        "JOIN",
233
        "HAVING",
234
        "WHERE",
235
        "GROUP",
236
        "BY",
237
        "LIMIT",
238
        "OFFSET",
239
        "ORDER",
240
        "ASC",
241
        "DESC",
242
        "AS",
243
        "UNION",
244
        "ALL",
245
        "CASE",
246
        "WHEN",
247
        "THEN",
248
        "ELSE",
249
        "END",
250
        "NOT",
251
        "LIKE",
252
        "IF",
253
        "EXISTS",
254
        "IN",
255
        "IS",
256
        "AUTO_INCREMENT",
257
        "NULL",
258
        "CAST",
259
        "SCAST",
260
        "SHOW",
261
        "DATABASES",
262
        "TABLES",
263
        "USERS",
264
        "BETWEEN",
265
        "NPARAM",
266
        "PPARAM",
267
        "JOINTYPE",
268
        "AND",
269
        "OR",
270
        "CMPOP",
271
        "NOT_MATCHES_OP",
272
        "IDENTIFIER",
273
        "TYPE",
274
        "INTEGER",
275
        "FLOAT",
276
        "VARCHAR",
277
        "BOOLEAN",
278
        "BLOB",
279
        "AGGREGATE_FUNC",
280
        "ERROR",
281
        "DOT",
282
        "ARROW",
283
        "','",
284
        "'+'",
285
        "'-'",
286
        "'*'",
287
        "'/'",
288
        "'%'",
289
        "'.'",
290
        "STMT_SEPARATOR",
291
        "'('",
292
        "')'",
293
        "'['",
294
        "']'",
295
}
296

297
var yyStatenames = [...]string{}
298

299
const yyEofCode = 1
300
const yyErrCode = 2
301
const yyInitialStackSize = 16
302

303
var yyExca = [...]int16{
304
        -1, 1,
305
        1, -1,
306
        -2, 0,
307
        -1, 102,
308
        78, 218,
309
        81, 218,
310
        -2, 203,
311
        -1, 287,
312
        59, 152,
313
        -2, 147,
314
        -1, 342,
315
        59, 152,
316
        -2, 149,
317
}
318

319
const yyPrivate = 57344
320

321
const yyLast = 540
322

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

380
var yyPact = [...]int16{
381
        418, -1000, -1000, -2, -1000, -1000, -1000, 343, -1000, -1000,
382
        458, 164, 435, 465, 382, 382, 337, 334, 313, 150,
383
        263, 250, 316, -1000, 418, -1000, 220, 220, 220, 431,
384
        168, -1000, 167, 461, 163, 161, 162, 153, 151, 422,
385
        348, 40, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 420,
386
        150, 150, 150, 329, -1000, 259, -1000, -1000, 149, -1000,
387
        350, 298, -1000, -1000, 148, 216, 136, 416, 220, 480,
388
        -1000, -1000, 457, 39, 39, -1000, 135, 48, -1000, 421,
389
        478, 486, -1000, 382, 485, -4, -5, 302, 100, 224,
390
        -1000, -1000, 131, 310, -1000, 38, 106, 173, 176, -1000,
391
        152, -1000, 130, -1000, 7, -10, -1000, -1000, 152, 223,
392
        -1000, 152, 188, -1000, -1000, 44, -12, -1000, -1000, -1000,
393
        -1000, -1000, -13, -1000, -1000, -1000, -1000, -21, -1000, 211,
394
        -14, 124, 409, 470, -1000, 39, 39, -1000, 152, -1000,
395
        -1000, -16, 121, 377, 384, 381, 469, 120, -1000, 118,
396
        82, 82, 489, 152, 64, -1000, 171, -1000, -1000, 11,
397
        152, -1000, -1000, 117, 152, 152, -1000, 223, 200, 223,
398
        214, 223, 223, 223, -1000, 223, 223, 223, 224, 248,
399
        -1000, -1000, -34, 73, 43, 59, 36, 152, 152, 116,
400
        -1000, 144, -20, 115, 57, -1000, -1000, -1000, 82, -1000,
401
        114, 112, 110, 109, 107, 56, 398, 391, -35, 27,
402
        -1000, -53, 286, 426, -1000, 489, 100, 152, 489, 461,
403
        261, -22, -23, -24, -25, 106, -26, 106, -1000, 176,
404
        -1000, 6, -1000, 202, 35, 223, -27, 6, 7, 7,
405
        -1000, -1000, -1000, -37, 237, 152, -1000, -1000, 55, -1000,
406
        -38, -39, 47, 265, -40, 26, -1000, -1000, -58, -1000,
407
        -1000, -1000, 372, 72, 152, 99, 82, -28, 473, -66,
408
        -1000, -1000, 387, -1000, -1000, 473, 483, 482, 231, 98,
409
        231, 281, 152, 408, 286, -1000, -1000, 178, 106, -30,
410
        -41, 436, -48, -50, 87, -51, -1000, -1000, -1000, 223,
411
        6, -29, -1000, 227, 152, 152, 240, -1000, -1000, -1000,
412
        70, -1000, 152, -1000, 144, -32, -85, -1000, 357, -70,
413
        82, -1000, -1000, -1000, -1000, -1000, 86, -1000, 85, 84,
414
        407, -30, -1000, -1000, -1000, -1000, 152, -1000, -32, 281,
415
        302, -1000, 178, 308, -1000, -1000, -72, -1000, 152, 106,
416
        83, 106, 106, -54, 106, 6, -59, -73, -1000, 230,
417
        -1000, 152, -65, -1000, -1000, -1000, -1000, 82, 198, 68,
418
        65, 152, -1000, -74, -1000, -1000, -1000, -1000, 325, 23,
419
        -1000, -1000, -1000, 297, -1000, 11, -30, -1000, -69, -1000,
420
        -77, -1000, -1000, -1000, -1000, -1000, -1000, 152, -1000, -1000,
421
        -78, 207, -1000, 197, -90, -80, -1000, -1000, 323, 306,
422
        293, 489, -1000, -1000, 106, -1000, -1000, 374, -1000, -1000,
423
        -1000, -1000, 320, 279, 152, 81, 404, -1000, -1000, 360,
424
        -1000, 286, 288, -1000, 18, -1000, 152, -1000, 281, 152,
425
        81, -1000, -1000, 16, 276, -1000, 152, -1000, -1000, -1000,
426
        276, -1000,
427
}
428

429
var yyPgo = [...]int16{
430
        0, 539, 469, 538, 537, 536, 17, 535, 25, 11,
431
        14, 534, 533, 15, 8, 18, 12, 532, 7, 531,
432
        530, 3, 529, 528, 10, 19, 419, 20, 527, 526,
433
        28, 525, 9, 524, 523, 522, 16, 521, 0, 520,
434
        13, 519, 518, 517, 516, 29, 515, 514, 23, 26,
435
        30, 24, 513, 512, 4, 2, 511, 510, 509, 508,
436
        5, 507, 506, 1, 6, 336, 504, 503, 502, 501,
437
        22, 500, 499, 21, 498, 285, 497, 496,
438
}
439

440
var yyR1 = [...]int8{
441
        0, 1, 2, 2, 77, 77, 3, 3, 3, 4,
442
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
443
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
444
        4, 4, 4, 75, 75, 75, 74, 74, 74, 74,
445
        74, 74, 74, 73, 73, 73, 73, 65, 65, 10,
446
        10, 5, 5, 5, 5, 25, 25, 72, 72, 71,
447
        71, 70, 11, 11, 13, 13, 14, 9, 9, 12,
448
        12, 16, 16, 15, 15, 17, 17, 17, 17, 17,
449
        17, 17, 17, 17, 17, 18, 37, 37, 36, 36,
450
        36, 8, 69, 69, 59, 59, 59, 66, 66, 67,
451
        67, 67, 6, 6, 6, 6, 6, 6, 6, 6,
452
        7, 7, 23, 23, 22, 22, 57, 57, 58, 58,
453
        19, 19, 19, 19, 20, 20, 21, 21, 24, 24,
454
        24, 24, 24, 24, 24, 24, 24, 26, 27, 28,
455
        28, 28, 29, 29, 29, 30, 30, 31, 31, 32,
456
        32, 33, 34, 34, 40, 40, 53, 53, 41, 41,
457
        54, 54, 55, 55, 62, 62, 64, 64, 61, 61,
458
        63, 63, 63, 60, 60, 60, 35, 35, 39, 39,
459
        56, 76, 76, 43, 43, 38, 44, 44, 45, 45,
460
        49, 49, 46, 46, 46, 46, 46, 46, 46, 47,
461
        47, 47, 47, 47, 48, 48, 48, 50, 50, 50,
462
        50, 51, 51, 52, 52, 42, 42, 42, 68, 68,
463
}
464

465
var yyR2 = [...]int8{
466
        0, 1, 2, 3, 0, 1, 1, 1, 1, 2,
467
        1, 1, 1, 4, 2, 3, 3, 7, 3, 8,
468
        9, 7, 5, 6, 6, 8, 6, 6, 7, 7,
469
        3, 8, 8, 2, 1, 3, 1, 1, 1, 1,
470
        1, 1, 1, 0, 1, 1, 1, 0, 3, 1,
471
        3, 8, 7, 7, 8, 2, 1, 0, 4, 1,
472
        3, 3, 0, 1, 1, 3, 3, 1, 3, 1,
473
        3, 0, 1, 1, 3, 1, 1, 1, 1, 1,
474
        6, 1, 1, 1, 1, 4, 1, 3, 1, 1,
475
        3, 6, 0, 2, 0, 3, 3, 0, 1, 0,
476
        1, 2, 1, 4, 2, 2, 3, 2, 2, 4,
477
        13, 3, 0, 1, 0, 1, 1, 1, 2, 4,
478
        1, 2, 4, 4, 2, 3, 1, 3, 3, 4,
479
        4, 4, 4, 4, 4, 2, 6, 1, 2, 0,
480
        2, 2, 0, 2, 2, 2, 1, 0, 1, 1,
481
        2, 6, 0, 1, 0, 2, 0, 3, 0, 2,
482
        0, 2, 0, 2, 0, 3, 0, 4, 2, 4,
483
        0, 1, 1, 0, 1, 2, 2, 4, 0, 1,
484
        5, 4, 5, 0, 2, 1, 3, 1, 3, 1,
485
        2, 1, 3, 3, 4, 5, 4, 3, 1, 4,
486
        6, 6, 1, 1, 3, 3, 1, 3, 3, 3,
487
        1, 2, 1, 3, 1, 1, 1, 3, 0, 1,
488
}
489

490
var yyChk = [...]int16{
491
        -1000, -1, -2, -3, -4, -5, -6, 41, 43, 44,
492
        4, 6, 5, 27, 36, 37, 45, 46, 49, 50,
493
        -7, 87, 56, -77, 117, 42, 7, 23, 25, 24,
494
        8, 99, 7, 14, 23, 25, 8, 23, 8, -75,
495
        71, -74, 56, 4, 45, 50, 49, 5, 27, -75,
496
        47, 47, 58, -26, 99, 70, 88, 89, 23, 90,
497
        38, -22, 57, -2, -65, 79, -65, -65, 25, 99,
498
        99, -27, -28, 16, 17, 99, 26, 99, 99, 99,
499
        99, 26, 40, 110, 26, -26, -26, -26, 51, -23,
500
        71, 99, 39, -57, 113, -58, -38, -44, -45, -49,
501
        77, -46, -48, -47, -50, 80, -56, -51, 72, 112,
502
        -52, 118, -42, -19, -17, -21, 106, 101, 102, 103,
503
        104, 105, 85, -18, 92, 93, 84, 99, 99, 77,
504
        99, 26, -65, 9, -29, 19, 18, -30, 20, -38,
505
        -30, 99, 108, 28, 29, 5, 9, 7, -75, 7,
506
        118, 118, -40, 61, -71, -70, 99, -6, 99, 58,
507
        110, -60, 99, 69, 96, 95, -49, 97, 82, 91,
508
        -68, 98, 111, 112, 77, 113, 114, 115, 118, -39,
509
        -38, -51, -38, 86, -20, 109, 118, 118, 118, 108,
510
        80, 118, 99, 26, 10, -30, -30, -38, 118, 99,
511
        31, 30, 31, 31, 32, 10, 99, 99, -11, -9,
512
        99, -9, -64, 6, -38, -40, 110, 97, -24, -26,
513
        118, 88, 89, 23, 90, -18, 99, -38, 99, -45,
514
        -49, -48, 84, 77, -48, 78, 81, -48, -50, -50,
515
        -51, -51, -51, -6, -76, 73, 119, 100, 109, 103,
516
        113, -21, 99, -38, -16, -15, -38, 99, -37, -36,
517
        -8, -35, 33, 99, 35, 32, 118, 99, 103, -9,
518
        -8, 99, 99, 99, 99, 103, 30, 30, 119, 110,
519
        119, -54, 64, 25, -64, -70, -38, -64, -27, 48,
520
        -6, 15, 118, 118, 118, 118, -60, -60, 84, 95,
521
        -48, 118, 119, -43, 73, 75, -38, 103, 119, 119,
522
        69, 119, 110, 119, 110, 34, 100, -38, 99, -9,
523
        118, -73, 11, 12, 13, 119, 30, -73, 8, 8,
524
        -25, 48, -6, 99, -25, -55, 65, -38, 26, -54,
525
        -31, -32, -33, -34, 94, -60, -13, -14, 118, 119,
526
        21, 119, 119, 99, 119, -48, -6, -15, 76, -38,
527
        -38, 74, 100, -38, -36, -10, 99, 118, -59, 120,
528
        118, 35, 119, -9, 99, 99, 99, -72, 26, -13,
529
        -38, -10, -55, -40, -32, 59, 110, 119, -16, -60,
530
        99, -60, -60, 119, -60, 119, 119, 74, -38, 119,
531
        -9, -67, 84, 77, 101, 101, -38, 119, 52, -53,
532
        62, -24, -14, 119, 119, -38, 119, -66, 83, 84,
533
        121, 119, 53, -41, 60, 63, -64, -60, -69, 33,
534
        54, -62, 66, -38, -12, -21, 26, 34, -54, 63,
535
        110, -38, -55, -61, -38, -21, 110, -63, 67, 68,
536
        -38, -63,
537
}
538

539
var yyDef = [...]int16{
540
        0, -2, 1, 4, 6, 7, 8, 10, 11, 12,
541
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
542
        102, 0, 114, 2, 5, 9, 47, 47, 47, 0,
543
        0, 14, 0, 139, 0, 0, 0, 0, 0, 0,
544
        0, 34, 36, 37, 38, 39, 40, 41, 42, 0,
545
        0, 0, 0, 0, 137, 112, 104, 105, 0, 107,
546
        108, 0, 115, 3, 0, 0, 0, 0, 47, 0,
547
        15, 16, 142, 0, 0, 18, 0, 0, 30, 0,
548
        0, 0, 33, 0, 0, 0, 0, 154, 0, 0,
549
        113, 106, 0, 111, 116, 117, 173, 185, 187, 189,
550
        0, 191, -2, 198, 206, 0, 202, 210, 178, 0,
551
        212, 0, 214, 215, 216, 120, 0, 75, 76, 77,
552
        78, 79, 0, 81, 82, 83, 84, 126, 13, 0,
553
        0, 0, 0, 0, 138, 0, 0, 140, 0, 146,
554
        141, 0, 0, 0, 0, 0, 0, 0, 35, 0,
555
        62, 0, 166, 0, 154, 59, 0, 103, 109, 0,
556
        0, 118, 174, 0, 0, 0, 190, 0, 0, 0,
557
        0, 0, 0, 0, 219, 0, 0, 0, 0, 0,
558
        179, 211, 0, 0, 121, 0, 0, 0, 71, 0,
559
        48, 0, 0, 0, 0, 143, 144, 145, 0, 22,
560
        0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
561
        67, 0, 160, 0, 155, 166, 0, 0, 166, 139,
562
        0, 0, 0, 0, 0, 173, 137, 173, 175, 186,
563
        188, 192, 193, 0, 0, 0, 0, 197, 204, 205,
564
        207, 208, 209, 0, 183, 0, 213, 217, 0, 124,
565
        0, 0, 126, 0, 0, 72, 73, 127, 0, 86,
566
        88, 89, 0, 0, 0, 0, 0, 0, 43, 0,
567
        23, 24, 0, 26, 27, 43, 0, 0, 0, 0,
568
        0, 162, 0, 0, 160, 60, 61, -2, 173, 0,
569
        0, 0, 0, 0, 0, 0, 135, 119, 194, 0,
570
        196, 0, 199, 0, 0, 0, 0, 125, 122, 123,
571
        0, 85, 0, 17, 0, 0, 94, 176, 0, 0,
572
        0, 28, 44, 45, 46, 21, 0, 29, 0, 0,
573
        57, 0, 56, 68, 52, 53, 0, 161, 0, 162,
574
        154, 148, -2, 0, 153, 128, 0, 64, 71, 173,
575
        0, 173, 173, 0, 173, 195, 0, 0, 180, 0,
576
        184, 0, 0, 74, 87, 90, 49, 0, 99, 0,
577
        0, 0, 19, 0, 25, 31, 32, 51, 0, 55,
578
        163, 167, 54, 156, 150, 0, 0, 129, 0, 130,
579
        0, 131, 132, 133, 134, 200, 201, 0, 181, 80,
580
        0, 97, 100, 0, 0, 0, 177, 20, 0, 158,
581
        0, 166, 65, 66, 173, 182, 50, 92, 98, 101,
582
        95, 96, 0, 164, 0, 0, 0, 136, 91, 0,
583
        58, 160, 0, 159, 157, 69, 0, 93, 162, 0,
584
        0, 151, 110, 165, 170, 70, 0, 168, 171, 172,
585
        170, 169,
586
}
587

588
var yyTok1 = [...]int8{
589
        1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
590
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
591
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
592
        3, 3, 3, 3, 3, 3, 3, 115, 3, 3,
593
        118, 119, 113, 111, 110, 112, 116, 114, 3, 3,
594
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
595
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
596
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
597
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
598
        3, 120, 3, 121,
599
}
600

601
var yyTok2 = [...]int8{
602
        2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
603
        12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
604
        22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
605
        32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
606
        42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
607
        52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
608
        62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
609
        72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
610
        82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
611
        92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
612
        102, 103, 104, 105, 106, 107, 108, 109, 117,
613
}
614

615
var yyTok3 = [...]int8{
616
        0,
617
}
618

619
var yyErrorMessages = [...]struct {
620
        state int
621
        token int
622
        msg   string
623
}{}
624

625
/*        parser for yacc output        */
626

627
var (
628
        yyDebug        = 0
629
        yyErrorVerbose = false
630
)
631

632
type yyLexer interface {
633
        Lex(lval *yySymType) int
634
        Error(s string)
635
}
636

637
type yyParser interface {
638
        Parse(yyLexer) int
639
        Lookahead() int
640
}
641

642
type yyParserImpl struct {
643
        lval  yySymType
644
        stack [yyInitialStackSize]yySymType
645
        char  int
646
}
647

648
func (p *yyParserImpl) Lookahead() int {
649
        return p.char
650
}
651

652
func yyNewParser() yyParser {
653
        return &yyParserImpl{}
654
}
655

656
const yyFlag = -1000
657

658
func yyTokname(c int) string {
659
        if c >= 1 && c-1 < len(yyToknames) {
660
                if yyToknames[c-1] != "" {
661
                        return yyToknames[c-1]
662
                }
663
        }
664
        return __yyfmt__.Sprintf("tok-%v", c)
665
}
666

667
func yyStatname(s int) string {
668
        if s >= 0 && s < len(yyStatenames) {
669
                if yyStatenames[s] != "" {
670
                        return yyStatenames[s]
671
                }
672
        }
673
        return __yyfmt__.Sprintf("state-%v", s)
674
}
675

676
func yyErrorMessage(state, lookAhead int) string {
677
        const TOKSTART = 4
678

679
        if !yyErrorVerbose {
680
                return "syntax error"
681
        }
682

683
        for _, e := range yyErrorMessages {
684
                if e.state == state && e.token == lookAhead {
685
                        return "syntax error: " + e.msg
686
                }
687
        }
688

689
        res := "syntax error: unexpected " + yyTokname(lookAhead)
690

691
        // To match Bison, suggest at most four expected tokens.
692
        expected := make([]int, 0, 4)
693

694
        // Look for shiftable tokens.
695
        base := int(yyPact[state])
696
        for tok := TOKSTART; tok-1 < len(yyToknames); tok++ {
697
                if n := base + tok; n >= 0 && n < yyLast && int(yyChk[int(yyAct[n])]) == tok {
698
                        if len(expected) == cap(expected) {
699
                                return res
700
                        }
701
                        expected = append(expected, tok)
702
                }
703
        }
704

705
        if yyDef[state] == -2 {
706
                i := 0
707
                for yyExca[i] != -1 || int(yyExca[i+1]) != state {
708
                        i += 2
709
                }
710

711
                // Look for tokens that we accept or reduce.
712
                for i += 2; yyExca[i] >= 0; i += 2 {
713
                        tok := int(yyExca[i])
714
                        if tok < TOKSTART || yyExca[i+1] == 0 {
715
                                continue
716
                        }
717
                        if len(expected) == cap(expected) {
718
                                return res
719
                        }
720
                        expected = append(expected, tok)
721
                }
722

723
                // If the default action is to accept or reduce, give up.
724
                if yyExca[i+1] != 0 {
725
                        return res
726
                }
727
        }
728

729
        for i, tok := range expected {
730
                if i == 0 {
731
                        res += ", expecting "
732
                } else {
733
                        res += " or "
734
                }
735
                res += yyTokname(tok)
736
        }
737
        return res
738
}
739

740
func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
741
        token = 0
742
        char = lex.Lex(lval)
743
        if char <= 0 {
744
                token = int(yyTok1[0])
745
                goto out
746
        }
747
        if char < len(yyTok1) {
748
                token = int(yyTok1[char])
749
                goto out
750
        }
751
        if char >= yyPrivate {
752
                if char < yyPrivate+len(yyTok2) {
753
                        token = int(yyTok2[char-yyPrivate])
754
                        goto out
755
                }
756
        }
757
        for i := 0; i < len(yyTok3); i += 2 {
758
                token = int(yyTok3[i+0])
759
                if token == char {
760
                        token = int(yyTok3[i+1])
761
                        goto out
762
                }
763
        }
764

765
out:
766
        if token == 0 {
767
                token = int(yyTok2[1]) /* unknown char */
768
        }
769
        if yyDebug >= 3 {
770
                __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
771
        }
772
        return char, token
773
}
774

775
func yyParse(yylex yyLexer) int {
776
        return yyNewParser().Parse(yylex)
777
}
778

779
func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
780
        var yyn int
781
        var yyVAL yySymType
782
        var yyDollar []yySymType
783
        _ = yyDollar // silence set and not used
784
        yyS := yyrcvr.stack[:]
785

786
        Nerrs := 0   /* number of errors */
787
        Errflag := 0 /* error recovery flag */
788
        yystate := 0
789
        yyrcvr.char = -1
790
        yytoken := -1 // yyrcvr.char translated into internal numbering
791
        defer func() {
792
                // Make sure we report no lookahead when not parsing.
793
                yystate = -1
794
                yyrcvr.char = -1
795
                yytoken = -1
796
        }()
797
        yyp := -1
798
        goto yystack
799

800
ret0:
801
        return 0
802

803
ret1:
804
        return 1
805

806
yystack:
807
        /* put a state and value onto the stack */
808
        if yyDebug >= 4 {
809
                __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
810
        }
811

812
        yyp++
813
        if yyp >= len(yyS) {
814
                nyys := make([]yySymType, len(yyS)*2)
815
                copy(nyys, yyS)
816
                yyS = nyys
817
        }
818
        yyS[yyp] = yyVAL
819
        yyS[yyp].yys = yystate
820

821
yynewstate:
822
        yyn = int(yyPact[yystate])
823
        if yyn <= yyFlag {
824
                goto yydefault /* simple state */
825
        }
826
        if yyrcvr.char < 0 {
827
                yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
828
        }
829
        yyn += yytoken
830
        if yyn < 0 || yyn >= yyLast {
831
                goto yydefault
832
        }
833
        yyn = int(yyAct[yyn])
834
        if int(yyChk[yyn]) == yytoken { /* valid shift */
835
                yyrcvr.char = -1
836
                yytoken = -1
837
                yyVAL = yyrcvr.lval
838
                yystate = yyn
839
                if Errflag > 0 {
840
                        Errflag--
841
                }
842
                goto yystack
843
        }
844

845
yydefault:
846
        /* default state action */
UNCOV
847
        yyn = int(yyDef[yystate])
×
UNCOV
848
        if yyn == -2 {
×
UNCOV
849
                if yyrcvr.char < 0 {
×
850
                        yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
851
                }
4,308✔
852

4,308✔
853
                /* look through exception table */
4,308✔
854
                xi := 0
855
                for {
856
                        if yyExca[xi+0] == -1 && int(yyExca[xi+1]) == yystate {
857
                                break
161✔
858
                        }
322✔
859
                        xi += 2
322✔
860
                }
161✔
861
                for xi += 2; ; xi += 2 {
161✔
862
                        yyn = int(yyExca[xi+0])
UNCOV
863
                        if yyn < 0 || yyn == yytoken {
×
864
                                break
865
                        }
UNCOV
866
                }
×
UNCOV
867
                yyn = int(yyExca[xi+1])
×
UNCOV
868
                if yyn < 0 {
×
UNCOV
869
                        goto ret0
×
UNCOV
870
                }
×
871
        }
UNCOV
872
        if yyn == 0 {
×
873
                /* error ... attempt to resume parsing */
874
                switch Errflag {
875
                case 0: /* brand new error */
151✔
876
                        yylex.Error(yyErrorMessage(yystate, yytoken))
151✔
877
                        Nerrs++
151✔
878
                        if yyDebug >= 1 {
155✔
879
                                __yyfmt__.Printf("%s", yyStatname(yystate))
4✔
880
                                __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
4✔
881
                        }
882
                        fallthrough
147✔
UNCOV
883

×
UNCOV
884
                case 1, 2: /* incompletely recovered error ... try again */
×
UNCOV
885
                        Errflag = 3
×
886

887
                        /* find a state where "error" is a legal shift action */
888
                        for yyp >= 0 {
147✔
889
                                yyn = int(yyPact[yyS[yyp].yys]) + yyErrCode
147✔
890
                                if yyn >= 0 && yyn < yyLast {
147✔
891
                                        yystate = int(yyAct[yyn]) /* simulate a shift of "error" */
147✔
892
                                        if int(yyChk[yystate]) == yyErrCode {
147✔
893
                                                goto yystack
147✔
894
                                        }
147✔
895
                                }
4,482✔
896

5,019✔
897
                                /* the current p has no shift on "error", pop stack */
818✔
898
                                if yyDebug >= 2 {
134✔
899
                                        __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
134✔
900
                                }
550✔
901
                                yyp--
902
                        }
903
                        /* there is no state on the stack with an error shift ... abort */
904
                        goto ret1
15✔
905

2✔
906
                case 3: /* no shift yet; clobber input char */
2✔
907
                        if yyDebug >= 2 {
×
908
                                __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
×
909
                        }
910
                        if yytoken == yyEofCode {
911
                                goto ret1
4✔
912
                        }
2✔
913
                        yyrcvr.char = -1
4✔
914
                        yytoken = -1
2✔
915
                        goto yynewstate /* try again in the same state */
UNCOV
916
                }
×
UNCOV
917
        }
×
UNCOV
918

×
UNCOV
919
        /* reduction by production yyn */
×
920
        if yyDebug >= 2 {
921
                __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
922
        }
923

2✔
UNCOV
924
        yynt := yyn
×
UNCOV
925
        yypt := yyp
×
926
        _ = yypt // guard against "declared and not used"
927

928
        yyp -= int(yyR2[yyn])
27✔
929
        // yyp is now the index of $0. Perform the default action. Iff the
25✔
930
        // reduced production is ε, $1 is possibly out of range.
11✔
931
        if yyp+1 >= len(yyS) {
14✔
932
                nyys := make([]yySymType, len(yyS)*2)
3✔
933
                copy(nyys, yyS)
3✔
934
                yyS = nyys
14✔
935
        }
936
        yyVAL = yyS[yyp+1]
13✔
937

938
        /* consult goto table to find next state */
939
        yyn = int(yyR1[yyn])
69,139✔
940
        yyg := int(yyPgo[yyn])
69,139✔
941
        yyj := yyg + yyS[yyp].yys + 1
69,139✔
942

73,298✔
943
        if yyj >= yyLast {
4,159✔
944
                yystate = int(yyAct[yyg])
4,159✔
945
        } else {
946
                yystate = int(yyAct[yyj])
89,051✔
947
                if int(yyChk[yystate]) != -yyn {
24,071✔
948
                        yystate = int(yyAct[yyg])
24,071✔
949
                }
950
        }
81,818✔
951
        // dummy call; replaced with literal code
81,818✔
952
        switch yynt {
40,909✔
953

40,909✔
954
        case 1:
955
                yyDollar = yyS[yypt-1 : yypt+1]
UNCOV
956
                {
×
UNCOV
957
                        yyVAL.stmts = yyDollar[1].stmts
×
UNCOV
958
                        setResult(yylex, yyDollar[1].stmts)
×
UNCOV
959
                }
×
UNCOV
960
        case 2:
×
961
                yyDollar = yyS[yypt-2 : yypt+1]
962
                {
963
                        yyVAL.stmts = []SQLStmt{yyDollar[1].stmt}
964
                }
965
        case 3:
69,139✔
UNCOV
966
                yyDollar = yyS[yypt-3 : yypt+1]
×
UNCOV
967
                {
×
968
                        yyVAL.stmts = append([]SQLStmt{yyDollar[1].stmt}, yyDollar[3].stmts...)
69,139✔
UNCOV
969
                }
×
UNCOV
970
        case 4:
×
971
                yyDollar = yyS[yypt-0 : yypt+1]
69,139✔
972
                {
973
                }
974
        case 9:
4,308✔
975
                yyDollar = yyS[yypt-2 : yypt+1]
4,308✔
976
                {
4,308✔
977
                        yyVAL.stmt = &BeginTransactionStmt{}
978
                }
4,308✔
979
        case 10:
4,308✔
980
                yyDollar = yyS[yypt-1 : yypt+1]
4,308✔
981
                {
4,308✔
982
                        yyVAL.stmt = &BeginTransactionStmt{}
4,308✔
983
                }
4,308✔
984
        case 11:
4,308✔
985
                yyDollar = yyS[yypt-1 : yypt+1]
4,308✔
986
                {
4,308✔
987
                        yyVAL.stmt = &CommitStmt{}
4,308✔
988
                }
4,308✔
989
        case 12:
4,308✔
990
                yyDollar = yyS[yypt-1 : yypt+1]
8,616✔
991
                {
4,308✔
992
                        yyVAL.stmt = &RollbackStmt{}
4,308✔
993
                }
4,308✔
994
        case 13:
4,308✔
995
                yyDollar = yyS[yypt-4 : yypt+1]
4,308✔
996
                {
4,308✔
997
                        yyVAL.stmt = &CreateDatabaseStmt{ifNotExists: yyDollar[3].boolean, DB: yyDollar[4].id}
4,308✔
998
                }
999
        case 14:
1000
                yyDollar = yyS[yypt-2 : yypt+1]
4,157✔
1001
                {
4,157✔
1002
                        yyVAL.stmt = &UseDatabaseStmt{DB: yyDollar[2].id}
4,157✔
1003
                }
151✔
1004
        case 15:
151✔
1005
                yyDollar = yyS[yypt-3 : yypt+1]
151✔
1006
                {
1007
                        yyVAL.stmt = &UseDatabaseStmt{DB: yyDollar[3].id}
297,460✔
UNCOV
1008
                }
×
UNCOV
1009
        case 16:
×
1010
                yyDollar = yyS[yypt-3 : yypt+1]
1011
                {
297,460✔
1012
                        yyVAL.stmt = &UseSnapshotStmt{period: yyDollar[3].period}
297,560✔
1013
                }
100✔
1014
        case 17:
100✔
1015
                yyDollar = yyS[yypt-7 : yypt+1]
100✔
1016
                {
100✔
1017
                        colsSpecs := make([]*ColSpec, 0, 5)
297,460✔
1018
                        var checks []CheckConstraint
297,460✔
1019

297,460✔
1020
                        var pk PrimaryKeyConstraint
297,460✔
1021

297,460✔
1022
                        for _, e := range yyDollar[6].tableElems {
448,379✔
1023
                                switch c := e.(type) {
150,919✔
1024
                                case *ColSpec:
1025
                                        colsSpecs = append(colsSpecs, c)
215,680✔
1026
                                case PrimaryKeyConstraint:
69,139✔
1027
                                        pk = c
69,139✔
1028
                                case CheckConstraint:
146,541✔
1029
                                        if checks == nil {
150,849✔
1030
                                                checks = make([]CheckConstraint, 0, 5)
4,308✔
1031
                                        }
1032
                                        checks = append(checks, c)
142,233✔
1033
                                }
207,064✔
1034
                        }
64,831✔
1035

64,831✔
1036
                        yyVAL.stmt = &CreateTableStmt{
64,831✔
1037
                                ifNotExists: yyDollar[3].boolean,
64,831✔
1038
                                table:       yyDollar[4].id,
64,831✔
UNCOV
1039
                                colsSpec:    colsSpecs,
×
UNCOV
1040
                                pkColNames:  pk,
×
1041
                                checks:      checks,
64,831✔
1042
                        }
1043
                }
1044
        case 18:
1045
                yyDollar = yyS[yypt-3 : yypt+1]
1046
                {
232,629✔
1047
                        yyVAL.stmt = &DropTableStmt{table: yyDollar[3].id}
247,206✔
1048
                }
14,577✔
UNCOV
1049
        case 19:
×
UNCOV
1050
                yyDollar = yyS[yypt-8 : yypt+1]
×
1051
                {
1052
                        yyVAL.stmt = &CreateIndexStmt{ifNotExists: yyDollar[3].boolean, table: yyDollar[5].id, cols: yyDollar[7].ids}
1053
                }
14,577✔
1054
        case 20:
63,767✔
1055
                yyDollar = yyS[yypt-9 : yypt+1]
63,767✔
1056
                {
14,577✔
1057
                        yyVAL.stmt = &CreateIndexStmt{unique: true, ifNotExists: yyDollar[4].boolean, table: yyDollar[6].id, cols: yyDollar[8].ids}
1058
                }
34,613✔
1059
        case 21:
1060
                yyDollar = yyS[yypt-7 : yypt+1]
49,086✔
1061
                {
34,509✔
1062
                        yyVAL.stmt = &DropIndexStmt{table: yyDollar[4].id, cols: yyDollar[6].ids}
49,086✔
1063
                }
14,577✔
1064
        case 22:
1065
                yyDollar = yyS[yypt-5 : yypt+1]
1066
                {
14,577✔
1067
                        yyVAL.stmt = &DropIndexStmt{table: yyDollar[3].id, cols: []string{yyDollar[5].id}}
18,734✔
1068
                }
4,157✔
1069
        case 23:
1070
                yyDollar = yyS[yypt-6 : yypt+1]
1071
                {
228,623✔
1072
                        yyVAL.stmt = &AddColumnStmt{table: yyDollar[3].id, colSpec: yyDollar[6].colSpec}
151✔
1073
                }
151✔
1074
        case 24:
151✔
1075
                yyDollar = yyS[yypt-6 : yypt+1]
151✔
1076
                {
151✔
1077
                        yyVAL.stmt = &RenameTableStmt{oldName: yyDollar[3].id, newName: yyDollar[6].id}
151✔
UNCOV
1078
                }
×
UNCOV
1079
        case 25:
×
UNCOV
1080
                yyDollar = yyS[yypt-8 : yypt+1]
×
1081
                {
151✔
1082
                        yyVAL.stmt = &RenameColumnStmt{table: yyDollar[3].id, oldName: yyDollar[6].id, newName: yyDollar[8].id}
1083
                }
151✔
1084
        case 26:
151✔
1085
                yyDollar = yyS[yypt-6 : yypt+1]
151✔
1086
                {
151✔
1087
                        yyVAL.stmt = &DropColumnStmt{table: yyDollar[3].id, colName: yyDollar[6].id}
727✔
1088
                }
576✔
1089
        case 27:
1,110✔
1090
                yyDollar = yyS[yypt-6 : yypt+1]
534✔
1091
                {
534✔
UNCOV
1092
                        yyVAL.stmt = &DropConstraintStmt{table: yyDollar[3].id, constraintName: yyDollar[6].id}
×
1093
                }
1094
        case 28:
1095
                yyDollar = yyS[yypt-7 : yypt+1]
1096
                {
1097
                        yyVAL.stmt = &CreateUserStmt{username: yyDollar[3].id, password: yyDollar[6].str, permission: yyDollar[7].permission}
576✔
UNCOV
1098
                }
×
UNCOV
1099
        case 29:
×
1100
                yyDollar = yyS[yypt-7 : yypt+1]
576✔
1101
                {
1102
                        yyVAL.stmt = &AlterUserStmt{username: yyDollar[3].id, password: yyDollar[6].str, permission: yyDollar[7].permission}
1103
                }
151✔
1104
        case 30:
UNCOV
1105
                yyDollar = yyS[yypt-3 : yypt+1]
×
UNCOV
1106
                {
×
UNCOV
1107
                        yyVAL.stmt = &DropUserStmt{username: yyDollar[3].id}
×
UNCOV
1108
                }
×
UNCOV
1109
        case 31:
×
UNCOV
1110
                yyDollar = yyS[yypt-8 : yypt+1]
×
1111
                {
UNCOV
1112
                        yyVAL.stmt = &AlterPrivilegesStmt{database: yyDollar[5].id, user: yyDollar[8].id, privileges: yyDollar[2].sqlPrivileges, isGrant: true}
×
UNCOV
1113
                }
×
UNCOV
1114
        case 32:
×
1115
                yyDollar = yyS[yypt-8 : yypt+1]
1116
                {
1117
                        yyVAL.stmt = &AlterPrivilegesStmt{database: yyDollar[5].id, user: yyDollar[8].id, privileges: yyDollar[2].sqlPrivileges}
1118
                }
1119
        case 33:
228,321✔
UNCOV
1120
                yyDollar = yyS[yypt-2 : yypt+1]
×
UNCOV
1121
                {
×
1122
                        yyVAL.sqlPrivileges = allPrivileges
1123
                }
228,321✔
1124
        case 34:
228,321✔
1125
                yyDollar = yyS[yypt-1 : yypt+1]
228,321✔
1126
                {
228,321✔
1127
                        yyVAL.sqlPrivileges = []SQLPrivilege{yyDollar[1].sqlPrivilege}
228,321✔
1128
                }
228,321✔
1129
        case 35:
228,321✔
1130
                yyDollar = yyS[yypt-3 : yypt+1]
228,347✔
1131
                {
26✔
1132
                        yyVAL.sqlPrivileges = append(yyDollar[3].sqlPrivileges, yyDollar[1].sqlPrivilege)
26✔
1133
                }
26✔
1134
        case 36:
26✔
1135
                yyDollar = yyS[yypt-1 : yypt+1]
228,321✔
1136
                {
228,321✔
1137
                        yyVAL.sqlPrivilege = SQLPrivilegeSelect
228,321✔
1138
                }
228,321✔
1139
        case 37:
228,321✔
1140
                yyDollar = yyS[yypt-1 : yypt+1]
228,321✔
1141
                {
228,321✔
1142
                        yyVAL.sqlPrivilege = SQLPrivilegeCreate
228,321✔
1143
                }
×
1144
        case 38:
228,321✔
1145
                yyDollar = yyS[yypt-1 : yypt+1]
228,321✔
1146
                {
418,897✔
1147
                        yyVAL.sqlPrivilege = SQLPrivilegeInsert
190,576✔
1148
                }
190,576✔
1149
        case 39:
1150
                yyDollar = yyS[yypt-1 : yypt+1]
1151
                {
228,321✔
1152
                        yyVAL.sqlPrivilege = SQLPrivilegeUpdate
1153
                }
4,159✔
1154
        case 40:
4,159✔
1155
                yyDollar = yyS[yypt-1 : yypt+1]
8,318✔
1156
                {
4,159✔
1157
                        yyVAL.sqlPrivilege = SQLPrivilegeDelete
4,159✔
1158
                }
4,159✔
1159
        case 41:
4,159✔
1160
                yyDollar = yyS[yypt-1 : yypt+1]
4,159✔
1161
                {
8,318✔
1162
                        yyVAL.sqlPrivilege = SQLPrivilegeDrop
4,159✔
1163
                }
4,159✔
1164
        case 42:
103✔
1165
                yyDollar = yyS[yypt-1 : yypt+1]
103✔
1166
                {
206✔
1167
                        yyVAL.sqlPrivilege = SQLPrivilegeAlter
103✔
1168
                }
103✔
1169
        case 43:
3,781✔
1170
                yyDollar = yyS[yypt-0 : yypt+1]
3,781✔
1171
                {
7,562✔
1172
                        yyVAL.permission = PermissionReadWrite
3,781✔
1173
                }
69✔
1174
        case 44:
69✔
1175
                yyDollar = yyS[yypt-1 : yypt+1]
138✔
1176
                {
69✔
1177
                        yyVAL.permission = PermissionReadOnly
69✔
1178
                }
1✔
1179
        case 45:
1✔
1180
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1181
                {
1✔
1182
                        yyVAL.permission = PermissionReadWrite
1✔
1183
                }
174✔
1184
        case 46:
174✔
1185
                yyDollar = yyS[yypt-1 : yypt+1]
348✔
1186
                {
174✔
1187
                        yyVAL.permission = PermissionAdmin
174✔
1188
                }
6✔
1189
        case 47:
6✔
1190
                yyDollar = yyS[yypt-0 : yypt+1]
12✔
1191
                {
6✔
1192
                        yyVAL.boolean = false
6✔
1193
                }
3✔
1194
        case 48:
3✔
1195
                yyDollar = yyS[yypt-3 : yypt+1]
6✔
1196
                {
3✔
1197
                        yyVAL.boolean = true
3✔
1198
                }
20✔
1199
        case 49:
20✔
1200
                yyDollar = yyS[yypt-1 : yypt+1]
40✔
1201
                {
20✔
1202
                        yyVAL.ids = []string{yyDollar[1].id}
20✔
1203
                }
3✔
1204
        case 50:
3✔
1205
                yyDollar = yyS[yypt-3 : yypt+1]
6✔
1206
                {
3✔
1207
                        yyVAL.ids = yyDollar[2].ids
3✔
1208
                }
14✔
1209
        case 51:
14✔
1210
                yyDollar = yyS[yypt-8 : yypt+1]
28✔
1211
                {
14✔
1212
                        yyVAL.stmt = &UpsertIntoStmt{isInsert: true, tableRef: yyDollar[3].tableRef, cols: yyDollar[5].ids, ds: yyDollar[7].ds, onConflict: yyDollar[8].onConflict}
14✔
1213
                }
9✔
1214
        case 52:
9✔
1215
                yyDollar = yyS[yypt-7 : yypt+1]
18✔
1216
                {
9✔
1217
                        yyVAL.stmt = &UpsertIntoStmt{tableRef: yyDollar[3].tableRef, cols: yyDollar[5].ids, ds: yyDollar[7].ds}
9✔
1218
                }
19✔
1219
        case 53:
19✔
1220
                yyDollar = yyS[yypt-7 : yypt+1]
38✔
1221
                {
19✔
1222
                        yyVAL.stmt = &DeleteFromStmt{tableRef: yyDollar[3].tableRef, where: yyDollar[4].exp, indexOn: yyDollar[5].ids, limit: yyDollar[6].exp, offset: yyDollar[7].exp}
19✔
1223
                }
275✔
1224
        case 54:
275✔
1225
                yyDollar = yyS[yypt-8 : yypt+1]
550✔
1226
                {
275✔
1227
                        yyVAL.stmt = &UpdateStmt{tableRef: yyDollar[2].tableRef, updates: yyDollar[4].updates, where: yyDollar[5].exp, indexOn: yyDollar[6].ids, limit: yyDollar[7].exp, offset: yyDollar[8].exp}
275✔
1228
                }
34✔
1229
        case 55:
34✔
1230
                yyDollar = yyS[yypt-2 : yypt+1]
68✔
1231
                {
34✔
1232
                        yyVAL.ds = &valuesDataSource{rows: yyDollar[2].rows}
34✔
1233
                }
137✔
1234
        case 56:
137✔
1235
                yyDollar = yyS[yypt-1 : yypt+1]
274✔
1236
                {
137✔
1237
                        yyVAL.ds = yyDollar[1].stmt.(DataSource)
137✔
1238
                }
96✔
1239
        case 57:
96✔
1240
                yyDollar = yyS[yypt-0 : yypt+1]
192✔
1241
                {
96✔
1242
                        yyVAL.onConflict = nil
96✔
1243
                }
46✔
1244
        case 58:
46✔
1245
                yyDollar = yyS[yypt-4 : yypt+1]
92✔
1246
                {
46✔
1247
                        yyVAL.onConflict = &OnConflictDo{}
46✔
1248
                }
75✔
1249
        case 59:
75✔
1250
                yyDollar = yyS[yypt-1 : yypt+1]
150✔
1251
                {
75✔
1252
                        yyVAL.updates = []*colUpdate{yyDollar[1].update}
75✔
1253
                }
48✔
1254
        case 60:
48✔
1255
                yyDollar = yyS[yypt-3 : yypt+1]
96✔
1256
                {
48✔
1257
                        yyVAL.updates = append(yyDollar[1].updates, yyDollar[3].update)
48✔
1258
                }
38✔
1259
        case 61:
38✔
1260
                yyDollar = yyS[yypt-3 : yypt+1]
76✔
1261
                {
38✔
1262
                        yyVAL.update = &colUpdate{col: yyDollar[1].id, op: yyDollar[2].cmpOp, val: yyDollar[3].exp}
38✔
1263
                }
84✔
1264
        case 62:
84✔
1265
                yyDollar = yyS[yypt-0 : yypt+1]
168✔
1266
                {
84✔
1267
                        yyVAL.ids = nil
84✔
1268
                }
86✔
1269
        case 63:
86✔
1270
                yyDollar = yyS[yypt-1 : yypt+1]
172✔
1271
                {
86✔
1272
                        yyVAL.ids = yyDollar[1].ids
86✔
1273
                }
36✔
1274
        case 64:
36✔
1275
                yyDollar = yyS[yypt-1 : yypt+1]
72✔
1276
                {
36✔
1277
                        yyVAL.rows = []*RowSpec{yyDollar[1].row}
36✔
1278
                }
6✔
1279
        case 65:
6✔
1280
                yyDollar = yyS[yypt-3 : yypt+1]
12✔
1281
                {
6✔
1282
                        yyVAL.rows = append(yyDollar[1].rows, yyDollar[3].row)
6✔
1283
                }
5✔
1284
        case 66:
5✔
1285
                yyDollar = yyS[yypt-3 : yypt+1]
10✔
1286
                {
5✔
1287
                        yyVAL.row = &RowSpec{Values: yyDollar[2].values}
5✔
1288
                }
3✔
1289
        case 67:
3✔
1290
                yyDollar = yyS[yypt-1 : yypt+1]
6✔
1291
                {
3✔
1292
                        yyVAL.ids = []string{yyDollar[1].id}
3✔
1293
                }
3✔
1294
        case 68:
3✔
1295
                yyDollar = yyS[yypt-3 : yypt+1]
6✔
1296
                {
3✔
1297
                        yyVAL.ids = append(yyDollar[1].ids, yyDollar[3].id)
3✔
1298
                }
3✔
1299
        case 69:
3✔
1300
                yyDollar = yyS[yypt-1 : yypt+1]
6✔
1301
                {
3✔
1302
                        yyVAL.cols = []*ColSelector{yyDollar[1].col}
3✔
1303
                }
4✔
1304
        case 70:
4✔
1305
                yyDollar = yyS[yypt-3 : yypt+1]
8✔
1306
                {
4✔
1307
                        yyVAL.cols = append(yyDollar[1].cols, yyDollar[3].col)
4✔
1308
                }
2✔
1309
        case 71:
2✔
1310
                yyDollar = yyS[yypt-0 : yypt+1]
4✔
1311
                {
2✔
1312
                        yyVAL.values = nil
2✔
1313
                }
6✔
1314
        case 72:
6✔
1315
                yyDollar = yyS[yypt-1 : yypt+1]
12✔
1316
                {
6✔
1317
                        yyVAL.values = yyDollar[1].values
6✔
1318
                }
2✔
1319
        case 73:
2✔
1320
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1321
                {
2✔
1322
                        yyVAL.values = []ValueExp{yyDollar[1].exp}
2✔
UNCOV
1323
                }
×
UNCOV
1324
        case 74:
×
UNCOV
1325
                yyDollar = yyS[yypt-3 : yypt+1]
×
UNCOV
1326
                {
×
UNCOV
1327
                        yyVAL.values = append(yyDollar[1].values, yyDollar[3].exp)
×
1328
                }
2✔
1329
        case 75:
2✔
1330
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1331
                {
2✔
1332
                        yyVAL.value = &Integer{val: int64(yyDollar[1].integer)}
2✔
1333
                }
2✔
1334
        case 76:
2✔
1335
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1336
                {
2✔
1337
                        yyVAL.value = &Float64{val: float64(yyDollar[1].float)}
2✔
1338
                }
2✔
1339
        case 77:
2✔
1340
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1341
                {
2✔
1342
                        yyVAL.value = &Varchar{val: yyDollar[1].str}
2✔
UNCOV
1343
                }
×
UNCOV
1344
        case 78:
×
UNCOV
1345
                yyDollar = yyS[yypt-1 : yypt+1]
×
UNCOV
1346
                {
×
UNCOV
1347
                        yyVAL.value = &Bool{val: yyDollar[1].boolean}
×
UNCOV
1348
                }
×
UNCOV
1349
        case 79:
×
UNCOV
1350
                yyDollar = yyS[yypt-1 : yypt+1]
×
UNCOV
1351
                {
×
UNCOV
1352
                        yyVAL.value = &Blob{val: yyDollar[1].blob}
×
UNCOV
1353
                }
×
UNCOV
1354
        case 80:
×
UNCOV
1355
                yyDollar = yyS[yypt-6 : yypt+1]
×
UNCOV
1356
                {
×
UNCOV
1357
                        yyVAL.value = &Cast{val: yyDollar[3].exp, t: yyDollar[5].sqlType}
×
1358
                }
5✔
1359
        case 81:
5✔
1360
                yyDollar = yyS[yypt-1 : yypt+1]
10✔
1361
                {
5✔
1362
                        yyVAL.value = yyDollar[1].value
5✔
1363
                }
4✔
1364
        case 82:
4✔
1365
                yyDollar = yyS[yypt-1 : yypt+1]
8✔
1366
                {
4✔
1367
                        yyVAL.value = &Param{id: yyDollar[1].id}
4✔
1368
                }
2✔
1369
        case 83:
2✔
1370
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1371
                {
2✔
1372
                        yyVAL.value = &Param{id: fmt.Sprintf("param%d", yyDollar[1].pparam), pos: yyDollar[1].pparam}
2✔
1373
                }
254✔
1374
        case 84:
254✔
1375
                yyDollar = yyS[yypt-1 : yypt+1]
508✔
1376
                {
254✔
1377
                        yyVAL.value = &NullValue{t: AnyType}
254✔
1378
                }
3✔
1379
        case 85:
3✔
1380
                yyDollar = yyS[yypt-4 : yypt+1]
6✔
1381
                {
3✔
1382
                        yyVAL.value = &FnCall{fn: yyDollar[1].id, params: yyDollar[3].values}
3✔
1383
                }
1,871✔
1384
        case 86:
1,871✔
1385
                yyDollar = yyS[yypt-1 : yypt+1]
3,742✔
1386
                {
1,871✔
1387
                        yyVAL.tableElems = []TableElem{yyDollar[1].tableElem}
1,871✔
1388
                }
247✔
1389
        case 87:
247✔
1390
                yyDollar = yyS[yypt-3 : yypt+1]
494✔
1391
                {
247✔
1392
                        yyVAL.tableElems = append(yyDollar[1].tableElems, yyDollar[3].tableElem)
247✔
1393
                }
12✔
1394
        case 88:
12✔
1395
                yyDollar = yyS[yypt-1 : yypt+1]
24✔
1396
                {
12✔
1397
                        yyVAL.tableElem = yyDollar[1].colSpec
12✔
1398
                }
24✔
1399
        case 89:
24✔
1400
                yyDollar = yyS[yypt-1 : yypt+1]
48✔
1401
                {
24✔
1402
                        yyVAL.tableElem = yyDollar[1].check
24✔
1403
                }
2,115✔
1404
        case 90:
2,115✔
1405
                yyDollar = yyS[yypt-3 : yypt+1]
4,230✔
1406
                {
2,115✔
1407
                        yyVAL.tableElem = PrimaryKeyConstraint(yyDollar[3].ids)
2,115✔
1408
                }
3✔
1409
        case 91:
3✔
1410
                yyDollar = yyS[yypt-6 : yypt+1]
6✔
1411
                {
3✔
1412
                        yyVAL.colSpec = &ColSpec{colName: yyDollar[1].id, colType: yyDollar[2].sqlType, maxLen: int(yyDollar[3].integer), notNull: yyDollar[4].boolean || yyDollar[6].boolean, autoIncrement: yyDollar[5].boolean, primaryKey: yyDollar[6].boolean}
3✔
1413
                }
1,868✔
1414
        case 92:
1,868✔
1415
                yyDollar = yyS[yypt-0 : yypt+1]
3,736✔
1416
                {
1,868✔
1417
                        yyVAL.boolean = false
1,868✔
1418
                }
3✔
1419
        case 93:
3✔
1420
                yyDollar = yyS[yypt-2 : yypt+1]
6✔
1421
                {
3✔
1422
                        yyVAL.boolean = true
3✔
1423
                }
24✔
1424
        case 94:
24✔
1425
                yyDollar = yyS[yypt-0 : yypt+1]
48✔
1426
                {
24✔
1427
                        yyVAL.integer = 0
24✔
1428
                }
2✔
1429
        case 95:
2✔
1430
                yyDollar = yyS[yypt-3 : yypt+1]
4✔
1431
                {
2✔
1432
                        yyVAL.integer = yyDollar[2].integer
2✔
1433
                }
26✔
1434
        case 96:
26✔
1435
                yyDollar = yyS[yypt-3 : yypt+1]
52✔
1436
                {
26✔
1437
                        yyVAL.integer = yyDollar[2].integer
26✔
1438
                }
2,128✔
1439
        case 97:
2,128✔
1440
                yyDollar = yyS[yypt-0 : yypt+1]
4,256✔
1441
                {
2,128✔
1442
                        yyVAL.boolean = false
2,128✔
1443
                }
105✔
1444
        case 98:
105✔
1445
                yyDollar = yyS[yypt-1 : yypt+1]
210✔
1446
                {
105✔
1447
                        yyVAL.boolean = true
105✔
1448
                }
2,233✔
1449
        case 99:
2,233✔
1450
                yyDollar = yyS[yypt-0 : yypt+1]
4,466✔
1451
                {
2,233✔
1452
                        yyVAL.boolean = false
2,233✔
1453
                }
33✔
1454
        case 100:
33✔
1455
                yyDollar = yyS[yypt-1 : yypt+1]
66✔
1456
                {
33✔
1457
                        yyVAL.boolean = false
33✔
1458
                }
18✔
1459
        case 101:
18✔
1460
                yyDollar = yyS[yypt-2 : yypt+1]
36✔
1461
                {
18✔
1462
                        yyVAL.boolean = true
18✔
1463
                }
132✔
1464
        case 102:
132✔
1465
                yyDollar = yyS[yypt-1 : yypt+1]
264✔
1466
                {
132✔
1467
                        yyVAL.stmt = yyDollar[1].stmt
132✔
1468
                }
2,284✔
1469
        case 103:
2,284✔
1470
                yyDollar = yyS[yypt-4 : yypt+1]
4,568✔
1471
                {
2,284✔
1472
                        yyVAL.stmt = &UnionStmt{
2,284✔
1473
                                distinct: yyDollar[3].distinct,
2,305✔
1474
                                left:     yyDollar[1].stmt.(DataSource),
2,305✔
1475
                                right:    yyDollar[4].stmt.(DataSource),
4,610✔
1476
                        }
2,305✔
1477
                }
2,305✔
1478
        case 104:
5,394✔
1479
                yyDollar = yyS[yypt-2 : yypt+1]
5,394✔
1480
                {
10,788✔
1481
                        yyVAL.stmt = &SelectStmt{
5,394✔
1482
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "databases"}},
5,394✔
1483
                        }
941✔
1484
                }
941✔
1485
        case 105:
1,882✔
1486
                yyDollar = yyS[yypt-2 : yypt+1]
941✔
1487
                {
941✔
1488
                        yyVAL.stmt = &SelectStmt{
67✔
1489
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "tables"}},
67✔
1490
                        }
134✔
1491
                }
67✔
1492
        case 106:
67✔
1493
                yyDollar = yyS[yypt-3 : yypt+1]
826✔
1494
                {
826✔
1495
                        yyVAL.stmt = &SelectStmt{
1,652✔
1496
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "table", params: []ValueExp{&Varchar{val: yyDollar[3].id}}}},
826✔
1497
                        }
826✔
1498
                }
244✔
1499
        case 107:
244✔
1500
                yyDollar = yyS[yypt-2 : yypt+1]
488✔
1501
                {
244✔
1502
                        yyVAL.stmt = &SelectStmt{
244✔
1503
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "users"}},
94✔
1504
                        }
94✔
1505
                }
188✔
1506
        case 108:
94✔
1507
                yyDollar = yyS[yypt-2 : yypt+1]
94✔
1508
                {
59✔
1509
                        yyVAL.stmt = &SelectStmt{
59✔
1510
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "grants"}},
118✔
1511
                        }
59✔
1512
                }
59✔
1513
        case 109:
170✔
1514
                yyDollar = yyS[yypt-4 : yypt+1]
170✔
1515
                {
340✔
1516
                        yyVAL.stmt = &SelectStmt{
170✔
1517
                                ds: &FnDataSourceStmt{fnCall: &FnCall{fn: "grants", params: []ValueExp{&Varchar{val: yyDollar[4].id}}}},
170✔
1518
                        }
5,938✔
1519
                }
5,938✔
1520
        case 110:
11,876✔
1521
                yyDollar = yyS[yypt-13 : yypt+1]
5,938✔
1522
                {
5,938✔
1523
                        yyVAL.stmt = &SelectStmt{
175✔
1524
                                distinct: yyDollar[2].distinct,
175✔
1525
                                targets:  yyDollar[3].targets,
350✔
1526
                                ds:       yyDollar[5].ds,
175✔
1527
                                indexOn:  yyDollar[6].ids,
175✔
1528
                                joins:    yyDollar[7].joins,
103✔
1529
                                where:    yyDollar[8].exp,
103✔
1530
                                groupBy:  yyDollar[9].cols,
206✔
1531
                                having:   yyDollar[10].exp,
103✔
1532
                                orderBy:  yyDollar[11].ordexps,
103✔
1533
                                limit:    yyDollar[12].exp,
424✔
1534
                                offset:   yyDollar[13].exp,
424✔
1535
                        }
848✔
1536
                }
424✔
1537
        case 111:
424✔
1538
                yyDollar = yyS[yypt-3 : yypt+1]
61✔
1539
                {
61✔
1540
                        yyVAL.stmt = &SelectStmt{
122✔
1541
                                distinct: yyDollar[2].distinct,
61✔
1542
                                targets:  yyDollar[3].targets,
61✔
1543
                                ds:       &valuesDataSource{rows: []*RowSpec{{}}},
154✔
1544
                        }
154✔
1545
                }
308✔
1546
        case 112:
154✔
1547
                yyDollar = yyS[yypt-0 : yypt+1]
154✔
1548
                {
4✔
1549
                        yyVAL.distinct = true
4✔
1550
                }
8✔
1551
        case 113:
4✔
1552
                yyDollar = yyS[yypt-1 : yypt+1]
4✔
1553
                {
41✔
1554
                        yyVAL.distinct = false
41✔
1555
                }
82✔
1556
        case 114:
41✔
1557
                yyDollar = yyS[yypt-0 : yypt+1]
41✔
1558
                {
82✔
1559
                        yyVAL.distinct = false
82✔
1560
                }
164✔
1561
        case 115:
82✔
1562
                yyDollar = yyS[yypt-1 : yypt+1]
82✔
1563
                {
27✔
1564
                        yyVAL.distinct = true
27✔
1565
                }
54✔
1566
        case 116:
27✔
1567
                yyDollar = yyS[yypt-1 : yypt+1]
27✔
1568
                {
10✔
1569
                        yyVAL.targets = nil
10✔
1570
                }
20✔
1571
        case 117:
10✔
1572
                yyDollar = yyS[yypt-1 : yypt+1]
10✔
1573
                {
176✔
1574
                        yyVAL.targets = yyDollar[1].targets
176✔
1575
                }
352✔
1576
        case 118:
176✔
1577
                yyDollar = yyS[yypt-2 : yypt+1]
176✔
1578
                {
294✔
1579
                        yyVAL.targets = []TargetEntry{{Exp: yyDollar[1].exp, As: yyDollar[2].id}}
294✔
1580
                }
588✔
1581
        case 119:
294✔
1582
                yyDollar = yyS[yypt-4 : yypt+1]
294✔
1583
                {
600✔
1584
                        yyVAL.targets = append(yyDollar[1].targets, TargetEntry{Exp: yyDollar[3].exp, As: yyDollar[4].id})
600✔
1585
                }
1,200✔
1586
        case 120:
600✔
1587
                yyDollar = yyS[yypt-1 : yypt+1]
600✔
1588
                {
670✔
1589
                        yyVAL.sel = yyDollar[1].col
670✔
1590
                }
1,340✔
1591
        case 121:
670✔
1592
                yyDollar = yyS[yypt-2 : yypt+1]
670✔
1593
                {
10✔
1594
                        yyVAL.sel = &JSONSelector{ColSelector: yyDollar[1].col, fields: yyDollar[2].jsonFields}
10✔
1595
                }
20✔
1596
        case 122:
10✔
1597
                yyDollar = yyS[yypt-4 : yypt+1]
10✔
1598
                {
214✔
1599
                        yyVAL.sel = &AggColSelector{aggFn: yyDollar[1].aggFn, col: "*"}
214✔
1600
                }
428✔
1601
        case 123:
214✔
1602
                yyDollar = yyS[yypt-4 : yypt+1]
214✔
1603
                {
718✔
1604
                        yyVAL.sel = &AggColSelector{aggFn: yyDollar[1].aggFn, table: yyDollar[3].col.table, col: yyDollar[3].col.col}
718✔
1605
                }
1,436✔
1606
        case 124:
718✔
1607
                yyDollar = yyS[yypt-2 : yypt+1]
718✔
1608
                {
718✔
1609
                        yyVAL.jsonFields = []string{yyDollar[2].str}
718✔
1610
                }
718✔
1611
        case 125:
718✔
1612
                yyDollar = yyS[yypt-3 : yypt+1]
718✔
1613
                {
718✔
1614
                        yyVAL.jsonFields = append(yyVAL.jsonFields, yyDollar[3].str)
718✔
1615
                }
680✔
1616
        case 126:
680✔
1617
                yyDollar = yyS[yypt-1 : yypt+1]
1,360✔
1618
                {
680✔
1619
                        yyVAL.col = &ColSelector{col: yyDollar[1].id}
680✔
1620
                }
38✔
1621
        case 127:
38✔
1622
                yyDollar = yyS[yypt-3 : yypt+1]
76✔
1623
                {
38✔
1624
                        yyVAL.col = &ColSelector{table: yyDollar[1].id, col: yyDollar[3].id}
38✔
1625
                }
655✔
1626
        case 128:
655✔
1627
                yyDollar = yyS[yypt-3 : yypt+1]
1,310✔
1628
                {
655✔
1629
                        yyDollar[1].tableRef.period = yyDollar[2].period
655✔
1630
                        yyDollar[1].tableRef.as = yyDollar[3].id
59✔
1631
                        yyVAL.ds = yyDollar[1].tableRef
59✔
1632
                }
118✔
1633
        case 129:
59✔
1634
                yyDollar = yyS[yypt-4 : yypt+1]
59✔
1635
                {
4✔
1636
                        yyVAL.ds = &valuesDataSource{inferTypes: true, rows: yyDollar[3].rows}
4✔
1637
                }
8✔
1638
        case 130:
4✔
1639
                yyDollar = yyS[yypt-4 : yypt+1]
4✔
1640
                {
634✔
1641
                        yyDollar[2].stmt.(*SelectStmt).as = yyDollar[4].id
634✔
1642
                        yyVAL.ds = yyDollar[2].stmt.(DataSource)
1,268✔
1643
                }
634✔
1644
        case 131:
634✔
1645
                yyDollar = yyS[yypt-4 : yypt+1]
84✔
1646
                {
84✔
1647
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "databases"}, as: yyDollar[4].id}
168✔
1648
                }
84✔
1649
        case 132:
84✔
1650
                yyDollar = yyS[yypt-4 : yypt+1]
676✔
1651
                {
676✔
1652
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "tables"}, as: yyDollar[4].id}
1,352✔
1653
                }
676✔
1654
        case 133:
676✔
1655
                yyDollar = yyS[yypt-4 : yypt+1]
33✔
1656
                {
33✔
1657
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "table", params: []ValueExp{&Varchar{val: yyDollar[3].id}}}}
66✔
1658
                }
33✔
1659
        case 134:
33✔
1660
                yyDollar = yyS[yypt-4 : yypt+1]
9✔
1661
                {
9✔
1662
                        yyVAL.ds = &FnDataSourceStmt{fnCall: &FnCall{fn: "users"}, as: yyDollar[4].id}
18✔
1663
                }
9✔
1664
        case 135:
9✔
1665
                yyDollar = yyS[yypt-2 : yypt+1]
822✔
1666
                {
822✔
1667
                        yyVAL.ds = &FnDataSourceStmt{fnCall: yyDollar[1].value.(*FnCall), as: yyDollar[2].id}
1,644✔
1668
                }
822✔
1669
        case 136:
822✔
1670
                yyDollar = yyS[yypt-6 : yypt+1]
11✔
1671
                {
11✔
1672
                        yyVAL.ds = &tableRef{table: yyDollar[4].id, history: true, as: yyDollar[6].id}
22✔
1673
                }
11✔
1674
        case 137:
11✔
1675
                yyDollar = yyS[yypt-1 : yypt+1]
11✔
1676
                {
11✔
1677
                        yyVAL.tableRef = &tableRef{table: yyDollar[1].id}
11✔
1678
                }
11✔
1679
        case 138:
1✔
1680
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1681
                {
2✔
1682
                        yyVAL.period = period{start: yyDollar[1].openPeriod, end: yyDollar[2].openPeriod}
1✔
1683
                }
1✔
1684
        case 139:
1✔
1685
                yyDollar = yyS[yypt-0 : yypt+1]
1✔
1686
                {
1✔
1687
                        yyVAL.openPeriod = nil
1✔
1688
                }
2✔
1689
        case 140:
1✔
1690
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1691
                {
1✔
1692
                        yyVAL.openPeriod = &openPeriod{inclusive: true, instant: yyDollar[2].periodInstant}
1✔
UNCOV
1693
                }
×
UNCOV
1694
        case 141:
×
UNCOV
1695
                yyDollar = yyS[yypt-2 : yypt+1]
×
UNCOV
1696
                {
×
UNCOV
1697
                        yyVAL.openPeriod = &openPeriod{instant: yyDollar[2].periodInstant}
×
UNCOV
1698
                }
×
UNCOV
1699
        case 142:
×
1700
                yyDollar = yyS[yypt-0 : yypt+1]
6✔
1701
                {
6✔
1702
                        yyVAL.openPeriod = nil
12✔
1703
                }
6✔
1704
        case 143:
6✔
1705
                yyDollar = yyS[yypt-2 : yypt+1]
6✔
1706
                {
6✔
1707
                        yyVAL.openPeriod = &openPeriod{inclusive: true, instant: yyDollar[2].periodInstant}
1✔
1708
                }
1✔
1709
        case 144:
2✔
1710
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1711
                {
1✔
1712
                        yyVAL.openPeriod = &openPeriod{instant: yyDollar[2].periodInstant}
1✔
1713
                }
1✔
1714
        case 145:
1✔
1715
                yyDollar = yyS[yypt-2 : yypt+1]
1✔
1716
                {
2✔
1717
                        yyVAL.periodInstant = periodInstant{instantType: txInstant, exp: yyDollar[2].exp}
1✔
1718
                }
1✔
1719
        case 146:
1✔
1720
                yyDollar = yyS[yypt-1 : yypt+1]
1✔
1721
                {
824✔
1722
                        yyVAL.periodInstant = periodInstant{instantType: timeInstant, exp: yyDollar[1].exp}
824✔
1723
                }
1,648✔
1724
        case 147:
824✔
1725
                yyDollar = yyS[yypt-0 : yypt+1]
824✔
1726
                {
824✔
1727
                        yyVAL.joins = nil
824✔
1728
                }
824✔
1729
        case 148:
824✔
1730
                yyDollar = yyS[yypt-1 : yypt+1]
824✔
1731
                {
824✔
1732
                        yyVAL.joins = yyDollar[1].joins
824✔
1733
                }
824✔
1734
        case 149:
824✔
1735
                yyDollar = yyS[yypt-1 : yypt+1]
824✔
1736
                {
824✔
1737
                        yyVAL.joins = []*JoinSpec{yyDollar[1].join}
824✔
1738
                }
10✔
1739
        case 150:
10✔
1740
                yyDollar = yyS[yypt-2 : yypt+1]
20✔
1741
                {
10✔
1742
                        yyVAL.joins = append([]*JoinSpec{yyDollar[1].join}, yyDollar[2].joins...)
10✔
1743
                }
10✔
1744
        case 151:
10✔
1745
                yyDollar = yyS[yypt-6 : yypt+1]
10✔
1746
                {
10✔
1747
                        yyVAL.join = &JoinSpec{joinType: yyDollar[1].joinType, ds: yyDollar[3].ds, indexOn: yyDollar[4].ids, cond: yyDollar[6].exp}
11✔
1748
                }
11✔
1749
        case 152:
22✔
1750
                yyDollar = yyS[yypt-0 : yypt+1]
11✔
1751
                {
11✔
1752
                        yyVAL.joinType = InnerJoin
1✔
1753
                }
1✔
1754
        case 153:
2✔
1755
                yyDollar = yyS[yypt-1 : yypt+1]
1✔
1756
                {
1✔
1757
                        yyVAL.joinType = yyDollar[1].joinType
827✔
1758
                }
827✔
1759
        case 154:
1,654✔
1760
                yyDollar = yyS[yypt-0 : yypt+1]
827✔
1761
                {
827✔
1762
                        yyVAL.exp = nil
8✔
1763
                }
8✔
1764
        case 155:
16✔
1765
                yyDollar = yyS[yypt-2 : yypt+1]
8✔
1766
                {
8✔
1767
                        yyVAL.exp = yyDollar[2].exp
393✔
1768
                }
393✔
1769
        case 156:
786✔
1770
                yyDollar = yyS[yypt-0 : yypt+1]
393✔
1771
                {
393✔
1772
                        yyVAL.cols = nil
442✔
1773
                }
442✔
1774
        case 157:
884✔
1775
                yyDollar = yyS[yypt-3 : yypt+1]
442✔
1776
                {
442✔
1777
                        yyVAL.cols = yyDollar[3].cols
442✔
1778
                }
442✔
1779
        case 158:
884✔
1780
                yyDollar = yyS[yypt-0 : yypt+1]
442✔
1781
                {
442✔
1782
                        yyVAL.exp = nil
478✔
1783
                }
478✔
1784
        case 159:
956✔
1785
                yyDollar = yyS[yypt-2 : yypt+1]
478✔
1786
                {
478✔
1787
                        yyVAL.exp = yyDollar[2].exp
1,569✔
1788
                }
1,569✔
1789
        case 160:
3,138✔
1790
                yyDollar = yyS[yypt-0 : yypt+1]
1,569✔
1791
                {
1,569✔
1792
                        yyVAL.exp = nil
39✔
1793
                }
39✔
1794
        case 161:
78✔
1795
                yyDollar = yyS[yypt-2 : yypt+1]
39✔
1796
                {
39✔
1797
                        yyVAL.exp = yyDollar[2].exp
66✔
1798
                }
66✔
1799
        case 162:
132✔
1800
                yyDollar = yyS[yypt-0 : yypt+1]
66✔
1801
                {
66✔
1802
                        yyVAL.exp = nil
67✔
1803
                }
67✔
1804
        case 163:
134✔
1805
                yyDollar = yyS[yypt-2 : yypt+1]
67✔
1806
                {
67✔
1807
                        yyVAL.exp = yyDollar[2].exp
39✔
1808
                }
39✔
1809
        case 164:
78✔
1810
                yyDollar = yyS[yypt-0 : yypt+1]
39✔
1811
                {
39✔
1812
                        yyVAL.ordexps = nil
19✔
1813
                }
19✔
1814
        case 165:
38✔
1815
                yyDollar = yyS[yypt-3 : yypt+1]
19✔
1816
                {
19✔
1817
                        yyVAL.ordexps = yyDollar[3].ordexps
1,578✔
1818
                }
1,578✔
1819
        case 166:
3,156✔
1820
                yyDollar = yyS[yypt-0 : yypt+1]
1,578✔
1821
                {
1,578✔
1822
                        yyVAL.ids = nil
148✔
1823
                }
148✔
1824
        case 167:
296✔
1825
                yyDollar = yyS[yypt-4 : yypt+1]
148✔
1826
                {
148✔
1827
                        yyVAL.ids = yyDollar[4].ids
196✔
1828
                }
196✔
1829
        case 168:
392✔
1830
                yyDollar = yyS[yypt-2 : yypt+1]
196✔
1831
                {
196✔
1832
                        yyVAL.ordexps = []*OrdExp{{exp: yyDollar[1].exp, descOrder: yyDollar[2].opt_ord}}
2,482✔
1833
                }
2,482✔
1834
        case 169:
4,964✔
1835
                yyDollar = yyS[yypt-4 : yypt+1]
2,482✔
1836
                {
2,482✔
1837
                        yyVAL.ordexps = append(yyDollar[1].ordexps, &OrdExp{exp: yyDollar[3].exp, descOrder: yyDollar[4].opt_ord})
5,313✔
1838
                }
5,313✔
1839
        case 170:
10,626✔
1840
                yyDollar = yyS[yypt-0 : yypt+1]
5,313✔
1841
                {
5,313✔
1842
                        yyVAL.opt_ord = false
172✔
1843
                }
172✔
1844
        case 171:
344✔
1845
                yyDollar = yyS[yypt-1 : yypt+1]
172✔
1846
                {
172✔
1847
                        yyVAL.opt_ord = false
72✔
1848
                }
72✔
1849
        case 172:
144✔
1850
                yyDollar = yyS[yypt-1 : yypt+1]
72✔
1851
                {
72✔
1852
                        yyVAL.opt_ord = true
1✔
1853
                }
1✔
1854
        case 173:
2✔
1855
                yyDollar = yyS[yypt-0 : yypt+1]
1✔
1856
                {
1✔
1857
                        yyVAL.id = ""
2,131✔
1858
                }
2,131✔
1859
        case 174:
4,262✔
1860
                yyDollar = yyS[yypt-1 : yypt+1]
2,131✔
1861
                {
2,131✔
1862
                        yyVAL.id = yyDollar[1].id
13,671✔
1863
                }
13,671✔
1864
        case 175:
27,342✔
1865
                yyDollar = yyS[yypt-2 : yypt+1]
13,671✔
1866
                {
13,671✔
1867
                        yyVAL.id = yyDollar[2].id
1,125✔
1868
                }
1,125✔
1869
        case 176:
2,250✔
1870
                yyDollar = yyS[yypt-2 : yypt+1]
1,125✔
1871
                {
1,125✔
1872
                        yyVAL.check = CheckConstraint{exp: yyDollar[2].exp}
807✔
1873
                }
807✔
1874
        case 177:
1,614✔
1875
                yyDollar = yyS[yypt-4 : yypt+1]
807✔
1876
                {
807✔
1877
                        yyVAL.check = CheckConstraint{name: yyDollar[2].id, exp: yyDollar[4].exp}
807✔
1878
                }
807✔
1879
        case 178:
13✔
1880
                yyDollar = yyS[yypt-0 : yypt+1]
13✔
1881
                {
26✔
1882
                        yyVAL.exp = nil
13✔
1883
                }
13✔
1884
        case 179:
11✔
1885
                yyDollar = yyS[yypt-1 : yypt+1]
11✔
1886
                {
22✔
1887
                        yyVAL.exp = yyDollar[1].exp
11✔
1888
                }
11✔
1889
        case 180:
11✔
1890
                yyDollar = yyS[yypt-5 : yypt+1]
4✔
1891
                {
4✔
1892
                        yyVAL.exp = &CaseWhenExp{
8✔
1893
                                exp:      yyDollar[2].exp,
4✔
1894
                                whenThen: yyDollar[3].whenThenClauses,
4✔
1895
                                elseExp:  yyDollar[4].exp,
4✔
1896
                        }
4✔
1897
                }
8✔
1898
        case 181:
4✔
1899
                yyDollar = yyS[yypt-4 : yypt+1]
4✔
UNCOV
1900
                {
×
UNCOV
1901
                        yyVAL.whenThenClauses = []whenThenClause{{when: yyDollar[2].exp, then: yyDollar[4].exp}}
×
UNCOV
1902
                }
×
UNCOV
1903
        case 182:
×
UNCOV
1904
                yyDollar = yyS[yypt-5 : yypt+1]
×
1905
                {
1✔
1906
                        yyVAL.whenThenClauses = append(yyDollar[1].whenThenClauses, whenThenClause{when: yyDollar[3].exp, then: yyDollar[5].exp})
1✔
1907
                }
2✔
1908
        case 183:
1✔
1909
                yyDollar = yyS[yypt-0 : yypt+1]
1✔
1910
                {
6✔
1911
                        yyVAL.exp = nil
6✔
1912
                }
12✔
1913
        case 184:
6✔
1914
                yyDollar = yyS[yypt-2 : yypt+1]
6✔
1915
                {
2✔
1916
                        yyVAL.exp = yyDollar[2].exp
2✔
1917
                }
4✔
1918
        case 185:
2✔
1919
                yyDollar = yyS[yypt-1 : yypt+1]
2✔
1920
                {
2,977✔
1921
                        yyVAL.exp = yyDollar[1].exp
2,977✔
1922
                }
5,954✔
1923
        case 186:
2,977✔
1924
                yyDollar = yyS[yypt-3 : yypt+1]
2,977✔
1925
                {
816✔
1926
                        yyVAL.exp = &BinBoolExp{left: yyDollar[1].exp, op: Or, right: yyDollar[3].exp}
816✔
1927
                }
1,632✔
1928
        case 188:
816✔
1929
                yyDollar = yyS[yypt-3 : yypt+1]
816✔
1930
                {
747✔
1931
                        yyVAL.exp = &BinBoolExp{left: yyDollar[1].exp, op: And, right: yyDollar[3].exp}
747✔
1932
                }
1,494✔
1933
        case 190:
747✔
1934
                yyDollar = yyS[yypt-2 : yypt+1]
747✔
1935
                {
44✔
1936
                        yyVAL.exp = &NotBoolExp{exp: yyDollar[2].exp}
44✔
1937
                }
88✔
1938
        case 192:
44✔
1939
                yyDollar = yyS[yypt-3 : yypt+1]
44✔
1940
                {
25✔
1941
                        yyVAL.exp = &CmpBoolExp{left: yyDollar[1].exp, op: yyDollar[2].cmpOp, right: yyDollar[3].exp}
25✔
1942
                }
50✔
1943
        case 193:
25✔
1944
                yyDollar = yyS[yypt-3 : yypt+1]
25✔
1945
                {
772✔
1946
                        yyVAL.exp = &CmpBoolExp{left: yyDollar[1].exp, op: EQ, right: &NullValue{t: AnyType}}
772✔
1947
                }
1,544✔
1948
        case 194:
772✔
1949
                yyDollar = yyS[yypt-4 : yypt+1]
772✔
1950
                {
33✔
1951
                        yyVAL.exp = &CmpBoolExp{left: yyDollar[1].exp, op: NE, right: &NullValue{t: AnyType}}
33✔
1952
                }
66✔
1953
        case 195:
33✔
1954
                yyDollar = yyS[yypt-5 : yypt+1]
33✔
1955
                {
11✔
1956
                        yyVAL.exp = &BinBoolExp{
11✔
1957
                                left: &CmpBoolExp{
22✔
1958
                                        left:  yyDollar[1].exp,
11✔
1959
                                        op:    GE,
11✔
1960
                                        right: yyDollar[3].exp,
56✔
1961
                                },
56✔
1962
                                op: And,
112✔
1963
                                right: &CmpBoolExp{
56✔
1964
                                        left:  yyDollar[1].exp,
56✔
1965
                                        op:    LE,
57✔
1966
                                        right: yyDollar[5].exp,
57✔
1967
                                },
114✔
1968
                        }
57✔
1969
                }
57✔
1970
        case 196:
807✔
1971
                yyDollar = yyS[yypt-4 : yypt+1]
807✔
1972
                {
1,614✔
1973
                        yyVAL.exp = &LikeBoolExp{val: yyDollar[1].exp, notLike: yyDollar[2].boolean, pattern: yyDollar[4].exp}
807✔
1974
                }
807✔
1975
        case 197:
17✔
1976
                yyDollar = yyS[yypt-3 : yypt+1]
17✔
1977
                {
34✔
1978
                        yyVAL.exp = &LikeBoolExp{val: yyDollar[1].exp, notLike: true, pattern: yyDollar[3].exp}
17✔
1979
                }
17✔
1980
        case 199:
17✔
1981
                yyDollar = yyS[yypt-4 : yypt+1]
17✔
1982
                {
34✔
1983
                        yyVAL.exp = &ExistsBoolExp{q: (yyDollar[3].stmt).(DataSource)}
17✔
1984
                }
17✔
1985
        case 200:
7✔
1986
                yyDollar = yyS[yypt-6 : yypt+1]
7✔
1987
                {
14✔
1988
                        yyVAL.exp = &InSubQueryExp{val: yyDollar[1].exp, notIn: yyDollar[2].boolean, q: yyDollar[5].stmt.(*SelectStmt)}
7✔
1989
                }
7✔
1990
        case 201:
24✔
1991
                yyDollar = yyS[yypt-6 : yypt+1]
24✔
1992
                {
48✔
1993
                        yyVAL.exp = &InListExp{val: yyDollar[1].exp, notIn: yyDollar[2].boolean, values: yyDollar[5].values}
24✔
1994
                }
24✔
1995
        case 202:
3✔
1996
                yyDollar = yyS[yypt-1 : yypt+1]
3✔
1997
                {
6✔
1998
                        yyVAL.exp = yyDollar[1].exp
3✔
1999
                }
3✔
2000
        case 204:
21✔
2001
                yyDollar = yyS[yypt-3 : yypt+1]
21✔
2002
                {
42✔
2003
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: ADDOP, right: yyDollar[3].exp}
21✔
2004
                }
21✔
2005
        case 205:
420✔
2006
                yyDollar = yyS[yypt-3 : yypt+1]
420✔
2007
                {
840✔
2008
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: SUBSOP, right: yyDollar[3].exp}
420✔
2009
                }
420✔
2010
        case 207:
440✔
2011
                yyDollar = yyS[yypt-3 : yypt+1]
440✔
2012
                {
880✔
2013
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: MULTOP, right: yyDollar[3].exp}
440✔
2014
                }
440✔
2015
        case 208:
791✔
2016
                yyDollar = yyS[yypt-3 : yypt+1]
791✔
2017
                {
1,582✔
2018
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: DIVOP, right: yyDollar[3].exp}
791✔
2019
                }
791✔
2020
        case 209:
33✔
2021
                yyDollar = yyS[yypt-3 : yypt+1]
33✔
2022
                {
66✔
2023
                        yyVAL.exp = &NumExp{left: yyDollar[1].exp, op: MODOP, right: yyDollar[3].exp}
33✔
2024
                }
33✔
2025
        case 211:
817✔
2026
                yyDollar = yyS[yypt-2 : yypt+1]
817✔
2027
                {
1,634✔
2028
                        i, isInt := yyDollar[2].exp.(*Integer)
817✔
2029
                        if isInt {
817✔
2030
                                i.val = -i.val
7✔
2031
                                yyVAL.exp = i
7✔
2032
                        } else {
14✔
2033
                                yyVAL.exp = &NumExp{left: &Integer{val: 0}, op: SUBSOP, right: yyDollar[2].exp}
7✔
2034
                        }
7✔
2035
                }
820✔
2036
        case 213:
820✔
2037
                yyDollar = yyS[yypt-3 : yypt+1]
1,640✔
2038
                {
820✔
2039
                        yyVAL.exp = yyDollar[2].exp
820✔
2040
                }
40✔
2041
        case 215:
40✔
2042
                yyDollar = yyS[yypt-1 : yypt+1]
80✔
2043
                {
40✔
2044
                        yyVAL.exp = yyDollar[1].sel
40✔
2045
                }
856✔
2046
        case 216:
856✔
2047
                yyDollar = yyS[yypt-1 : yypt+1]
1,712✔
2048
                {
856✔
2049
                        yyVAL.exp = yyDollar[1].value
856✔
2050
                }
4✔
2051
        case 217:
4✔
2052
                yyDollar = yyS[yypt-3 : yypt+1]
8✔
2053
                {
4✔
2054
                        yyVAL.exp = &Cast{val: yyDollar[1].exp, t: yyDollar[3].sqlType}
4✔
2055
                }
664✔
2056
        case 218:
664✔
2057
                yyDollar = yyS[yypt-0 : yypt+1]
1,328✔
2058
                {
664✔
2059
                        yyVAL.boolean = false
664✔
2060
                }
160✔
2061
        case 219:
160✔
2062
                yyDollar = yyS[yypt-1 : yypt+1]
320✔
2063
                {
160✔
2064
                        yyVAL.boolean = true
160✔
2065
                }
854✔
2066
        }
854✔
2067
        goto yystack /* stack new state and value */
1,708✔
2068
}
854✔
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