Fossil SCM

Update the built-in SQLite to the 3.7.12 beta as of 2012-05-10.

drh 2012-05-10 12:22 trunk
Commit 0141e20ff041bf3f77c2e079f238478a686741ac
2 files changed +1142 -1068 +2 -1
+1142 -1068
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -657,11 +657,11 @@
657657
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
658658
** [sqlite_version()] and [sqlite_source_id()].
659659
*/
660660
#define SQLITE_VERSION "3.7.12"
661661
#define SQLITE_VERSION_NUMBER 3007012
662
-#define SQLITE_SOURCE_ID "2012-05-01 14:21:57 bfa61e781cb442be641486e7e55a1518e888d830"
662
+#define SQLITE_SOURCE_ID "2012-05-08 11:17:33 38bf90af1ede6ee64ef7be66392e895e60c9126e"
663663
664664
/*
665665
** CAPI3REF: Run-Time Library Version Numbers
666666
** KEYWORDS: sqlite3_version, sqlite3_sourceid
667667
**
@@ -1006,10 +1006,11 @@
10061006
#define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
10071007
#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
10081008
#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
10091009
#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
10101010
#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
1011
+#define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
10111012
#define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
10121013
#define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
10131014
#define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
10141015
#define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
10151016
@@ -35172,10 +35173,39 @@
3517235173
zBuf[j+1] = 0;
3517335174
3517435175
OSTRACE(("TEMP FILENAME: %s\n", zBuf));
3517535176
return SQLITE_OK;
3517635177
}
35178
+
35179
+/*
35180
+** Return TRUE if the named file is really a directory. Return false if
35181
+** it is something other than a directory, or if there is any kind of memory
35182
+** allocation failure.
35183
+*/
35184
+static int winIsDir(const void *zConverted){
35185
+ DWORD attr;
35186
+ int rc = 0;
35187
+ DWORD lastErrno;
35188
+
35189
+ if( isNT() ){
35190
+ int cnt = 0;
35191
+ WIN32_FILE_ATTRIBUTE_DATA sAttrData;
35192
+ memset(&sAttrData, 0, sizeof(sAttrData));
35193
+ while( !(rc = osGetFileAttributesExW((LPCWSTR)zConverted,
35194
+ GetFileExInfoStandard,
35195
+ &sAttrData)) && retryIoerr(&cnt, &lastErrno) ){}
35196
+ if( !rc ){
35197
+ return 0; /* Invalid name? */
35198
+ }
35199
+ attr = sAttrData.dwFileAttributes;
35200
+#if SQLITE_OS_WINCE==0
35201
+ }else{
35202
+ attr = osGetFileAttributesA((char*)zConverted);
35203
+#endif
35204
+ }
35205
+ return (attr!=INVALID_FILE_ATTRIBUTES) && (attr&FILE_ATTRIBUTE_DIRECTORY);
35206
+}
3517735207
3517835208
/*
3517935209
** Open a file.
3518035210
*/
3518135211
static int winOpen(
@@ -35278,10 +35308,15 @@
3527835308
/* Convert the filename to the system encoding. */
3527935309
zConverted = convertUtf8Filename(zUtf8Name);
3528035310
if( zConverted==0 ){
3528135311
return SQLITE_IOERR_NOMEM;
3528235312
}
35313
+
35314
+ if( winIsDir(zConverted) ){
35315
+ sqlite3_free(zConverted);
35316
+ return SQLITE_CANTOPEN_ISDIR;
35317
+ }
3528335318
3528435319
if( isReadWrite ){
3528535320
dwDesiredAccess = GENERIC_READ | GENERIC_WRITE;
3528635321
}else{
3528735322
dwDesiredAccess = GENERIC_READ;
@@ -35328,24 +35363,24 @@
3532835363
dwDesiredAccess,
3532935364
dwShareMode, NULL,
3533035365
dwCreationDisposition,
3533135366
dwFlagsAndAttributes,
3533235367
NULL))==INVALID_HANDLE_VALUE &&
35333
- retryIoerr(&cnt, &lastErrno) ){}
35334
-/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
35335
-** Since the ANSI version of these Windows API do not exist for WINCE,
35336
-** it's important to not reference them for WINCE builds.
35337
-*/
35368
+ retryIoerr(&cnt, &lastErrno) ){
35369
+ /* Noop */
35370
+ }
3533835371
#if SQLITE_OS_WINCE==0
3533935372
}else{
3534035373
while( (h = osCreateFileA((LPCSTR)zConverted,
3534135374
dwDesiredAccess,
3534235375
dwShareMode, NULL,
3534335376
dwCreationDisposition,
3534435377
dwFlagsAndAttributes,
3534535378
NULL))==INVALID_HANDLE_VALUE &&
35346
- retryIoerr(&cnt, &lastErrno) ){}
35379
+ retryIoerr(&cnt, &lastErrno) ){
35380
+ /* Noop */
35381
+ }
3534735382
#endif
3534835383
}
3534935384
3535035385
logIoerr(cnt);
3535135386
@@ -35421,10 +35456,11 @@
3542135456
const char *zFilename, /* Name of file to delete */
3542235457
int syncDir /* Not used on win32 */
3542335458
){
3542435459
int cnt = 0;
3542535460
int rc;
35461
+ DWORD attr;
3542635462
DWORD lastErrno;
3542735463
void *zConverted;
3542835464
UNUSED_PARAMETER(pVfs);
3542935465
UNUSED_PARAMETER(syncDir);
3543035466
@@ -35432,24 +35468,54 @@
3543235468
zConverted = convertUtf8Filename(zFilename);
3543335469
if( zConverted==0 ){
3543435470
return SQLITE_IOERR_NOMEM;
3543535471
}
3543635472
if( isNT() ){
35437
- rc = 1;
35438
- while( osGetFileAttributesW(zConverted)!=INVALID_FILE_ATTRIBUTES &&
35439
- (rc = osDeleteFileW(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
35440
- rc = rc ? SQLITE_OK : SQLITE_ERROR;
35473
+ do {
35474
+ attr = osGetFileAttributesW(zConverted);
35475
+ if ( attr==INVALID_FILE_ATTRIBUTES ){
35476
+ rc = SQLITE_OK; /* Already gone? */
35477
+ break;
35478
+ }
35479
+ if ( attr&FILE_ATTRIBUTE_DIRECTORY ){
35480
+ rc = SQLITE_ERROR; /* Files only. */
35481
+ break;
35482
+ }
35483
+ if ( osDeleteFileW(zConverted) ){
35484
+ rc = SQLITE_OK; /* Deleted OK. */
35485
+ break;
35486
+ }
35487
+ if ( !retryIoerr(&cnt, &lastErrno) ){
35488
+ rc = SQLITE_ERROR; /* No more retries. */
35489
+ break;
35490
+ }
35491
+ } while(1);
3544135492
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
3544235493
** Since the ANSI version of these Windows API do not exist for WINCE,
3544335494
** it's important to not reference them for WINCE builds.
3544435495
*/
3544535496
#if SQLITE_OS_WINCE==0
3544635497
}else{
35447
- rc = 1;
35448
- while( osGetFileAttributesA(zConverted)!=INVALID_FILE_ATTRIBUTES &&
35449
- (rc = osDeleteFileA(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
35450
- rc = rc ? SQLITE_OK : SQLITE_ERROR;
35498
+ do {
35499
+ attr = osGetFileAttributesA(zConverted);
35500
+ if ( attr==INVALID_FILE_ATTRIBUTES ){
35501
+ rc = SQLITE_OK; /* Already gone? */
35502
+ break;
35503
+ }
35504
+ if ( attr&FILE_ATTRIBUTE_DIRECTORY ){
35505
+ rc = SQLITE_ERROR; /* Files only. */
35506
+ break;
35507
+ }
35508
+ if ( osDeleteFileA(zConverted) ){
35509
+ rc = SQLITE_OK; /* Deleted OK. */
35510
+ break;
35511
+ }
35512
+ if ( !retryIoerr(&cnt, &lastErrno) ){
35513
+ rc = SQLITE_ERROR; /* No more retries. */
35514
+ break;
35515
+ }
35516
+ } while(1);
3545135517
#endif
3545235518
}
3545335519
if( rc ){
3545435520
rc = winLogError(SQLITE_IOERR_DELETE, lastErrno,
3545535521
"winDelete", zFilename);
@@ -108378,12 +108444,12 @@
108378108444
#endif
108379108445
#define sqlite3ParserARG_SDECL Parse *pParse;
108380108446
#define sqlite3ParserARG_PDECL ,Parse *pParse
108381108447
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
108382108448
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
108383
-#define YYNSTATE 627
108384
-#define YYNRULE 325
108449
+#define YYNSTATE 630
108450
+#define YYNRULE 327
108385108451
#define YYFALLBACK 1
108386108452
#define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
108387108453
#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
108388108454
#define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
108389108455
@@ -108449,478 +108515,479 @@
108449108515
** shifting terminals.
108450108516
** yy_reduce_ofst[] For each state, the offset into yy_action for
108451108517
** shifting non-terminals after a reduce.
108452108518
** yy_default[] Default action for each state.
108453108519
*/
108454
-#define YY_ACTTAB_COUNT (1561)
108520
+#define YY_ACTTAB_COUNT (1562)
108455108521
static const YYACTIONTYPE yy_action[] = {
108456
- /* 0 */ 310, 328, 573, 572, 15, 171, 185, 595, 56, 56,
108522
+ /* 0 */ 312, 330, 575, 574, 15, 171, 186, 597, 56, 56,
108457108523
/* 10 */ 56, 56, 49, 54, 54, 54, 54, 53, 53, 52,
108458
- /* 20 */ 52, 52, 51, 233, 52, 52, 52, 51, 233, 624,
108459
- /* 30 */ 588, 582, 56, 56, 56, 56, 314, 54, 54, 54,
108460
- /* 40 */ 54, 53, 53, 52, 52, 52, 51, 233, 299, 57,
108461
- /* 50 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108462
- /* 60 */ 56, 56, 569, 54, 54, 54, 54, 53, 53, 52,
108463
- /* 70 */ 52, 52, 51, 233, 310, 595, 326, 575, 663, 65,
108524
+ /* 20 */ 52, 52, 51, 235, 52, 52, 52, 51, 235, 627,
108525
+ /* 30 */ 590, 584, 56, 56, 56, 56, 316, 54, 54, 54,
108526
+ /* 40 */ 54, 53, 53, 52, 52, 52, 51, 235, 301, 57,
108527
+ /* 50 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108528
+ /* 60 */ 56, 56, 571, 54, 54, 54, 54, 53, 53, 52,
108529
+ /* 70 */ 52, 52, 51, 235, 312, 597, 328, 198, 197, 196,
108464108530
/* 80 */ 33, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108465
- /* 90 */ 51, 233, 53, 53, 52, 52, 52, 51, 233, 489,
108466
- /* 100 */ 663, 440, 663, 235, 588, 582, 553, 297, 363, 59,
108467
- /* 110 */ 481, 67, 360, 1, 618, 351, 618, 620, 619, 207,
108468
- /* 120 */ 6, 441, 442, 57, 58, 48, 580, 579, 581, 581,
108469
- /* 130 */ 55, 55, 56, 56, 56, 56, 605, 54, 54, 54,
108470
- /* 140 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 223,
108471
- /* 150 */ 50, 47, 146, 598, 138, 281, 385, 276, 384, 168,
108472
- /* 160 */ 489, 552, 620, 619, 620, 619, 272, 214, 440, 411,
108473
- /* 170 */ 551, 604, 67, 165, 7, 618, 352, 353, 588, 582,
108474
- /* 180 */ 443, 569, 192, 618, 414, 617, 616, 668, 441, 336,
108475
- /* 190 */ 669, 62, 618, 599, 92, 382, 346, 57, 58, 48,
108476
- /* 200 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
108477
- /* 210 */ 670, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108478
- /* 220 */ 51, 233, 310, 465, 232, 231, 373, 132, 514, 513,
108479
- /* 230 */ 617, 616, 617, 616, 398, 437, 411, 66, 280, 388,
108480
- /* 240 */ 411, 595, 439, 220, 438, 620, 619, 337, 569, 279,
108481
- /* 250 */ 201, 414, 588, 582, 166, 414, 546, 167, 68, 234,
108482
- /* 260 */ 599, 92, 620, 619, 599, 92, 19, 570, 570, 466,
108483
- /* 270 */ 564, 57, 58, 48, 580, 579, 581, 581, 55, 55,
108484
- /* 280 */ 56, 56, 56, 56, 598, 54, 54, 54, 54, 53,
108485
- /* 290 */ 53, 52, 52, 52, 51, 233, 310, 411, 524, 232,
108486
- /* 300 */ 231, 398, 593, 547, 559, 398, 348, 202, 175, 595,
108487
- /* 310 */ 399, 315, 414, 617, 616, 387, 272, 255, 347, 254,
108488
- /* 320 */ 558, 599, 74, 620, 619, 45, 588, 582, 235, 466,
108489
- /* 330 */ 617, 616, 511, 591, 591, 591, 557, 578, 402, 545,
108490
- /* 340 */ 600, 598, 570, 570, 601, 57, 58, 48, 580, 579,
108491
- /* 350 */ 581, 581, 55, 55, 56, 56, 56, 56, 550, 54,
108492
- /* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
108493
- /* 370 */ 310, 309, 411, 145, 566, 490, 213, 255, 347, 254,
108494
- /* 380 */ 196, 195, 194, 587, 586, 531, 600, 414, 235, 174,
108495
- /* 390 */ 601, 617, 616, 411, 620, 619, 599, 91, 547, 574,
108496
- /* 400 */ 588, 582, 50, 47, 146, 584, 583, 471, 414, 249,
108497
- /* 410 */ 565, 542, 186, 39, 304, 424, 562, 599, 16, 57,
108498
- /* 420 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108499
- /* 430 */ 56, 56, 585, 54, 54, 54, 54, 53, 53, 52,
108500
- /* 440 */ 52, 52, 51, 233, 310, 559, 290, 530, 529, 345,
108501
- /* 450 */ 533, 576, 540, 246, 170, 248, 411, 396, 411, 422,
108502
- /* 460 */ 199, 558, 617, 616, 165, 563, 50, 47, 146, 181,
108503
- /* 470 */ 498, 414, 166, 414, 588, 582, 269, 557, 166, 518,
108504
- /* 480 */ 599, 92, 599, 92, 561, 595, 469, 36, 173, 409,
108505
- /* 490 */ 517, 577, 577, 57, 58, 48, 580, 579, 581, 581,
108506
- /* 500 */ 55, 55, 56, 56, 56, 56, 338, 54, 54, 54,
108507
- /* 510 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 304,
108508
- /* 520 */ 423, 394, 526, 318, 869, 235, 167, 180, 473, 547,
108509
- /* 530 */ 503, 247, 474, 381, 378, 377, 409, 351, 577, 577,
108510
- /* 540 */ 409, 560, 577, 577, 376, 383, 364, 603, 588, 582,
108511
- /* 550 */ 620, 619, 502, 595, 409, 494, 577, 577, 409, 266,
108512
- /* 560 */ 577, 577, 421, 943, 422, 943, 198, 57, 58, 48,
108513
- /* 570 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
108514
- /* 580 */ 315, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108515
- /* 590 */ 51, 233, 310, 390, 421, 942, 509, 942, 556, 145,
108516
- /* 600 */ 598, 391, 324, 262, 549, 264, 411, 425, 407, 573,
108517
- /* 610 */ 572, 12, 197, 143, 489, 50, 47, 146, 617, 616,
108518
- /* 620 */ 206, 414, 588, 582, 547, 429, 67, 212, 143, 618,
108519
- /* 630 */ 599, 73, 504, 505, 207, 434, 475, 475, 366, 425,
108520
- /* 640 */ 35, 57, 58, 48, 580, 579, 581, 581, 55, 55,
108521
- /* 650 */ 56, 56, 56, 56, 598, 54, 54, 54, 54, 53,
108522
- /* 660 */ 53, 52, 52, 52, 51, 233, 310, 260, 598, 569,
108523
- /* 670 */ 268, 615, 614, 613, 171, 411, 595, 11, 411, 350,
108524
- /* 680 */ 411, 32, 618, 953, 183, 419, 2, 627, 625, 330,
108525
- /* 690 */ 414, 352, 552, 414, 538, 414, 588, 582, 188, 599,
108526
- /* 700 */ 69, 551, 599, 94, 599, 97, 374, 544, 166, 618,
108527
- /* 710 */ 334, 359, 50, 47, 146, 57, 58, 48, 580, 579,
108528
- /* 720 */ 581, 581, 55, 55, 56, 56, 56, 56, 411, 54,
108529
- /* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
108530
- /* 740 */ 310, 411, 129, 414, 595, 22, 273, 156, 411, 566,
108531
- /* 750 */ 406, 213, 599, 95, 570, 570, 414, 327, 169, 332,
108532
- /* 760 */ 411, 618, 536, 414, 358, 599, 104, 483, 508, 356,
108533
- /* 770 */ 588, 582, 599, 103, 484, 414, 470, 357, 166, 618,
108534
- /* 780 */ 626, 2, 204, 323, 599, 105, 40, 528, 38, 57,
108535
- /* 790 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108536
- /* 800 */ 56, 56, 411, 54, 54, 54, 54, 53, 53, 52,
108537
- /* 810 */ 52, 52, 51, 233, 310, 411, 598, 414, 411, 260,
108538
- /* 820 */ 273, 273, 273, 273, 426, 305, 599, 106, 520, 519,
108539
- /* 830 */ 414, 411, 142, 414, 618, 618, 618, 618, 618, 599,
108540
- /* 840 */ 133, 339, 599, 134, 588, 582, 414, 21, 30, 316,
108541
- /* 850 */ 147, 459, 221, 170, 527, 599, 98, 222, 322, 321,
108542
- /* 860 */ 320, 141, 259, 57, 58, 48, 580, 579, 581, 581,
108543
- /* 870 */ 55, 55, 56, 56, 56, 56, 411, 54, 54, 54,
108544
- /* 880 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 411,
108545
- /* 890 */ 260, 414, 411, 458, 200, 35, 411, 358, 211, 228,
108546
- /* 900 */ 599, 102, 468, 519, 414, 618, 28, 414, 538, 501,
108547
- /* 910 */ 411, 414, 618, 599, 101, 358, 599, 93, 588, 582,
108548
- /* 920 */ 599, 100, 522, 618, 427, 414, 306, 271, 598, 380,
108549
- /* 930 */ 618, 602, 598, 452, 599, 77, 210, 57, 58, 48,
108550
- /* 940 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
108551
- /* 950 */ 411, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108552
- /* 960 */ 51, 233, 310, 411, 621, 414, 411, 127, 609, 270,
108553
- /* 970 */ 598, 365, 51, 233, 599, 96, 625, 330, 414, 618,
108554
- /* 980 */ 126, 414, 411, 618, 411, 253, 608, 599, 137, 27,
108555
- /* 990 */ 599, 136, 588, 582, 375, 260, 125, 414, 164, 414,
108556
- /* 1000 */ 371, 618, 279, 219, 542, 542, 599, 135, 599, 76,
108557
- /* 1010 */ 618, 57, 46, 48, 580, 579, 581, 581, 55, 55,
108558
- /* 1020 */ 56, 56, 56, 56, 411, 54, 54, 54, 54, 53,
108559
- /* 1030 */ 53, 52, 52, 52, 51, 233, 310, 411, 450, 414,
108560
- /* 1040 */ 411, 260, 542, 229, 285, 607, 479, 184, 599, 90,
108561
- /* 1050 */ 367, 122, 414, 476, 121, 414, 618, 170, 411, 353,
108562
- /* 1060 */ 618, 599, 89, 410, 599, 75, 588, 582, 472, 257,
108563
- /* 1070 */ 538, 120, 159, 414, 618, 14, 464, 158, 618, 157,
108564
- /* 1080 */ 461, 283, 599, 88, 449, 618, 58, 48, 580, 579,
108565
- /* 1090 */ 581, 581, 55, 55, 56, 56, 56, 56, 411, 54,
108566
- /* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
108567
- /* 1110 */ 310, 411, 260, 414, 411, 592, 260, 118, 25, 400,
108568
- /* 1120 */ 10, 24, 599, 87, 117, 216, 414, 618, 349, 414,
108569
- /* 1130 */ 618, 618, 411, 319, 618, 599, 99, 555, 599, 86,
108570
- /* 1140 */ 588, 582, 4, 260, 457, 455, 115, 414, 251, 154,
108571
- /* 1150 */ 451, 108, 618, 110, 436, 448, 599, 17, 618, 218,
108572
- /* 1160 */ 107, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108573
- /* 1170 */ 56, 56, 435, 54, 54, 54, 54, 53, 53, 52,
108574
- /* 1180 */ 52, 52, 51, 233, 44, 405, 217, 3, 411, 260,
108575
- /* 1190 */ 543, 415, 619, 445, 64, 149, 539, 237, 333, 329,
108576
- /* 1200 */ 203, 187, 408, 414, 618, 618, 420, 44, 405, 411,
108577
- /* 1210 */ 3, 618, 599, 85, 415, 619, 148, 227, 622, 179,
108578
- /* 1220 */ 313, 403, 312, 612, 414, 408, 611, 124, 417, 178,
108579
- /* 1230 */ 610, 564, 243, 599, 84, 537, 8, 176, 235, 416,
108580
- /* 1240 */ 294, 418, 623, 30, 403, 597, 411, 236, 293, 123,
108581
- /* 1250 */ 618, 41, 42, 532, 564, 205, 292, 275, 43, 413,
108582
- /* 1260 */ 412, 414, 395, 593, 507, 274, 31, 397, 291, 37,
108583
- /* 1270 */ 599, 83, 618, 491, 41, 42, 267, 411, 265, 618,
108584
- /* 1280 */ 618, 43, 413, 412, 596, 263, 593, 60, 618, 598,
108585
- /* 1290 */ 261, 618, 414, 618, 591, 591, 591, 590, 589, 13,
108586
- /* 1300 */ 618, 599, 72, 554, 235, 618, 44, 405, 256, 3,
108587
- /* 1310 */ 361, 172, 340, 415, 619, 230, 411, 591, 591, 591,
108588
- /* 1320 */ 590, 589, 13, 618, 408, 618, 182, 411, 286, 34,
108589
- /* 1330 */ 405, 414, 3, 411, 463, 411, 415, 619, 29, 331,
108590
- /* 1340 */ 599, 71, 414, 403, 392, 386, 284, 408, 414, 618,
108591
- /* 1350 */ 414, 599, 82, 564, 411, 462, 354, 599, 81, 599,
108592
- /* 1360 */ 80, 541, 250, 535, 282, 521, 403, 534, 516, 414,
108593
- /* 1370 */ 618, 618, 454, 41, 42, 411, 564, 618, 599, 70,
108594
- /* 1380 */ 43, 413, 412, 444, 515, 593, 242, 618, 325, 61,
108595
- /* 1390 */ 414, 277, 239, 620, 619, 238, 41, 42, 618, 599,
108596
- /* 1400 */ 18, 618, 512, 43, 413, 412, 511, 618, 593, 430,
108597
- /* 1410 */ 618, 411, 128, 510, 308, 226, 591, 591, 591, 590,
108598
- /* 1420 */ 589, 13, 215, 289, 618, 225, 414, 302, 301, 300,
108599
- /* 1430 */ 177, 298, 411, 564, 453, 599, 79, 224, 618, 591,
108600
- /* 1440 */ 591, 591, 590, 589, 13, 389, 492, 414, 150, 144,
108601
- /* 1450 */ 241, 393, 288, 191, 190, 193, 599, 78, 165, 240,
108602
- /* 1460 */ 414, 524, 487, 307, 618, 593, 618, 618, 486, 599,
108603
- /* 1470 */ 9, 163, 152, 485, 466, 372, 480, 162, 153, 370,
108604
- /* 1480 */ 161, 151, 209, 478, 258, 368, 477, 26, 160, 467,
108605
- /* 1490 */ 140, 362, 131, 119, 116, 456, 591, 591, 591, 155,
108606
- /* 1500 */ 114, 344, 343, 113, 112, 111, 447, 109, 130, 23,
108607
- /* 1510 */ 317, 433, 20, 432, 431, 428, 606, 594, 63, 189,
108608
- /* 1520 */ 404, 571, 255, 342, 244, 295, 287, 278, 311, 508,
108609
- /* 1530 */ 496, 497, 495, 235, 493, 568, 379, 355, 460, 245,
108610
- /* 1540 */ 341, 446, 303, 567, 5, 252, 548, 208, 139, 506,
108611
- /* 1550 */ 369, 401, 500, 499, 296, 525, 335, 488, 482, 523,
108612
- /* 1560 */ 233,
108531
+ /* 90 */ 51, 235, 53, 53, 52, 52, 52, 51, 235, 492,
108532
+ /* 100 */ 597, 441, 66, 237, 590, 584, 597, 299, 365, 59,
108533
+ /* 110 */ 482, 67, 362, 1, 621, 353, 621, 623, 622, 516,
108534
+ /* 120 */ 515, 442, 443, 57, 58, 48, 582, 581, 583, 583,
108535
+ /* 130 */ 55, 55, 56, 56, 56, 56, 608, 54, 54, 54,
108536
+ /* 140 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 225,
108537
+ /* 150 */ 618, 617, 616, 176, 138, 283, 386, 278, 385, 168,
108538
+ /* 160 */ 492, 554, 623, 622, 623, 622, 274, 441, 597, 412,
108539
+ /* 170 */ 553, 607, 67, 215, 597, 621, 506, 507, 590, 584,
108540
+ /* 180 */ 444, 571, 621, 391, 415, 620, 619, 442, 338, 623,
108541
+ /* 190 */ 622, 392, 601, 92, 224, 193, 671, 57, 58, 48,
108542
+ /* 200 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56,
108543
+ /* 210 */ 672, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108544
+ /* 220 */ 51, 235, 312, 262, 234, 233, 505, 132, 486, 510,
108545
+ /* 230 */ 620, 619, 620, 619, 399, 438, 487, 566, 621, 389,
108546
+ /* 240 */ 412, 384, 440, 532, 439, 602, 339, 571, 504, 603,
108547
+ /* 250 */ 203, 533, 590, 584, 45, 415, 548, 620, 619, 383,
108548
+ /* 260 */ 380, 379, 6, 601, 92, 526, 261, 572, 572, 595,
108549
+ /* 270 */ 378, 57, 58, 48, 582, 581, 583, 583, 55, 55,
108550
+ /* 280 */ 56, 56, 56, 56, 600, 54, 54, 54, 54, 53,
108551
+ /* 290 */ 53, 52, 52, 52, 51, 235, 312, 466, 326, 561,
108552
+ /* 300 */ 593, 593, 593, 282, 311, 399, 412, 568, 493, 214,
108553
+ /* 310 */ 400, 623, 622, 68, 281, 560, 7, 623, 622, 167,
108554
+ /* 320 */ 577, 415, 65, 408, 575, 574, 590, 584, 673, 601,
108555
+ /* 330 */ 92, 559, 410, 520, 579, 579, 306, 425, 623, 622,
108556
+ /* 340 */ 208, 572, 572, 467, 519, 57, 58, 48, 582, 581,
108557
+ /* 350 */ 583, 583, 55, 55, 56, 56, 56, 56, 576, 54,
108558
+ /* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235,
108559
+ /* 370 */ 312, 399, 412, 317, 600, 412, 350, 549, 578, 620,
108560
+ /* 380 */ 619, 423, 204, 175, 571, 620, 619, 415, 551, 355,
108561
+ /* 390 */ 415, 257, 349, 256, 174, 601, 74, 354, 601, 91,
108562
+ /* 400 */ 590, 584, 237, 467, 621, 547, 620, 619, 164, 623,
108563
+ /* 410 */ 622, 544, 62, 39, 251, 580, 600, 348, 555, 57,
108564
+ /* 420 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108565
+ /* 430 */ 56, 56, 565, 54, 54, 54, 54, 53, 53, 52,
108566
+ /* 440 */ 52, 52, 51, 235, 312, 554, 182, 145, 531, 292,
108567
+ /* 450 */ 231, 257, 349, 256, 553, 221, 412, 181, 248, 549,
108568
+ /* 460 */ 250, 412, 237, 50, 47, 146, 412, 410, 412, 579,
108569
+ /* 470 */ 579, 415, 549, 567, 590, 584, 415, 620, 619, 601,
108570
+ /* 480 */ 16, 415, 189, 415, 601, 92, 268, 36, 544, 601,
108571
+ /* 490 */ 92, 601, 73, 57, 58, 48, 582, 581, 583, 583,
108572
+ /* 500 */ 55, 55, 56, 56, 56, 56, 187, 54, 54, 54,
108573
+ /* 510 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 564,
108574
+ /* 520 */ 397, 410, 528, 579, 579, 561, 395, 535, 201, 145,
108575
+ /* 530 */ 264, 320, 266, 388, 375, 410, 249, 579, 579, 236,
108576
+ /* 540 */ 40, 560, 38, 50, 47, 146, 19, 606, 590, 584,
108577
+ /* 550 */ 422, 948, 563, 948, 549, 496, 472, 559, 602, 403,
108578
+ /* 560 */ 422, 947, 603, 947, 562, 167, 200, 57, 58, 48,
108579
+ /* 570 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56,
108580
+ /* 580 */ 156, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108581
+ /* 590 */ 51, 235, 312, 262, 412, 426, 511, 208, 347, 492,
108582
+ /* 600 */ 600, 50, 47, 146, 410, 426, 579, 579, 621, 415,
108583
+ /* 610 */ 430, 67, 199, 143, 621, 166, 474, 601, 69, 317,
108584
+ /* 620 */ 475, 435, 590, 584, 274, 234, 233, 958, 184, 420,
108585
+ /* 630 */ 2, 600, 358, 552, 366, 470, 336, 476, 476, 368,
108586
+ /* 640 */ 359, 57, 58, 48, 582, 581, 583, 583, 55, 55,
108587
+ /* 650 */ 56, 56, 56, 56, 354, 54, 54, 54, 54, 53,
108588
+ /* 660 */ 53, 52, 52, 52, 51, 235, 312, 412, 572, 572,
108589
+ /* 670 */ 271, 412, 558, 874, 361, 213, 143, 412, 50, 47,
108590
+ /* 680 */ 146, 30, 415, 540, 355, 334, 415, 412, 629, 2,
108591
+ /* 690 */ 601, 94, 415, 513, 601, 97, 590, 584, 621, 621,
108592
+ /* 700 */ 601, 95, 415, 306, 424, 630, 628, 332, 173, 269,
108593
+ /* 710 */ 601, 104, 171, 546, 597, 57, 58, 48, 582, 581,
108594
+ /* 720 */ 583, 583, 55, 55, 56, 56, 56, 56, 412, 54,
108595
+ /* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235,
108596
+ /* 740 */ 312, 412, 275, 415, 412, 22, 329, 340, 423, 544,
108597
+ /* 750 */ 217, 601, 103, 568, 407, 214, 415, 621, 35, 415,
108598
+ /* 760 */ 412, 540, 412, 12, 601, 105, 237, 601, 106, 11,
108599
+ /* 770 */ 590, 584, 50, 47, 146, 415, 621, 415, 353, 325,
108600
+ /* 780 */ 164, 129, 597, 601, 133, 601, 134, 207, 287, 57,
108601
+ /* 790 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108602
+ /* 800 */ 56, 56, 412, 54, 54, 54, 54, 53, 53, 52,
108603
+ /* 810 */ 52, 52, 51, 235, 312, 412, 275, 415, 412, 275,
108604
+ /* 820 */ 275, 600, 275, 544, 367, 601, 98, 542, 412, 170,
108605
+ /* 830 */ 415, 621, 524, 415, 621, 621, 169, 621, 601, 102,
108606
+ /* 840 */ 604, 601, 101, 415, 590, 584, 352, 21, 500, 32,
108607
+ /* 850 */ 166, 601, 93, 223, 318, 147, 324, 323, 272, 322,
108608
+ /* 860 */ 166, 205, 285, 57, 58, 48, 582, 581, 583, 583,
108609
+ /* 870 */ 55, 55, 56, 56, 56, 56, 412, 54, 54, 54,
108610
+ /* 880 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 412,
108611
+ /* 890 */ 262, 415, 412, 538, 360, 600, 360, 202, 142, 601,
108612
+ /* 900 */ 100, 376, 412, 166, 415, 621, 540, 415, 360, 621,
108613
+ /* 910 */ 141, 621, 601, 77, 230, 601, 96, 415, 590, 584,
108614
+ /* 920 */ 341, 621, 530, 621, 529, 601, 137, 471, 382, 166,
108615
+ /* 930 */ 460, 600, 170, 453, 427, 307, 28, 57, 58, 48,
108616
+ /* 940 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56,
108617
+ /* 950 */ 412, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108618
+ /* 960 */ 51, 235, 312, 412, 503, 415, 412, 212, 459, 321,
108619
+ /* 970 */ 35, 211, 127, 601, 136, 428, 412, 308, 415, 412,
108620
+ /* 980 */ 273, 415, 222, 126, 255, 27, 601, 135, 377, 601,
108621
+ /* 990 */ 76, 415, 590, 584, 415, 262, 220, 51, 235, 601,
108622
+ /* 1000 */ 90, 600, 601, 89, 125, 600, 281, 522, 521, 373,
108623
+ /* 1010 */ 621, 57, 46, 48, 582, 581, 583, 583, 55, 55,
108624
+ /* 1020 */ 56, 56, 56, 56, 412, 54, 54, 54, 54, 53,
108625
+ /* 1030 */ 53, 52, 52, 52, 51, 235, 312, 412, 451, 415,
108626
+ /* 1040 */ 165, 624, 612, 611, 469, 521, 480, 601, 75, 185,
108627
+ /* 1050 */ 412, 122, 415, 412, 369, 412, 621, 621, 621, 477,
108628
+ /* 1060 */ 601, 88, 589, 588, 170, 415, 590, 584, 415, 121,
108629
+ /* 1070 */ 415, 473, 259, 601, 87, 159, 601, 99, 601, 86,
108630
+ /* 1080 */ 628, 332, 120, 14, 586, 585, 58, 48, 582, 581,
108631
+ /* 1090 */ 583, 583, 55, 55, 56, 56, 56, 56, 412, 54,
108632
+ /* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235,
108633
+ /* 1110 */ 312, 587, 412, 415, 412, 465, 262, 262, 610, 605,
108634
+ /* 1120 */ 158, 601, 17, 157, 412, 462, 25, 415, 118, 415,
108635
+ /* 1130 */ 412, 621, 621, 621, 621, 601, 85, 601, 84, 415,
108636
+ /* 1140 */ 590, 584, 411, 262, 24, 415, 117, 601, 83, 10,
108637
+ /* 1150 */ 351, 4, 115, 601, 72, 458, 456, 621, 621, 450,
108638
+ /* 1160 */ 449, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108639
+ /* 1170 */ 56, 56, 253, 54, 54, 54, 54, 53, 53, 52,
108640
+ /* 1180 */ 52, 52, 51, 235, 44, 406, 219, 3, 412, 452,
108641
+ /* 1190 */ 262, 416, 622, 154, 594, 110, 107, 108, 401, 446,
108642
+ /* 1200 */ 64, 557, 409, 415, 412, 621, 437, 44, 406, 621,
108643
+ /* 1210 */ 3, 601, 71, 621, 416, 622, 621, 545, 335, 415,
108644
+ /* 1220 */ 436, 404, 149, 239, 262, 409, 188, 601, 82, 331,
108645
+ /* 1230 */ 541, 566, 621, 218, 421, 539, 229, 139, 124, 621,
108646
+ /* 1240 */ 148, 419, 626, 625, 404, 621, 412, 238, 315, 123,
108647
+ /* 1250 */ 621, 41, 42, 534, 566, 206, 412, 277, 43, 414,
108648
+ /* 1260 */ 413, 415, 509, 595, 314, 615, 180, 245, 614, 601,
108649
+ /* 1270 */ 81, 415, 621, 276, 41, 42, 613, 621, 412, 601,
108650
+ /* 1280 */ 80, 43, 414, 413, 179, 270, 595, 418, 621, 600,
108651
+ /* 1290 */ 484, 8, 177, 415, 593, 593, 593, 592, 591, 13,
108652
+ /* 1300 */ 621, 601, 70, 417, 237, 621, 44, 406, 267, 3,
108653
+ /* 1310 */ 237, 265, 342, 416, 622, 599, 296, 593, 593, 593,
108654
+ /* 1320 */ 592, 591, 13, 621, 409, 412, 621, 412, 396, 34,
108655
+ /* 1330 */ 406, 412, 3, 31, 30, 294, 416, 622, 293, 333,
108656
+ /* 1340 */ 415, 263, 415, 404, 398, 258, 415, 409, 601, 18,
108657
+ /* 1350 */ 601, 79, 363, 566, 601, 78, 621, 295, 60, 37,
108658
+ /* 1360 */ 621, 172, 464, 390, 463, 598, 404, 621, 356, 288,
108659
+ /* 1370 */ 232, 29, 556, 41, 42, 252, 566, 621, 415, 621,
108660
+ /* 1380 */ 43, 414, 413, 621, 455, 595, 601, 9, 183, 61,
108661
+ /* 1390 */ 621, 543, 445, 623, 622, 244, 41, 42, 241, 621,
108662
+ /* 1400 */ 240, 393, 286, 43, 414, 413, 284, 621, 595, 431,
108663
+ /* 1410 */ 621, 291, 537, 621, 536, 621, 593, 593, 593, 592,
108664
+ /* 1420 */ 591, 13, 216, 144, 621, 387, 621, 304, 303, 302,
108665
+ /* 1430 */ 178, 300, 394, 566, 454, 517, 290, 523, 621, 593,
108666
+ /* 1440 */ 593, 593, 592, 591, 13, 518, 327, 621, 150, 279,
108667
+ /* 1450 */ 243, 621, 514, 192, 191, 513, 512, 310, 128, 242,
108668
+ /* 1460 */ 228, 526, 227, 226, 490, 595, 494, 489, 488, 309,
108669
+ /* 1470 */ 194, 164, 152, 163, 467, 374, 481, 372, 153, 162,
108670
+ /* 1480 */ 161, 151, 210, 479, 260, 370, 26, 478, 160, 468,
108671
+ /* 1490 */ 364, 140, 119, 116, 131, 457, 593, 593, 593, 155,
108672
+ /* 1500 */ 114, 346, 345, 113, 112, 111, 448, 109, 130, 23,
108673
+ /* 1510 */ 319, 20, 434, 433, 432, 63, 429, 609, 190, 510,
108674
+ /* 1520 */ 596, 405, 257, 344, 246, 297, 280, 573, 313, 570,
108675
+ /* 1530 */ 195, 499, 498, 237, 497, 495, 381, 289, 461, 247,
108676
+ /* 1540 */ 357, 254, 305, 343, 5, 447, 569, 209, 550, 371,
108677
+ /* 1550 */ 508, 491, 402, 502, 501, 298, 337, 527, 525, 485,
108678
+ /* 1560 */ 483, 235,
108613108679
};
108614108680
static const YYCODETYPE yy_lookahead[] = {
108615108681
/* 0 */ 19, 169, 170, 171, 22, 24, 24, 26, 77, 78,
108616108682
/* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
108617108683
/* 20 */ 89, 90, 91, 92, 88, 89, 90, 91, 92, 1,
108618108684
/* 30 */ 49, 50, 77, 78, 79, 80, 155, 82, 83, 84,
108619108685
/* 40 */ 85, 86, 87, 88, 89, 90, 91, 92, 15, 68,
108620108686
/* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108621108687
/* 60 */ 79, 80, 230, 82, 83, 84, 85, 86, 87, 88,
108622
- /* 70 */ 89, 90, 91, 92, 19, 94, 19, 23, 1, 25,
108688
+ /* 70 */ 89, 90, 91, 92, 19, 94, 19, 105, 106, 107,
108623108689
/* 80 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108624108690
/* 90 */ 91, 92, 86, 87, 88, 89, 90, 91, 92, 150,
108625
- /* 100 */ 23, 150, 25, 116, 49, 50, 177, 158, 227, 54,
108626
- /* 110 */ 161, 162, 231, 22, 165, 128, 165, 26, 27, 160,
108627
- /* 120 */ 22, 170, 171, 68, 69, 70, 71, 72, 73, 74,
108691
+ /* 100 */ 26, 150, 22, 116, 49, 50, 26, 158, 227, 54,
108692
+ /* 110 */ 161, 162, 231, 22, 165, 128, 165, 26, 27, 7,
108693
+ /* 120 */ 8, 170, 171, 68, 69, 70, 71, 72, 73, 74,
108628108694
/* 130 */ 75, 76, 77, 78, 79, 80, 23, 82, 83, 84,
108629108695
/* 140 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 92,
108630
- /* 150 */ 221, 222, 223, 194, 97, 98, 99, 100, 101, 102,
108631
- /* 160 */ 150, 32, 26, 27, 26, 27, 109, 22, 150, 150,
108632
- /* 170 */ 41, 161, 162, 96, 76, 165, 217, 150, 49, 50,
108633
- /* 180 */ 229, 230, 172, 165, 165, 94, 95, 118, 170, 171,
108634
- /* 190 */ 118, 232, 165, 174, 175, 185, 237, 68, 69, 70,
108696
+ /* 150 */ 7, 8, 9, 96, 97, 98, 99, 100, 101, 102,
108697
+ /* 160 */ 150, 32, 26, 27, 26, 27, 109, 150, 94, 150,
108698
+ /* 170 */ 41, 161, 162, 22, 94, 165, 97, 98, 49, 50,
108699
+ /* 180 */ 229, 230, 165, 19, 165, 94, 95, 170, 171, 26,
108700
+ /* 190 */ 27, 27, 173, 174, 184, 185, 118, 68, 69, 70,
108635108701
/* 200 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108636108702
/* 210 */ 118, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108637
- /* 220 */ 91, 92, 19, 11, 86, 87, 19, 24, 7, 8,
108638
- /* 230 */ 94, 95, 94, 95, 215, 97, 150, 22, 98, 220,
108639
- /* 240 */ 150, 26, 104, 216, 106, 26, 27, 229, 230, 109,
108640
- /* 250 */ 160, 165, 49, 50, 25, 165, 120, 50, 22, 197,
108641
- /* 260 */ 174, 175, 26, 27, 174, 175, 204, 129, 130, 57,
108642
- /* 270 */ 66, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108703
+ /* 220 */ 91, 92, 19, 150, 86, 87, 36, 24, 180, 181,
108704
+ /* 230 */ 94, 95, 94, 95, 215, 97, 188, 66, 165, 220,
108705
+ /* 240 */ 150, 51, 104, 23, 106, 113, 229, 230, 58, 117,
108706
+ /* 250 */ 160, 88, 49, 50, 22, 165, 120, 94, 95, 99,
108707
+ /* 260 */ 100, 101, 22, 173, 174, 94, 193, 129, 130, 98,
108708
+ /* 270 */ 110, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108643108709
/* 280 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86,
108644
- /* 290 */ 87, 88, 89, 90, 91, 92, 19, 150, 94, 86,
108645
- /* 300 */ 87, 215, 98, 25, 12, 215, 220, 160, 118, 94,
108646
- /* 310 */ 220, 104, 165, 94, 95, 88, 109, 105, 106, 107,
108647
- /* 320 */ 28, 174, 175, 26, 27, 22, 49, 50, 116, 57,
108648
- /* 330 */ 94, 95, 103, 129, 130, 131, 44, 113, 46, 120,
108649
- /* 340 */ 113, 194, 129, 130, 117, 68, 69, 70, 71, 72,
108650
- /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 177, 82,
108710
+ /* 290 */ 87, 88, 89, 90, 91, 92, 19, 11, 108, 12,
108711
+ /* 300 */ 129, 130, 131, 98, 163, 215, 150, 166, 167, 168,
108712
+ /* 310 */ 220, 26, 27, 22, 109, 28, 76, 26, 27, 50,
108713
+ /* 320 */ 23, 165, 25, 169, 170, 171, 49, 50, 118, 173,
108714
+ /* 330 */ 174, 44, 112, 46, 114, 115, 22, 23, 26, 27,
108715
+ /* 340 */ 160, 129, 130, 57, 57, 68, 69, 70, 71, 72,
108716
+ /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 23, 82,
108651108717
/* 360 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108652
- /* 370 */ 19, 163, 150, 95, 166, 167, 168, 105, 106, 107,
108653
- /* 380 */ 105, 106, 107, 49, 50, 88, 113, 165, 116, 118,
108654
- /* 390 */ 117, 94, 95, 150, 26, 27, 174, 175, 120, 23,
108655
- /* 400 */ 49, 50, 221, 222, 223, 71, 72, 21, 165, 16,
108656
- /* 410 */ 23, 166, 22, 136, 22, 23, 11, 174, 175, 68,
108718
+ /* 370 */ 19, 215, 150, 104, 194, 150, 220, 25, 23, 94,
108719
+ /* 380 */ 95, 67, 160, 118, 230, 94, 95, 165, 25, 150,
108720
+ /* 390 */ 165, 105, 106, 107, 118, 173, 174, 217, 173, 174,
108721
+ /* 400 */ 49, 50, 116, 57, 165, 120, 94, 95, 96, 26,
108722
+ /* 410 */ 27, 166, 232, 136, 16, 113, 194, 237, 176, 68,
108657108723
/* 420 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108658
- /* 430 */ 79, 80, 98, 82, 83, 84, 85, 86, 87, 88,
108659
- /* 440 */ 89, 90, 91, 92, 19, 12, 224, 23, 23, 63,
108660
- /* 450 */ 205, 23, 23, 60, 25, 62, 150, 214, 150, 67,
108661
- /* 460 */ 22, 28, 94, 95, 96, 23, 221, 222, 223, 23,
108662
- /* 470 */ 23, 165, 25, 165, 49, 50, 23, 44, 25, 46,
108663
- /* 480 */ 174, 175, 174, 175, 23, 26, 100, 136, 25, 112,
108664
- /* 490 */ 57, 114, 115, 68, 69, 70, 71, 72, 73, 74,
108665
- /* 500 */ 75, 76, 77, 78, 79, 80, 97, 82, 83, 84,
108666
- /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 22,
108667
- /* 520 */ 23, 215, 23, 215, 138, 116, 50, 23, 30, 25,
108668
- /* 530 */ 36, 138, 34, 99, 100, 101, 112, 128, 114, 115,
108669
- /* 540 */ 112, 23, 114, 115, 110, 51, 48, 173, 49, 50,
108670
- /* 550 */ 26, 27, 58, 94, 112, 181, 114, 115, 112, 16,
108671
- /* 560 */ 114, 115, 22, 23, 67, 25, 160, 68, 69, 70,
108724
+ /* 430 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88,
108725
+ /* 440 */ 89, 90, 91, 92, 19, 32, 23, 95, 23, 224,
108726
+ /* 450 */ 205, 105, 106, 107, 41, 216, 150, 23, 60, 25,
108727
+ /* 460 */ 62, 150, 116, 221, 222, 223, 150, 112, 150, 114,
108728
+ /* 470 */ 115, 165, 120, 23, 49, 50, 165, 94, 95, 173,
108729
+ /* 480 */ 174, 165, 119, 165, 173, 174, 16, 136, 166, 173,
108730
+ /* 490 */ 174, 173, 174, 68, 69, 70, 71, 72, 73, 74,
108731
+ /* 500 */ 75, 76, 77, 78, 79, 80, 22, 82, 83, 84,
108732
+ /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 11,
108733
+ /* 520 */ 214, 112, 23, 114, 115, 12, 215, 205, 22, 95,
108734
+ /* 530 */ 60, 215, 62, 88, 19, 112, 138, 114, 115, 197,
108735
+ /* 540 */ 135, 28, 137, 221, 222, 223, 204, 172, 49, 50,
108736
+ /* 550 */ 22, 23, 23, 25, 120, 180, 21, 44, 113, 46,
108737
+ /* 560 */ 22, 23, 117, 25, 23, 50, 160, 68, 69, 70,
108672108738
/* 570 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108673
- /* 580 */ 104, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108674
- /* 590 */ 91, 92, 19, 19, 22, 23, 23, 25, 23, 95,
108675
- /* 600 */ 194, 27, 108, 60, 25, 62, 150, 67, 169, 170,
108676
- /* 610 */ 171, 35, 206, 207, 150, 221, 222, 223, 94, 95,
108677
- /* 620 */ 160, 165, 49, 50, 120, 161, 162, 206, 207, 165,
108678
- /* 630 */ 174, 175, 97, 98, 160, 241, 105, 106, 107, 67,
108679
- /* 640 */ 25, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108680
- /* 650 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86,
108681
- /* 660 */ 87, 88, 89, 90, 91, 92, 19, 150, 194, 230,
108682
- /* 670 */ 23, 7, 8, 9, 24, 150, 26, 35, 150, 219,
108683
- /* 680 */ 150, 25, 165, 142, 143, 144, 145, 0, 1, 2,
108684
- /* 690 */ 165, 217, 32, 165, 150, 165, 49, 50, 119, 174,
108685
- /* 700 */ 175, 41, 174, 175, 174, 175, 23, 120, 25, 165,
108686
- /* 710 */ 193, 237, 221, 222, 223, 68, 69, 70, 71, 72,
108739
+ /* 580 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108740
+ /* 590 */ 91, 92, 19, 150, 150, 67, 23, 160, 63, 150,
108741
+ /* 600 */ 194, 221, 222, 223, 112, 67, 114, 115, 165, 165,
108742
+ /* 610 */ 161, 162, 206, 207, 165, 25, 30, 173, 174, 104,
108743
+ /* 620 */ 34, 241, 49, 50, 109, 86, 87, 142, 143, 144,
108744
+ /* 630 */ 145, 194, 19, 176, 48, 100, 193, 105, 106, 107,
108745
+ /* 640 */ 27, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108746
+ /* 650 */ 77, 78, 79, 80, 217, 82, 83, 84, 85, 86,
108747
+ /* 660 */ 87, 88, 89, 90, 91, 92, 19, 150, 129, 130,
108748
+ /* 670 */ 23, 150, 23, 138, 237, 206, 207, 150, 221, 222,
108749
+ /* 680 */ 223, 126, 165, 150, 150, 242, 165, 150, 144, 145,
108750
+ /* 690 */ 173, 174, 165, 103, 173, 174, 49, 50, 165, 165,
108751
+ /* 700 */ 173, 174, 165, 22, 23, 0, 1, 2, 25, 25,
108752
+ /* 710 */ 173, 174, 24, 120, 26, 68, 69, 70, 71, 72,
108687108753
/* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
108688108754
/* 730 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108689
- /* 740 */ 19, 150, 22, 165, 94, 24, 150, 25, 150, 166,
108690
- /* 750 */ 167, 168, 174, 175, 129, 130, 165, 213, 35, 242,
108691
- /* 760 */ 150, 165, 27, 165, 150, 174, 175, 181, 182, 19,
108692
- /* 770 */ 49, 50, 174, 175, 188, 165, 23, 27, 25, 165,
108693
- /* 780 */ 144, 145, 160, 187, 174, 175, 135, 23, 137, 68,
108755
+ /* 740 */ 19, 150, 150, 165, 150, 24, 213, 97, 67, 166,
108756
+ /* 750 */ 216, 173, 174, 166, 167, 168, 165, 165, 25, 165,
108757
+ /* 760 */ 150, 150, 150, 35, 173, 174, 116, 173, 174, 35,
108758
+ /* 770 */ 49, 50, 221, 222, 223, 165, 165, 165, 128, 187,
108759
+ /* 780 */ 96, 22, 94, 173, 174, 173, 174, 160, 205, 68,
108694108760
/* 790 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108695108761
/* 800 */ 79, 80, 150, 82, 83, 84, 85, 86, 87, 88,
108696
- /* 810 */ 89, 90, 91, 92, 19, 150, 194, 165, 150, 150,
108697
- /* 820 */ 150, 150, 150, 150, 247, 248, 174, 175, 190, 191,
108698
- /* 830 */ 165, 150, 118, 165, 165, 165, 165, 165, 165, 174,
108699
- /* 840 */ 175, 219, 174, 175, 49, 50, 165, 52, 126, 245,
108700
- /* 850 */ 246, 23, 238, 25, 23, 174, 175, 187, 187, 187,
108701
- /* 860 */ 187, 39, 193, 68, 69, 70, 71, 72, 73, 74,
108762
+ /* 810 */ 89, 90, 91, 92, 19, 150, 150, 165, 150, 150,
108763
+ /* 820 */ 150, 194, 150, 166, 213, 173, 174, 23, 150, 25,
108764
+ /* 830 */ 165, 165, 165, 165, 165, 165, 35, 165, 173, 174,
108765
+ /* 840 */ 173, 173, 174, 165, 49, 50, 219, 52, 23, 25,
108766
+ /* 850 */ 25, 173, 174, 187, 245, 246, 187, 187, 23, 187,
108767
+ /* 860 */ 25, 160, 205, 68, 69, 70, 71, 72, 73, 74,
108702108768
/* 870 */ 75, 76, 77, 78, 79, 80, 150, 82, 83, 84,
108703108769
/* 880 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 150,
108704
- /* 890 */ 150, 165, 150, 23, 160, 25, 150, 150, 160, 52,
108705
- /* 900 */ 174, 175, 190, 191, 165, 165, 22, 165, 150, 29,
108706
- /* 910 */ 150, 165, 165, 174, 175, 150, 174, 175, 49, 50,
108707
- /* 920 */ 174, 175, 165, 165, 23, 165, 25, 25, 194, 52,
108708
- /* 930 */ 165, 174, 194, 193, 174, 175, 160, 68, 69, 70,
108770
+ /* 890 */ 150, 165, 150, 27, 150, 194, 150, 160, 118, 173,
108771
+ /* 900 */ 174, 23, 150, 25, 165, 165, 150, 165, 150, 165,
108772
+ /* 910 */ 39, 165, 173, 174, 52, 173, 174, 165, 49, 50,
108773
+ /* 920 */ 219, 165, 23, 165, 23, 173, 174, 23, 52, 25,
108774
+ /* 930 */ 23, 194, 25, 193, 247, 248, 22, 68, 69, 70,
108709108775
/* 940 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108710108776
/* 950 */ 150, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108711
- /* 960 */ 91, 92, 19, 150, 150, 165, 150, 22, 150, 23,
108712
- /* 970 */ 194, 213, 91, 92, 174, 175, 1, 2, 165, 165,
108713
- /* 980 */ 22, 165, 150, 165, 150, 238, 150, 174, 175, 22,
108714
- /* 990 */ 174, 175, 49, 50, 52, 150, 22, 165, 102, 165,
108715
- /* 1000 */ 19, 165, 109, 238, 166, 166, 174, 175, 174, 175,
108777
+ /* 960 */ 91, 92, 19, 150, 29, 165, 150, 160, 23, 213,
108778
+ /* 970 */ 25, 160, 22, 173, 174, 23, 150, 25, 165, 150,
108779
+ /* 980 */ 23, 165, 238, 22, 238, 22, 173, 174, 52, 173,
108780
+ /* 990 */ 174, 165, 49, 50, 165, 150, 238, 91, 92, 173,
108781
+ /* 1000 */ 174, 194, 173, 174, 22, 194, 109, 190, 191, 19,
108716108782
/* 1010 */ 165, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108717108783
/* 1020 */ 77, 78, 79, 80, 150, 82, 83, 84, 85, 86,
108718108784
/* 1030 */ 87, 88, 89, 90, 91, 92, 19, 150, 193, 165,
108719
- /* 1040 */ 150, 150, 166, 205, 205, 150, 20, 24, 174, 175,
108720
- /* 1050 */ 43, 104, 165, 59, 53, 165, 165, 25, 150, 150,
108721
- /* 1060 */ 165, 174, 175, 150, 174, 175, 49, 50, 53, 138,
108722
- /* 1070 */ 150, 22, 104, 165, 165, 5, 1, 118, 165, 35,
108723
- /* 1080 */ 27, 205, 174, 175, 193, 165, 69, 70, 71, 72,
108785
+ /* 1040 */ 102, 150, 150, 150, 190, 191, 20, 173, 174, 24,
108786
+ /* 1050 */ 150, 104, 165, 150, 43, 150, 165, 165, 165, 59,
108787
+ /* 1060 */ 173, 174, 49, 50, 25, 165, 49, 50, 165, 53,
108788
+ /* 1070 */ 165, 53, 138, 173, 174, 104, 173, 174, 173, 174,
108789
+ /* 1080 */ 1, 2, 22, 5, 71, 72, 69, 70, 71, 72,
108724108790
/* 1090 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
108725108791
/* 1100 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108726
- /* 1110 */ 19, 150, 150, 165, 150, 150, 150, 108, 76, 150,
108727
- /* 1120 */ 22, 76, 174, 175, 127, 216, 165, 165, 25, 165,
108728
- /* 1130 */ 165, 165, 150, 213, 165, 174, 175, 150, 174, 175,
108729
- /* 1140 */ 49, 50, 22, 150, 23, 1, 119, 165, 16, 121,
108730
- /* 1150 */ 20, 108, 165, 119, 23, 193, 174, 175, 165, 193,
108731
- /* 1160 */ 127, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108732
- /* 1170 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88,
108733
- /* 1180 */ 89, 90, 91, 92, 19, 20, 193, 22, 150, 150,
108734
- /* 1190 */ 150, 26, 27, 128, 16, 15, 150, 140, 65, 3,
108735
- /* 1200 */ 164, 22, 37, 165, 165, 165, 4, 19, 20, 150,
108736
- /* 1210 */ 22, 165, 174, 175, 26, 27, 246, 180, 149, 6,
108737
- /* 1220 */ 249, 56, 249, 149, 165, 37, 149, 180, 149, 151,
108738
- /* 1230 */ 13, 66, 193, 174, 175, 150, 25, 151, 116, 159,
108739
- /* 1240 */ 199, 146, 147, 126, 56, 194, 150, 152, 200, 154,
108740
- /* 1250 */ 165, 86, 87, 88, 66, 160, 201, 150, 93, 94,
108741
- /* 1260 */ 95, 165, 123, 98, 150, 150, 124, 122, 202, 135,
108742
- /* 1270 */ 174, 175, 165, 150, 86, 87, 150, 150, 150, 165,
108743
- /* 1280 */ 165, 93, 94, 95, 203, 150, 98, 125, 165, 194,
108744
- /* 1290 */ 150, 165, 165, 165, 129, 130, 131, 132, 133, 134,
108745
- /* 1300 */ 165, 174, 175, 157, 116, 165, 19, 20, 150, 22,
108746
- /* 1310 */ 150, 118, 217, 26, 27, 225, 150, 129, 130, 131,
108747
- /* 1320 */ 132, 133, 134, 165, 37, 165, 157, 150, 210, 19,
108748
- /* 1330 */ 20, 165, 22, 150, 150, 150, 26, 27, 104, 244,
108749
- /* 1340 */ 174, 175, 165, 56, 121, 104, 210, 37, 165, 165,
108750
- /* 1350 */ 165, 174, 175, 66, 150, 150, 150, 174, 175, 174,
108751
- /* 1360 */ 175, 211, 150, 211, 210, 176, 56, 211, 176, 165,
108752
- /* 1370 */ 165, 165, 150, 86, 87, 150, 66, 165, 174, 175,
108753
- /* 1380 */ 93, 94, 95, 150, 184, 98, 150, 165, 47, 22,
108754
- /* 1390 */ 165, 176, 150, 26, 27, 150, 86, 87, 165, 174,
108755
- /* 1400 */ 175, 165, 178, 93, 94, 95, 103, 165, 98, 150,
108756
- /* 1410 */ 165, 150, 22, 176, 179, 228, 129, 130, 131, 132,
108757
- /* 1420 */ 133, 134, 5, 150, 165, 92, 165, 10, 11, 12,
108758
- /* 1430 */ 13, 14, 150, 66, 17, 174, 175, 228, 165, 129,
108759
- /* 1440 */ 130, 131, 132, 133, 134, 150, 184, 165, 31, 150,
108760
- /* 1450 */ 33, 150, 150, 86, 87, 172, 174, 175, 96, 42,
108761
- /* 1460 */ 165, 94, 176, 179, 165, 98, 165, 165, 176, 174,
108762
- /* 1470 */ 175, 156, 55, 176, 57, 18, 157, 156, 61, 157,
108763
- /* 1480 */ 156, 64, 157, 157, 235, 45, 236, 135, 156, 189,
108764
- /* 1490 */ 68, 157, 218, 189, 22, 199, 129, 130, 131, 156,
108792
+ /* 1110 */ 19, 98, 150, 165, 150, 1, 150, 150, 150, 150,
108793
+ /* 1120 */ 118, 173, 174, 35, 150, 27, 76, 165, 108, 165,
108794
+ /* 1130 */ 150, 165, 165, 165, 165, 173, 174, 173, 174, 165,
108795
+ /* 1140 */ 49, 50, 150, 150, 76, 165, 127, 173, 174, 22,
108796
+ /* 1150 */ 25, 22, 119, 173, 174, 23, 1, 165, 165, 193,
108797
+ /* 1160 */ 193, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108798
+ /* 1170 */ 79, 80, 16, 82, 83, 84, 85, 86, 87, 88,
108799
+ /* 1180 */ 89, 90, 91, 92, 19, 20, 193, 22, 150, 20,
108800
+ /* 1190 */ 150, 26, 27, 121, 150, 119, 127, 108, 150, 128,
108801
+ /* 1200 */ 16, 150, 37, 165, 150, 165, 23, 19, 20, 165,
108802
+ /* 1210 */ 22, 173, 174, 165, 26, 27, 165, 150, 65, 165,
108803
+ /* 1220 */ 23, 56, 15, 140, 150, 37, 22, 173, 174, 3,
108804
+ /* 1230 */ 150, 66, 165, 193, 4, 150, 179, 164, 179, 165,
108805
+ /* 1240 */ 246, 146, 147, 149, 56, 165, 150, 152, 249, 154,
108806
+ /* 1250 */ 165, 86, 87, 88, 66, 160, 150, 150, 93, 94,
108807
+ /* 1260 */ 95, 165, 150, 98, 249, 149, 6, 193, 149, 173,
108808
+ /* 1270 */ 174, 165, 165, 150, 86, 87, 13, 165, 150, 173,
108809
+ /* 1280 */ 174, 93, 94, 95, 151, 150, 98, 149, 165, 194,
108810
+ /* 1290 */ 150, 25, 151, 165, 129, 130, 131, 132, 133, 134,
108811
+ /* 1300 */ 165, 173, 174, 159, 116, 165, 19, 20, 150, 22,
108812
+ /* 1310 */ 116, 150, 217, 26, 27, 194, 199, 129, 130, 131,
108813
+ /* 1320 */ 132, 133, 134, 165, 37, 150, 165, 150, 123, 19,
108814
+ /* 1330 */ 20, 150, 22, 124, 126, 201, 26, 27, 202, 244,
108815
+ /* 1340 */ 165, 150, 165, 56, 122, 150, 165, 37, 173, 174,
108816
+ /* 1350 */ 173, 174, 150, 66, 173, 174, 165, 200, 125, 135,
108817
+ /* 1360 */ 165, 118, 150, 150, 150, 203, 56, 165, 150, 210,
108818
+ /* 1370 */ 225, 104, 157, 86, 87, 150, 66, 165, 165, 165,
108819
+ /* 1380 */ 93, 94, 95, 165, 150, 98, 173, 174, 157, 22,
108820
+ /* 1390 */ 165, 211, 150, 26, 27, 150, 86, 87, 150, 165,
108821
+ /* 1400 */ 150, 121, 210, 93, 94, 95, 210, 165, 98, 150,
108822
+ /* 1410 */ 165, 150, 211, 165, 211, 165, 129, 130, 131, 132,
108823
+ /* 1420 */ 133, 134, 5, 150, 165, 104, 165, 10, 11, 12,
108824
+ /* 1430 */ 13, 14, 150, 66, 17, 183, 150, 175, 165, 129,
108825
+ /* 1440 */ 130, 131, 132, 133, 134, 175, 47, 165, 31, 175,
108826
+ /* 1450 */ 33, 165, 177, 86, 87, 103, 175, 178, 22, 42,
108827
+ /* 1460 */ 228, 94, 92, 228, 175, 98, 183, 175, 175, 178,
108828
+ /* 1470 */ 185, 96, 55, 156, 57, 18, 157, 157, 61, 156,
108829
+ /* 1480 */ 156, 64, 157, 157, 235, 45, 135, 236, 156, 189,
108830
+ /* 1490 */ 157, 68, 189, 22, 218, 199, 129, 130, 131, 156,
108765108831
/* 1500 */ 192, 157, 18, 192, 192, 192, 199, 189, 218, 240,
108766
- /* 1510 */ 157, 40, 240, 157, 157, 38, 153, 166, 243, 196,
108767
- /* 1520 */ 226, 230, 105, 106, 107, 198, 209, 177, 111, 182,
108768
- /* 1530 */ 166, 177, 177, 116, 166, 230, 178, 239, 199, 209,
108769
- /* 1540 */ 209, 199, 148, 166, 196, 239, 208, 233, 172, 183,
108770
- /* 1550 */ 234, 191, 183, 183, 195, 174, 139, 186, 186, 174,
108771
- /* 1560 */ 92,
108832
+ /* 1510 */ 157, 240, 40, 157, 157, 243, 38, 153, 196, 181,
108833
+ /* 1520 */ 166, 226, 105, 106, 107, 198, 176, 230, 111, 230,
108834
+ /* 1530 */ 185, 176, 166, 116, 176, 166, 177, 209, 199, 209,
108835
+ /* 1540 */ 239, 239, 148, 209, 196, 199, 166, 233, 208, 234,
108836
+ /* 1550 */ 182, 186, 191, 182, 182, 195, 139, 173, 173, 186,
108837
+ /* 1560 */ 186, 92,
108772108838
};
108773108839
#define YY_SHIFT_USE_DFLT (-70)
108774
-#define YY_SHIFT_COUNT (418)
108840
+#define YY_SHIFT_COUNT (419)
108775108841
#define YY_SHIFT_MIN (-69)
108776108842
#define YY_SHIFT_MAX (1484)
108777108843
static const short yy_shift_ofst[] = {
108778
- /* 0 */ 975, 1188, 1417, 1188, 1287, 1287, 138, 138, 368, -19,
108779
- /* 10 */ 1287, 1287, 1287, 1287, 272, 524, 129, 129, 795, 1165,
108844
+ /* 0 */ 1079, 1188, 1417, 1188, 1287, 1287, 138, 138, 312, -19,
108845
+ /* 10 */ 1287, 1287, 1287, 1287, 346, 383, 129, 129, 795, 1165,
108780108846
/* 20 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108781108847
/* 30 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108782108848
/* 40 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287,
108783108849
/* 50 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108784
- /* 60 */ 1287, 1287, 212, 524, 524, 213, 213, 459, 1122, 55,
108850
+ /* 60 */ 1287, 1287, 286, 383, 383, 539, 539, 74, 1194, 55,
108785108851
/* 70 */ 721, 647, 573, 499, 425, 351, 277, 203, 869, 869,
108786108852
/* 80 */ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869,
108787108853
/* 90 */ 869, 869, 869, 943, 869, 1017, 1091, 1091, -69, -45,
108788
- /* 100 */ -45, -45, -45, -45, -1, 6, -64, 524, 524, 524,
108789
- /* 110 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108790
- /* 120 */ 524, 524, 524, 386, 207, 524, 524, 524, 524, 524,
108791
- /* 130 */ 409, -13, 459, 881, 1468, -70, -70, -70, 1367, 57,
108792
- /* 140 */ 433, 433, 297, 236, 219, 136, 91, 572, 540, 524,
108793
- /* 150 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108794
- /* 160 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108795
- /* 170 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108796
- /* 180 */ 650, 650, 650, 687, 1122, 1122, 1122, -70, -70, -70,
108797
- /* 190 */ 204, 204, 434, 434, 494, 494, 494, 504, 446, 292,
108798
- /* 200 */ 442, 428, 424, 77, 377, 377, 377, 377, 531, 498,
108799
- /* 210 */ 377, 377, 278, 215, 227, 664, 722, 574, 574, 750,
108800
- /* 220 */ 722, 750, 229, 459, 660, 459, 660, 476, 660, 574,
108801
- /* 230 */ 651, 625, 625, 459, 579, 273, -18, 1477, 1193, 1193,
108802
- /* 240 */ 1471, 1471, 1193, 1472, 1422, 1117, 1484, 1484, 1484, 1484,
108803
- /* 250 */ 1193, 1457, 1117, 1472, 1422, 1422, 1193, 1457, 1352, 1440,
108804
- /* 260 */ 1193, 1193, 1457, 1193, 1457, 1193, 1457, 1390, 1241, 1241,
108805
- /* 270 */ 1241, 1362, 1341, 1333, 1333, 1390, 1241, 1303, 1241, 1341,
108806
- /* 280 */ 1241, 1241, 1223, 1234, 1223, 1234, 1223, 1234, 1193, 1193,
108807
- /* 290 */ 1134, 1162, 1145, 1142, 1139, 1117, 1122, 1211, 1217, 1217,
108808
- /* 300 */ 1213, 1213, 1213, 1213, -70, -70, -70, -70, -70, -70,
108809
- /* 310 */ 334, 393, 497, 392, 543, 275, 901, 98, 870, 828,
108810
- /* 320 */ 753, 683, 453, 447, 535, 221, 140, 429, 54, 1202,
108811
- /* 330 */ 1196, 1179, 1057, 1180, 1133, 1178, 1149, 1131, 1065, 1103,
108812
- /* 340 */ 1033, 1043, 1034, 1130, 1028, 1132, 1144, 1027, 1121, 1120,
108813
- /* 350 */ 1103, 1098, 997, 1045, 1042, 1009, 1053, 1044, 959, 1075,
108814
- /* 360 */ 1070, 1049, 968, 931, 1015, 1032, 1001, 994, 1007, 947,
108815
- /* 370 */ 1023, 1026, 981, 893, 896, 974, 942, 967, 958, 946,
108816
- /* 380 */ 945, 877, 902, 880, 884, 847, 822, 831, 764, 714,
108817
- /* 390 */ 735, 723, 720, 587, 615, 642, 656, 576, 615, 575,
108818
- /* 400 */ 518, 463, 461, 438, 405, 390, 387, 376, 303, 224,
108819
- /* 410 */ 271, 190, 92, 72, 69, 145, 113, 33, 28,
108854
+ /* 100 */ -45, -45, -45, -45, -1, 6, -64, 383, 383, 383,
108855
+ /* 110 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108856
+ /* 120 */ 383, 383, 383, 535, 515, 383, 383, 383, 383, 383,
108857
+ /* 130 */ 650, -13, 74, 906, 1469, -70, -70, -70, 1367, 57,
108858
+ /* 140 */ 287, 287, 163, 291, 285, 136, 91, 538, 528, 383,
108859
+ /* 150 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108860
+ /* 160 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108861
+ /* 170 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108862
+ /* 180 */ 383, 688, 688, 688, 705, 1194, 1194, 1194, -70, -70,
108863
+ /* 190 */ -70, 171, 171, 160, 160, 160, 190, 190, 190, 434,
108864
+ /* 200 */ 423, 513, 409, 355, 220, 492, 492, 492, 492, 532,
108865
+ /* 210 */ 586, 492, 492, 352, 80, 445, 143, 555, 164, 164,
108866
+ /* 220 */ 613, 555, 613, 590, 684, 74, 413, 74, 413, 269,
108867
+ /* 230 */ 413, 164, 405, 212, 212, 74, 363, 132, -18, 1478,
108868
+ /* 240 */ 1243, 1243, 1472, 1472, 1243, 1471, 1423, 1208, 1484, 1484,
108869
+ /* 250 */ 1484, 1484, 1243, 1457, 1208, 1471, 1423, 1423, 1243, 1457,
108870
+ /* 260 */ 1351, 1440, 1243, 1243, 1457, 1243, 1457, 1243, 1457, 1375,
108871
+ /* 270 */ 1436, 1321, 1321, 1321, 1399, 1370, 1370, 1436, 1321, 1352,
108872
+ /* 280 */ 1321, 1399, 1321, 1321, 1280, 1267, 1280, 1267, 1280, 1267,
108873
+ /* 290 */ 1243, 1243, 1224, 1233, 1222, 1209, 1205, 1208, 1194, 1266,
108874
+ /* 300 */ 1263, 1263, 1260, 1260, 1260, 1260, -70, -70, -70, -70,
108875
+ /* 310 */ -70, -70, 1013, 398, 681, 314, 470, -28, 952, 240,
108876
+ /* 320 */ 945, 907, 904, 878, 835, 825, 79, 112, 205, 804,
108877
+ /* 330 */ 297, 1230, 1226, 1204, 1083, 1207, 1153, 1184, 1197, 1183,
108878
+ /* 340 */ 1071, 1125, 1069, 1089, 1076, 1169, 1072, 1156, 1155, 1033,
108879
+ /* 350 */ 1132, 1129, 1125, 1127, 1019, 1068, 1050, 1020, 1098, 1088,
108880
+ /* 360 */ 1002, 1114, 1078, 1060, 971, 934, 1018, 1039, 1016, 1000,
108881
+ /* 370 */ 1011, 947, 1025, 1026, 990, 897, 938, 982, 936, 963,
108882
+ /* 380 */ 961, 957, 950, 876, 935, 914, 862, 871, 901, 899,
108883
+ /* 390 */ 780, 866, 801, 759, 593, 733, 734, 824, 728, 733,
108884
+ /* 400 */ 649, 541, 683, 529, 506, 508, 484, 450, 335, 232,
108885
+ /* 410 */ 302, 276, 265, 210, 92, 78, 151, 113, 33, 28,
108820108886
};
108821108887
#define YY_REDUCE_USE_DFLT (-169)
108822
-#define YY_REDUCE_COUNT (309)
108888
+#define YY_REDUCE_COUNT (311)
108823108889
#define YY_REDUCE_MIN (-168)
108824108890
#define YY_REDUCE_MAX (1394)
108825108891
static const short yy_reduce_ofst[] = {
108826
- /* 0 */ 541, 90, 1095, 147, 86, 19, 18, -49, 10, 245,
108827
- /* 10 */ 308, 306, 243, 222, -41, -51, 181, -71, 394, 1295,
108828
- /* 20 */ 1282, 1261, 1225, 1204, 1185, 1183, 1177, 1166, 1127, 1096,
108829
- /* 30 */ 1059, 1038, 982, 964, 961, 948, 908, 890, 887, 874,
108830
- /* 40 */ 834, 832, 816, 813, 800, 760, 746, 742, 739, 726,
108831
- /* 50 */ 681, 668, 665, 652, 610, 598, 591, 578, 530, 528,
108832
- /* 60 */ 525, 456, 474, 464, 517, 439, -168, 208, 406, 491,
108833
- /* 70 */ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
108834
- /* 80 */ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
108835
- /* 90 */ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
108836
- /* 100 */ 491, 491, 491, 491, 491, 491, 491, 1039, 909, 993,
108837
- /* 110 */ 966, 962, 891, 845, 740, 765, 920, 747, 27, 614,
108838
- /* 120 */ 673, 758, 669, -119, 586, 672, 671, 670, 596, 544,
108839
- /* 130 */ 622, 460, 583, 491, 491, 491, 491, 491, 757, 374,
108840
- /* 140 */ 712, 638, 913, 1302, 1301, 1299, 1273, 577, 577, 1259,
108841
- /* 150 */ 1245, 1242, 1236, 1233, 1222, 1212, 1206, 1205, 1184, 1160,
108842
- /* 160 */ 1158, 1140, 1135, 1128, 1126, 1123, 1115, 1114, 1107, 1085,
108843
- /* 170 */ 1046, 1040, 987, 969, 965, 913, 895, 836, 818, 814,
108844
- /* 180 */ 876, 839, 838, 636, 776, 738, 734, 604, 421, 62,
108845
- /* 190 */ 1385, 1381, 1372, 1371, 1370, 1369, 1366, 1338, 1359, 1360,
108846
- /* 200 */ 1359, 1359, 1359, 1376, 1359, 1359, 1359, 1359, 1316, 1314,
108847
- /* 210 */ 1359, 1359, 1338, 1377, 1348, 1394, 1342, 1331, 1330, 1306,
108848
- /* 220 */ 1339, 1298, 1358, 1368, 1355, 1364, 1354, 1347, 1350, 1317,
108849
- /* 230 */ 1294, 1305, 1291, 1351, 1327, 1323, 1363, 1275, 1357, 1356,
108850
- /* 240 */ 1272, 1269, 1353, 1290, 1318, 1307, 1313, 1312, 1311, 1308,
108851
- /* 250 */ 1344, 1343, 1296, 1274, 1304, 1300, 1334, 1332, 1250, 1249,
108852
- /* 260 */ 1326, 1325, 1324, 1322, 1321, 1319, 1315, 1284, 1297, 1292,
108853
- /* 270 */ 1286, 1283, 1262, 1209, 1187, 1235, 1237, 1224, 1215, 1200,
108854
- /* 280 */ 1192, 1189, 1156, 1154, 1152, 1136, 1150, 1118, 1169, 1146,
108855
- /* 290 */ 1090, 1081, 1066, 1055, 1048, 1041, 1051, 1080, 1086, 1078,
108856
- /* 300 */ 1079, 1077, 1074, 1069, 973, 971, 970, 1047, 1037, 1036,
108892
+ /* 0 */ 485, 90, 1095, 222, 156, 19, 17, -49, 10, 322,
108893
+ /* 10 */ 316, 311, 306, 225, 180, -51, 457, 242, 380, 1213,
108894
+ /* 20 */ 1181, 1177, 1175, 1128, 1106, 1096, 1054, 1038, 980, 974,
108895
+ /* 30 */ 964, 962, 948, 905, 903, 900, 887, 874, 829, 826,
108896
+ /* 40 */ 816, 813, 800, 752, 742, 739, 726, 678, 668, 665,
108897
+ /* 50 */ 652, 612, 610, 594, 591, 578, 537, 527, 521, 517,
108898
+ /* 60 */ 444, 318, 437, 449, 443, 154, -168, 141, 406, 551,
108899
+ /* 70 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
108900
+ /* 80 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
108901
+ /* 90 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
108902
+ /* 100 */ 551, 551, 551, 551, 551, 551, 551, 1074, 534, 1040,
108903
+ /* 110 */ 993, 967, 966, 845, 740, 758, 756, 746, 239, 744,
108904
+ /* 120 */ 672, 611, 73, -119, 48, 670, 669, 666, 592, 533,
108905
+ /* 130 */ 701, 627, 587, 551, 551, 551, 551, 551, 667, 375,
108906
+ /* 140 */ 854, 817, 992, 1286, 1282, 1273, 1261, 687, 687, 1259,
108907
+ /* 150 */ 1250, 1248, 1245, 1242, 1234, 1225, 1218, 1214, 1212, 1202,
108908
+ /* 160 */ 1195, 1191, 1161, 1158, 1140, 1135, 1123, 1112, 1107, 1085,
108909
+ /* 170 */ 1080, 1067, 1051, 1048, 1044, 992, 969, 968, 893, 892,
108910
+ /* 180 */ 891, 657, 583, 245, 544, 811, 807, 737, 609, 469,
108911
+ /* 190 */ 342, 1385, 1384, 1374, 1373, 1365, 1372, 1371, 1368, 1340,
108912
+ /* 200 */ 1360, 1361, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1315,
108913
+ /* 210 */ 1314, 1360, 1360, 1340, 1380, 1348, 1394, 1346, 1334, 1330,
108914
+ /* 220 */ 1302, 1339, 1301, 1359, 1345, 1369, 1358, 1366, 1355, 1338,
108915
+ /* 230 */ 1350, 1328, 1295, 1299, 1297, 1354, 1327, 1322, 1364, 1272,
108916
+ /* 240 */ 1357, 1356, 1271, 1269, 1353, 1290, 1318, 1307, 1313, 1312,
108917
+ /* 250 */ 1311, 1308, 1344, 1343, 1296, 1276, 1303, 1300, 1333, 1332,
108918
+ /* 260 */ 1251, 1249, 1326, 1325, 1324, 1320, 1323, 1319, 1317, 1285,
108919
+ /* 270 */ 1291, 1293, 1292, 1289, 1283, 1235, 1232, 1279, 1281, 1275,
108920
+ /* 280 */ 1274, 1252, 1270, 1262, 1203, 1196, 1201, 1192, 1180, 1159,
108921
+ /* 290 */ 1231, 1215, 1145, 1162, 1136, 1134, 1157, 1117, 1121, 1144,
108922
+ /* 300 */ 1141, 1133, 1138, 1119, 1116, 1094, 1015, 999, 994, 1059,
108923
+ /* 310 */ 1057, 1073,
108857108924
};
108858108925
static const YYACTIONTYPE yy_default[] = {
108859
- /* 0 */ 632, 864, 952, 952, 864, 864, 952, 952, 683, 754,
108860
- /* 10 */ 952, 952, 952, 862, 952, 952, 782, 782, 926, 952,
108861
- /* 20 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108862
- /* 30 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108863
- /* 40 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108864
- /* 50 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108865
- /* 60 */ 952, 952, 952, 952, 952, 952, 952, 671, 758, 788,
108866
- /* 70 */ 952, 952, 952, 952, 952, 952, 952, 952, 925, 927,
108867
- /* 80 */ 796, 795, 905, 769, 793, 786, 790, 865, 858, 859,
108868
- /* 90 */ 857, 861, 866, 952, 789, 825, 842, 824, 836, 841,
108869
- /* 100 */ 848, 840, 837, 827, 826, 828, 829, 952, 952, 952,
108870
- /* 110 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108871
- /* 120 */ 952, 952, 952, 658, 723, 952, 952, 952, 952, 952,
108872
- /* 130 */ 952, 952, 952, 830, 831, 845, 844, 843, 952, 952,
108873
- /* 140 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108874
- /* 150 */ 932, 930, 952, 877, 952, 952, 952, 952, 952, 952,
108875
- /* 160 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108876
- /* 170 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 638,
108877
- /* 180 */ 754, 754, 754, 632, 952, 952, 952, 944, 758, 748,
108878
- /* 190 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108879
- /* 200 */ 952, 952, 952, 683, 798, 737, 915, 917, 952, 898,
108880
- /* 210 */ 735, 660, 756, 673, 746, 640, 792, 771, 771, 910,
108881
- /* 220 */ 792, 910, 697, 952, 782, 952, 782, 694, 782, 771,
108882
- /* 230 */ 860, 952, 952, 952, 755, 746, 952, 937, 762, 762,
108883
- /* 240 */ 929, 929, 762, 804, 727, 792, 734, 734, 734, 734,
108884
- /* 250 */ 762, 655, 792, 804, 727, 727, 762, 655, 904, 902,
108885
- /* 260 */ 762, 762, 655, 762, 655, 762, 655, 870, 725, 725,
108886
- /* 270 */ 725, 683, 712, 874, 874, 870, 725, 697, 725, 712,
108887
- /* 280 */ 725, 725, 775, 770, 775, 770, 775, 770, 762, 762,
108888
- /* 290 */ 952, 787, 776, 785, 783, 792, 952, 715, 648, 648,
108889
- /* 300 */ 637, 637, 637, 637, 949, 949, 944, 699, 699, 681,
108890
- /* 310 */ 952, 952, 952, 952, 952, 952, 952, 879, 952, 952,
108891
- /* 320 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108892
- /* 330 */ 633, 939, 952, 952, 936, 952, 952, 952, 952, 797,
108893
- /* 340 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108894
- /* 350 */ 914, 952, 952, 952, 952, 952, 952, 952, 908, 952,
108895
- /* 360 */ 952, 952, 952, 952, 952, 901, 900, 952, 952, 952,
108896
- /* 370 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108897
- /* 380 */ 952, 952, 716, 952, 952, 952, 952, 952, 952, 952,
108898
- /* 390 */ 952, 952, 952, 952, 784, 952, 777, 952, 863, 952,
108899
- /* 400 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 740,
108900
- /* 410 */ 813, 952, 812, 816, 811, 665, 952, 646, 952, 629,
108901
- /* 420 */ 634, 948, 951, 950, 947, 946, 945, 940, 938, 935,
108902
- /* 430 */ 934, 933, 931, 928, 924, 883, 881, 888, 887, 886,
108903
- /* 440 */ 885, 884, 882, 880, 878, 799, 794, 791, 923, 876,
108904
- /* 450 */ 736, 733, 732, 654, 941, 907, 916, 803, 802, 805,
108905
- /* 460 */ 913, 912, 911, 909, 906, 893, 801, 800, 728, 868,
108906
- /* 470 */ 867, 657, 897, 896, 895, 899, 903, 894, 764, 656,
108907
- /* 480 */ 653, 662, 718, 724, 722, 721, 720, 719, 717, 664,
108908
- /* 490 */ 672, 682, 711, 696, 695, 873, 875, 872, 871, 704,
108909
- /* 500 */ 703, 709, 708, 707, 706, 705, 702, 701, 700, 693,
108910
- /* 510 */ 692, 698, 691, 714, 713, 710, 690, 731, 730, 729,
108911
- /* 520 */ 726, 689, 688, 687, 816, 686, 685, 822, 821, 809,
108912
- /* 530 */ 852, 751, 750, 749, 761, 760, 773, 772, 807, 806,
108913
- /* 540 */ 774, 759, 753, 752, 768, 767, 766, 765, 757, 747,
108914
- /* 550 */ 779, 781, 780, 778, 854, 763, 851, 922, 921, 920,
108915
- /* 560 */ 919, 918, 856, 855, 823, 820, 676, 677, 891, 890,
108916
- /* 570 */ 892, 889, 679, 678, 675, 674, 853, 742, 741, 849,
108917
- /* 580 */ 846, 838, 834, 850, 847, 839, 835, 833, 832, 818,
108918
- /* 590 */ 817, 815, 814, 810, 819, 667, 743, 739, 738, 808,
108919
- /* 600 */ 745, 744, 684, 680, 661, 659, 652, 650, 649, 651,
108920
- /* 610 */ 647, 645, 644, 643, 642, 641, 670, 669, 668, 666,
108921
- /* 620 */ 665, 639, 636, 635, 631, 630, 628,
108926
+ /* 0 */ 635, 869, 957, 957, 869, 869, 957, 957, 722, 759,
108927
+ /* 10 */ 957, 957, 957, 867, 957, 957, 787, 787, 931, 957,
108928
+ /* 20 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108929
+ /* 30 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108930
+ /* 40 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108931
+ /* 50 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108932
+ /* 60 */ 957, 957, 957, 957, 957, 957, 957, 674, 763, 793,
108933
+ /* 70 */ 957, 957, 957, 957, 957, 957, 957, 957, 930, 932,
108934
+ /* 80 */ 801, 800, 910, 774, 798, 791, 795, 870, 863, 864,
108935
+ /* 90 */ 862, 866, 871, 957, 794, 830, 847, 829, 841, 846,
108936
+ /* 100 */ 853, 845, 842, 832, 831, 833, 834, 957, 957, 957,
108937
+ /* 110 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108938
+ /* 120 */ 957, 957, 957, 661, 728, 957, 957, 957, 957, 957,
108939
+ /* 130 */ 957, 957, 957, 835, 836, 850, 849, 848, 957, 666,
108940
+ /* 140 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108941
+ /* 150 */ 937, 935, 957, 882, 957, 957, 957, 957, 957, 957,
108942
+ /* 160 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108943
+ /* 170 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108944
+ /* 180 */ 641, 759, 759, 759, 635, 957, 957, 957, 949, 763,
108945
+ /* 190 */ 753, 957, 957, 957, 957, 718, 957, 957, 957, 957,
108946
+ /* 200 */ 957, 957, 957, 957, 957, 803, 742, 920, 922, 957,
108947
+ /* 210 */ 903, 740, 663, 761, 676, 751, 643, 797, 776, 776,
108948
+ /* 220 */ 915, 797, 915, 699, 722, 957, 787, 957, 787, 696,
108949
+ /* 230 */ 787, 776, 865, 957, 957, 957, 760, 751, 957, 942,
108950
+ /* 240 */ 767, 767, 934, 934, 767, 809, 732, 797, 739, 739,
108951
+ /* 250 */ 739, 739, 767, 658, 797, 809, 732, 732, 767, 658,
108952
+ /* 260 */ 909, 907, 767, 767, 658, 767, 658, 767, 658, 722,
108953
+ /* 270 */ 875, 730, 730, 730, 714, 879, 879, 875, 730, 699,
108954
+ /* 280 */ 730, 714, 730, 730, 780, 775, 780, 775, 780, 775,
108955
+ /* 290 */ 767, 767, 957, 792, 781, 790, 788, 797, 957, 717,
108956
+ /* 300 */ 651, 651, 640, 640, 640, 640, 954, 954, 949, 701,
108957
+ /* 310 */ 701, 684, 957, 957, 957, 957, 957, 957, 957, 884,
108958
+ /* 320 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108959
+ /* 330 */ 957, 957, 636, 944, 957, 957, 941, 957, 957, 957,
108960
+ /* 340 */ 957, 802, 957, 957, 957, 957, 957, 957, 957, 957,
108961
+ /* 350 */ 957, 957, 919, 957, 957, 957, 957, 957, 957, 957,
108962
+ /* 360 */ 913, 957, 957, 957, 957, 957, 957, 906, 905, 957,
108963
+ /* 370 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108964
+ /* 380 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108965
+ /* 390 */ 957, 957, 957, 957, 957, 789, 957, 782, 957, 868,
108966
+ /* 400 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108967
+ /* 410 */ 745, 818, 957, 817, 821, 816, 668, 957, 649, 957,
108968
+ /* 420 */ 632, 637, 953, 956, 955, 952, 951, 950, 945, 943,
108969
+ /* 430 */ 940, 939, 938, 936, 933, 929, 888, 886, 893, 892,
108970
+ /* 440 */ 891, 890, 889, 887, 885, 883, 804, 799, 796, 928,
108971
+ /* 450 */ 881, 741, 738, 737, 657, 946, 912, 921, 808, 807,
108972
+ /* 460 */ 810, 918, 917, 916, 914, 911, 898, 806, 805, 733,
108973
+ /* 470 */ 873, 872, 660, 902, 901, 900, 904, 908, 899, 769,
108974
+ /* 480 */ 659, 656, 665, 721, 723, 719, 729, 727, 726, 725,
108975
+ /* 490 */ 724, 720, 667, 675, 713, 698, 697, 878, 880, 877,
108976
+ /* 500 */ 876, 706, 705, 711, 710, 709, 708, 707, 704, 703,
108977
+ /* 510 */ 702, 695, 694, 700, 693, 716, 715, 712, 692, 736,
108978
+ /* 520 */ 735, 734, 731, 691, 690, 689, 821, 688, 687, 827,
108979
+ /* 530 */ 826, 814, 857, 756, 755, 754, 766, 765, 778, 777,
108980
+ /* 540 */ 812, 811, 779, 764, 758, 757, 773, 772, 771, 770,
108981
+ /* 550 */ 762, 752, 784, 786, 785, 783, 859, 768, 856, 927,
108982
+ /* 560 */ 926, 925, 924, 923, 861, 860, 828, 825, 679, 680,
108983
+ /* 570 */ 896, 895, 897, 894, 682, 681, 678, 677, 858, 747,
108984
+ /* 580 */ 746, 854, 851, 843, 839, 855, 852, 844, 840, 838,
108985
+ /* 590 */ 837, 823, 822, 820, 819, 815, 824, 670, 748, 744,
108986
+ /* 600 */ 743, 813, 750, 749, 686, 685, 683, 664, 662, 655,
108987
+ /* 610 */ 653, 652, 654, 650, 648, 647, 646, 645, 644, 673,
108988
+ /* 620 */ 672, 671, 669, 668, 642, 639, 638, 634, 633, 631,
108922108989
};
108923108990
108924108991
/* The next table maps tokens into fallback tokens. If a construct
108925108992
** like the following:
108926108993
**
@@ -109119,14 +109186,14 @@
109119109186
"create_table", "create_table_args", "createkw", "temp",
109120109187
"ifnotexists", "dbnm", "columnlist", "conslist_opt",
109121109188
"select", "column", "columnid", "type",
109122109189
"carglist", "id", "ids", "typetoken",
109123109190
"typename", "signed", "plus_num", "minus_num",
109124
- "cname", "ccons", "term", "expr",
109125
- "onconf", "sortorder", "autoinc", "idxlist_opt",
109126
- "refargs", "defer_subclause", "refarg", "refact",
109127
- "init_deferred_pred_opt", "conslist", "tcons", "idxlist",
109191
+ "ccons", "term", "expr", "onconf",
109192
+ "sortorder", "autoinc", "idxlist_opt", "refargs",
109193
+ "defer_subclause", "refarg", "refact", "init_deferred_pred_opt",
109194
+ "conslist", "cname", "tcons", "idxlist",
109128109195
"defer_subclause_opt", "orconf", "resolvetype", "raisetype",
109129109196
"ifexists", "fullname", "oneselect", "multiselect_op",
109130109197
"distinct", "selcollist", "from", "where_opt",
109131109198
"groupby_opt", "having_opt", "orderby_opt", "limit_opt",
109132109199
"sclp", "as", "seltablist", "stl_prefix",
@@ -109199,282 +109266,284 @@
109199109266
/* 48 */ "typetoken ::= typename LP signed COMMA signed RP",
109200109267
/* 49 */ "typename ::= ids",
109201109268
/* 50 */ "typename ::= typename ids",
109202109269
/* 51 */ "signed ::= plus_num",
109203109270
/* 52 */ "signed ::= minus_num",
109204
- /* 53 */ "carglist ::= carglist cname ccons",
109271
+ /* 53 */ "carglist ::= carglist ccons",
109205109272
/* 54 */ "carglist ::=",
109206
- /* 55 */ "cname ::= CONSTRAINT nm",
109207
- /* 56 */ "cname ::=",
109208
- /* 57 */ "ccons ::= DEFAULT term",
109209
- /* 58 */ "ccons ::= DEFAULT LP expr RP",
109210
- /* 59 */ "ccons ::= DEFAULT PLUS term",
109211
- /* 60 */ "ccons ::= DEFAULT MINUS term",
109212
- /* 61 */ "ccons ::= DEFAULT id",
109213
- /* 62 */ "ccons ::= NULL onconf",
109214
- /* 63 */ "ccons ::= NOT NULL onconf",
109215
- /* 64 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc",
109216
- /* 65 */ "ccons ::= UNIQUE onconf",
109217
- /* 66 */ "ccons ::= CHECK LP expr RP",
109218
- /* 67 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
109219
- /* 68 */ "ccons ::= defer_subclause",
109220
- /* 69 */ "ccons ::= COLLATE ids",
109221
- /* 70 */ "autoinc ::=",
109222
- /* 71 */ "autoinc ::= AUTOINCR",
109223
- /* 72 */ "refargs ::=",
109224
- /* 73 */ "refargs ::= refargs refarg",
109225
- /* 74 */ "refarg ::= MATCH nm",
109226
- /* 75 */ "refarg ::= ON INSERT refact",
109227
- /* 76 */ "refarg ::= ON DELETE refact",
109228
- /* 77 */ "refarg ::= ON UPDATE refact",
109229
- /* 78 */ "refact ::= SET NULL",
109230
- /* 79 */ "refact ::= SET DEFAULT",
109231
- /* 80 */ "refact ::= CASCADE",
109232
- /* 81 */ "refact ::= RESTRICT",
109233
- /* 82 */ "refact ::= NO ACTION",
109234
- /* 83 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
109235
- /* 84 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
109236
- /* 85 */ "init_deferred_pred_opt ::=",
109237
- /* 86 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
109238
- /* 87 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
109239
- /* 88 */ "conslist_opt ::=",
109240
- /* 89 */ "conslist_opt ::= COMMA conslist",
109241
- /* 90 */ "conslist ::= conslist COMMA cname tcons",
109273
+ /* 55 */ "ccons ::= CONSTRAINT nm",
109274
+ /* 56 */ "ccons ::= DEFAULT term",
109275
+ /* 57 */ "ccons ::= DEFAULT LP expr RP",
109276
+ /* 58 */ "ccons ::= DEFAULT PLUS term",
109277
+ /* 59 */ "ccons ::= DEFAULT MINUS term",
109278
+ /* 60 */ "ccons ::= DEFAULT id",
109279
+ /* 61 */ "ccons ::= NULL onconf",
109280
+ /* 62 */ "ccons ::= NOT NULL onconf",
109281
+ /* 63 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc",
109282
+ /* 64 */ "ccons ::= UNIQUE onconf",
109283
+ /* 65 */ "ccons ::= CHECK LP expr RP",
109284
+ /* 66 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
109285
+ /* 67 */ "ccons ::= defer_subclause",
109286
+ /* 68 */ "ccons ::= COLLATE ids",
109287
+ /* 69 */ "autoinc ::=",
109288
+ /* 70 */ "autoinc ::= AUTOINCR",
109289
+ /* 71 */ "refargs ::=",
109290
+ /* 72 */ "refargs ::= refargs refarg",
109291
+ /* 73 */ "refarg ::= MATCH nm",
109292
+ /* 74 */ "refarg ::= ON INSERT refact",
109293
+ /* 75 */ "refarg ::= ON DELETE refact",
109294
+ /* 76 */ "refarg ::= ON UPDATE refact",
109295
+ /* 77 */ "refact ::= SET NULL",
109296
+ /* 78 */ "refact ::= SET DEFAULT",
109297
+ /* 79 */ "refact ::= CASCADE",
109298
+ /* 80 */ "refact ::= RESTRICT",
109299
+ /* 81 */ "refact ::= NO ACTION",
109300
+ /* 82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
109301
+ /* 83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
109302
+ /* 84 */ "init_deferred_pred_opt ::=",
109303
+ /* 85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
109304
+ /* 86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
109305
+ /* 87 */ "conslist_opt ::=",
109306
+ /* 88 */ "conslist_opt ::= COMMA conslist cname",
109307
+ /* 89 */ "conslist ::= conslist COMMA cname tcons",
109308
+ /* 90 */ "conslist ::= conslist cname tcons",
109242109309
/* 91 */ "conslist ::= cname tcons",
109243
- /* 92 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
109244
- /* 93 */ "tcons ::= UNIQUE LP idxlist RP onconf",
109245
- /* 94 */ "tcons ::= CHECK LP expr RP onconf",
109246
- /* 95 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
109247
- /* 96 */ "defer_subclause_opt ::=",
109248
- /* 97 */ "defer_subclause_opt ::= defer_subclause",
109249
- /* 98 */ "onconf ::=",
109250
- /* 99 */ "onconf ::= ON CONFLICT resolvetype",
109251
- /* 100 */ "orconf ::=",
109252
- /* 101 */ "orconf ::= OR resolvetype",
109253
- /* 102 */ "resolvetype ::= raisetype",
109254
- /* 103 */ "resolvetype ::= IGNORE",
109255
- /* 104 */ "resolvetype ::= REPLACE",
109256
- /* 105 */ "cmd ::= DROP TABLE ifexists fullname",
109257
- /* 106 */ "ifexists ::= IF EXISTS",
109258
- /* 107 */ "ifexists ::=",
109259
- /* 108 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select",
109260
- /* 109 */ "cmd ::= DROP VIEW ifexists fullname",
109261
- /* 110 */ "cmd ::= select",
109262
- /* 111 */ "select ::= oneselect",
109263
- /* 112 */ "select ::= select multiselect_op oneselect",
109264
- /* 113 */ "multiselect_op ::= UNION",
109265
- /* 114 */ "multiselect_op ::= UNION ALL",
109266
- /* 115 */ "multiselect_op ::= EXCEPT|INTERSECT",
109267
- /* 116 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
109268
- /* 117 */ "distinct ::= DISTINCT",
109269
- /* 118 */ "distinct ::= ALL",
109270
- /* 119 */ "distinct ::=",
109271
- /* 120 */ "sclp ::= selcollist COMMA",
109272
- /* 121 */ "sclp ::=",
109273
- /* 122 */ "selcollist ::= sclp expr as",
109274
- /* 123 */ "selcollist ::= sclp STAR",
109275
- /* 124 */ "selcollist ::= sclp nm DOT STAR",
109276
- /* 125 */ "as ::= AS nm",
109277
- /* 126 */ "as ::= ids",
109278
- /* 127 */ "as ::=",
109279
- /* 128 */ "from ::=",
109280
- /* 129 */ "from ::= FROM seltablist",
109281
- /* 130 */ "stl_prefix ::= seltablist joinop",
109282
- /* 131 */ "stl_prefix ::=",
109283
- /* 132 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
109284
- /* 133 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
109285
- /* 134 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
109286
- /* 135 */ "dbnm ::=",
109287
- /* 136 */ "dbnm ::= DOT nm",
109288
- /* 137 */ "fullname ::= nm dbnm",
109289
- /* 138 */ "joinop ::= COMMA|JOIN",
109290
- /* 139 */ "joinop ::= JOIN_KW JOIN",
109291
- /* 140 */ "joinop ::= JOIN_KW nm JOIN",
109292
- /* 141 */ "joinop ::= JOIN_KW nm nm JOIN",
109293
- /* 142 */ "on_opt ::= ON expr",
109294
- /* 143 */ "on_opt ::=",
109295
- /* 144 */ "indexed_opt ::=",
109296
- /* 145 */ "indexed_opt ::= INDEXED BY nm",
109297
- /* 146 */ "indexed_opt ::= NOT INDEXED",
109298
- /* 147 */ "using_opt ::= USING LP inscollist RP",
109299
- /* 148 */ "using_opt ::=",
109300
- /* 149 */ "orderby_opt ::=",
109301
- /* 150 */ "orderby_opt ::= ORDER BY sortlist",
109302
- /* 151 */ "sortlist ::= sortlist COMMA expr sortorder",
109303
- /* 152 */ "sortlist ::= expr sortorder",
109304
- /* 153 */ "sortorder ::= ASC",
109305
- /* 154 */ "sortorder ::= DESC",
109306
- /* 155 */ "sortorder ::=",
109307
- /* 156 */ "groupby_opt ::=",
109308
- /* 157 */ "groupby_opt ::= GROUP BY nexprlist",
109309
- /* 158 */ "having_opt ::=",
109310
- /* 159 */ "having_opt ::= HAVING expr",
109311
- /* 160 */ "limit_opt ::=",
109312
- /* 161 */ "limit_opt ::= LIMIT expr",
109313
- /* 162 */ "limit_opt ::= LIMIT expr OFFSET expr",
109314
- /* 163 */ "limit_opt ::= LIMIT expr COMMA expr",
109315
- /* 164 */ "cmd ::= DELETE FROM fullname indexed_opt where_opt",
109316
- /* 165 */ "where_opt ::=",
109317
- /* 166 */ "where_opt ::= WHERE expr",
109318
- /* 167 */ "cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt",
109319
- /* 168 */ "setlist ::= setlist COMMA nm EQ expr",
109320
- /* 169 */ "setlist ::= nm EQ expr",
109321
- /* 170 */ "cmd ::= insert_cmd INTO fullname inscollist_opt valuelist",
109322
- /* 171 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select",
109323
- /* 172 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES",
109324
- /* 173 */ "insert_cmd ::= INSERT orconf",
109325
- /* 174 */ "insert_cmd ::= REPLACE",
109326
- /* 175 */ "valuelist ::= VALUES LP nexprlist RP",
109327
- /* 176 */ "valuelist ::= valuelist COMMA LP exprlist RP",
109328
- /* 177 */ "inscollist_opt ::=",
109329
- /* 178 */ "inscollist_opt ::= LP inscollist RP",
109330
- /* 179 */ "inscollist ::= inscollist COMMA nm",
109331
- /* 180 */ "inscollist ::= nm",
109332
- /* 181 */ "expr ::= term",
109333
- /* 182 */ "expr ::= LP expr RP",
109334
- /* 183 */ "term ::= NULL",
109335
- /* 184 */ "expr ::= id",
109336
- /* 185 */ "expr ::= JOIN_KW",
109337
- /* 186 */ "expr ::= nm DOT nm",
109338
- /* 187 */ "expr ::= nm DOT nm DOT nm",
109339
- /* 188 */ "term ::= INTEGER|FLOAT|BLOB",
109340
- /* 189 */ "term ::= STRING",
109341
- /* 190 */ "expr ::= REGISTER",
109342
- /* 191 */ "expr ::= VARIABLE",
109343
- /* 192 */ "expr ::= expr COLLATE ids",
109344
- /* 193 */ "expr ::= CAST LP expr AS typetoken RP",
109345
- /* 194 */ "expr ::= ID LP distinct exprlist RP",
109346
- /* 195 */ "expr ::= ID LP STAR RP",
109347
- /* 196 */ "term ::= CTIME_KW",
109348
- /* 197 */ "expr ::= expr AND expr",
109349
- /* 198 */ "expr ::= expr OR expr",
109350
- /* 199 */ "expr ::= expr LT|GT|GE|LE expr",
109351
- /* 200 */ "expr ::= expr EQ|NE expr",
109352
- /* 201 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
109353
- /* 202 */ "expr ::= expr PLUS|MINUS expr",
109354
- /* 203 */ "expr ::= expr STAR|SLASH|REM expr",
109355
- /* 204 */ "expr ::= expr CONCAT expr",
109356
- /* 205 */ "likeop ::= LIKE_KW",
109357
- /* 206 */ "likeop ::= NOT LIKE_KW",
109358
- /* 207 */ "likeop ::= MATCH",
109359
- /* 208 */ "likeop ::= NOT MATCH",
109360
- /* 209 */ "expr ::= expr likeop expr",
109361
- /* 210 */ "expr ::= expr likeop expr ESCAPE expr",
109362
- /* 211 */ "expr ::= expr ISNULL|NOTNULL",
109363
- /* 212 */ "expr ::= expr NOT NULL",
109364
- /* 213 */ "expr ::= expr IS expr",
109365
- /* 214 */ "expr ::= expr IS NOT expr",
109366
- /* 215 */ "expr ::= NOT expr",
109367
- /* 216 */ "expr ::= BITNOT expr",
109368
- /* 217 */ "expr ::= MINUS expr",
109369
- /* 218 */ "expr ::= PLUS expr",
109370
- /* 219 */ "between_op ::= BETWEEN",
109371
- /* 220 */ "between_op ::= NOT BETWEEN",
109372
- /* 221 */ "expr ::= expr between_op expr AND expr",
109373
- /* 222 */ "in_op ::= IN",
109374
- /* 223 */ "in_op ::= NOT IN",
109375
- /* 224 */ "expr ::= expr in_op LP exprlist RP",
109376
- /* 225 */ "expr ::= LP select RP",
109377
- /* 226 */ "expr ::= expr in_op LP select RP",
109378
- /* 227 */ "expr ::= expr in_op nm dbnm",
109379
- /* 228 */ "expr ::= EXISTS LP select RP",
109380
- /* 229 */ "expr ::= CASE case_operand case_exprlist case_else END",
109381
- /* 230 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
109382
- /* 231 */ "case_exprlist ::= WHEN expr THEN expr",
109383
- /* 232 */ "case_else ::= ELSE expr",
109384
- /* 233 */ "case_else ::=",
109385
- /* 234 */ "case_operand ::= expr",
109386
- /* 235 */ "case_operand ::=",
109387
- /* 236 */ "exprlist ::= nexprlist",
109388
- /* 237 */ "exprlist ::=",
109389
- /* 238 */ "nexprlist ::= nexprlist COMMA expr",
109390
- /* 239 */ "nexprlist ::= expr",
109391
- /* 240 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP",
109392
- /* 241 */ "uniqueflag ::= UNIQUE",
109393
- /* 242 */ "uniqueflag ::=",
109394
- /* 243 */ "idxlist_opt ::=",
109395
- /* 244 */ "idxlist_opt ::= LP idxlist RP",
109396
- /* 245 */ "idxlist ::= idxlist COMMA nm collate sortorder",
109397
- /* 246 */ "idxlist ::= nm collate sortorder",
109398
- /* 247 */ "collate ::=",
109399
- /* 248 */ "collate ::= COLLATE ids",
109400
- /* 249 */ "cmd ::= DROP INDEX ifexists fullname",
109401
- /* 250 */ "cmd ::= VACUUM",
109402
- /* 251 */ "cmd ::= VACUUM nm",
109403
- /* 252 */ "cmd ::= PRAGMA nm dbnm",
109404
- /* 253 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
109405
- /* 254 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
109406
- /* 255 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
109407
- /* 256 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
109408
- /* 257 */ "nmnum ::= plus_num",
109409
- /* 258 */ "nmnum ::= nm",
109410
- /* 259 */ "nmnum ::= ON",
109411
- /* 260 */ "nmnum ::= DELETE",
109412
- /* 261 */ "nmnum ::= DEFAULT",
109413
- /* 262 */ "plus_num ::= PLUS number",
109414
- /* 263 */ "plus_num ::= number",
109415
- /* 264 */ "minus_num ::= MINUS number",
109416
- /* 265 */ "number ::= INTEGER|FLOAT",
109417
- /* 266 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
109418
- /* 267 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
109419
- /* 268 */ "trigger_time ::= BEFORE",
109420
- /* 269 */ "trigger_time ::= AFTER",
109421
- /* 270 */ "trigger_time ::= INSTEAD OF",
109422
- /* 271 */ "trigger_time ::=",
109423
- /* 272 */ "trigger_event ::= DELETE|INSERT",
109424
- /* 273 */ "trigger_event ::= UPDATE",
109425
- /* 274 */ "trigger_event ::= UPDATE OF inscollist",
109426
- /* 275 */ "foreach_clause ::=",
109427
- /* 276 */ "foreach_clause ::= FOR EACH ROW",
109428
- /* 277 */ "when_clause ::=",
109429
- /* 278 */ "when_clause ::= WHEN expr",
109430
- /* 279 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
109431
- /* 280 */ "trigger_cmd_list ::= trigger_cmd SEMI",
109432
- /* 281 */ "trnm ::= nm",
109433
- /* 282 */ "trnm ::= nm DOT nm",
109434
- /* 283 */ "tridxby ::=",
109435
- /* 284 */ "tridxby ::= INDEXED BY nm",
109436
- /* 285 */ "tridxby ::= NOT INDEXED",
109437
- /* 286 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
109438
- /* 287 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist",
109439
- /* 288 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select",
109440
- /* 289 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
109441
- /* 290 */ "trigger_cmd ::= select",
109442
- /* 291 */ "expr ::= RAISE LP IGNORE RP",
109443
- /* 292 */ "expr ::= RAISE LP raisetype COMMA nm RP",
109444
- /* 293 */ "raisetype ::= ROLLBACK",
109445
- /* 294 */ "raisetype ::= ABORT",
109446
- /* 295 */ "raisetype ::= FAIL",
109447
- /* 296 */ "cmd ::= DROP TRIGGER ifexists fullname",
109448
- /* 297 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
109449
- /* 298 */ "cmd ::= DETACH database_kw_opt expr",
109450
- /* 299 */ "key_opt ::=",
109451
- /* 300 */ "key_opt ::= KEY expr",
109452
- /* 301 */ "database_kw_opt ::= DATABASE",
109453
- /* 302 */ "database_kw_opt ::=",
109454
- /* 303 */ "cmd ::= REINDEX",
109455
- /* 304 */ "cmd ::= REINDEX nm dbnm",
109456
- /* 305 */ "cmd ::= ANALYZE",
109457
- /* 306 */ "cmd ::= ANALYZE nm dbnm",
109458
- /* 307 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
109459
- /* 308 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column",
109460
- /* 309 */ "add_column_fullname ::= fullname",
109461
- /* 310 */ "kwcolumn_opt ::=",
109462
- /* 311 */ "kwcolumn_opt ::= COLUMNKW",
109463
- /* 312 */ "cmd ::= create_vtab",
109464
- /* 313 */ "cmd ::= create_vtab LP vtabarglist RP",
109465
- /* 314 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
109466
- /* 315 */ "vtabarglist ::= vtabarg",
109467
- /* 316 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
109468
- /* 317 */ "vtabarg ::=",
109469
- /* 318 */ "vtabarg ::= vtabarg vtabargtoken",
109470
- /* 319 */ "vtabargtoken ::= ANY",
109471
- /* 320 */ "vtabargtoken ::= lp anylist RP",
109472
- /* 321 */ "lp ::= LP",
109473
- /* 322 */ "anylist ::=",
109474
- /* 323 */ "anylist ::= anylist LP anylist RP",
109475
- /* 324 */ "anylist ::= anylist ANY",
109310
+ /* 92 */ "cname ::=",
109311
+ /* 93 */ "cname ::= CONSTRAINT nm",
109312
+ /* 94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
109313
+ /* 95 */ "tcons ::= UNIQUE LP idxlist RP onconf",
109314
+ /* 96 */ "tcons ::= CHECK LP expr RP onconf",
109315
+ /* 97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
109316
+ /* 98 */ "defer_subclause_opt ::=",
109317
+ /* 99 */ "defer_subclause_opt ::= defer_subclause",
109318
+ /* 100 */ "onconf ::=",
109319
+ /* 101 */ "onconf ::= ON CONFLICT resolvetype",
109320
+ /* 102 */ "orconf ::=",
109321
+ /* 103 */ "orconf ::= OR resolvetype",
109322
+ /* 104 */ "resolvetype ::= raisetype",
109323
+ /* 105 */ "resolvetype ::= IGNORE",
109324
+ /* 106 */ "resolvetype ::= REPLACE",
109325
+ /* 107 */ "cmd ::= DROP TABLE ifexists fullname",
109326
+ /* 108 */ "ifexists ::= IF EXISTS",
109327
+ /* 109 */ "ifexists ::=",
109328
+ /* 110 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select",
109329
+ /* 111 */ "cmd ::= DROP VIEW ifexists fullname",
109330
+ /* 112 */ "cmd ::= select",
109331
+ /* 113 */ "select ::= oneselect",
109332
+ /* 114 */ "select ::= select multiselect_op oneselect",
109333
+ /* 115 */ "multiselect_op ::= UNION",
109334
+ /* 116 */ "multiselect_op ::= UNION ALL",
109335
+ /* 117 */ "multiselect_op ::= EXCEPT|INTERSECT",
109336
+ /* 118 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
109337
+ /* 119 */ "distinct ::= DISTINCT",
109338
+ /* 120 */ "distinct ::= ALL",
109339
+ /* 121 */ "distinct ::=",
109340
+ /* 122 */ "sclp ::= selcollist COMMA",
109341
+ /* 123 */ "sclp ::=",
109342
+ /* 124 */ "selcollist ::= sclp expr as",
109343
+ /* 125 */ "selcollist ::= sclp STAR",
109344
+ /* 126 */ "selcollist ::= sclp nm DOT STAR",
109345
+ /* 127 */ "as ::= AS nm",
109346
+ /* 128 */ "as ::= ids",
109347
+ /* 129 */ "as ::=",
109348
+ /* 130 */ "from ::=",
109349
+ /* 131 */ "from ::= FROM seltablist",
109350
+ /* 132 */ "stl_prefix ::= seltablist joinop",
109351
+ /* 133 */ "stl_prefix ::=",
109352
+ /* 134 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
109353
+ /* 135 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
109354
+ /* 136 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
109355
+ /* 137 */ "dbnm ::=",
109356
+ /* 138 */ "dbnm ::= DOT nm",
109357
+ /* 139 */ "fullname ::= nm dbnm",
109358
+ /* 140 */ "joinop ::= COMMA|JOIN",
109359
+ /* 141 */ "joinop ::= JOIN_KW JOIN",
109360
+ /* 142 */ "joinop ::= JOIN_KW nm JOIN",
109361
+ /* 143 */ "joinop ::= JOIN_KW nm nm JOIN",
109362
+ /* 144 */ "on_opt ::= ON expr",
109363
+ /* 145 */ "on_opt ::=",
109364
+ /* 146 */ "indexed_opt ::=",
109365
+ /* 147 */ "indexed_opt ::= INDEXED BY nm",
109366
+ /* 148 */ "indexed_opt ::= NOT INDEXED",
109367
+ /* 149 */ "using_opt ::= USING LP inscollist RP",
109368
+ /* 150 */ "using_opt ::=",
109369
+ /* 151 */ "orderby_opt ::=",
109370
+ /* 152 */ "orderby_opt ::= ORDER BY sortlist",
109371
+ /* 153 */ "sortlist ::= sortlist COMMA expr sortorder",
109372
+ /* 154 */ "sortlist ::= expr sortorder",
109373
+ /* 155 */ "sortorder ::= ASC",
109374
+ /* 156 */ "sortorder ::= DESC",
109375
+ /* 157 */ "sortorder ::=",
109376
+ /* 158 */ "groupby_opt ::=",
109377
+ /* 159 */ "groupby_opt ::= GROUP BY nexprlist",
109378
+ /* 160 */ "having_opt ::=",
109379
+ /* 161 */ "having_opt ::= HAVING expr",
109380
+ /* 162 */ "limit_opt ::=",
109381
+ /* 163 */ "limit_opt ::= LIMIT expr",
109382
+ /* 164 */ "limit_opt ::= LIMIT expr OFFSET expr",
109383
+ /* 165 */ "limit_opt ::= LIMIT expr COMMA expr",
109384
+ /* 166 */ "cmd ::= DELETE FROM fullname indexed_opt where_opt",
109385
+ /* 167 */ "where_opt ::=",
109386
+ /* 168 */ "where_opt ::= WHERE expr",
109387
+ /* 169 */ "cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt",
109388
+ /* 170 */ "setlist ::= setlist COMMA nm EQ expr",
109389
+ /* 171 */ "setlist ::= nm EQ expr",
109390
+ /* 172 */ "cmd ::= insert_cmd INTO fullname inscollist_opt valuelist",
109391
+ /* 173 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select",
109392
+ /* 174 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES",
109393
+ /* 175 */ "insert_cmd ::= INSERT orconf",
109394
+ /* 176 */ "insert_cmd ::= REPLACE",
109395
+ /* 177 */ "valuelist ::= VALUES LP nexprlist RP",
109396
+ /* 178 */ "valuelist ::= valuelist COMMA LP exprlist RP",
109397
+ /* 179 */ "inscollist_opt ::=",
109398
+ /* 180 */ "inscollist_opt ::= LP inscollist RP",
109399
+ /* 181 */ "inscollist ::= inscollist COMMA nm",
109400
+ /* 182 */ "inscollist ::= nm",
109401
+ /* 183 */ "expr ::= term",
109402
+ /* 184 */ "expr ::= LP expr RP",
109403
+ /* 185 */ "term ::= NULL",
109404
+ /* 186 */ "expr ::= id",
109405
+ /* 187 */ "expr ::= JOIN_KW",
109406
+ /* 188 */ "expr ::= nm DOT nm",
109407
+ /* 189 */ "expr ::= nm DOT nm DOT nm",
109408
+ /* 190 */ "term ::= INTEGER|FLOAT|BLOB",
109409
+ /* 191 */ "term ::= STRING",
109410
+ /* 192 */ "expr ::= REGISTER",
109411
+ /* 193 */ "expr ::= VARIABLE",
109412
+ /* 194 */ "expr ::= expr COLLATE ids",
109413
+ /* 195 */ "expr ::= CAST LP expr AS typetoken RP",
109414
+ /* 196 */ "expr ::= ID LP distinct exprlist RP",
109415
+ /* 197 */ "expr ::= ID LP STAR RP",
109416
+ /* 198 */ "term ::= CTIME_KW",
109417
+ /* 199 */ "expr ::= expr AND expr",
109418
+ /* 200 */ "expr ::= expr OR expr",
109419
+ /* 201 */ "expr ::= expr LT|GT|GE|LE expr",
109420
+ /* 202 */ "expr ::= expr EQ|NE expr",
109421
+ /* 203 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
109422
+ /* 204 */ "expr ::= expr PLUS|MINUS expr",
109423
+ /* 205 */ "expr ::= expr STAR|SLASH|REM expr",
109424
+ /* 206 */ "expr ::= expr CONCAT expr",
109425
+ /* 207 */ "likeop ::= LIKE_KW",
109426
+ /* 208 */ "likeop ::= NOT LIKE_KW",
109427
+ /* 209 */ "likeop ::= MATCH",
109428
+ /* 210 */ "likeop ::= NOT MATCH",
109429
+ /* 211 */ "expr ::= expr likeop expr",
109430
+ /* 212 */ "expr ::= expr likeop expr ESCAPE expr",
109431
+ /* 213 */ "expr ::= expr ISNULL|NOTNULL",
109432
+ /* 214 */ "expr ::= expr NOT NULL",
109433
+ /* 215 */ "expr ::= expr IS expr",
109434
+ /* 216 */ "expr ::= expr IS NOT expr",
109435
+ /* 217 */ "expr ::= NOT expr",
109436
+ /* 218 */ "expr ::= BITNOT expr",
109437
+ /* 219 */ "expr ::= MINUS expr",
109438
+ /* 220 */ "expr ::= PLUS expr",
109439
+ /* 221 */ "between_op ::= BETWEEN",
109440
+ /* 222 */ "between_op ::= NOT BETWEEN",
109441
+ /* 223 */ "expr ::= expr between_op expr AND expr",
109442
+ /* 224 */ "in_op ::= IN",
109443
+ /* 225 */ "in_op ::= NOT IN",
109444
+ /* 226 */ "expr ::= expr in_op LP exprlist RP",
109445
+ /* 227 */ "expr ::= LP select RP",
109446
+ /* 228 */ "expr ::= expr in_op LP select RP",
109447
+ /* 229 */ "expr ::= expr in_op nm dbnm",
109448
+ /* 230 */ "expr ::= EXISTS LP select RP",
109449
+ /* 231 */ "expr ::= CASE case_operand case_exprlist case_else END",
109450
+ /* 232 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
109451
+ /* 233 */ "case_exprlist ::= WHEN expr THEN expr",
109452
+ /* 234 */ "case_else ::= ELSE expr",
109453
+ /* 235 */ "case_else ::=",
109454
+ /* 236 */ "case_operand ::= expr",
109455
+ /* 237 */ "case_operand ::=",
109456
+ /* 238 */ "exprlist ::= nexprlist",
109457
+ /* 239 */ "exprlist ::=",
109458
+ /* 240 */ "nexprlist ::= nexprlist COMMA expr",
109459
+ /* 241 */ "nexprlist ::= expr",
109460
+ /* 242 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP",
109461
+ /* 243 */ "uniqueflag ::= UNIQUE",
109462
+ /* 244 */ "uniqueflag ::=",
109463
+ /* 245 */ "idxlist_opt ::=",
109464
+ /* 246 */ "idxlist_opt ::= LP idxlist RP",
109465
+ /* 247 */ "idxlist ::= idxlist COMMA nm collate sortorder",
109466
+ /* 248 */ "idxlist ::= nm collate sortorder",
109467
+ /* 249 */ "collate ::=",
109468
+ /* 250 */ "collate ::= COLLATE ids",
109469
+ /* 251 */ "cmd ::= DROP INDEX ifexists fullname",
109470
+ /* 252 */ "cmd ::= VACUUM",
109471
+ /* 253 */ "cmd ::= VACUUM nm",
109472
+ /* 254 */ "cmd ::= PRAGMA nm dbnm",
109473
+ /* 255 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
109474
+ /* 256 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
109475
+ /* 257 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
109476
+ /* 258 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
109477
+ /* 259 */ "nmnum ::= plus_num",
109478
+ /* 260 */ "nmnum ::= nm",
109479
+ /* 261 */ "nmnum ::= ON",
109480
+ /* 262 */ "nmnum ::= DELETE",
109481
+ /* 263 */ "nmnum ::= DEFAULT",
109482
+ /* 264 */ "plus_num ::= PLUS number",
109483
+ /* 265 */ "plus_num ::= number",
109484
+ /* 266 */ "minus_num ::= MINUS number",
109485
+ /* 267 */ "number ::= INTEGER|FLOAT",
109486
+ /* 268 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
109487
+ /* 269 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
109488
+ /* 270 */ "trigger_time ::= BEFORE",
109489
+ /* 271 */ "trigger_time ::= AFTER",
109490
+ /* 272 */ "trigger_time ::= INSTEAD OF",
109491
+ /* 273 */ "trigger_time ::=",
109492
+ /* 274 */ "trigger_event ::= DELETE|INSERT",
109493
+ /* 275 */ "trigger_event ::= UPDATE",
109494
+ /* 276 */ "trigger_event ::= UPDATE OF inscollist",
109495
+ /* 277 */ "foreach_clause ::=",
109496
+ /* 278 */ "foreach_clause ::= FOR EACH ROW",
109497
+ /* 279 */ "when_clause ::=",
109498
+ /* 280 */ "when_clause ::= WHEN expr",
109499
+ /* 281 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
109500
+ /* 282 */ "trigger_cmd_list ::= trigger_cmd SEMI",
109501
+ /* 283 */ "trnm ::= nm",
109502
+ /* 284 */ "trnm ::= nm DOT nm",
109503
+ /* 285 */ "tridxby ::=",
109504
+ /* 286 */ "tridxby ::= INDEXED BY nm",
109505
+ /* 287 */ "tridxby ::= NOT INDEXED",
109506
+ /* 288 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
109507
+ /* 289 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist",
109508
+ /* 290 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select",
109509
+ /* 291 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
109510
+ /* 292 */ "trigger_cmd ::= select",
109511
+ /* 293 */ "expr ::= RAISE LP IGNORE RP",
109512
+ /* 294 */ "expr ::= RAISE LP raisetype COMMA nm RP",
109513
+ /* 295 */ "raisetype ::= ROLLBACK",
109514
+ /* 296 */ "raisetype ::= ABORT",
109515
+ /* 297 */ "raisetype ::= FAIL",
109516
+ /* 298 */ "cmd ::= DROP TRIGGER ifexists fullname",
109517
+ /* 299 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
109518
+ /* 300 */ "cmd ::= DETACH database_kw_opt expr",
109519
+ /* 301 */ "key_opt ::=",
109520
+ /* 302 */ "key_opt ::= KEY expr",
109521
+ /* 303 */ "database_kw_opt ::= DATABASE",
109522
+ /* 304 */ "database_kw_opt ::=",
109523
+ /* 305 */ "cmd ::= REINDEX",
109524
+ /* 306 */ "cmd ::= REINDEX nm dbnm",
109525
+ /* 307 */ "cmd ::= ANALYZE",
109526
+ /* 308 */ "cmd ::= ANALYZE nm dbnm",
109527
+ /* 309 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
109528
+ /* 310 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column",
109529
+ /* 311 */ "add_column_fullname ::= fullname",
109530
+ /* 312 */ "kwcolumn_opt ::=",
109531
+ /* 313 */ "kwcolumn_opt ::= COLUMNKW",
109532
+ /* 314 */ "cmd ::= create_vtab",
109533
+ /* 315 */ "cmd ::= create_vtab LP vtabarglist RP",
109534
+ /* 316 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
109535
+ /* 317 */ "vtabarglist ::= vtabarg",
109536
+ /* 318 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
109537
+ /* 319 */ "vtabarg ::=",
109538
+ /* 320 */ "vtabarg ::= vtabarg vtabargtoken",
109539
+ /* 321 */ "vtabargtoken ::= ANY",
109540
+ /* 322 */ "vtabargtoken ::= lp anylist RP",
109541
+ /* 323 */ "lp ::= LP",
109542
+ /* 324 */ "anylist ::=",
109543
+ /* 325 */ "anylist ::= anylist LP anylist RP",
109544
+ /* 326 */ "anylist ::= anylist ANY",
109476109545
};
109477109546
#endif /* NDEBUG */
109478109547
109479109548
109480109549
#if YYSTACKDEPTH<=0
@@ -109555,17 +109624,17 @@
109555109624
case 194: /* oneselect */
109556109625
{
109557109626
sqlite3SelectDelete(pParse->db, (yypminor->yy159));
109558109627
}
109559109628
break;
109560
- case 174: /* term */
109561
- case 175: /* expr */
109629
+ case 173: /* term */
109630
+ case 174: /* expr */
109562109631
{
109563109632
sqlite3ExprDelete(pParse->db, (yypminor->yy342).pExpr);
109564109633
}
109565109634
break;
109566
- case 179: /* idxlist_opt */
109635
+ case 178: /* idxlist_opt */
109567109636
case 187: /* idxlist */
109568109637
case 197: /* selcollist */
109569109638
case 200: /* groupby_opt */
109570109639
case 202: /* orderby_opt */
109571109640
case 204: /* sclp */
@@ -109916,57 +109985,59 @@
109916109985
{ 167, 6 },
109917109986
{ 168, 1 },
109918109987
{ 168, 2 },
109919109988
{ 169, 1 },
109920109989
{ 169, 1 },
109921
- { 164, 3 },
109922
- { 164, 0 },
109923
- { 172, 2 },
109924
- { 172, 0 },
109925
- { 173, 2 },
109926
- { 173, 4 },
109927
- { 173, 3 },
109928
- { 173, 3 },
109929
- { 173, 2 },
109930
- { 173, 2 },
109931
- { 173, 3 },
109932
- { 173, 5 },
109933
- { 173, 2 },
109934
- { 173, 4 },
109935
- { 173, 4 },
109936
- { 173, 1 },
109937
- { 173, 2 },
109938
- { 178, 0 },
109939
- { 178, 1 },
109940
- { 180, 0 },
109941
- { 180, 2 },
109942
- { 182, 2 },
109943
- { 182, 3 },
109944
- { 182, 3 },
109945
- { 182, 3 },
109946
- { 183, 2 },
109947
- { 183, 2 },
109948
- { 183, 1 },
109949
- { 183, 1 },
109950
- { 183, 2 },
109951
- { 181, 3 },
109952
- { 181, 2 },
109953
- { 184, 0 },
109954
- { 184, 2 },
109955
- { 184, 2 },
109956
- { 159, 0 },
109957
- { 159, 2 },
109958
- { 185, 4 },
109990
+ { 164, 2 },
109991
+ { 164, 0 },
109992
+ { 172, 2 },
109993
+ { 172, 2 },
109994
+ { 172, 4 },
109995
+ { 172, 3 },
109996
+ { 172, 3 },
109997
+ { 172, 2 },
109998
+ { 172, 2 },
109999
+ { 172, 3 },
110000
+ { 172, 5 },
110001
+ { 172, 2 },
110002
+ { 172, 4 },
110003
+ { 172, 4 },
110004
+ { 172, 1 },
110005
+ { 172, 2 },
110006
+ { 177, 0 },
110007
+ { 177, 1 },
110008
+ { 179, 0 },
110009
+ { 179, 2 },
110010
+ { 181, 2 },
110011
+ { 181, 3 },
110012
+ { 181, 3 },
110013
+ { 181, 3 },
110014
+ { 182, 2 },
110015
+ { 182, 2 },
110016
+ { 182, 1 },
110017
+ { 182, 1 },
110018
+ { 182, 2 },
110019
+ { 180, 3 },
110020
+ { 180, 2 },
110021
+ { 183, 0 },
110022
+ { 183, 2 },
110023
+ { 183, 2 },
110024
+ { 159, 0 },
110025
+ { 159, 3 },
110026
+ { 184, 4 },
110027
+ { 184, 3 },
110028
+ { 184, 2 },
110029
+ { 185, 0 },
109959110030
{ 185, 2 },
109960110031
{ 186, 7 },
109961110032
{ 186, 5 },
109962110033
{ 186, 5 },
109963110034
{ 186, 10 },
109964110035
{ 188, 0 },
109965110036
{ 188, 1 },
109966
- { 176, 0 },
109967
- { 176, 3 },
110037
+ { 175, 0 },
110038
+ { 175, 3 },
109968110039
{ 189, 0 },
109969110040
{ 189, 2 },
109970110041
{ 190, 1 },
109971110042
{ 190, 1 },
109972110043
{ 190, 1 },
@@ -110016,13 +110087,13 @@
110016110087
{ 211, 0 },
110017110088
{ 202, 0 },
110018110089
{ 202, 3 },
110019110090
{ 214, 4 },
110020110091
{ 214, 2 },
110021
- { 177, 1 },
110022
- { 177, 1 },
110023
- { 177, 0 },
110092
+ { 176, 1 },
110093
+ { 176, 1 },
110094
+ { 176, 0 },
110024110095
{ 200, 0 },
110025110096
{ 200, 3 },
110026110097
{ 201, 0 },
110027110098
{ 201, 2 },
110028110099
{ 203, 0 },
@@ -110044,59 +110115,59 @@
110044110115
{ 219, 5 },
110045110116
{ 218, 0 },
110046110117
{ 218, 3 },
110047110118
{ 213, 3 },
110048110119
{ 213, 1 },
110049
- { 175, 1 },
110050
- { 175, 3 },
110051
- { 174, 1 },
110052
- { 175, 1 },
110053
- { 175, 1 },
110054
- { 175, 3 },
110055
- { 175, 5 },
110056
- { 174, 1 },
110057
- { 174, 1 },
110058
- { 175, 1 },
110059
- { 175, 1 },
110060
- { 175, 3 },
110061
- { 175, 6 },
110062
- { 175, 5 },
110063
- { 175, 4 },
110064
- { 174, 1 },
110065
- { 175, 3 },
110066
- { 175, 3 },
110067
- { 175, 3 },
110068
- { 175, 3 },
110069
- { 175, 3 },
110070
- { 175, 3 },
110071
- { 175, 3 },
110072
- { 175, 3 },
110120
+ { 174, 1 },
110121
+ { 174, 3 },
110122
+ { 173, 1 },
110123
+ { 174, 1 },
110124
+ { 174, 1 },
110125
+ { 174, 3 },
110126
+ { 174, 5 },
110127
+ { 173, 1 },
110128
+ { 173, 1 },
110129
+ { 174, 1 },
110130
+ { 174, 1 },
110131
+ { 174, 3 },
110132
+ { 174, 6 },
110133
+ { 174, 5 },
110134
+ { 174, 4 },
110135
+ { 173, 1 },
110136
+ { 174, 3 },
110137
+ { 174, 3 },
110138
+ { 174, 3 },
110139
+ { 174, 3 },
110140
+ { 174, 3 },
110141
+ { 174, 3 },
110142
+ { 174, 3 },
110143
+ { 174, 3 },
110073110144
{ 221, 1 },
110074110145
{ 221, 2 },
110075110146
{ 221, 1 },
110076110147
{ 221, 2 },
110077
- { 175, 3 },
110078
- { 175, 5 },
110079
- { 175, 2 },
110080
- { 175, 3 },
110081
- { 175, 3 },
110082
- { 175, 4 },
110083
- { 175, 2 },
110084
- { 175, 2 },
110085
- { 175, 2 },
110086
- { 175, 2 },
110148
+ { 174, 3 },
110149
+ { 174, 5 },
110150
+ { 174, 2 },
110151
+ { 174, 3 },
110152
+ { 174, 3 },
110153
+ { 174, 4 },
110154
+ { 174, 2 },
110155
+ { 174, 2 },
110156
+ { 174, 2 },
110157
+ { 174, 2 },
110087110158
{ 222, 1 },
110088110159
{ 222, 2 },
110089
- { 175, 5 },
110160
+ { 174, 5 },
110090110161
{ 223, 1 },
110091110162
{ 223, 2 },
110092
- { 175, 5 },
110093
- { 175, 3 },
110094
- { 175, 5 },
110095
- { 175, 4 },
110096
- { 175, 4 },
110097
- { 175, 5 },
110163
+ { 174, 5 },
110164
+ { 174, 3 },
110165
+ { 174, 5 },
110166
+ { 174, 4 },
110167
+ { 174, 4 },
110168
+ { 174, 5 },
110098110169
{ 225, 5 },
110099110170
{ 225, 4 },
110100110171
{ 226, 2 },
110101110172
{ 226, 0 },
110102110173
{ 224, 1 },
@@ -110106,12 +110177,12 @@
110106110177
{ 215, 3 },
110107110178
{ 215, 1 },
110108110179
{ 147, 11 },
110109110180
{ 227, 1 },
110110110181
{ 227, 0 },
110111
- { 179, 0 },
110112
- { 179, 3 },
110182
+ { 178, 0 },
110183
+ { 178, 3 },
110113110184
{ 187, 5 },
110114110185
{ 187, 3 },
110115110186
{ 228, 0 },
110116110187
{ 228, 2 },
110117110188
{ 147, 4 },
@@ -110154,12 +110225,12 @@
110154110225
{ 237, 7 },
110155110226
{ 237, 5 },
110156110227
{ 237, 5 },
110157110228
{ 237, 5 },
110158110229
{ 237, 1 },
110159
- { 175, 4 },
110160
- { 175, 6 },
110230
+ { 174, 4 },
110231
+ { 174, 6 },
110161110232
{ 191, 1 },
110162110233
{ 191, 1 },
110163110234
{ 191, 1 },
110164110235
{ 147, 4 },
110165110236
{ 147, 6 },
@@ -110263,12 +110334,12 @@
110263110334
{yygotominor.yy392 = TK_DEFERRED;}
110264110335
break;
110265110336
case 14: /* transtype ::= DEFERRED */
110266110337
case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15);
110267110338
case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16);
110268
- case 113: /* multiselect_op ::= UNION */ yytestcase(yyruleno==113);
110269
- case 115: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==115);
110339
+ case 115: /* multiselect_op ::= UNION */ yytestcase(yyruleno==115);
110340
+ case 117: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==117);
110270110341
{yygotominor.yy392 = yymsp[0].major;}
110271110342
break;
110272110343
case 17: /* cmd ::= COMMIT trans_opt */
110273110344
case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18);
110274110345
{sqlite3CommitTransaction(pParse);}
@@ -110302,30 +110373,30 @@
110302110373
yygotominor.yy0 = yymsp[0].minor.yy0;
110303110374
}
110304110375
break;
110305110376
case 28: /* ifnotexists ::= */
110306110377
case 31: /* temp ::= */ yytestcase(yyruleno==31);
110307
- case 70: /* autoinc ::= */ yytestcase(yyruleno==70);
110308
- case 83: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==83);
110309
- case 85: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==85);
110310
- case 87: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==87);
110311
- case 96: /* defer_subclause_opt ::= */ yytestcase(yyruleno==96);
110312
- case 107: /* ifexists ::= */ yytestcase(yyruleno==107);
110313
- case 118: /* distinct ::= ALL */ yytestcase(yyruleno==118);
110314
- case 119: /* distinct ::= */ yytestcase(yyruleno==119);
110315
- case 219: /* between_op ::= BETWEEN */ yytestcase(yyruleno==219);
110316
- case 222: /* in_op ::= IN */ yytestcase(yyruleno==222);
110378
+ case 69: /* autoinc ::= */ yytestcase(yyruleno==69);
110379
+ case 82: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==82);
110380
+ case 84: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==84);
110381
+ case 86: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==86);
110382
+ case 98: /* defer_subclause_opt ::= */ yytestcase(yyruleno==98);
110383
+ case 109: /* ifexists ::= */ yytestcase(yyruleno==109);
110384
+ case 120: /* distinct ::= ALL */ yytestcase(yyruleno==120);
110385
+ case 121: /* distinct ::= */ yytestcase(yyruleno==121);
110386
+ case 221: /* between_op ::= BETWEEN */ yytestcase(yyruleno==221);
110387
+ case 224: /* in_op ::= IN */ yytestcase(yyruleno==224);
110317110388
{yygotominor.yy392 = 0;}
110318110389
break;
110319110390
case 29: /* ifnotexists ::= IF NOT EXISTS */
110320110391
case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30);
110321
- case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71);
110322
- case 86: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==86);
110323
- case 106: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==106);
110324
- case 117: /* distinct ::= DISTINCT */ yytestcase(yyruleno==117);
110325
- case 220: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==220);
110326
- case 223: /* in_op ::= NOT IN */ yytestcase(yyruleno==223);
110392
+ case 70: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==70);
110393
+ case 85: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==85);
110394
+ case 108: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==108);
110395
+ case 119: /* distinct ::= DISTINCT */ yytestcase(yyruleno==119);
110396
+ case 222: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==222);
110397
+ case 225: /* in_op ::= NOT IN */ yytestcase(yyruleno==225);
110327110398
{yygotominor.yy392 = 1;}
110328110399
break;
110329110400
case 32: /* create_table_args ::= LP columnlist conslist_opt RP */
110330110401
{
110331110402
sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
@@ -110345,10 +110416,11 @@
110345110416
break;
110346110417
case 37: /* columnid ::= nm */
110347110418
{
110348110419
sqlite3AddColumn(pParse,&yymsp[0].minor.yy0);
110349110420
yygotominor.yy0 = yymsp[0].minor.yy0;
110421
+ pParse->constraintName.n = 0;
110350110422
}
110351110423
break;
110352110424
case 38: /* id ::= ID */
110353110425
case 39: /* id ::= INDEXED */ yytestcase(yyruleno==39);
110354110426
case 40: /* ids ::= ID|STRING */ yytestcase(yyruleno==40);
@@ -110355,25 +110427,25 @@
110355110427
case 41: /* nm ::= id */ yytestcase(yyruleno==41);
110356110428
case 42: /* nm ::= STRING */ yytestcase(yyruleno==42);
110357110429
case 43: /* nm ::= JOIN_KW */ yytestcase(yyruleno==43);
110358110430
case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46);
110359110431
case 49: /* typename ::= ids */ yytestcase(yyruleno==49);
110360
- case 125: /* as ::= AS nm */ yytestcase(yyruleno==125);
110361
- case 126: /* as ::= ids */ yytestcase(yyruleno==126);
110362
- case 136: /* dbnm ::= DOT nm */ yytestcase(yyruleno==136);
110363
- case 145: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==145);
110364
- case 248: /* collate ::= COLLATE ids */ yytestcase(yyruleno==248);
110365
- case 257: /* nmnum ::= plus_num */ yytestcase(yyruleno==257);
110366
- case 258: /* nmnum ::= nm */ yytestcase(yyruleno==258);
110367
- case 259: /* nmnum ::= ON */ yytestcase(yyruleno==259);
110368
- case 260: /* nmnum ::= DELETE */ yytestcase(yyruleno==260);
110369
- case 261: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==261);
110370
- case 262: /* plus_num ::= PLUS number */ yytestcase(yyruleno==262);
110371
- case 263: /* plus_num ::= number */ yytestcase(yyruleno==263);
110372
- case 264: /* minus_num ::= MINUS number */ yytestcase(yyruleno==264);
110373
- case 265: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==265);
110374
- case 281: /* trnm ::= nm */ yytestcase(yyruleno==281);
110432
+ case 127: /* as ::= AS nm */ yytestcase(yyruleno==127);
110433
+ case 128: /* as ::= ids */ yytestcase(yyruleno==128);
110434
+ case 138: /* dbnm ::= DOT nm */ yytestcase(yyruleno==138);
110435
+ case 147: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==147);
110436
+ case 250: /* collate ::= COLLATE ids */ yytestcase(yyruleno==250);
110437
+ case 259: /* nmnum ::= plus_num */ yytestcase(yyruleno==259);
110438
+ case 260: /* nmnum ::= nm */ yytestcase(yyruleno==260);
110439
+ case 261: /* nmnum ::= ON */ yytestcase(yyruleno==261);
110440
+ case 262: /* nmnum ::= DELETE */ yytestcase(yyruleno==262);
110441
+ case 263: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==263);
110442
+ case 264: /* plus_num ::= PLUS number */ yytestcase(yyruleno==264);
110443
+ case 265: /* plus_num ::= number */ yytestcase(yyruleno==265);
110444
+ case 266: /* minus_num ::= MINUS number */ yytestcase(yyruleno==266);
110445
+ case 267: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==267);
110446
+ case 283: /* trnm ::= nm */ yytestcase(yyruleno==283);
110375110447
{yygotominor.yy0 = yymsp[0].minor.yy0;}
110376110448
break;
110377110449
case 45: /* type ::= typetoken */
110378110450
{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
110379110451
break;
@@ -110390,162 +110462,163 @@
110390110462
}
110391110463
break;
110392110464
case 50: /* typename ::= typename ids */
110393110465
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
110394110466
break;
110395
- case 55: /* cname ::= CONSTRAINT nm */
110467
+ case 55: /* ccons ::= CONSTRAINT nm */
110468
+ case 93: /* cname ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
110396110469
{pParse->constraintName = yymsp[0].minor.yy0;}
110397110470
break;
110398
- case 56: /* cname ::= */
110399
-{pParse->constraintName.n = 0;}
110400
- break;
110401
- case 57: /* ccons ::= DEFAULT term */
110402
- case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59);
110471
+ case 56: /* ccons ::= DEFAULT term */
110472
+ case 58: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==58);
110403110473
{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);}
110404110474
break;
110405
- case 58: /* ccons ::= DEFAULT LP expr RP */
110475
+ case 57: /* ccons ::= DEFAULT LP expr RP */
110406110476
{sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy342);}
110407110477
break;
110408
- case 60: /* ccons ::= DEFAULT MINUS term */
110478
+ case 59: /* ccons ::= DEFAULT MINUS term */
110409110479
{
110410110480
ExprSpan v;
110411110481
v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy342.pExpr, 0, 0);
110412110482
v.zStart = yymsp[-1].minor.yy0.z;
110413110483
v.zEnd = yymsp[0].minor.yy342.zEnd;
110414110484
sqlite3AddDefaultValue(pParse,&v);
110415110485
}
110416110486
break;
110417
- case 61: /* ccons ::= DEFAULT id */
110487
+ case 60: /* ccons ::= DEFAULT id */
110418110488
{
110419110489
ExprSpan v;
110420110490
spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0);
110421110491
sqlite3AddDefaultValue(pParse,&v);
110422110492
}
110423110493
break;
110424
- case 63: /* ccons ::= NOT NULL onconf */
110494
+ case 62: /* ccons ::= NOT NULL onconf */
110425110495
{sqlite3AddNotNull(pParse, yymsp[0].minor.yy392);}
110426110496
break;
110427
- case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
110497
+ case 63: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
110428110498
{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy392,yymsp[0].minor.yy392,yymsp[-2].minor.yy392);}
110429110499
break;
110430
- case 65: /* ccons ::= UNIQUE onconf */
110500
+ case 64: /* ccons ::= UNIQUE onconf */
110431110501
{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy392,0,0,0,0);}
110432110502
break;
110433
- case 66: /* ccons ::= CHECK LP expr RP */
110503
+ case 65: /* ccons ::= CHECK LP expr RP */
110434110504
{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy342.pExpr);}
110435110505
break;
110436
- case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */
110506
+ case 66: /* ccons ::= REFERENCES nm idxlist_opt refargs */
110437110507
{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy442,yymsp[0].minor.yy392);}
110438110508
break;
110439
- case 68: /* ccons ::= defer_subclause */
110509
+ case 67: /* ccons ::= defer_subclause */
110440110510
{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy392);}
110441110511
break;
110442
- case 69: /* ccons ::= COLLATE ids */
110512
+ case 68: /* ccons ::= COLLATE ids */
110443110513
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
110444110514
break;
110445
- case 72: /* refargs ::= */
110515
+ case 71: /* refargs ::= */
110446110516
{ yygotominor.yy392 = OE_None*0x0101; /* EV: R-19803-45884 */}
110447110517
break;
110448
- case 73: /* refargs ::= refargs refarg */
110518
+ case 72: /* refargs ::= refargs refarg */
110449110519
{ yygotominor.yy392 = (yymsp[-1].minor.yy392 & ~yymsp[0].minor.yy207.mask) | yymsp[0].minor.yy207.value; }
110450110520
break;
110451
- case 74: /* refarg ::= MATCH nm */
110452
- case 75: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==75);
110521
+ case 73: /* refarg ::= MATCH nm */
110522
+ case 74: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==74);
110453110523
{ yygotominor.yy207.value = 0; yygotominor.yy207.mask = 0x000000; }
110454110524
break;
110455
- case 76: /* refarg ::= ON DELETE refact */
110525
+ case 75: /* refarg ::= ON DELETE refact */
110456110526
{ yygotominor.yy207.value = yymsp[0].minor.yy392; yygotominor.yy207.mask = 0x0000ff; }
110457110527
break;
110458
- case 77: /* refarg ::= ON UPDATE refact */
110528
+ case 76: /* refarg ::= ON UPDATE refact */
110459110529
{ yygotominor.yy207.value = yymsp[0].minor.yy392<<8; yygotominor.yy207.mask = 0x00ff00; }
110460110530
break;
110461
- case 78: /* refact ::= SET NULL */
110531
+ case 77: /* refact ::= SET NULL */
110462110532
{ yygotominor.yy392 = OE_SetNull; /* EV: R-33326-45252 */}
110463110533
break;
110464
- case 79: /* refact ::= SET DEFAULT */
110534
+ case 78: /* refact ::= SET DEFAULT */
110465110535
{ yygotominor.yy392 = OE_SetDflt; /* EV: R-33326-45252 */}
110466110536
break;
110467
- case 80: /* refact ::= CASCADE */
110537
+ case 79: /* refact ::= CASCADE */
110468110538
{ yygotominor.yy392 = OE_Cascade; /* EV: R-33326-45252 */}
110469110539
break;
110470
- case 81: /* refact ::= RESTRICT */
110540
+ case 80: /* refact ::= RESTRICT */
110471110541
{ yygotominor.yy392 = OE_Restrict; /* EV: R-33326-45252 */}
110472110542
break;
110473
- case 82: /* refact ::= NO ACTION */
110543
+ case 81: /* refact ::= NO ACTION */
110474110544
{ yygotominor.yy392 = OE_None; /* EV: R-33326-45252 */}
110475110545
break;
110476
- case 84: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
110477
- case 97: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==97);
110478
- case 99: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==99);
110479
- case 102: /* resolvetype ::= raisetype */ yytestcase(yyruleno==102);
110546
+ case 83: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
110547
+ case 99: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==99);
110548
+ case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101);
110549
+ case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
110480110550
{yygotominor.yy392 = yymsp[0].minor.yy392;}
110481110551
break;
110482
- case 88: /* conslist_opt ::= */
110552
+ case 87: /* conslist_opt ::= */
110483110553
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
110484110554
break;
110485
- case 89: /* conslist_opt ::= COMMA conslist */
110486
-{yygotominor.yy0 = yymsp[-1].minor.yy0;}
110555
+ case 88: /* conslist_opt ::= COMMA conslist cname */
110556
+{yygotominor.yy0 = yymsp[-2].minor.yy0;}
110487110557
break;
110488
- case 92: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
110558
+ case 92: /* cname ::= */
110559
+{pParse->constraintName.n = 0;}
110560
+ break;
110561
+ case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
110489110562
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2].minor.yy392,0);}
110490110563
break;
110491
- case 93: /* tcons ::= UNIQUE LP idxlist RP onconf */
110564
+ case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
110492110565
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0,0,0);}
110493110566
break;
110494
- case 94: /* tcons ::= CHECK LP expr RP onconf */
110567
+ case 96: /* tcons ::= CHECK LP expr RP onconf */
110495110568
{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy342.pExpr);}
110496110569
break;
110497
- case 95: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
110570
+ case 97: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
110498110571
{
110499110572
sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy442, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy392);
110500110573
sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy392);
110501110574
}
110502110575
break;
110503
- case 98: /* onconf ::= */
110576
+ case 100: /* onconf ::= */
110504110577
{yygotominor.yy392 = OE_Default;}
110505110578
break;
110506
- case 100: /* orconf ::= */
110579
+ case 102: /* orconf ::= */
110507110580
{yygotominor.yy258 = OE_Default;}
110508110581
break;
110509
- case 101: /* orconf ::= OR resolvetype */
110582
+ case 103: /* orconf ::= OR resolvetype */
110510110583
{yygotominor.yy258 = (u8)yymsp[0].minor.yy392;}
110511110584
break;
110512
- case 103: /* resolvetype ::= IGNORE */
110585
+ case 105: /* resolvetype ::= IGNORE */
110513110586
{yygotominor.yy392 = OE_Ignore;}
110514110587
break;
110515
- case 104: /* resolvetype ::= REPLACE */
110588
+ case 106: /* resolvetype ::= REPLACE */
110516110589
{yygotominor.yy392 = OE_Replace;}
110517110590
break;
110518
- case 105: /* cmd ::= DROP TABLE ifexists fullname */
110591
+ case 107: /* cmd ::= DROP TABLE ifexists fullname */
110519110592
{
110520110593
sqlite3DropTable(pParse, yymsp[0].minor.yy347, 0, yymsp[-1].minor.yy392);
110521110594
}
110522110595
break;
110523
- case 108: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
110596
+ case 110: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
110524110597
{
110525110598
sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy159, yymsp[-6].minor.yy392, yymsp[-4].minor.yy392);
110526110599
}
110527110600
break;
110528
- case 109: /* cmd ::= DROP VIEW ifexists fullname */
110601
+ case 111: /* cmd ::= DROP VIEW ifexists fullname */
110529110602
{
110530110603
sqlite3DropTable(pParse, yymsp[0].minor.yy347, 1, yymsp[-1].minor.yy392);
110531110604
}
110532110605
break;
110533
- case 110: /* cmd ::= select */
110606
+ case 112: /* cmd ::= select */
110534110607
{
110535110608
SelectDest dest = {SRT_Output, 0, 0, 0, 0};
110536110609
sqlite3Select(pParse, yymsp[0].minor.yy159, &dest);
110537110610
sqlite3ExplainBegin(pParse->pVdbe);
110538110611
sqlite3ExplainSelect(pParse->pVdbe, yymsp[0].minor.yy159);
110539110612
sqlite3ExplainFinish(pParse->pVdbe);
110540110613
sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy159);
110541110614
}
110542110615
break;
110543
- case 111: /* select ::= oneselect */
110616
+ case 113: /* select ::= oneselect */
110544110617
{yygotominor.yy159 = yymsp[0].minor.yy159;}
110545110618
break;
110546
- case 112: /* select ::= select multiselect_op oneselect */
110619
+ case 114: /* select ::= select multiselect_op oneselect */
110547110620
{
110548110621
if( yymsp[0].minor.yy159 ){
110549110622
yymsp[0].minor.yy159->op = (u8)yymsp[-1].minor.yy392;
110550110623
yymsp[0].minor.yy159->pPrior = yymsp[-2].minor.yy159;
110551110624
}else{
@@ -110552,83 +110625,83 @@
110552110625
sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy159);
110553110626
}
110554110627
yygotominor.yy159 = yymsp[0].minor.yy159;
110555110628
}
110556110629
break;
110557
- case 114: /* multiselect_op ::= UNION ALL */
110630
+ case 116: /* multiselect_op ::= UNION ALL */
110558110631
{yygotominor.yy392 = TK_ALL;}
110559110632
break;
110560
- case 116: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
110633
+ case 118: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
110561110634
{
110562110635
yygotominor.yy159 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy442,yymsp[-5].minor.yy347,yymsp[-4].minor.yy122,yymsp[-3].minor.yy442,yymsp[-2].minor.yy122,yymsp[-1].minor.yy442,yymsp[-7].minor.yy392,yymsp[0].minor.yy64.pLimit,yymsp[0].minor.yy64.pOffset);
110563110636
}
110564110637
break;
110565
- case 120: /* sclp ::= selcollist COMMA */
110566
- case 244: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==244);
110638
+ case 122: /* sclp ::= selcollist COMMA */
110639
+ case 246: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==246);
110567110640
{yygotominor.yy442 = yymsp[-1].minor.yy442;}
110568110641
break;
110569
- case 121: /* sclp ::= */
110570
- case 149: /* orderby_opt ::= */ yytestcase(yyruleno==149);
110571
- case 156: /* groupby_opt ::= */ yytestcase(yyruleno==156);
110572
- case 237: /* exprlist ::= */ yytestcase(yyruleno==237);
110573
- case 243: /* idxlist_opt ::= */ yytestcase(yyruleno==243);
110642
+ case 123: /* sclp ::= */
110643
+ case 151: /* orderby_opt ::= */ yytestcase(yyruleno==151);
110644
+ case 158: /* groupby_opt ::= */ yytestcase(yyruleno==158);
110645
+ case 239: /* exprlist ::= */ yytestcase(yyruleno==239);
110646
+ case 245: /* idxlist_opt ::= */ yytestcase(yyruleno==245);
110574110647
{yygotominor.yy442 = 0;}
110575110648
break;
110576
- case 122: /* selcollist ::= sclp expr as */
110649
+ case 124: /* selcollist ::= sclp expr as */
110577110650
{
110578110651
yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy442, yymsp[-1].minor.yy342.pExpr);
110579110652
if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[0].minor.yy0, 1);
110580110653
sqlite3ExprListSetSpan(pParse,yygotominor.yy442,&yymsp[-1].minor.yy342);
110581110654
}
110582110655
break;
110583
- case 123: /* selcollist ::= sclp STAR */
110656
+ case 125: /* selcollist ::= sclp STAR */
110584110657
{
110585110658
Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0);
110586110659
yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy442, p);
110587110660
}
110588110661
break;
110589
- case 124: /* selcollist ::= sclp nm DOT STAR */
110662
+ case 126: /* selcollist ::= sclp nm DOT STAR */
110590110663
{
110591110664
Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
110592110665
Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110593110666
Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
110594110667
yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442, pDot);
110595110668
}
110596110669
break;
110597
- case 127: /* as ::= */
110670
+ case 129: /* as ::= */
110598110671
{yygotominor.yy0.n = 0;}
110599110672
break;
110600
- case 128: /* from ::= */
110673
+ case 130: /* from ::= */
110601110674
{yygotominor.yy347 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy347));}
110602110675
break;
110603
- case 129: /* from ::= FROM seltablist */
110676
+ case 131: /* from ::= FROM seltablist */
110604110677
{
110605110678
yygotominor.yy347 = yymsp[0].minor.yy347;
110606110679
sqlite3SrcListShiftJoinType(yygotominor.yy347);
110607110680
}
110608110681
break;
110609
- case 130: /* stl_prefix ::= seltablist joinop */
110682
+ case 132: /* stl_prefix ::= seltablist joinop */
110610110683
{
110611110684
yygotominor.yy347 = yymsp[-1].minor.yy347;
110612110685
if( ALWAYS(yygotominor.yy347 && yygotominor.yy347->nSrc>0) ) yygotominor.yy347->a[yygotominor.yy347->nSrc-1].jointype = (u8)yymsp[0].minor.yy392;
110613110686
}
110614110687
break;
110615
- case 131: /* stl_prefix ::= */
110688
+ case 133: /* stl_prefix ::= */
110616110689
{yygotominor.yy347 = 0;}
110617110690
break;
110618
- case 132: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
110691
+ case 134: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
110619110692
{
110620110693
yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110621110694
sqlite3SrcListIndexedBy(pParse, yygotominor.yy347, &yymsp[-2].minor.yy0);
110622110695
}
110623110696
break;
110624
- case 133: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
110697
+ case 135: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
110625110698
{
110626110699
yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy159,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110627110700
}
110628110701
break;
110629
- case 134: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
110702
+ case 136: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
110630110703
{
110631110704
if( yymsp[-6].minor.yy347==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy122==0 && yymsp[0].minor.yy180==0 ){
110632110705
yygotominor.yy347 = yymsp[-4].minor.yy347;
110633110706
}else{
110634110707
Select *pSubquery;
@@ -110636,137 +110709,137 @@
110636110709
pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy347,0,0,0,0,0,0,0);
110637110710
yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110638110711
}
110639110712
}
110640110713
break;
110641
- case 135: /* dbnm ::= */
110642
- case 144: /* indexed_opt ::= */ yytestcase(yyruleno==144);
110714
+ case 137: /* dbnm ::= */
110715
+ case 146: /* indexed_opt ::= */ yytestcase(yyruleno==146);
110643110716
{yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
110644110717
break;
110645
- case 137: /* fullname ::= nm dbnm */
110718
+ case 139: /* fullname ::= nm dbnm */
110646110719
{yygotominor.yy347 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
110647110720
break;
110648
- case 138: /* joinop ::= COMMA|JOIN */
110721
+ case 140: /* joinop ::= COMMA|JOIN */
110649110722
{ yygotominor.yy392 = JT_INNER; }
110650110723
break;
110651
- case 139: /* joinop ::= JOIN_KW JOIN */
110724
+ case 141: /* joinop ::= JOIN_KW JOIN */
110652110725
{ yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
110653110726
break;
110654
- case 140: /* joinop ::= JOIN_KW nm JOIN */
110727
+ case 142: /* joinop ::= JOIN_KW nm JOIN */
110655110728
{ yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
110656110729
break;
110657
- case 141: /* joinop ::= JOIN_KW nm nm JOIN */
110730
+ case 143: /* joinop ::= JOIN_KW nm nm JOIN */
110658110731
{ yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
110659110732
break;
110660
- case 142: /* on_opt ::= ON expr */
110661
- case 159: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==159);
110662
- case 166: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==166);
110663
- case 232: /* case_else ::= ELSE expr */ yytestcase(yyruleno==232);
110664
- case 234: /* case_operand ::= expr */ yytestcase(yyruleno==234);
110733
+ case 144: /* on_opt ::= ON expr */
110734
+ case 161: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==161);
110735
+ case 168: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==168);
110736
+ case 234: /* case_else ::= ELSE expr */ yytestcase(yyruleno==234);
110737
+ case 236: /* case_operand ::= expr */ yytestcase(yyruleno==236);
110665110738
{yygotominor.yy122 = yymsp[0].minor.yy342.pExpr;}
110666110739
break;
110667
- case 143: /* on_opt ::= */
110668
- case 158: /* having_opt ::= */ yytestcase(yyruleno==158);
110669
- case 165: /* where_opt ::= */ yytestcase(yyruleno==165);
110670
- case 233: /* case_else ::= */ yytestcase(yyruleno==233);
110671
- case 235: /* case_operand ::= */ yytestcase(yyruleno==235);
110740
+ case 145: /* on_opt ::= */
110741
+ case 160: /* having_opt ::= */ yytestcase(yyruleno==160);
110742
+ case 167: /* where_opt ::= */ yytestcase(yyruleno==167);
110743
+ case 235: /* case_else ::= */ yytestcase(yyruleno==235);
110744
+ case 237: /* case_operand ::= */ yytestcase(yyruleno==237);
110672110745
{yygotominor.yy122 = 0;}
110673110746
break;
110674
- case 146: /* indexed_opt ::= NOT INDEXED */
110747
+ case 148: /* indexed_opt ::= NOT INDEXED */
110675110748
{yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
110676110749
break;
110677
- case 147: /* using_opt ::= USING LP inscollist RP */
110678
- case 178: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==178);
110750
+ case 149: /* using_opt ::= USING LP inscollist RP */
110751
+ case 180: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==180);
110679110752
{yygotominor.yy180 = yymsp[-1].minor.yy180;}
110680110753
break;
110681
- case 148: /* using_opt ::= */
110682
- case 177: /* inscollist_opt ::= */ yytestcase(yyruleno==177);
110754
+ case 150: /* using_opt ::= */
110755
+ case 179: /* inscollist_opt ::= */ yytestcase(yyruleno==179);
110683110756
{yygotominor.yy180 = 0;}
110684110757
break;
110685
- case 150: /* orderby_opt ::= ORDER BY sortlist */
110686
- case 157: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==157);
110687
- case 236: /* exprlist ::= nexprlist */ yytestcase(yyruleno==236);
110758
+ case 152: /* orderby_opt ::= ORDER BY sortlist */
110759
+ case 159: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==159);
110760
+ case 238: /* exprlist ::= nexprlist */ yytestcase(yyruleno==238);
110688110761
{yygotominor.yy442 = yymsp[0].minor.yy442;}
110689110762
break;
110690
- case 151: /* sortlist ::= sortlist COMMA expr sortorder */
110763
+ case 153: /* sortlist ::= sortlist COMMA expr sortorder */
110691110764
{
110692110765
yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442,yymsp[-1].minor.yy342.pExpr);
110693110766
if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
110694110767
}
110695110768
break;
110696
- case 152: /* sortlist ::= expr sortorder */
110769
+ case 154: /* sortlist ::= expr sortorder */
110697110770
{
110698110771
yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy342.pExpr);
110699110772
if( yygotominor.yy442 && ALWAYS(yygotominor.yy442->a) ) yygotominor.yy442->a[0].sortOrder = (u8)yymsp[0].minor.yy392;
110700110773
}
110701110774
break;
110702
- case 153: /* sortorder ::= ASC */
110703
- case 155: /* sortorder ::= */ yytestcase(yyruleno==155);
110775
+ case 155: /* sortorder ::= ASC */
110776
+ case 157: /* sortorder ::= */ yytestcase(yyruleno==157);
110704110777
{yygotominor.yy392 = SQLITE_SO_ASC;}
110705110778
break;
110706
- case 154: /* sortorder ::= DESC */
110779
+ case 156: /* sortorder ::= DESC */
110707110780
{yygotominor.yy392 = SQLITE_SO_DESC;}
110708110781
break;
110709
- case 160: /* limit_opt ::= */
110782
+ case 162: /* limit_opt ::= */
110710110783
{yygotominor.yy64.pLimit = 0; yygotominor.yy64.pOffset = 0;}
110711110784
break;
110712
- case 161: /* limit_opt ::= LIMIT expr */
110785
+ case 163: /* limit_opt ::= LIMIT expr */
110713110786
{yygotominor.yy64.pLimit = yymsp[0].minor.yy342.pExpr; yygotominor.yy64.pOffset = 0;}
110714110787
break;
110715
- case 162: /* limit_opt ::= LIMIT expr OFFSET expr */
110788
+ case 164: /* limit_opt ::= LIMIT expr OFFSET expr */
110716110789
{yygotominor.yy64.pLimit = yymsp[-2].minor.yy342.pExpr; yygotominor.yy64.pOffset = yymsp[0].minor.yy342.pExpr;}
110717110790
break;
110718
- case 163: /* limit_opt ::= LIMIT expr COMMA expr */
110791
+ case 165: /* limit_opt ::= LIMIT expr COMMA expr */
110719110792
{yygotominor.yy64.pOffset = yymsp[-2].minor.yy342.pExpr; yygotominor.yy64.pLimit = yymsp[0].minor.yy342.pExpr;}
110720110793
break;
110721
- case 164: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
110794
+ case 166: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
110722110795
{
110723110796
sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy347, &yymsp[-1].minor.yy0);
110724110797
sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy347,yymsp[0].minor.yy122);
110725110798
}
110726110799
break;
110727
- case 167: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
110800
+ case 169: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
110728110801
{
110729110802
sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy347, &yymsp[-3].minor.yy0);
110730110803
sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy442,"set list");
110731110804
sqlite3Update(pParse,yymsp[-4].minor.yy347,yymsp[-1].minor.yy442,yymsp[0].minor.yy122,yymsp[-5].minor.yy258);
110732110805
}
110733110806
break;
110734
- case 168: /* setlist ::= setlist COMMA nm EQ expr */
110807
+ case 170: /* setlist ::= setlist COMMA nm EQ expr */
110735110808
{
110736110809
yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[0].minor.yy342.pExpr);
110737110810
sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
110738110811
}
110739110812
break;
110740
- case 169: /* setlist ::= nm EQ expr */
110813
+ case 171: /* setlist ::= nm EQ expr */
110741110814
{
110742110815
yygotominor.yy442 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy342.pExpr);
110743110816
sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
110744110817
}
110745110818
break;
110746
- case 170: /* cmd ::= insert_cmd INTO fullname inscollist_opt valuelist */
110819
+ case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt valuelist */
110747110820
{sqlite3Insert(pParse, yymsp[-2].minor.yy347, yymsp[0].minor.yy487.pList, yymsp[0].minor.yy487.pSelect, yymsp[-1].minor.yy180, yymsp[-4].minor.yy258);}
110748110821
break;
110749
- case 171: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
110822
+ case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
110750110823
{sqlite3Insert(pParse, yymsp[-2].minor.yy347, 0, yymsp[0].minor.yy159, yymsp[-1].minor.yy180, yymsp[-4].minor.yy258);}
110751110824
break;
110752
- case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
110825
+ case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
110753110826
{sqlite3Insert(pParse, yymsp[-3].minor.yy347, 0, 0, yymsp[-2].minor.yy180, yymsp[-5].minor.yy258);}
110754110827
break;
110755
- case 173: /* insert_cmd ::= INSERT orconf */
110828
+ case 175: /* insert_cmd ::= INSERT orconf */
110756110829
{yygotominor.yy258 = yymsp[0].minor.yy258;}
110757110830
break;
110758
- case 174: /* insert_cmd ::= REPLACE */
110831
+ case 176: /* insert_cmd ::= REPLACE */
110759110832
{yygotominor.yy258 = OE_Replace;}
110760110833
break;
110761
- case 175: /* valuelist ::= VALUES LP nexprlist RP */
110834
+ case 177: /* valuelist ::= VALUES LP nexprlist RP */
110762110835
{
110763110836
yygotominor.yy487.pList = yymsp[-1].minor.yy442;
110764110837
yygotominor.yy487.pSelect = 0;
110765110838
}
110766110839
break;
110767
- case 176: /* valuelist ::= valuelist COMMA LP exprlist RP */
110840
+ case 178: /* valuelist ::= valuelist COMMA LP exprlist RP */
110768110841
{
110769110842
Select *pRight = sqlite3SelectNew(pParse, yymsp[-1].minor.yy442, 0, 0, 0, 0, 0, 0, 0, 0);
110770110843
if( yymsp[-4].minor.yy487.pList ){
110771110844
yymsp[-4].minor.yy487.pSelect = sqlite3SelectNew(pParse, yymsp[-4].minor.yy487.pList, 0, 0, 0, 0, 0, 0, 0, 0);
110772110845
yymsp[-4].minor.yy487.pList = 0;
@@ -110783,50 +110856,50 @@
110783110856
pRight->pPrior->selFlags |= SF_Values;
110784110857
yygotominor.yy487.pSelect = pRight;
110785110858
}
110786110859
}
110787110860
break;
110788
- case 179: /* inscollist ::= inscollist COMMA nm */
110861
+ case 181: /* inscollist ::= inscollist COMMA nm */
110789110862
{yygotominor.yy180 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy180,&yymsp[0].minor.yy0);}
110790110863
break;
110791
- case 180: /* inscollist ::= nm */
110864
+ case 182: /* inscollist ::= nm */
110792110865
{yygotominor.yy180 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
110793110866
break;
110794
- case 181: /* expr ::= term */
110867
+ case 183: /* expr ::= term */
110795110868
{yygotominor.yy342 = yymsp[0].minor.yy342;}
110796110869
break;
110797
- case 182: /* expr ::= LP expr RP */
110870
+ case 184: /* expr ::= LP expr RP */
110798110871
{yygotominor.yy342.pExpr = yymsp[-1].minor.yy342.pExpr; spanSet(&yygotominor.yy342,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);}
110799110872
break;
110800
- case 183: /* term ::= NULL */
110801
- case 188: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==188);
110802
- case 189: /* term ::= STRING */ yytestcase(yyruleno==189);
110873
+ case 185: /* term ::= NULL */
110874
+ case 190: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==190);
110875
+ case 191: /* term ::= STRING */ yytestcase(yyruleno==191);
110803110876
{spanExpr(&yygotominor.yy342, pParse, yymsp[0].major, &yymsp[0].minor.yy0);}
110804110877
break;
110805
- case 184: /* expr ::= id */
110806
- case 185: /* expr ::= JOIN_KW */ yytestcase(yyruleno==185);
110878
+ case 186: /* expr ::= id */
110879
+ case 187: /* expr ::= JOIN_KW */ yytestcase(yyruleno==187);
110807110880
{spanExpr(&yygotominor.yy342, pParse, TK_ID, &yymsp[0].minor.yy0);}
110808110881
break;
110809
- case 186: /* expr ::= nm DOT nm */
110882
+ case 188: /* expr ::= nm DOT nm */
110810110883
{
110811110884
Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110812110885
Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
110813110886
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
110814110887
spanSet(&yygotominor.yy342,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
110815110888
}
110816110889
break;
110817
- case 187: /* expr ::= nm DOT nm DOT nm */
110890
+ case 189: /* expr ::= nm DOT nm DOT nm */
110818110891
{
110819110892
Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
110820110893
Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110821110894
Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
110822110895
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
110823110896
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
110824110897
spanSet(&yygotominor.yy342,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
110825110898
}
110826110899
break;
110827
- case 190: /* expr ::= REGISTER */
110900
+ case 192: /* expr ::= REGISTER */
110828110901
{
110829110902
/* When doing a nested parse, one can include terms in an expression
110830110903
** that look like this: #1 #2 ... These terms refer to registers
110831110904
** in the virtual machine. #N is the N-th register. */
110832110905
if( pParse->nested==0 ){
@@ -110837,31 +110910,31 @@
110837110910
if( yygotominor.yy342.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yygotominor.yy342.pExpr->iTable);
110838110911
}
110839110912
spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110840110913
}
110841110914
break;
110842
- case 191: /* expr ::= VARIABLE */
110915
+ case 193: /* expr ::= VARIABLE */
110843110916
{
110844110917
spanExpr(&yygotominor.yy342, pParse, TK_VARIABLE, &yymsp[0].minor.yy0);
110845110918
sqlite3ExprAssignVarNumber(pParse, yygotominor.yy342.pExpr);
110846110919
spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110847110920
}
110848110921
break;
110849
- case 192: /* expr ::= expr COLLATE ids */
110922
+ case 194: /* expr ::= expr COLLATE ids */
110850110923
{
110851110924
yygotominor.yy342.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy342.pExpr, &yymsp[0].minor.yy0);
110852110925
yygotominor.yy342.zStart = yymsp[-2].minor.yy342.zStart;
110853110926
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
110854110927
}
110855110928
break;
110856
- case 193: /* expr ::= CAST LP expr AS typetoken RP */
110929
+ case 195: /* expr ::= CAST LP expr AS typetoken RP */
110857110930
{
110858110931
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy342.pExpr, 0, &yymsp[-1].minor.yy0);
110859110932
spanSet(&yygotominor.yy342,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
110860110933
}
110861110934
break;
110862
- case 194: /* expr ::= ID LP distinct exprlist RP */
110935
+ case 196: /* expr ::= ID LP distinct exprlist RP */
110863110936
{
110864110937
if( yymsp[-1].minor.yy442 && yymsp[-1].minor.yy442->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
110865110938
sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
110866110939
}
110867110940
yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0);
@@ -110869,17 +110942,17 @@
110869110942
if( yymsp[-2].minor.yy392 && yygotominor.yy342.pExpr ){
110870110943
yygotominor.yy342.pExpr->flags |= EP_Distinct;
110871110944
}
110872110945
}
110873110946
break;
110874
- case 195: /* expr ::= ID LP STAR RP */
110947
+ case 197: /* expr ::= ID LP STAR RP */
110875110948
{
110876110949
yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
110877110950
spanSet(&yygotominor.yy342,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
110878110951
}
110879110952
break;
110880
- case 196: /* term ::= CTIME_KW */
110953
+ case 198: /* term ::= CTIME_KW */
110881110954
{
110882110955
/* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
110883110956
** treated as functions that return constants */
110884110957
yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
110885110958
if( yygotominor.yy342.pExpr ){
@@ -110886,29 +110959,29 @@
110886110959
yygotominor.yy342.pExpr->op = TK_CONST_FUNC;
110887110960
}
110888110961
spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110889110962
}
110890110963
break;
110891
- case 197: /* expr ::= expr AND expr */
110892
- case 198: /* expr ::= expr OR expr */ yytestcase(yyruleno==198);
110893
- case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199);
110894
- case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200);
110895
- case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201);
110896
- case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202);
110897
- case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203);
110898
- case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204);
110964
+ case 199: /* expr ::= expr AND expr */
110965
+ case 200: /* expr ::= expr OR expr */ yytestcase(yyruleno==200);
110966
+ case 201: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==201);
110967
+ case 202: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==202);
110968
+ case 203: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==203);
110969
+ case 204: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==204);
110970
+ case 205: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==205);
110971
+ case 206: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==206);
110899110972
{spanBinaryExpr(&yygotominor.yy342,pParse,yymsp[-1].major,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy342);}
110900110973
break;
110901
- case 205: /* likeop ::= LIKE_KW */
110902
- case 207: /* likeop ::= MATCH */ yytestcase(yyruleno==207);
110974
+ case 207: /* likeop ::= LIKE_KW */
110975
+ case 209: /* likeop ::= MATCH */ yytestcase(yyruleno==209);
110903110976
{yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.bNot = 0;}
110904110977
break;
110905
- case 206: /* likeop ::= NOT LIKE_KW */
110906
- case 208: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==208);
110978
+ case 208: /* likeop ::= NOT LIKE_KW */
110979
+ case 210: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==210);
110907110980
{yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.bNot = 1;}
110908110981
break;
110909
- case 209: /* expr ::= expr likeop expr */
110982
+ case 211: /* expr ::= expr likeop expr */
110910110983
{
110911110984
ExprList *pList;
110912110985
pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy342.pExpr);
110913110986
pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy342.pExpr);
110914110987
yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy318.eOperator);
@@ -110916,11 +110989,11 @@
110916110989
yygotominor.yy342.zStart = yymsp[-2].minor.yy342.zStart;
110917110990
yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110918110991
if( yygotominor.yy342.pExpr ) yygotominor.yy342.pExpr->flags |= EP_InfixFunc;
110919110992
}
110920110993
break;
110921
- case 210: /* expr ::= expr likeop expr ESCAPE expr */
110994
+ case 212: /* expr ::= expr likeop expr ESCAPE expr */
110922110995
{
110923110996
ExprList *pList;
110924110997
pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
110925110998
pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy342.pExpr);
110926110999
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy342.pExpr);
@@ -110929,39 +111002,39 @@
110929111002
yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
110930111003
yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110931111004
if( yygotominor.yy342.pExpr ) yygotominor.yy342.pExpr->flags |= EP_InfixFunc;
110932111005
}
110933111006
break;
110934
- case 211: /* expr ::= expr ISNULL|NOTNULL */
111007
+ case 213: /* expr ::= expr ISNULL|NOTNULL */
110935111008
{spanUnaryPostfix(&yygotominor.yy342,pParse,yymsp[0].major,&yymsp[-1].minor.yy342,&yymsp[0].minor.yy0);}
110936111009
break;
110937
- case 212: /* expr ::= expr NOT NULL */
111010
+ case 214: /* expr ::= expr NOT NULL */
110938111011
{spanUnaryPostfix(&yygotominor.yy342,pParse,TK_NOTNULL,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy0);}
110939111012
break;
110940
- case 213: /* expr ::= expr IS expr */
111013
+ case 215: /* expr ::= expr IS expr */
110941111014
{
110942111015
spanBinaryExpr(&yygotominor.yy342,pParse,TK_IS,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy342);
110943111016
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy342.pExpr, yygotominor.yy342.pExpr, TK_ISNULL);
110944111017
}
110945111018
break;
110946
- case 214: /* expr ::= expr IS NOT expr */
111019
+ case 216: /* expr ::= expr IS NOT expr */
110947111020
{
110948111021
spanBinaryExpr(&yygotominor.yy342,pParse,TK_ISNOT,&yymsp[-3].minor.yy342,&yymsp[0].minor.yy342);
110949111022
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy342.pExpr, yygotominor.yy342.pExpr, TK_NOTNULL);
110950111023
}
110951111024
break;
110952
- case 215: /* expr ::= NOT expr */
110953
- case 216: /* expr ::= BITNOT expr */ yytestcase(yyruleno==216);
111025
+ case 217: /* expr ::= NOT expr */
111026
+ case 218: /* expr ::= BITNOT expr */ yytestcase(yyruleno==218);
110954111027
{spanUnaryPrefix(&yygotominor.yy342,pParse,yymsp[-1].major,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
110955111028
break;
110956
- case 217: /* expr ::= MINUS expr */
111029
+ case 219: /* expr ::= MINUS expr */
110957111030
{spanUnaryPrefix(&yygotominor.yy342,pParse,TK_UMINUS,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
110958111031
break;
110959
- case 218: /* expr ::= PLUS expr */
111032
+ case 220: /* expr ::= PLUS expr */
110960111033
{spanUnaryPrefix(&yygotominor.yy342,pParse,TK_UPLUS,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
110961111034
break;
110962
- case 221: /* expr ::= expr between_op expr AND expr */
111035
+ case 223: /* expr ::= expr between_op expr AND expr */
110963111036
{
110964111037
ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
110965111038
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy342.pExpr);
110966111039
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy342.pExpr, 0, 0);
110967111040
if( yygotominor.yy342.pExpr ){
@@ -110972,11 +111045,11 @@
110972111045
if( yymsp[-3].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
110973111046
yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
110974111047
yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110975111048
}
110976111049
break;
110977
- case 224: /* expr ::= expr in_op LP exprlist RP */
111050
+ case 226: /* expr ::= expr in_op LP exprlist RP */
110978111051
{
110979111052
if( yymsp[-1].minor.yy442==0 ){
110980111053
/* Expressions of the form
110981111054
**
110982111055
** expr1 IN ()
@@ -110999,11 +111072,11 @@
110999111072
}
111000111073
yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111001111074
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111002111075
}
111003111076
break;
111004
- case 225: /* expr ::= LP select RP */
111077
+ case 227: /* expr ::= LP select RP */
111005111078
{
111006111079
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
111007111080
if( yygotominor.yy342.pExpr ){
111008111081
yygotominor.yy342.pExpr->x.pSelect = yymsp[-1].minor.yy159;
111009111082
ExprSetProperty(yygotominor.yy342.pExpr, EP_xIsSelect);
@@ -111013,11 +111086,11 @@
111013111086
}
111014111087
yygotominor.yy342.zStart = yymsp[-2].minor.yy0.z;
111015111088
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111016111089
}
111017111090
break;
111018
- case 226: /* expr ::= expr in_op LP select RP */
111091
+ case 228: /* expr ::= expr in_op LP select RP */
111019111092
{
111020111093
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy342.pExpr, 0, 0);
111021111094
if( yygotominor.yy342.pExpr ){
111022111095
yygotominor.yy342.pExpr->x.pSelect = yymsp[-1].minor.yy159;
111023111096
ExprSetProperty(yygotominor.yy342.pExpr, EP_xIsSelect);
@@ -111028,11 +111101,11 @@
111028111101
if( yymsp[-3].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111029111102
yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111030111103
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111031111104
}
111032111105
break;
111033
- case 227: /* expr ::= expr in_op nm dbnm */
111106
+ case 229: /* expr ::= expr in_op nm dbnm */
111034111107
{
111035111108
SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
111036111109
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy342.pExpr, 0, 0);
111037111110
if( yygotominor.yy342.pExpr ){
111038111111
yygotominor.yy342.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
@@ -111044,11 +111117,11 @@
111044111117
if( yymsp[-2].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111045111118
yygotominor.yy342.zStart = yymsp[-3].minor.yy342.zStart;
111046111119
yygotominor.yy342.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
111047111120
}
111048111121
break;
111049
- case 228: /* expr ::= EXISTS LP select RP */
111122
+ case 230: /* expr ::= EXISTS LP select RP */
111050111123
{
111051111124
Expr *p = yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
111052111125
if( p ){
111053111126
p->x.pSelect = yymsp[-1].minor.yy159;
111054111127
ExprSetProperty(p, EP_xIsSelect);
@@ -111058,11 +111131,11 @@
111058111131
}
111059111132
yygotominor.yy342.zStart = yymsp[-3].minor.yy0.z;
111060111133
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111061111134
}
111062111135
break;
111063
- case 229: /* expr ::= CASE case_operand case_exprlist case_else END */
111136
+ case 231: /* expr ::= CASE case_operand case_exprlist case_else END */
111064111137
{
111065111138
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy122, yymsp[-1].minor.yy122, 0);
111066111139
if( yygotominor.yy342.pExpr ){
111067111140
yygotominor.yy342.pExpr->x.pList = yymsp[-2].minor.yy442;
111068111141
sqlite3ExprSetHeight(pParse, yygotominor.yy342.pExpr);
@@ -111071,43 +111144,43 @@
111071111144
}
111072111145
yygotominor.yy342.zStart = yymsp[-4].minor.yy0.z;
111073111146
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111074111147
}
111075111148
break;
111076
- case 230: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
111149
+ case 232: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
111077111150
{
111078111151
yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[-2].minor.yy342.pExpr);
111079111152
yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy342.pExpr);
111080111153
}
111081111154
break;
111082
- case 231: /* case_exprlist ::= WHEN expr THEN expr */
111155
+ case 233: /* case_exprlist ::= WHEN expr THEN expr */
111083111156
{
111084111157
yygotominor.yy442 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
111085111158
yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy342.pExpr);
111086111159
}
111087111160
break;
111088
- case 238: /* nexprlist ::= nexprlist COMMA expr */
111161
+ case 240: /* nexprlist ::= nexprlist COMMA expr */
111089111162
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy342.pExpr);}
111090111163
break;
111091
- case 239: /* nexprlist ::= expr */
111164
+ case 241: /* nexprlist ::= expr */
111092111165
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy342.pExpr);}
111093111166
break;
111094
- case 240: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
111167
+ case 242: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
111095111168
{
111096111169
sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0,
111097111170
sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy442, yymsp[-9].minor.yy392,
111098111171
&yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy392);
111099111172
}
111100111173
break;
111101
- case 241: /* uniqueflag ::= UNIQUE */
111102
- case 294: /* raisetype ::= ABORT */ yytestcase(yyruleno==294);
111174
+ case 243: /* uniqueflag ::= UNIQUE */
111175
+ case 296: /* raisetype ::= ABORT */ yytestcase(yyruleno==296);
111103111176
{yygotominor.yy392 = OE_Abort;}
111104111177
break;
111105
- case 242: /* uniqueflag ::= */
111178
+ case 244: /* uniqueflag ::= */
111106111179
{yygotominor.yy392 = OE_None;}
111107111180
break;
111108
- case 245: /* idxlist ::= idxlist COMMA nm collate sortorder */
111181
+ case 247: /* idxlist ::= idxlist COMMA nm collate sortorder */
111109111182
{
111110111183
Expr *p = 0;
111111111184
if( yymsp[-1].minor.yy0.n>0 ){
111112111185
p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
111113111186
sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
@@ -111116,11 +111189,11 @@
111116111189
sqlite3ExprListSetName(pParse,yygotominor.yy442,&yymsp[-2].minor.yy0,1);
111117111190
sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
111118111191
if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
111119111192
}
111120111193
break;
111121
- case 246: /* idxlist ::= nm collate sortorder */
111194
+ case 248: /* idxlist ::= nm collate sortorder */
111122111195
{
111123111196
Expr *p = 0;
111124111197
if( yymsp[-1].minor.yy0.n>0 ){
111125111198
p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
111126111199
sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
@@ -111129,212 +111202,212 @@
111129111202
sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
111130111203
sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
111131111204
if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
111132111205
}
111133111206
break;
111134
- case 247: /* collate ::= */
111207
+ case 249: /* collate ::= */
111135111208
{yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
111136111209
break;
111137
- case 249: /* cmd ::= DROP INDEX ifexists fullname */
111210
+ case 251: /* cmd ::= DROP INDEX ifexists fullname */
111138111211
{sqlite3DropIndex(pParse, yymsp[0].minor.yy347, yymsp[-1].minor.yy392);}
111139111212
break;
111140
- case 250: /* cmd ::= VACUUM */
111141
- case 251: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==251);
111213
+ case 252: /* cmd ::= VACUUM */
111214
+ case 253: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==253);
111142111215
{sqlite3Vacuum(pParse);}
111143111216
break;
111144
- case 252: /* cmd ::= PRAGMA nm dbnm */
111217
+ case 254: /* cmd ::= PRAGMA nm dbnm */
111145111218
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
111146111219
break;
111147
- case 253: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
111220
+ case 255: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
111148111221
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
111149111222
break;
111150
- case 254: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
111223
+ case 256: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
111151111224
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
111152111225
break;
111153
- case 255: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
111226
+ case 257: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
111154111227
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
111155111228
break;
111156
- case 256: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
111229
+ case 258: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
111157111230
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
111158111231
break;
111159
- case 266: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
111232
+ case 268: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
111160111233
{
111161111234
Token all;
111162111235
all.z = yymsp[-3].minor.yy0.z;
111163111236
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
111164111237
sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy327, &all);
111165111238
}
111166111239
break;
111167
- case 267: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
111240
+ case 269: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
111168111241
{
111169111242
sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy392, yymsp[-4].minor.yy410.a, yymsp[-4].minor.yy410.b, yymsp[-2].minor.yy347, yymsp[0].minor.yy122, yymsp[-10].minor.yy392, yymsp[-8].minor.yy392);
111170111243
yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
111171111244
}
111172111245
break;
111173
- case 268: /* trigger_time ::= BEFORE */
111174
- case 271: /* trigger_time ::= */ yytestcase(yyruleno==271);
111246
+ case 270: /* trigger_time ::= BEFORE */
111247
+ case 273: /* trigger_time ::= */ yytestcase(yyruleno==273);
111175111248
{ yygotominor.yy392 = TK_BEFORE; }
111176111249
break;
111177
- case 269: /* trigger_time ::= AFTER */
111250
+ case 271: /* trigger_time ::= AFTER */
111178111251
{ yygotominor.yy392 = TK_AFTER; }
111179111252
break;
111180
- case 270: /* trigger_time ::= INSTEAD OF */
111253
+ case 272: /* trigger_time ::= INSTEAD OF */
111181111254
{ yygotominor.yy392 = TK_INSTEAD;}
111182111255
break;
111183
- case 272: /* trigger_event ::= DELETE|INSERT */
111184
- case 273: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==273);
111256
+ case 274: /* trigger_event ::= DELETE|INSERT */
111257
+ case 275: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==275);
111185111258
{yygotominor.yy410.a = yymsp[0].major; yygotominor.yy410.b = 0;}
111186111259
break;
111187
- case 274: /* trigger_event ::= UPDATE OF inscollist */
111260
+ case 276: /* trigger_event ::= UPDATE OF inscollist */
111188111261
{yygotominor.yy410.a = TK_UPDATE; yygotominor.yy410.b = yymsp[0].minor.yy180;}
111189111262
break;
111190
- case 277: /* when_clause ::= */
111191
- case 299: /* key_opt ::= */ yytestcase(yyruleno==299);
111263
+ case 279: /* when_clause ::= */
111264
+ case 301: /* key_opt ::= */ yytestcase(yyruleno==301);
111192111265
{ yygotominor.yy122 = 0; }
111193111266
break;
111194
- case 278: /* when_clause ::= WHEN expr */
111195
- case 300: /* key_opt ::= KEY expr */ yytestcase(yyruleno==300);
111267
+ case 280: /* when_clause ::= WHEN expr */
111268
+ case 302: /* key_opt ::= KEY expr */ yytestcase(yyruleno==302);
111196111269
{ yygotominor.yy122 = yymsp[0].minor.yy342.pExpr; }
111197111270
break;
111198
- case 279: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
111271
+ case 281: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
111199111272
{
111200111273
assert( yymsp[-2].minor.yy327!=0 );
111201111274
yymsp[-2].minor.yy327->pLast->pNext = yymsp[-1].minor.yy327;
111202111275
yymsp[-2].minor.yy327->pLast = yymsp[-1].minor.yy327;
111203111276
yygotominor.yy327 = yymsp[-2].minor.yy327;
111204111277
}
111205111278
break;
111206
- case 280: /* trigger_cmd_list ::= trigger_cmd SEMI */
111279
+ case 282: /* trigger_cmd_list ::= trigger_cmd SEMI */
111207111280
{
111208111281
assert( yymsp[-1].minor.yy327!=0 );
111209111282
yymsp[-1].minor.yy327->pLast = yymsp[-1].minor.yy327;
111210111283
yygotominor.yy327 = yymsp[-1].minor.yy327;
111211111284
}
111212111285
break;
111213
- case 282: /* trnm ::= nm DOT nm */
111286
+ case 284: /* trnm ::= nm DOT nm */
111214111287
{
111215111288
yygotominor.yy0 = yymsp[0].minor.yy0;
111216111289
sqlite3ErrorMsg(pParse,
111217111290
"qualified table names are not allowed on INSERT, UPDATE, and DELETE "
111218111291
"statements within triggers");
111219111292
}
111220111293
break;
111221
- case 284: /* tridxby ::= INDEXED BY nm */
111294
+ case 286: /* tridxby ::= INDEXED BY nm */
111222111295
{
111223111296
sqlite3ErrorMsg(pParse,
111224111297
"the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
111225111298
"within triggers");
111226111299
}
111227111300
break;
111228
- case 285: /* tridxby ::= NOT INDEXED */
111301
+ case 287: /* tridxby ::= NOT INDEXED */
111229111302
{
111230111303
sqlite3ErrorMsg(pParse,
111231111304
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
111232111305
"within triggers");
111233111306
}
111234111307
break;
111235
- case 286: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
111308
+ case 288: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
111236111309
{ yygotominor.yy327 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy442, yymsp[0].minor.yy122, yymsp[-5].minor.yy258); }
111237111310
break;
111238
- case 287: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist */
111311
+ case 289: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist */
111239111312
{yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, yymsp[0].minor.yy487.pList, yymsp[0].minor.yy487.pSelect, yymsp[-4].minor.yy258);}
111240111313
break;
111241
- case 288: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
111314
+ case 290: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
111242111315
{yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, 0, yymsp[0].minor.yy159, yymsp[-4].minor.yy258);}
111243111316
break;
111244
- case 289: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
111317
+ case 291: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
111245111318
{yygotominor.yy327 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy122);}
111246111319
break;
111247
- case 290: /* trigger_cmd ::= select */
111320
+ case 292: /* trigger_cmd ::= select */
111248111321
{yygotominor.yy327 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy159); }
111249111322
break;
111250
- case 291: /* expr ::= RAISE LP IGNORE RP */
111323
+ case 293: /* expr ::= RAISE LP IGNORE RP */
111251111324
{
111252111325
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
111253111326
if( yygotominor.yy342.pExpr ){
111254111327
yygotominor.yy342.pExpr->affinity = OE_Ignore;
111255111328
}
111256111329
yygotominor.yy342.zStart = yymsp[-3].minor.yy0.z;
111257111330
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111258111331
}
111259111332
break;
111260
- case 292: /* expr ::= RAISE LP raisetype COMMA nm RP */
111333
+ case 294: /* expr ::= RAISE LP raisetype COMMA nm RP */
111261111334
{
111262111335
yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0);
111263111336
if( yygotominor.yy342.pExpr ) {
111264111337
yygotominor.yy342.pExpr->affinity = (char)yymsp[-3].minor.yy392;
111265111338
}
111266111339
yygotominor.yy342.zStart = yymsp[-5].minor.yy0.z;
111267111340
yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111268111341
}
111269111342
break;
111270
- case 293: /* raisetype ::= ROLLBACK */
111343
+ case 295: /* raisetype ::= ROLLBACK */
111271111344
{yygotominor.yy392 = OE_Rollback;}
111272111345
break;
111273
- case 295: /* raisetype ::= FAIL */
111346
+ case 297: /* raisetype ::= FAIL */
111274111347
{yygotominor.yy392 = OE_Fail;}
111275111348
break;
111276
- case 296: /* cmd ::= DROP TRIGGER ifexists fullname */
111349
+ case 298: /* cmd ::= DROP TRIGGER ifexists fullname */
111277111350
{
111278111351
sqlite3DropTrigger(pParse,yymsp[0].minor.yy347,yymsp[-1].minor.yy392);
111279111352
}
111280111353
break;
111281
- case 297: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
111354
+ case 299: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
111282111355
{
111283111356
sqlite3Attach(pParse, yymsp[-3].minor.yy342.pExpr, yymsp[-1].minor.yy342.pExpr, yymsp[0].minor.yy122);
111284111357
}
111285111358
break;
111286
- case 298: /* cmd ::= DETACH database_kw_opt expr */
111359
+ case 300: /* cmd ::= DETACH database_kw_opt expr */
111287111360
{
111288111361
sqlite3Detach(pParse, yymsp[0].minor.yy342.pExpr);
111289111362
}
111290111363
break;
111291
- case 303: /* cmd ::= REINDEX */
111364
+ case 305: /* cmd ::= REINDEX */
111292111365
{sqlite3Reindex(pParse, 0, 0);}
111293111366
break;
111294
- case 304: /* cmd ::= REINDEX nm dbnm */
111367
+ case 306: /* cmd ::= REINDEX nm dbnm */
111295111368
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
111296111369
break;
111297
- case 305: /* cmd ::= ANALYZE */
111370
+ case 307: /* cmd ::= ANALYZE */
111298111371
{sqlite3Analyze(pParse, 0, 0);}
111299111372
break;
111300
- case 306: /* cmd ::= ANALYZE nm dbnm */
111373
+ case 308: /* cmd ::= ANALYZE nm dbnm */
111301111374
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
111302111375
break;
111303
- case 307: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
111376
+ case 309: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
111304111377
{
111305111378
sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy347,&yymsp[0].minor.yy0);
111306111379
}
111307111380
break;
111308
- case 308: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */
111381
+ case 310: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */
111309111382
{
111310111383
sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0);
111311111384
}
111312111385
break;
111313
- case 309: /* add_column_fullname ::= fullname */
111386
+ case 311: /* add_column_fullname ::= fullname */
111314111387
{
111315111388
pParse->db->lookaside.bEnabled = 0;
111316111389
sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy347);
111317111390
}
111318111391
break;
111319
- case 312: /* cmd ::= create_vtab */
111392
+ case 314: /* cmd ::= create_vtab */
111320111393
{sqlite3VtabFinishParse(pParse,0);}
111321111394
break;
111322
- case 313: /* cmd ::= create_vtab LP vtabarglist RP */
111395
+ case 315: /* cmd ::= create_vtab LP vtabarglist RP */
111323111396
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
111324111397
break;
111325
- case 314: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
111398
+ case 316: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
111326111399
{
111327111400
sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy392);
111328111401
}
111329111402
break;
111330
- case 317: /* vtabarg ::= */
111403
+ case 319: /* vtabarg ::= */
111331111404
{sqlite3VtabArgInit(pParse);}
111332111405
break;
111333
- case 319: /* vtabargtoken ::= ANY */
111334
- case 320: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==320);
111335
- case 321: /* lp ::= LP */ yytestcase(yyruleno==321);
111406
+ case 321: /* vtabargtoken ::= ANY */
111407
+ case 322: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==322);
111408
+ case 323: /* lp ::= LP */ yytestcase(yyruleno==323);
111336111409
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
111337111410
break;
111338111411
default:
111339111412
/* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
111340111413
/* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
@@ -111350,28 +111423,29 @@
111350111423
/* (34) columnlist ::= columnlist COMMA column */ yytestcase(yyruleno==34);
111351111424
/* (35) columnlist ::= column */ yytestcase(yyruleno==35);
111352111425
/* (44) type ::= */ yytestcase(yyruleno==44);
111353111426
/* (51) signed ::= plus_num */ yytestcase(yyruleno==51);
111354111427
/* (52) signed ::= minus_num */ yytestcase(yyruleno==52);
111355
- /* (53) carglist ::= carglist cname ccons */ yytestcase(yyruleno==53);
111428
+ /* (53) carglist ::= carglist ccons */ yytestcase(yyruleno==53);
111356111429
/* (54) carglist ::= */ yytestcase(yyruleno==54);
111357
- /* (62) ccons ::= NULL onconf */ yytestcase(yyruleno==62);
111358
- /* (90) conslist ::= conslist COMMA cname tcons */ yytestcase(yyruleno==90);
111430
+ /* (61) ccons ::= NULL onconf */ yytestcase(yyruleno==61);
111431
+ /* (89) conslist ::= conslist COMMA cname tcons */ yytestcase(yyruleno==89);
111432
+ /* (90) conslist ::= conslist cname tcons */ yytestcase(yyruleno==90);
111359111433
/* (91) conslist ::= cname tcons */ yytestcase(yyruleno==91);
111360
- /* (275) foreach_clause ::= */ yytestcase(yyruleno==275);
111361
- /* (276) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==276);
111362
- /* (283) tridxby ::= */ yytestcase(yyruleno==283);
111363
- /* (301) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==301);
111364
- /* (302) database_kw_opt ::= */ yytestcase(yyruleno==302);
111365
- /* (310) kwcolumn_opt ::= */ yytestcase(yyruleno==310);
111366
- /* (311) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==311);
111367
- /* (315) vtabarglist ::= vtabarg */ yytestcase(yyruleno==315);
111368
- /* (316) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==316);
111369
- /* (318) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==318);
111370
- /* (322) anylist ::= */ yytestcase(yyruleno==322);
111371
- /* (323) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==323);
111372
- /* (324) anylist ::= anylist ANY */ yytestcase(yyruleno==324);
111434
+ /* (277) foreach_clause ::= */ yytestcase(yyruleno==277);
111435
+ /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278);
111436
+ /* (285) tridxby ::= */ yytestcase(yyruleno==285);
111437
+ /* (303) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==303);
111438
+ /* (304) database_kw_opt ::= */ yytestcase(yyruleno==304);
111439
+ /* (312) kwcolumn_opt ::= */ yytestcase(yyruleno==312);
111440
+ /* (313) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==313);
111441
+ /* (317) vtabarglist ::= vtabarg */ yytestcase(yyruleno==317);
111442
+ /* (318) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==318);
111443
+ /* (320) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==320);
111444
+ /* (324) anylist ::= */ yytestcase(yyruleno==324);
111445
+ /* (325) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==325);
111446
+ /* (326) anylist ::= anylist ANY */ yytestcase(yyruleno==326);
111373111447
break;
111374111448
};
111375111449
yygoto = yyRuleInfo[yyruleno].lhs;
111376111450
yysize = yyRuleInfo[yyruleno].nrhs;
111377111451
yypParser->yyidx -= yysize;
111378111452
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -657,11 +657,11 @@
657 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
658 ** [sqlite_version()] and [sqlite_source_id()].
659 */
660 #define SQLITE_VERSION "3.7.12"
661 #define SQLITE_VERSION_NUMBER 3007012
662 #define SQLITE_SOURCE_ID "2012-05-01 14:21:57 bfa61e781cb442be641486e7e55a1518e888d830"
663
664 /*
665 ** CAPI3REF: Run-Time Library Version Numbers
666 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
667 **
@@ -1006,10 +1006,11 @@
1006 #define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
1007 #define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
1008 #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
1009 #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
1010 #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
 
1011 #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
1012 #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
1013 #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
1014 #define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
1015
@@ -35172,10 +35173,39 @@
35172 zBuf[j+1] = 0;
35173
35174 OSTRACE(("TEMP FILENAME: %s\n", zBuf));
35175 return SQLITE_OK;
35176 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35177
35178 /*
35179 ** Open a file.
35180 */
35181 static int winOpen(
@@ -35278,10 +35308,15 @@
35278 /* Convert the filename to the system encoding. */
35279 zConverted = convertUtf8Filename(zUtf8Name);
35280 if( zConverted==0 ){
35281 return SQLITE_IOERR_NOMEM;
35282 }
 
 
 
 
 
35283
35284 if( isReadWrite ){
35285 dwDesiredAccess = GENERIC_READ | GENERIC_WRITE;
35286 }else{
35287 dwDesiredAccess = GENERIC_READ;
@@ -35328,24 +35363,24 @@
35328 dwDesiredAccess,
35329 dwShareMode, NULL,
35330 dwCreationDisposition,
35331 dwFlagsAndAttributes,
35332 NULL))==INVALID_HANDLE_VALUE &&
35333 retryIoerr(&cnt, &lastErrno) ){}
35334 /* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
35335 ** Since the ANSI version of these Windows API do not exist for WINCE,
35336 ** it's important to not reference them for WINCE builds.
35337 */
35338 #if SQLITE_OS_WINCE==0
35339 }else{
35340 while( (h = osCreateFileA((LPCSTR)zConverted,
35341 dwDesiredAccess,
35342 dwShareMode, NULL,
35343 dwCreationDisposition,
35344 dwFlagsAndAttributes,
35345 NULL))==INVALID_HANDLE_VALUE &&
35346 retryIoerr(&cnt, &lastErrno) ){}
 
 
35347 #endif
35348 }
35349
35350 logIoerr(cnt);
35351
@@ -35421,10 +35456,11 @@
35421 const char *zFilename, /* Name of file to delete */
35422 int syncDir /* Not used on win32 */
35423 ){
35424 int cnt = 0;
35425 int rc;
 
35426 DWORD lastErrno;
35427 void *zConverted;
35428 UNUSED_PARAMETER(pVfs);
35429 UNUSED_PARAMETER(syncDir);
35430
@@ -35432,24 +35468,54 @@
35432 zConverted = convertUtf8Filename(zFilename);
35433 if( zConverted==0 ){
35434 return SQLITE_IOERR_NOMEM;
35435 }
35436 if( isNT() ){
35437 rc = 1;
35438 while( osGetFileAttributesW(zConverted)!=INVALID_FILE_ATTRIBUTES &&
35439 (rc = osDeleteFileW(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
35440 rc = rc ? SQLITE_OK : SQLITE_ERROR;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35441 /* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
35442 ** Since the ANSI version of these Windows API do not exist for WINCE,
35443 ** it's important to not reference them for WINCE builds.
35444 */
35445 #if SQLITE_OS_WINCE==0
35446 }else{
35447 rc = 1;
35448 while( osGetFileAttributesA(zConverted)!=INVALID_FILE_ATTRIBUTES &&
35449 (rc = osDeleteFileA(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
35450 rc = rc ? SQLITE_OK : SQLITE_ERROR;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35451 #endif
35452 }
35453 if( rc ){
35454 rc = winLogError(SQLITE_IOERR_DELETE, lastErrno,
35455 "winDelete", zFilename);
@@ -108378,12 +108444,12 @@
108378 #endif
108379 #define sqlite3ParserARG_SDECL Parse *pParse;
108380 #define sqlite3ParserARG_PDECL ,Parse *pParse
108381 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
108382 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
108383 #define YYNSTATE 627
108384 #define YYNRULE 325
108385 #define YYFALLBACK 1
108386 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
108387 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
108388 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
108389
@@ -108449,478 +108515,479 @@
108449 ** shifting terminals.
108450 ** yy_reduce_ofst[] For each state, the offset into yy_action for
108451 ** shifting non-terminals after a reduce.
108452 ** yy_default[] Default action for each state.
108453 */
108454 #define YY_ACTTAB_COUNT (1561)
108455 static const YYACTIONTYPE yy_action[] = {
108456 /* 0 */ 310, 328, 573, 572, 15, 171, 185, 595, 56, 56,
108457 /* 10 */ 56, 56, 49, 54, 54, 54, 54, 53, 53, 52,
108458 /* 20 */ 52, 52, 51, 233, 52, 52, 52, 51, 233, 624,
108459 /* 30 */ 588, 582, 56, 56, 56, 56, 314, 54, 54, 54,
108460 /* 40 */ 54, 53, 53, 52, 52, 52, 51, 233, 299, 57,
108461 /* 50 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108462 /* 60 */ 56, 56, 569, 54, 54, 54, 54, 53, 53, 52,
108463 /* 70 */ 52, 52, 51, 233, 310, 595, 326, 575, 663, 65,
108464 /* 80 */ 33, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108465 /* 90 */ 51, 233, 53, 53, 52, 52, 52, 51, 233, 489,
108466 /* 100 */ 663, 440, 663, 235, 588, 582, 553, 297, 363, 59,
108467 /* 110 */ 481, 67, 360, 1, 618, 351, 618, 620, 619, 207,
108468 /* 120 */ 6, 441, 442, 57, 58, 48, 580, 579, 581, 581,
108469 /* 130 */ 55, 55, 56, 56, 56, 56, 605, 54, 54, 54,
108470 /* 140 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 223,
108471 /* 150 */ 50, 47, 146, 598, 138, 281, 385, 276, 384, 168,
108472 /* 160 */ 489, 552, 620, 619, 620, 619, 272, 214, 440, 411,
108473 /* 170 */ 551, 604, 67, 165, 7, 618, 352, 353, 588, 582,
108474 /* 180 */ 443, 569, 192, 618, 414, 617, 616, 668, 441, 336,
108475 /* 190 */ 669, 62, 618, 599, 92, 382, 346, 57, 58, 48,
108476 /* 200 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
108477 /* 210 */ 670, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108478 /* 220 */ 51, 233, 310, 465, 232, 231, 373, 132, 514, 513,
108479 /* 230 */ 617, 616, 617, 616, 398, 437, 411, 66, 280, 388,
108480 /* 240 */ 411, 595, 439, 220, 438, 620, 619, 337, 569, 279,
108481 /* 250 */ 201, 414, 588, 582, 166, 414, 546, 167, 68, 234,
108482 /* 260 */ 599, 92, 620, 619, 599, 92, 19, 570, 570, 466,
108483 /* 270 */ 564, 57, 58, 48, 580, 579, 581, 581, 55, 55,
108484 /* 280 */ 56, 56, 56, 56, 598, 54, 54, 54, 54, 53,
108485 /* 290 */ 53, 52, 52, 52, 51, 233, 310, 411, 524, 232,
108486 /* 300 */ 231, 398, 593, 547, 559, 398, 348, 202, 175, 595,
108487 /* 310 */ 399, 315, 414, 617, 616, 387, 272, 255, 347, 254,
108488 /* 320 */ 558, 599, 74, 620, 619, 45, 588, 582, 235, 466,
108489 /* 330 */ 617, 616, 511, 591, 591, 591, 557, 578, 402, 545,
108490 /* 340 */ 600, 598, 570, 570, 601, 57, 58, 48, 580, 579,
108491 /* 350 */ 581, 581, 55, 55, 56, 56, 56, 56, 550, 54,
108492 /* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
108493 /* 370 */ 310, 309, 411, 145, 566, 490, 213, 255, 347, 254,
108494 /* 380 */ 196, 195, 194, 587, 586, 531, 600, 414, 235, 174,
108495 /* 390 */ 601, 617, 616, 411, 620, 619, 599, 91, 547, 574,
108496 /* 400 */ 588, 582, 50, 47, 146, 584, 583, 471, 414, 249,
108497 /* 410 */ 565, 542, 186, 39, 304, 424, 562, 599, 16, 57,
108498 /* 420 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108499 /* 430 */ 56, 56, 585, 54, 54, 54, 54, 53, 53, 52,
108500 /* 440 */ 52, 52, 51, 233, 310, 559, 290, 530, 529, 345,
108501 /* 450 */ 533, 576, 540, 246, 170, 248, 411, 396, 411, 422,
108502 /* 460 */ 199, 558, 617, 616, 165, 563, 50, 47, 146, 181,
108503 /* 470 */ 498, 414, 166, 414, 588, 582, 269, 557, 166, 518,
108504 /* 480 */ 599, 92, 599, 92, 561, 595, 469, 36, 173, 409,
108505 /* 490 */ 517, 577, 577, 57, 58, 48, 580, 579, 581, 581,
108506 /* 500 */ 55, 55, 56, 56, 56, 56, 338, 54, 54, 54,
108507 /* 510 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 304,
108508 /* 520 */ 423, 394, 526, 318, 869, 235, 167, 180, 473, 547,
108509 /* 530 */ 503, 247, 474, 381, 378, 377, 409, 351, 577, 577,
108510 /* 540 */ 409, 560, 577, 577, 376, 383, 364, 603, 588, 582,
108511 /* 550 */ 620, 619, 502, 595, 409, 494, 577, 577, 409, 266,
108512 /* 560 */ 577, 577, 421, 943, 422, 943, 198, 57, 58, 48,
108513 /* 570 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
108514 /* 580 */ 315, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108515 /* 590 */ 51, 233, 310, 390, 421, 942, 509, 942, 556, 145,
108516 /* 600 */ 598, 391, 324, 262, 549, 264, 411, 425, 407, 573,
108517 /* 610 */ 572, 12, 197, 143, 489, 50, 47, 146, 617, 616,
108518 /* 620 */ 206, 414, 588, 582, 547, 429, 67, 212, 143, 618,
108519 /* 630 */ 599, 73, 504, 505, 207, 434, 475, 475, 366, 425,
108520 /* 640 */ 35, 57, 58, 48, 580, 579, 581, 581, 55, 55,
108521 /* 650 */ 56, 56, 56, 56, 598, 54, 54, 54, 54, 53,
108522 /* 660 */ 53, 52, 52, 52, 51, 233, 310, 260, 598, 569,
108523 /* 670 */ 268, 615, 614, 613, 171, 411, 595, 11, 411, 350,
108524 /* 680 */ 411, 32, 618, 953, 183, 419, 2, 627, 625, 330,
108525 /* 690 */ 414, 352, 552, 414, 538, 414, 588, 582, 188, 599,
108526 /* 700 */ 69, 551, 599, 94, 599, 97, 374, 544, 166, 618,
108527 /* 710 */ 334, 359, 50, 47, 146, 57, 58, 48, 580, 579,
108528 /* 720 */ 581, 581, 55, 55, 56, 56, 56, 56, 411, 54,
108529 /* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
108530 /* 740 */ 310, 411, 129, 414, 595, 22, 273, 156, 411, 566,
108531 /* 750 */ 406, 213, 599, 95, 570, 570, 414, 327, 169, 332,
108532 /* 760 */ 411, 618, 536, 414, 358, 599, 104, 483, 508, 356,
108533 /* 770 */ 588, 582, 599, 103, 484, 414, 470, 357, 166, 618,
108534 /* 780 */ 626, 2, 204, 323, 599, 105, 40, 528, 38, 57,
108535 /* 790 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108536 /* 800 */ 56, 56, 411, 54, 54, 54, 54, 53, 53, 52,
108537 /* 810 */ 52, 52, 51, 233, 310, 411, 598, 414, 411, 260,
108538 /* 820 */ 273, 273, 273, 273, 426, 305, 599, 106, 520, 519,
108539 /* 830 */ 414, 411, 142, 414, 618, 618, 618, 618, 618, 599,
108540 /* 840 */ 133, 339, 599, 134, 588, 582, 414, 21, 30, 316,
108541 /* 850 */ 147, 459, 221, 170, 527, 599, 98, 222, 322, 321,
108542 /* 860 */ 320, 141, 259, 57, 58, 48, 580, 579, 581, 581,
108543 /* 870 */ 55, 55, 56, 56, 56, 56, 411, 54, 54, 54,
108544 /* 880 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 411,
108545 /* 890 */ 260, 414, 411, 458, 200, 35, 411, 358, 211, 228,
108546 /* 900 */ 599, 102, 468, 519, 414, 618, 28, 414, 538, 501,
108547 /* 910 */ 411, 414, 618, 599, 101, 358, 599, 93, 588, 582,
108548 /* 920 */ 599, 100, 522, 618, 427, 414, 306, 271, 598, 380,
108549 /* 930 */ 618, 602, 598, 452, 599, 77, 210, 57, 58, 48,
108550 /* 940 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
108551 /* 950 */ 411, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108552 /* 960 */ 51, 233, 310, 411, 621, 414, 411, 127, 609, 270,
108553 /* 970 */ 598, 365, 51, 233, 599, 96, 625, 330, 414, 618,
108554 /* 980 */ 126, 414, 411, 618, 411, 253, 608, 599, 137, 27,
108555 /* 990 */ 599, 136, 588, 582, 375, 260, 125, 414, 164, 414,
108556 /* 1000 */ 371, 618, 279, 219, 542, 542, 599, 135, 599, 76,
108557 /* 1010 */ 618, 57, 46, 48, 580, 579, 581, 581, 55, 55,
108558 /* 1020 */ 56, 56, 56, 56, 411, 54, 54, 54, 54, 53,
108559 /* 1030 */ 53, 52, 52, 52, 51, 233, 310, 411, 450, 414,
108560 /* 1040 */ 411, 260, 542, 229, 285, 607, 479, 184, 599, 90,
108561 /* 1050 */ 367, 122, 414, 476, 121, 414, 618, 170, 411, 353,
108562 /* 1060 */ 618, 599, 89, 410, 599, 75, 588, 582, 472, 257,
108563 /* 1070 */ 538, 120, 159, 414, 618, 14, 464, 158, 618, 157,
108564 /* 1080 */ 461, 283, 599, 88, 449, 618, 58, 48, 580, 579,
108565 /* 1090 */ 581, 581, 55, 55, 56, 56, 56, 56, 411, 54,
108566 /* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
108567 /* 1110 */ 310, 411, 260, 414, 411, 592, 260, 118, 25, 400,
108568 /* 1120 */ 10, 24, 599, 87, 117, 216, 414, 618, 349, 414,
108569 /* 1130 */ 618, 618, 411, 319, 618, 599, 99, 555, 599, 86,
108570 /* 1140 */ 588, 582, 4, 260, 457, 455, 115, 414, 251, 154,
108571 /* 1150 */ 451, 108, 618, 110, 436, 448, 599, 17, 618, 218,
108572 /* 1160 */ 107, 48, 580, 579, 581, 581, 55, 55, 56, 56,
108573 /* 1170 */ 56, 56, 435, 54, 54, 54, 54, 53, 53, 52,
108574 /* 1180 */ 52, 52, 51, 233, 44, 405, 217, 3, 411, 260,
108575 /* 1190 */ 543, 415, 619, 445, 64, 149, 539, 237, 333, 329,
108576 /* 1200 */ 203, 187, 408, 414, 618, 618, 420, 44, 405, 411,
108577 /* 1210 */ 3, 618, 599, 85, 415, 619, 148, 227, 622, 179,
108578 /* 1220 */ 313, 403, 312, 612, 414, 408, 611, 124, 417, 178,
108579 /* 1230 */ 610, 564, 243, 599, 84, 537, 8, 176, 235, 416,
108580 /* 1240 */ 294, 418, 623, 30, 403, 597, 411, 236, 293, 123,
108581 /* 1250 */ 618, 41, 42, 532, 564, 205, 292, 275, 43, 413,
108582 /* 1260 */ 412, 414, 395, 593, 507, 274, 31, 397, 291, 37,
108583 /* 1270 */ 599, 83, 618, 491, 41, 42, 267, 411, 265, 618,
108584 /* 1280 */ 618, 43, 413, 412, 596, 263, 593, 60, 618, 598,
108585 /* 1290 */ 261, 618, 414, 618, 591, 591, 591, 590, 589, 13,
108586 /* 1300 */ 618, 599, 72, 554, 235, 618, 44, 405, 256, 3,
108587 /* 1310 */ 361, 172, 340, 415, 619, 230, 411, 591, 591, 591,
108588 /* 1320 */ 590, 589, 13, 618, 408, 618, 182, 411, 286, 34,
108589 /* 1330 */ 405, 414, 3, 411, 463, 411, 415, 619, 29, 331,
108590 /* 1340 */ 599, 71, 414, 403, 392, 386, 284, 408, 414, 618,
108591 /* 1350 */ 414, 599, 82, 564, 411, 462, 354, 599, 81, 599,
108592 /* 1360 */ 80, 541, 250, 535, 282, 521, 403, 534, 516, 414,
108593 /* 1370 */ 618, 618, 454, 41, 42, 411, 564, 618, 599, 70,
108594 /* 1380 */ 43, 413, 412, 444, 515, 593, 242, 618, 325, 61,
108595 /* 1390 */ 414, 277, 239, 620, 619, 238, 41, 42, 618, 599,
108596 /* 1400 */ 18, 618, 512, 43, 413, 412, 511, 618, 593, 430,
108597 /* 1410 */ 618, 411, 128, 510, 308, 226, 591, 591, 591, 590,
108598 /* 1420 */ 589, 13, 215, 289, 618, 225, 414, 302, 301, 300,
108599 /* 1430 */ 177, 298, 411, 564, 453, 599, 79, 224, 618, 591,
108600 /* 1440 */ 591, 591, 590, 589, 13, 389, 492, 414, 150, 144,
108601 /* 1450 */ 241, 393, 288, 191, 190, 193, 599, 78, 165, 240,
108602 /* 1460 */ 414, 524, 487, 307, 618, 593, 618, 618, 486, 599,
108603 /* 1470 */ 9, 163, 152, 485, 466, 372, 480, 162, 153, 370,
108604 /* 1480 */ 161, 151, 209, 478, 258, 368, 477, 26, 160, 467,
108605 /* 1490 */ 140, 362, 131, 119, 116, 456, 591, 591, 591, 155,
108606 /* 1500 */ 114, 344, 343, 113, 112, 111, 447, 109, 130, 23,
108607 /* 1510 */ 317, 433, 20, 432, 431, 428, 606, 594, 63, 189,
108608 /* 1520 */ 404, 571, 255, 342, 244, 295, 287, 278, 311, 508,
108609 /* 1530 */ 496, 497, 495, 235, 493, 568, 379, 355, 460, 245,
108610 /* 1540 */ 341, 446, 303, 567, 5, 252, 548, 208, 139, 506,
108611 /* 1550 */ 369, 401, 500, 499, 296, 525, 335, 488, 482, 523,
108612 /* 1560 */ 233,
108613 };
108614 static const YYCODETYPE yy_lookahead[] = {
108615 /* 0 */ 19, 169, 170, 171, 22, 24, 24, 26, 77, 78,
108616 /* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
108617 /* 20 */ 89, 90, 91, 92, 88, 89, 90, 91, 92, 1,
108618 /* 30 */ 49, 50, 77, 78, 79, 80, 155, 82, 83, 84,
108619 /* 40 */ 85, 86, 87, 88, 89, 90, 91, 92, 15, 68,
108620 /* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108621 /* 60 */ 79, 80, 230, 82, 83, 84, 85, 86, 87, 88,
108622 /* 70 */ 89, 90, 91, 92, 19, 94, 19, 23, 1, 25,
108623 /* 80 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108624 /* 90 */ 91, 92, 86, 87, 88, 89, 90, 91, 92, 150,
108625 /* 100 */ 23, 150, 25, 116, 49, 50, 177, 158, 227, 54,
108626 /* 110 */ 161, 162, 231, 22, 165, 128, 165, 26, 27, 160,
108627 /* 120 */ 22, 170, 171, 68, 69, 70, 71, 72, 73, 74,
108628 /* 130 */ 75, 76, 77, 78, 79, 80, 23, 82, 83, 84,
108629 /* 140 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 92,
108630 /* 150 */ 221, 222, 223, 194, 97, 98, 99, 100, 101, 102,
108631 /* 160 */ 150, 32, 26, 27, 26, 27, 109, 22, 150, 150,
108632 /* 170 */ 41, 161, 162, 96, 76, 165, 217, 150, 49, 50,
108633 /* 180 */ 229, 230, 172, 165, 165, 94, 95, 118, 170, 171,
108634 /* 190 */ 118, 232, 165, 174, 175, 185, 237, 68, 69, 70,
108635 /* 200 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108636 /* 210 */ 118, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108637 /* 220 */ 91, 92, 19, 11, 86, 87, 19, 24, 7, 8,
108638 /* 230 */ 94, 95, 94, 95, 215, 97, 150, 22, 98, 220,
108639 /* 240 */ 150, 26, 104, 216, 106, 26, 27, 229, 230, 109,
108640 /* 250 */ 160, 165, 49, 50, 25, 165, 120, 50, 22, 197,
108641 /* 260 */ 174, 175, 26, 27, 174, 175, 204, 129, 130, 57,
108642 /* 270 */ 66, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108643 /* 280 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86,
108644 /* 290 */ 87, 88, 89, 90, 91, 92, 19, 150, 94, 86,
108645 /* 300 */ 87, 215, 98, 25, 12, 215, 220, 160, 118, 94,
108646 /* 310 */ 220, 104, 165, 94, 95, 88, 109, 105, 106, 107,
108647 /* 320 */ 28, 174, 175, 26, 27, 22, 49, 50, 116, 57,
108648 /* 330 */ 94, 95, 103, 129, 130, 131, 44, 113, 46, 120,
108649 /* 340 */ 113, 194, 129, 130, 117, 68, 69, 70, 71, 72,
108650 /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 177, 82,
108651 /* 360 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108652 /* 370 */ 19, 163, 150, 95, 166, 167, 168, 105, 106, 107,
108653 /* 380 */ 105, 106, 107, 49, 50, 88, 113, 165, 116, 118,
108654 /* 390 */ 117, 94, 95, 150, 26, 27, 174, 175, 120, 23,
108655 /* 400 */ 49, 50, 221, 222, 223, 71, 72, 21, 165, 16,
108656 /* 410 */ 23, 166, 22, 136, 22, 23, 11, 174, 175, 68,
108657 /* 420 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108658 /* 430 */ 79, 80, 98, 82, 83, 84, 85, 86, 87, 88,
108659 /* 440 */ 89, 90, 91, 92, 19, 12, 224, 23, 23, 63,
108660 /* 450 */ 205, 23, 23, 60, 25, 62, 150, 214, 150, 67,
108661 /* 460 */ 22, 28, 94, 95, 96, 23, 221, 222, 223, 23,
108662 /* 470 */ 23, 165, 25, 165, 49, 50, 23, 44, 25, 46,
108663 /* 480 */ 174, 175, 174, 175, 23, 26, 100, 136, 25, 112,
108664 /* 490 */ 57, 114, 115, 68, 69, 70, 71, 72, 73, 74,
108665 /* 500 */ 75, 76, 77, 78, 79, 80, 97, 82, 83, 84,
108666 /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 22,
108667 /* 520 */ 23, 215, 23, 215, 138, 116, 50, 23, 30, 25,
108668 /* 530 */ 36, 138, 34, 99, 100, 101, 112, 128, 114, 115,
108669 /* 540 */ 112, 23, 114, 115, 110, 51, 48, 173, 49, 50,
108670 /* 550 */ 26, 27, 58, 94, 112, 181, 114, 115, 112, 16,
108671 /* 560 */ 114, 115, 22, 23, 67, 25, 160, 68, 69, 70,
108672 /* 570 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108673 /* 580 */ 104, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108674 /* 590 */ 91, 92, 19, 19, 22, 23, 23, 25, 23, 95,
108675 /* 600 */ 194, 27, 108, 60, 25, 62, 150, 67, 169, 170,
108676 /* 610 */ 171, 35, 206, 207, 150, 221, 222, 223, 94, 95,
108677 /* 620 */ 160, 165, 49, 50, 120, 161, 162, 206, 207, 165,
108678 /* 630 */ 174, 175, 97, 98, 160, 241, 105, 106, 107, 67,
108679 /* 640 */ 25, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108680 /* 650 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86,
108681 /* 660 */ 87, 88, 89, 90, 91, 92, 19, 150, 194, 230,
108682 /* 670 */ 23, 7, 8, 9, 24, 150, 26, 35, 150, 219,
108683 /* 680 */ 150, 25, 165, 142, 143, 144, 145, 0, 1, 2,
108684 /* 690 */ 165, 217, 32, 165, 150, 165, 49, 50, 119, 174,
108685 /* 700 */ 175, 41, 174, 175, 174, 175, 23, 120, 25, 165,
108686 /* 710 */ 193, 237, 221, 222, 223, 68, 69, 70, 71, 72,
108687 /* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
108688 /* 730 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108689 /* 740 */ 19, 150, 22, 165, 94, 24, 150, 25, 150, 166,
108690 /* 750 */ 167, 168, 174, 175, 129, 130, 165, 213, 35, 242,
108691 /* 760 */ 150, 165, 27, 165, 150, 174, 175, 181, 182, 19,
108692 /* 770 */ 49, 50, 174, 175, 188, 165, 23, 27, 25, 165,
108693 /* 780 */ 144, 145, 160, 187, 174, 175, 135, 23, 137, 68,
108694 /* 790 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108695 /* 800 */ 79, 80, 150, 82, 83, 84, 85, 86, 87, 88,
108696 /* 810 */ 89, 90, 91, 92, 19, 150, 194, 165, 150, 150,
108697 /* 820 */ 150, 150, 150, 150, 247, 248, 174, 175, 190, 191,
108698 /* 830 */ 165, 150, 118, 165, 165, 165, 165, 165, 165, 174,
108699 /* 840 */ 175, 219, 174, 175, 49, 50, 165, 52, 126, 245,
108700 /* 850 */ 246, 23, 238, 25, 23, 174, 175, 187, 187, 187,
108701 /* 860 */ 187, 39, 193, 68, 69, 70, 71, 72, 73, 74,
108702 /* 870 */ 75, 76, 77, 78, 79, 80, 150, 82, 83, 84,
108703 /* 880 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 150,
108704 /* 890 */ 150, 165, 150, 23, 160, 25, 150, 150, 160, 52,
108705 /* 900 */ 174, 175, 190, 191, 165, 165, 22, 165, 150, 29,
108706 /* 910 */ 150, 165, 165, 174, 175, 150, 174, 175, 49, 50,
108707 /* 920 */ 174, 175, 165, 165, 23, 165, 25, 25, 194, 52,
108708 /* 930 */ 165, 174, 194, 193, 174, 175, 160, 68, 69, 70,
108709 /* 940 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108710 /* 950 */ 150, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108711 /* 960 */ 91, 92, 19, 150, 150, 165, 150, 22, 150, 23,
108712 /* 970 */ 194, 213, 91, 92, 174, 175, 1, 2, 165, 165,
108713 /* 980 */ 22, 165, 150, 165, 150, 238, 150, 174, 175, 22,
108714 /* 990 */ 174, 175, 49, 50, 52, 150, 22, 165, 102, 165,
108715 /* 1000 */ 19, 165, 109, 238, 166, 166, 174, 175, 174, 175,
108716 /* 1010 */ 165, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108717 /* 1020 */ 77, 78, 79, 80, 150, 82, 83, 84, 85, 86,
108718 /* 1030 */ 87, 88, 89, 90, 91, 92, 19, 150, 193, 165,
108719 /* 1040 */ 150, 150, 166, 205, 205, 150, 20, 24, 174, 175,
108720 /* 1050 */ 43, 104, 165, 59, 53, 165, 165, 25, 150, 150,
108721 /* 1060 */ 165, 174, 175, 150, 174, 175, 49, 50, 53, 138,
108722 /* 1070 */ 150, 22, 104, 165, 165, 5, 1, 118, 165, 35,
108723 /* 1080 */ 27, 205, 174, 175, 193, 165, 69, 70, 71, 72,
108724 /* 1090 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
108725 /* 1100 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108726 /* 1110 */ 19, 150, 150, 165, 150, 150, 150, 108, 76, 150,
108727 /* 1120 */ 22, 76, 174, 175, 127, 216, 165, 165, 25, 165,
108728 /* 1130 */ 165, 165, 150, 213, 165, 174, 175, 150, 174, 175,
108729 /* 1140 */ 49, 50, 22, 150, 23, 1, 119, 165, 16, 121,
108730 /* 1150 */ 20, 108, 165, 119, 23, 193, 174, 175, 165, 193,
108731 /* 1160 */ 127, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108732 /* 1170 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88,
108733 /* 1180 */ 89, 90, 91, 92, 19, 20, 193, 22, 150, 150,
108734 /* 1190 */ 150, 26, 27, 128, 16, 15, 150, 140, 65, 3,
108735 /* 1200 */ 164, 22, 37, 165, 165, 165, 4, 19, 20, 150,
108736 /* 1210 */ 22, 165, 174, 175, 26, 27, 246, 180, 149, 6,
108737 /* 1220 */ 249, 56, 249, 149, 165, 37, 149, 180, 149, 151,
108738 /* 1230 */ 13, 66, 193, 174, 175, 150, 25, 151, 116, 159,
108739 /* 1240 */ 199, 146, 147, 126, 56, 194, 150, 152, 200, 154,
108740 /* 1250 */ 165, 86, 87, 88, 66, 160, 201, 150, 93, 94,
108741 /* 1260 */ 95, 165, 123, 98, 150, 150, 124, 122, 202, 135,
108742 /* 1270 */ 174, 175, 165, 150, 86, 87, 150, 150, 150, 165,
108743 /* 1280 */ 165, 93, 94, 95, 203, 150, 98, 125, 165, 194,
108744 /* 1290 */ 150, 165, 165, 165, 129, 130, 131, 132, 133, 134,
108745 /* 1300 */ 165, 174, 175, 157, 116, 165, 19, 20, 150, 22,
108746 /* 1310 */ 150, 118, 217, 26, 27, 225, 150, 129, 130, 131,
108747 /* 1320 */ 132, 133, 134, 165, 37, 165, 157, 150, 210, 19,
108748 /* 1330 */ 20, 165, 22, 150, 150, 150, 26, 27, 104, 244,
108749 /* 1340 */ 174, 175, 165, 56, 121, 104, 210, 37, 165, 165,
108750 /* 1350 */ 165, 174, 175, 66, 150, 150, 150, 174, 175, 174,
108751 /* 1360 */ 175, 211, 150, 211, 210, 176, 56, 211, 176, 165,
108752 /* 1370 */ 165, 165, 150, 86, 87, 150, 66, 165, 174, 175,
108753 /* 1380 */ 93, 94, 95, 150, 184, 98, 150, 165, 47, 22,
108754 /* 1390 */ 165, 176, 150, 26, 27, 150, 86, 87, 165, 174,
108755 /* 1400 */ 175, 165, 178, 93, 94, 95, 103, 165, 98, 150,
108756 /* 1410 */ 165, 150, 22, 176, 179, 228, 129, 130, 131, 132,
108757 /* 1420 */ 133, 134, 5, 150, 165, 92, 165, 10, 11, 12,
108758 /* 1430 */ 13, 14, 150, 66, 17, 174, 175, 228, 165, 129,
108759 /* 1440 */ 130, 131, 132, 133, 134, 150, 184, 165, 31, 150,
108760 /* 1450 */ 33, 150, 150, 86, 87, 172, 174, 175, 96, 42,
108761 /* 1460 */ 165, 94, 176, 179, 165, 98, 165, 165, 176, 174,
108762 /* 1470 */ 175, 156, 55, 176, 57, 18, 157, 156, 61, 157,
108763 /* 1480 */ 156, 64, 157, 157, 235, 45, 236, 135, 156, 189,
108764 /* 1490 */ 68, 157, 218, 189, 22, 199, 129, 130, 131, 156,
108765 /* 1500 */ 192, 157, 18, 192, 192, 192, 199, 189, 218, 240,
108766 /* 1510 */ 157, 40, 240, 157, 157, 38, 153, 166, 243, 196,
108767 /* 1520 */ 226, 230, 105, 106, 107, 198, 209, 177, 111, 182,
108768 /* 1530 */ 166, 177, 177, 116, 166, 230, 178, 239, 199, 209,
108769 /* 1540 */ 209, 199, 148, 166, 196, 239, 208, 233, 172, 183,
108770 /* 1550 */ 234, 191, 183, 183, 195, 174, 139, 186, 186, 174,
108771 /* 1560 */ 92,
108772 };
108773 #define YY_SHIFT_USE_DFLT (-70)
108774 #define YY_SHIFT_COUNT (418)
108775 #define YY_SHIFT_MIN (-69)
108776 #define YY_SHIFT_MAX (1484)
108777 static const short yy_shift_ofst[] = {
108778 /* 0 */ 975, 1188, 1417, 1188, 1287, 1287, 138, 138, 368, -19,
108779 /* 10 */ 1287, 1287, 1287, 1287, 272, 524, 129, 129, 795, 1165,
108780 /* 20 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108781 /* 30 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108782 /* 40 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287,
108783 /* 50 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108784 /* 60 */ 1287, 1287, 212, 524, 524, 213, 213, 459, 1122, 55,
108785 /* 70 */ 721, 647, 573, 499, 425, 351, 277, 203, 869, 869,
108786 /* 80 */ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869,
108787 /* 90 */ 869, 869, 869, 943, 869, 1017, 1091, 1091, -69, -45,
108788 /* 100 */ -45, -45, -45, -45, -1, 6, -64, 524, 524, 524,
108789 /* 110 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108790 /* 120 */ 524, 524, 524, 386, 207, 524, 524, 524, 524, 524,
108791 /* 130 */ 409, -13, 459, 881, 1468, -70, -70, -70, 1367, 57,
108792 /* 140 */ 433, 433, 297, 236, 219, 136, 91, 572, 540, 524,
108793 /* 150 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108794 /* 160 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108795 /* 170 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
108796 /* 180 */ 650, 650, 650, 687, 1122, 1122, 1122, -70, -70, -70,
108797 /* 190 */ 204, 204, 434, 434, 494, 494, 494, 504, 446, 292,
108798 /* 200 */ 442, 428, 424, 77, 377, 377, 377, 377, 531, 498,
108799 /* 210 */ 377, 377, 278, 215, 227, 664, 722, 574, 574, 750,
108800 /* 220 */ 722, 750, 229, 459, 660, 459, 660, 476, 660, 574,
108801 /* 230 */ 651, 625, 625, 459, 579, 273, -18, 1477, 1193, 1193,
108802 /* 240 */ 1471, 1471, 1193, 1472, 1422, 1117, 1484, 1484, 1484, 1484,
108803 /* 250 */ 1193, 1457, 1117, 1472, 1422, 1422, 1193, 1457, 1352, 1440,
108804 /* 260 */ 1193, 1193, 1457, 1193, 1457, 1193, 1457, 1390, 1241, 1241,
108805 /* 270 */ 1241, 1362, 1341, 1333, 1333, 1390, 1241, 1303, 1241, 1341,
108806 /* 280 */ 1241, 1241, 1223, 1234, 1223, 1234, 1223, 1234, 1193, 1193,
108807 /* 290 */ 1134, 1162, 1145, 1142, 1139, 1117, 1122, 1211, 1217, 1217,
108808 /* 300 */ 1213, 1213, 1213, 1213, -70, -70, -70, -70, -70, -70,
108809 /* 310 */ 334, 393, 497, 392, 543, 275, 901, 98, 870, 828,
108810 /* 320 */ 753, 683, 453, 447, 535, 221, 140, 429, 54, 1202,
108811 /* 330 */ 1196, 1179, 1057, 1180, 1133, 1178, 1149, 1131, 1065, 1103,
108812 /* 340 */ 1033, 1043, 1034, 1130, 1028, 1132, 1144, 1027, 1121, 1120,
108813 /* 350 */ 1103, 1098, 997, 1045, 1042, 1009, 1053, 1044, 959, 1075,
108814 /* 360 */ 1070, 1049, 968, 931, 1015, 1032, 1001, 994, 1007, 947,
108815 /* 370 */ 1023, 1026, 981, 893, 896, 974, 942, 967, 958, 946,
108816 /* 380 */ 945, 877, 902, 880, 884, 847, 822, 831, 764, 714,
108817 /* 390 */ 735, 723, 720, 587, 615, 642, 656, 576, 615, 575,
108818 /* 400 */ 518, 463, 461, 438, 405, 390, 387, 376, 303, 224,
108819 /* 410 */ 271, 190, 92, 72, 69, 145, 113, 33, 28,
108820 };
108821 #define YY_REDUCE_USE_DFLT (-169)
108822 #define YY_REDUCE_COUNT (309)
108823 #define YY_REDUCE_MIN (-168)
108824 #define YY_REDUCE_MAX (1394)
108825 static const short yy_reduce_ofst[] = {
108826 /* 0 */ 541, 90, 1095, 147, 86, 19, 18, -49, 10, 245,
108827 /* 10 */ 308, 306, 243, 222, -41, -51, 181, -71, 394, 1295,
108828 /* 20 */ 1282, 1261, 1225, 1204, 1185, 1183, 1177, 1166, 1127, 1096,
108829 /* 30 */ 1059, 1038, 982, 964, 961, 948, 908, 890, 887, 874,
108830 /* 40 */ 834, 832, 816, 813, 800, 760, 746, 742, 739, 726,
108831 /* 50 */ 681, 668, 665, 652, 610, 598, 591, 578, 530, 528,
108832 /* 60 */ 525, 456, 474, 464, 517, 439, -168, 208, 406, 491,
108833 /* 70 */ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
108834 /* 80 */ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
108835 /* 90 */ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
108836 /* 100 */ 491, 491, 491, 491, 491, 491, 491, 1039, 909, 993,
108837 /* 110 */ 966, 962, 891, 845, 740, 765, 920, 747, 27, 614,
108838 /* 120 */ 673, 758, 669, -119, 586, 672, 671, 670, 596, 544,
108839 /* 130 */ 622, 460, 583, 491, 491, 491, 491, 491, 757, 374,
108840 /* 140 */ 712, 638, 913, 1302, 1301, 1299, 1273, 577, 577, 1259,
108841 /* 150 */ 1245, 1242, 1236, 1233, 1222, 1212, 1206, 1205, 1184, 1160,
108842 /* 160 */ 1158, 1140, 1135, 1128, 1126, 1123, 1115, 1114, 1107, 1085,
108843 /* 170 */ 1046, 1040, 987, 969, 965, 913, 895, 836, 818, 814,
108844 /* 180 */ 876, 839, 838, 636, 776, 738, 734, 604, 421, 62,
108845 /* 190 */ 1385, 1381, 1372, 1371, 1370, 1369, 1366, 1338, 1359, 1360,
108846 /* 200 */ 1359, 1359, 1359, 1376, 1359, 1359, 1359, 1359, 1316, 1314,
108847 /* 210 */ 1359, 1359, 1338, 1377, 1348, 1394, 1342, 1331, 1330, 1306,
108848 /* 220 */ 1339, 1298, 1358, 1368, 1355, 1364, 1354, 1347, 1350, 1317,
108849 /* 230 */ 1294, 1305, 1291, 1351, 1327, 1323, 1363, 1275, 1357, 1356,
108850 /* 240 */ 1272, 1269, 1353, 1290, 1318, 1307, 1313, 1312, 1311, 1308,
108851 /* 250 */ 1344, 1343, 1296, 1274, 1304, 1300, 1334, 1332, 1250, 1249,
108852 /* 260 */ 1326, 1325, 1324, 1322, 1321, 1319, 1315, 1284, 1297, 1292,
108853 /* 270 */ 1286, 1283, 1262, 1209, 1187, 1235, 1237, 1224, 1215, 1200,
108854 /* 280 */ 1192, 1189, 1156, 1154, 1152, 1136, 1150, 1118, 1169, 1146,
108855 /* 290 */ 1090, 1081, 1066, 1055, 1048, 1041, 1051, 1080, 1086, 1078,
108856 /* 300 */ 1079, 1077, 1074, 1069, 973, 971, 970, 1047, 1037, 1036,
 
108857 };
108858 static const YYACTIONTYPE yy_default[] = {
108859 /* 0 */ 632, 864, 952, 952, 864, 864, 952, 952, 683, 754,
108860 /* 10 */ 952, 952, 952, 862, 952, 952, 782, 782, 926, 952,
108861 /* 20 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108862 /* 30 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108863 /* 40 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108864 /* 50 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108865 /* 60 */ 952, 952, 952, 952, 952, 952, 952, 671, 758, 788,
108866 /* 70 */ 952, 952, 952, 952, 952, 952, 952, 952, 925, 927,
108867 /* 80 */ 796, 795, 905, 769, 793, 786, 790, 865, 858, 859,
108868 /* 90 */ 857, 861, 866, 952, 789, 825, 842, 824, 836, 841,
108869 /* 100 */ 848, 840, 837, 827, 826, 828, 829, 952, 952, 952,
108870 /* 110 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108871 /* 120 */ 952, 952, 952, 658, 723, 952, 952, 952, 952, 952,
108872 /* 130 */ 952, 952, 952, 830, 831, 845, 844, 843, 952, 952,
108873 /* 140 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108874 /* 150 */ 932, 930, 952, 877, 952, 952, 952, 952, 952, 952,
108875 /* 160 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108876 /* 170 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 638,
108877 /* 180 */ 754, 754, 754, 632, 952, 952, 952, 944, 758, 748,
108878 /* 190 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108879 /* 200 */ 952, 952, 952, 683, 798, 737, 915, 917, 952, 898,
108880 /* 210 */ 735, 660, 756, 673, 746, 640, 792, 771, 771, 910,
108881 /* 220 */ 792, 910, 697, 952, 782, 952, 782, 694, 782, 771,
108882 /* 230 */ 860, 952, 952, 952, 755, 746, 952, 937, 762, 762,
108883 /* 240 */ 929, 929, 762, 804, 727, 792, 734, 734, 734, 734,
108884 /* 250 */ 762, 655, 792, 804, 727, 727, 762, 655, 904, 902,
108885 /* 260 */ 762, 762, 655, 762, 655, 762, 655, 870, 725, 725,
108886 /* 270 */ 725, 683, 712, 874, 874, 870, 725, 697, 725, 712,
108887 /* 280 */ 725, 725, 775, 770, 775, 770, 775, 770, 762, 762,
108888 /* 290 */ 952, 787, 776, 785, 783, 792, 952, 715, 648, 648,
108889 /* 300 */ 637, 637, 637, 637, 949, 949, 944, 699, 699, 681,
108890 /* 310 */ 952, 952, 952, 952, 952, 952, 952, 879, 952, 952,
108891 /* 320 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108892 /* 330 */ 633, 939, 952, 952, 936, 952, 952, 952, 952, 797,
108893 /* 340 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108894 /* 350 */ 914, 952, 952, 952, 952, 952, 952, 952, 908, 952,
108895 /* 360 */ 952, 952, 952, 952, 952, 901, 900, 952, 952, 952,
108896 /* 370 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
108897 /* 380 */ 952, 952, 716, 952, 952, 952, 952, 952, 952, 952,
108898 /* 390 */ 952, 952, 952, 952, 784, 952, 777, 952, 863, 952,
108899 /* 400 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 740,
108900 /* 410 */ 813, 952, 812, 816, 811, 665, 952, 646, 952, 629,
108901 /* 420 */ 634, 948, 951, 950, 947, 946, 945, 940, 938, 935,
108902 /* 430 */ 934, 933, 931, 928, 924, 883, 881, 888, 887, 886,
108903 /* 440 */ 885, 884, 882, 880, 878, 799, 794, 791, 923, 876,
108904 /* 450 */ 736, 733, 732, 654, 941, 907, 916, 803, 802, 805,
108905 /* 460 */ 913, 912, 911, 909, 906, 893, 801, 800, 728, 868,
108906 /* 470 */ 867, 657, 897, 896, 895, 899, 903, 894, 764, 656,
108907 /* 480 */ 653, 662, 718, 724, 722, 721, 720, 719, 717, 664,
108908 /* 490 */ 672, 682, 711, 696, 695, 873, 875, 872, 871, 704,
108909 /* 500 */ 703, 709, 708, 707, 706, 705, 702, 701, 700, 693,
108910 /* 510 */ 692, 698, 691, 714, 713, 710, 690, 731, 730, 729,
108911 /* 520 */ 726, 689, 688, 687, 816, 686, 685, 822, 821, 809,
108912 /* 530 */ 852, 751, 750, 749, 761, 760, 773, 772, 807, 806,
108913 /* 540 */ 774, 759, 753, 752, 768, 767, 766, 765, 757, 747,
108914 /* 550 */ 779, 781, 780, 778, 854, 763, 851, 922, 921, 920,
108915 /* 560 */ 919, 918, 856, 855, 823, 820, 676, 677, 891, 890,
108916 /* 570 */ 892, 889, 679, 678, 675, 674, 853, 742, 741, 849,
108917 /* 580 */ 846, 838, 834, 850, 847, 839, 835, 833, 832, 818,
108918 /* 590 */ 817, 815, 814, 810, 819, 667, 743, 739, 738, 808,
108919 /* 600 */ 745, 744, 684, 680, 661, 659, 652, 650, 649, 651,
108920 /* 610 */ 647, 645, 644, 643, 642, 641, 670, 669, 668, 666,
108921 /* 620 */ 665, 639, 636, 635, 631, 630, 628,
108922 };
108923
108924 /* The next table maps tokens into fallback tokens. If a construct
108925 ** like the following:
108926 **
@@ -109119,14 +109186,14 @@
109119 "create_table", "create_table_args", "createkw", "temp",
109120 "ifnotexists", "dbnm", "columnlist", "conslist_opt",
109121 "select", "column", "columnid", "type",
109122 "carglist", "id", "ids", "typetoken",
109123 "typename", "signed", "plus_num", "minus_num",
109124 "cname", "ccons", "term", "expr",
109125 "onconf", "sortorder", "autoinc", "idxlist_opt",
109126 "refargs", "defer_subclause", "refarg", "refact",
109127 "init_deferred_pred_opt", "conslist", "tcons", "idxlist",
109128 "defer_subclause_opt", "orconf", "resolvetype", "raisetype",
109129 "ifexists", "fullname", "oneselect", "multiselect_op",
109130 "distinct", "selcollist", "from", "where_opt",
109131 "groupby_opt", "having_opt", "orderby_opt", "limit_opt",
109132 "sclp", "as", "seltablist", "stl_prefix",
@@ -109199,282 +109266,284 @@
109199 /* 48 */ "typetoken ::= typename LP signed COMMA signed RP",
109200 /* 49 */ "typename ::= ids",
109201 /* 50 */ "typename ::= typename ids",
109202 /* 51 */ "signed ::= plus_num",
109203 /* 52 */ "signed ::= minus_num",
109204 /* 53 */ "carglist ::= carglist cname ccons",
109205 /* 54 */ "carglist ::=",
109206 /* 55 */ "cname ::= CONSTRAINT nm",
109207 /* 56 */ "cname ::=",
109208 /* 57 */ "ccons ::= DEFAULT term",
109209 /* 58 */ "ccons ::= DEFAULT LP expr RP",
109210 /* 59 */ "ccons ::= DEFAULT PLUS term",
109211 /* 60 */ "ccons ::= DEFAULT MINUS term",
109212 /* 61 */ "ccons ::= DEFAULT id",
109213 /* 62 */ "ccons ::= NULL onconf",
109214 /* 63 */ "ccons ::= NOT NULL onconf",
109215 /* 64 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc",
109216 /* 65 */ "ccons ::= UNIQUE onconf",
109217 /* 66 */ "ccons ::= CHECK LP expr RP",
109218 /* 67 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
109219 /* 68 */ "ccons ::= defer_subclause",
109220 /* 69 */ "ccons ::= COLLATE ids",
109221 /* 70 */ "autoinc ::=",
109222 /* 71 */ "autoinc ::= AUTOINCR",
109223 /* 72 */ "refargs ::=",
109224 /* 73 */ "refargs ::= refargs refarg",
109225 /* 74 */ "refarg ::= MATCH nm",
109226 /* 75 */ "refarg ::= ON INSERT refact",
109227 /* 76 */ "refarg ::= ON DELETE refact",
109228 /* 77 */ "refarg ::= ON UPDATE refact",
109229 /* 78 */ "refact ::= SET NULL",
109230 /* 79 */ "refact ::= SET DEFAULT",
109231 /* 80 */ "refact ::= CASCADE",
109232 /* 81 */ "refact ::= RESTRICT",
109233 /* 82 */ "refact ::= NO ACTION",
109234 /* 83 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
109235 /* 84 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
109236 /* 85 */ "init_deferred_pred_opt ::=",
109237 /* 86 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
109238 /* 87 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
109239 /* 88 */ "conslist_opt ::=",
109240 /* 89 */ "conslist_opt ::= COMMA conslist",
109241 /* 90 */ "conslist ::= conslist COMMA cname tcons",
109242 /* 91 */ "conslist ::= cname tcons",
109243 /* 92 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
109244 /* 93 */ "tcons ::= UNIQUE LP idxlist RP onconf",
109245 /* 94 */ "tcons ::= CHECK LP expr RP onconf",
109246 /* 95 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
109247 /* 96 */ "defer_subclause_opt ::=",
109248 /* 97 */ "defer_subclause_opt ::= defer_subclause",
109249 /* 98 */ "onconf ::=",
109250 /* 99 */ "onconf ::= ON CONFLICT resolvetype",
109251 /* 100 */ "orconf ::=",
109252 /* 101 */ "orconf ::= OR resolvetype",
109253 /* 102 */ "resolvetype ::= raisetype",
109254 /* 103 */ "resolvetype ::= IGNORE",
109255 /* 104 */ "resolvetype ::= REPLACE",
109256 /* 105 */ "cmd ::= DROP TABLE ifexists fullname",
109257 /* 106 */ "ifexists ::= IF EXISTS",
109258 /* 107 */ "ifexists ::=",
109259 /* 108 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select",
109260 /* 109 */ "cmd ::= DROP VIEW ifexists fullname",
109261 /* 110 */ "cmd ::= select",
109262 /* 111 */ "select ::= oneselect",
109263 /* 112 */ "select ::= select multiselect_op oneselect",
109264 /* 113 */ "multiselect_op ::= UNION",
109265 /* 114 */ "multiselect_op ::= UNION ALL",
109266 /* 115 */ "multiselect_op ::= EXCEPT|INTERSECT",
109267 /* 116 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
109268 /* 117 */ "distinct ::= DISTINCT",
109269 /* 118 */ "distinct ::= ALL",
109270 /* 119 */ "distinct ::=",
109271 /* 120 */ "sclp ::= selcollist COMMA",
109272 /* 121 */ "sclp ::=",
109273 /* 122 */ "selcollist ::= sclp expr as",
109274 /* 123 */ "selcollist ::= sclp STAR",
109275 /* 124 */ "selcollist ::= sclp nm DOT STAR",
109276 /* 125 */ "as ::= AS nm",
109277 /* 126 */ "as ::= ids",
109278 /* 127 */ "as ::=",
109279 /* 128 */ "from ::=",
109280 /* 129 */ "from ::= FROM seltablist",
109281 /* 130 */ "stl_prefix ::= seltablist joinop",
109282 /* 131 */ "stl_prefix ::=",
109283 /* 132 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
109284 /* 133 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
109285 /* 134 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
109286 /* 135 */ "dbnm ::=",
109287 /* 136 */ "dbnm ::= DOT nm",
109288 /* 137 */ "fullname ::= nm dbnm",
109289 /* 138 */ "joinop ::= COMMA|JOIN",
109290 /* 139 */ "joinop ::= JOIN_KW JOIN",
109291 /* 140 */ "joinop ::= JOIN_KW nm JOIN",
109292 /* 141 */ "joinop ::= JOIN_KW nm nm JOIN",
109293 /* 142 */ "on_opt ::= ON expr",
109294 /* 143 */ "on_opt ::=",
109295 /* 144 */ "indexed_opt ::=",
109296 /* 145 */ "indexed_opt ::= INDEXED BY nm",
109297 /* 146 */ "indexed_opt ::= NOT INDEXED",
109298 /* 147 */ "using_opt ::= USING LP inscollist RP",
109299 /* 148 */ "using_opt ::=",
109300 /* 149 */ "orderby_opt ::=",
109301 /* 150 */ "orderby_opt ::= ORDER BY sortlist",
109302 /* 151 */ "sortlist ::= sortlist COMMA expr sortorder",
109303 /* 152 */ "sortlist ::= expr sortorder",
109304 /* 153 */ "sortorder ::= ASC",
109305 /* 154 */ "sortorder ::= DESC",
109306 /* 155 */ "sortorder ::=",
109307 /* 156 */ "groupby_opt ::=",
109308 /* 157 */ "groupby_opt ::= GROUP BY nexprlist",
109309 /* 158 */ "having_opt ::=",
109310 /* 159 */ "having_opt ::= HAVING expr",
109311 /* 160 */ "limit_opt ::=",
109312 /* 161 */ "limit_opt ::= LIMIT expr",
109313 /* 162 */ "limit_opt ::= LIMIT expr OFFSET expr",
109314 /* 163 */ "limit_opt ::= LIMIT expr COMMA expr",
109315 /* 164 */ "cmd ::= DELETE FROM fullname indexed_opt where_opt",
109316 /* 165 */ "where_opt ::=",
109317 /* 166 */ "where_opt ::= WHERE expr",
109318 /* 167 */ "cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt",
109319 /* 168 */ "setlist ::= setlist COMMA nm EQ expr",
109320 /* 169 */ "setlist ::= nm EQ expr",
109321 /* 170 */ "cmd ::= insert_cmd INTO fullname inscollist_opt valuelist",
109322 /* 171 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select",
109323 /* 172 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES",
109324 /* 173 */ "insert_cmd ::= INSERT orconf",
109325 /* 174 */ "insert_cmd ::= REPLACE",
109326 /* 175 */ "valuelist ::= VALUES LP nexprlist RP",
109327 /* 176 */ "valuelist ::= valuelist COMMA LP exprlist RP",
109328 /* 177 */ "inscollist_opt ::=",
109329 /* 178 */ "inscollist_opt ::= LP inscollist RP",
109330 /* 179 */ "inscollist ::= inscollist COMMA nm",
109331 /* 180 */ "inscollist ::= nm",
109332 /* 181 */ "expr ::= term",
109333 /* 182 */ "expr ::= LP expr RP",
109334 /* 183 */ "term ::= NULL",
109335 /* 184 */ "expr ::= id",
109336 /* 185 */ "expr ::= JOIN_KW",
109337 /* 186 */ "expr ::= nm DOT nm",
109338 /* 187 */ "expr ::= nm DOT nm DOT nm",
109339 /* 188 */ "term ::= INTEGER|FLOAT|BLOB",
109340 /* 189 */ "term ::= STRING",
109341 /* 190 */ "expr ::= REGISTER",
109342 /* 191 */ "expr ::= VARIABLE",
109343 /* 192 */ "expr ::= expr COLLATE ids",
109344 /* 193 */ "expr ::= CAST LP expr AS typetoken RP",
109345 /* 194 */ "expr ::= ID LP distinct exprlist RP",
109346 /* 195 */ "expr ::= ID LP STAR RP",
109347 /* 196 */ "term ::= CTIME_KW",
109348 /* 197 */ "expr ::= expr AND expr",
109349 /* 198 */ "expr ::= expr OR expr",
109350 /* 199 */ "expr ::= expr LT|GT|GE|LE expr",
109351 /* 200 */ "expr ::= expr EQ|NE expr",
109352 /* 201 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
109353 /* 202 */ "expr ::= expr PLUS|MINUS expr",
109354 /* 203 */ "expr ::= expr STAR|SLASH|REM expr",
109355 /* 204 */ "expr ::= expr CONCAT expr",
109356 /* 205 */ "likeop ::= LIKE_KW",
109357 /* 206 */ "likeop ::= NOT LIKE_KW",
109358 /* 207 */ "likeop ::= MATCH",
109359 /* 208 */ "likeop ::= NOT MATCH",
109360 /* 209 */ "expr ::= expr likeop expr",
109361 /* 210 */ "expr ::= expr likeop expr ESCAPE expr",
109362 /* 211 */ "expr ::= expr ISNULL|NOTNULL",
109363 /* 212 */ "expr ::= expr NOT NULL",
109364 /* 213 */ "expr ::= expr IS expr",
109365 /* 214 */ "expr ::= expr IS NOT expr",
109366 /* 215 */ "expr ::= NOT expr",
109367 /* 216 */ "expr ::= BITNOT expr",
109368 /* 217 */ "expr ::= MINUS expr",
109369 /* 218 */ "expr ::= PLUS expr",
109370 /* 219 */ "between_op ::= BETWEEN",
109371 /* 220 */ "between_op ::= NOT BETWEEN",
109372 /* 221 */ "expr ::= expr between_op expr AND expr",
109373 /* 222 */ "in_op ::= IN",
109374 /* 223 */ "in_op ::= NOT IN",
109375 /* 224 */ "expr ::= expr in_op LP exprlist RP",
109376 /* 225 */ "expr ::= LP select RP",
109377 /* 226 */ "expr ::= expr in_op LP select RP",
109378 /* 227 */ "expr ::= expr in_op nm dbnm",
109379 /* 228 */ "expr ::= EXISTS LP select RP",
109380 /* 229 */ "expr ::= CASE case_operand case_exprlist case_else END",
109381 /* 230 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
109382 /* 231 */ "case_exprlist ::= WHEN expr THEN expr",
109383 /* 232 */ "case_else ::= ELSE expr",
109384 /* 233 */ "case_else ::=",
109385 /* 234 */ "case_operand ::= expr",
109386 /* 235 */ "case_operand ::=",
109387 /* 236 */ "exprlist ::= nexprlist",
109388 /* 237 */ "exprlist ::=",
109389 /* 238 */ "nexprlist ::= nexprlist COMMA expr",
109390 /* 239 */ "nexprlist ::= expr",
109391 /* 240 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP",
109392 /* 241 */ "uniqueflag ::= UNIQUE",
109393 /* 242 */ "uniqueflag ::=",
109394 /* 243 */ "idxlist_opt ::=",
109395 /* 244 */ "idxlist_opt ::= LP idxlist RP",
109396 /* 245 */ "idxlist ::= idxlist COMMA nm collate sortorder",
109397 /* 246 */ "idxlist ::= nm collate sortorder",
109398 /* 247 */ "collate ::=",
109399 /* 248 */ "collate ::= COLLATE ids",
109400 /* 249 */ "cmd ::= DROP INDEX ifexists fullname",
109401 /* 250 */ "cmd ::= VACUUM",
109402 /* 251 */ "cmd ::= VACUUM nm",
109403 /* 252 */ "cmd ::= PRAGMA nm dbnm",
109404 /* 253 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
109405 /* 254 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
109406 /* 255 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
109407 /* 256 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
109408 /* 257 */ "nmnum ::= plus_num",
109409 /* 258 */ "nmnum ::= nm",
109410 /* 259 */ "nmnum ::= ON",
109411 /* 260 */ "nmnum ::= DELETE",
109412 /* 261 */ "nmnum ::= DEFAULT",
109413 /* 262 */ "plus_num ::= PLUS number",
109414 /* 263 */ "plus_num ::= number",
109415 /* 264 */ "minus_num ::= MINUS number",
109416 /* 265 */ "number ::= INTEGER|FLOAT",
109417 /* 266 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
109418 /* 267 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
109419 /* 268 */ "trigger_time ::= BEFORE",
109420 /* 269 */ "trigger_time ::= AFTER",
109421 /* 270 */ "trigger_time ::= INSTEAD OF",
109422 /* 271 */ "trigger_time ::=",
109423 /* 272 */ "trigger_event ::= DELETE|INSERT",
109424 /* 273 */ "trigger_event ::= UPDATE",
109425 /* 274 */ "trigger_event ::= UPDATE OF inscollist",
109426 /* 275 */ "foreach_clause ::=",
109427 /* 276 */ "foreach_clause ::= FOR EACH ROW",
109428 /* 277 */ "when_clause ::=",
109429 /* 278 */ "when_clause ::= WHEN expr",
109430 /* 279 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
109431 /* 280 */ "trigger_cmd_list ::= trigger_cmd SEMI",
109432 /* 281 */ "trnm ::= nm",
109433 /* 282 */ "trnm ::= nm DOT nm",
109434 /* 283 */ "tridxby ::=",
109435 /* 284 */ "tridxby ::= INDEXED BY nm",
109436 /* 285 */ "tridxby ::= NOT INDEXED",
109437 /* 286 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
109438 /* 287 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist",
109439 /* 288 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select",
109440 /* 289 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
109441 /* 290 */ "trigger_cmd ::= select",
109442 /* 291 */ "expr ::= RAISE LP IGNORE RP",
109443 /* 292 */ "expr ::= RAISE LP raisetype COMMA nm RP",
109444 /* 293 */ "raisetype ::= ROLLBACK",
109445 /* 294 */ "raisetype ::= ABORT",
109446 /* 295 */ "raisetype ::= FAIL",
109447 /* 296 */ "cmd ::= DROP TRIGGER ifexists fullname",
109448 /* 297 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
109449 /* 298 */ "cmd ::= DETACH database_kw_opt expr",
109450 /* 299 */ "key_opt ::=",
109451 /* 300 */ "key_opt ::= KEY expr",
109452 /* 301 */ "database_kw_opt ::= DATABASE",
109453 /* 302 */ "database_kw_opt ::=",
109454 /* 303 */ "cmd ::= REINDEX",
109455 /* 304 */ "cmd ::= REINDEX nm dbnm",
109456 /* 305 */ "cmd ::= ANALYZE",
109457 /* 306 */ "cmd ::= ANALYZE nm dbnm",
109458 /* 307 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
109459 /* 308 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column",
109460 /* 309 */ "add_column_fullname ::= fullname",
109461 /* 310 */ "kwcolumn_opt ::=",
109462 /* 311 */ "kwcolumn_opt ::= COLUMNKW",
109463 /* 312 */ "cmd ::= create_vtab",
109464 /* 313 */ "cmd ::= create_vtab LP vtabarglist RP",
109465 /* 314 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
109466 /* 315 */ "vtabarglist ::= vtabarg",
109467 /* 316 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
109468 /* 317 */ "vtabarg ::=",
109469 /* 318 */ "vtabarg ::= vtabarg vtabargtoken",
109470 /* 319 */ "vtabargtoken ::= ANY",
109471 /* 320 */ "vtabargtoken ::= lp anylist RP",
109472 /* 321 */ "lp ::= LP",
109473 /* 322 */ "anylist ::=",
109474 /* 323 */ "anylist ::= anylist LP anylist RP",
109475 /* 324 */ "anylist ::= anylist ANY",
 
 
109476 };
109477 #endif /* NDEBUG */
109478
109479
109480 #if YYSTACKDEPTH<=0
@@ -109555,17 +109624,17 @@
109555 case 194: /* oneselect */
109556 {
109557 sqlite3SelectDelete(pParse->db, (yypminor->yy159));
109558 }
109559 break;
109560 case 174: /* term */
109561 case 175: /* expr */
109562 {
109563 sqlite3ExprDelete(pParse->db, (yypminor->yy342).pExpr);
109564 }
109565 break;
109566 case 179: /* idxlist_opt */
109567 case 187: /* idxlist */
109568 case 197: /* selcollist */
109569 case 200: /* groupby_opt */
109570 case 202: /* orderby_opt */
109571 case 204: /* sclp */
@@ -109916,57 +109985,59 @@
109916 { 167, 6 },
109917 { 168, 1 },
109918 { 168, 2 },
109919 { 169, 1 },
109920 { 169, 1 },
109921 { 164, 3 },
109922 { 164, 0 },
109923 { 172, 2 },
109924 { 172, 0 },
109925 { 173, 2 },
109926 { 173, 4 },
109927 { 173, 3 },
109928 { 173, 3 },
109929 { 173, 2 },
109930 { 173, 2 },
109931 { 173, 3 },
109932 { 173, 5 },
109933 { 173, 2 },
109934 { 173, 4 },
109935 { 173, 4 },
109936 { 173, 1 },
109937 { 173, 2 },
109938 { 178, 0 },
109939 { 178, 1 },
109940 { 180, 0 },
109941 { 180, 2 },
109942 { 182, 2 },
109943 { 182, 3 },
109944 { 182, 3 },
109945 { 182, 3 },
109946 { 183, 2 },
109947 { 183, 2 },
109948 { 183, 1 },
109949 { 183, 1 },
109950 { 183, 2 },
109951 { 181, 3 },
109952 { 181, 2 },
109953 { 184, 0 },
109954 { 184, 2 },
109955 { 184, 2 },
109956 { 159, 0 },
109957 { 159, 2 },
109958 { 185, 4 },
 
 
109959 { 185, 2 },
109960 { 186, 7 },
109961 { 186, 5 },
109962 { 186, 5 },
109963 { 186, 10 },
109964 { 188, 0 },
109965 { 188, 1 },
109966 { 176, 0 },
109967 { 176, 3 },
109968 { 189, 0 },
109969 { 189, 2 },
109970 { 190, 1 },
109971 { 190, 1 },
109972 { 190, 1 },
@@ -110016,13 +110087,13 @@
110016 { 211, 0 },
110017 { 202, 0 },
110018 { 202, 3 },
110019 { 214, 4 },
110020 { 214, 2 },
110021 { 177, 1 },
110022 { 177, 1 },
110023 { 177, 0 },
110024 { 200, 0 },
110025 { 200, 3 },
110026 { 201, 0 },
110027 { 201, 2 },
110028 { 203, 0 },
@@ -110044,59 +110115,59 @@
110044 { 219, 5 },
110045 { 218, 0 },
110046 { 218, 3 },
110047 { 213, 3 },
110048 { 213, 1 },
110049 { 175, 1 },
110050 { 175, 3 },
110051 { 174, 1 },
110052 { 175, 1 },
110053 { 175, 1 },
110054 { 175, 3 },
110055 { 175, 5 },
110056 { 174, 1 },
110057 { 174, 1 },
110058 { 175, 1 },
110059 { 175, 1 },
110060 { 175, 3 },
110061 { 175, 6 },
110062 { 175, 5 },
110063 { 175, 4 },
110064 { 174, 1 },
110065 { 175, 3 },
110066 { 175, 3 },
110067 { 175, 3 },
110068 { 175, 3 },
110069 { 175, 3 },
110070 { 175, 3 },
110071 { 175, 3 },
110072 { 175, 3 },
110073 { 221, 1 },
110074 { 221, 2 },
110075 { 221, 1 },
110076 { 221, 2 },
110077 { 175, 3 },
110078 { 175, 5 },
110079 { 175, 2 },
110080 { 175, 3 },
110081 { 175, 3 },
110082 { 175, 4 },
110083 { 175, 2 },
110084 { 175, 2 },
110085 { 175, 2 },
110086 { 175, 2 },
110087 { 222, 1 },
110088 { 222, 2 },
110089 { 175, 5 },
110090 { 223, 1 },
110091 { 223, 2 },
110092 { 175, 5 },
110093 { 175, 3 },
110094 { 175, 5 },
110095 { 175, 4 },
110096 { 175, 4 },
110097 { 175, 5 },
110098 { 225, 5 },
110099 { 225, 4 },
110100 { 226, 2 },
110101 { 226, 0 },
110102 { 224, 1 },
@@ -110106,12 +110177,12 @@
110106 { 215, 3 },
110107 { 215, 1 },
110108 { 147, 11 },
110109 { 227, 1 },
110110 { 227, 0 },
110111 { 179, 0 },
110112 { 179, 3 },
110113 { 187, 5 },
110114 { 187, 3 },
110115 { 228, 0 },
110116 { 228, 2 },
110117 { 147, 4 },
@@ -110154,12 +110225,12 @@
110154 { 237, 7 },
110155 { 237, 5 },
110156 { 237, 5 },
110157 { 237, 5 },
110158 { 237, 1 },
110159 { 175, 4 },
110160 { 175, 6 },
110161 { 191, 1 },
110162 { 191, 1 },
110163 { 191, 1 },
110164 { 147, 4 },
110165 { 147, 6 },
@@ -110263,12 +110334,12 @@
110263 {yygotominor.yy392 = TK_DEFERRED;}
110264 break;
110265 case 14: /* transtype ::= DEFERRED */
110266 case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15);
110267 case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16);
110268 case 113: /* multiselect_op ::= UNION */ yytestcase(yyruleno==113);
110269 case 115: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==115);
110270 {yygotominor.yy392 = yymsp[0].major;}
110271 break;
110272 case 17: /* cmd ::= COMMIT trans_opt */
110273 case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18);
110274 {sqlite3CommitTransaction(pParse);}
@@ -110302,30 +110373,30 @@
110302 yygotominor.yy0 = yymsp[0].minor.yy0;
110303 }
110304 break;
110305 case 28: /* ifnotexists ::= */
110306 case 31: /* temp ::= */ yytestcase(yyruleno==31);
110307 case 70: /* autoinc ::= */ yytestcase(yyruleno==70);
110308 case 83: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==83);
110309 case 85: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==85);
110310 case 87: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==87);
110311 case 96: /* defer_subclause_opt ::= */ yytestcase(yyruleno==96);
110312 case 107: /* ifexists ::= */ yytestcase(yyruleno==107);
110313 case 118: /* distinct ::= ALL */ yytestcase(yyruleno==118);
110314 case 119: /* distinct ::= */ yytestcase(yyruleno==119);
110315 case 219: /* between_op ::= BETWEEN */ yytestcase(yyruleno==219);
110316 case 222: /* in_op ::= IN */ yytestcase(yyruleno==222);
110317 {yygotominor.yy392 = 0;}
110318 break;
110319 case 29: /* ifnotexists ::= IF NOT EXISTS */
110320 case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30);
110321 case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71);
110322 case 86: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==86);
110323 case 106: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==106);
110324 case 117: /* distinct ::= DISTINCT */ yytestcase(yyruleno==117);
110325 case 220: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==220);
110326 case 223: /* in_op ::= NOT IN */ yytestcase(yyruleno==223);
110327 {yygotominor.yy392 = 1;}
110328 break;
110329 case 32: /* create_table_args ::= LP columnlist conslist_opt RP */
110330 {
110331 sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
@@ -110345,10 +110416,11 @@
110345 break;
110346 case 37: /* columnid ::= nm */
110347 {
110348 sqlite3AddColumn(pParse,&yymsp[0].minor.yy0);
110349 yygotominor.yy0 = yymsp[0].minor.yy0;
 
110350 }
110351 break;
110352 case 38: /* id ::= ID */
110353 case 39: /* id ::= INDEXED */ yytestcase(yyruleno==39);
110354 case 40: /* ids ::= ID|STRING */ yytestcase(yyruleno==40);
@@ -110355,25 +110427,25 @@
110355 case 41: /* nm ::= id */ yytestcase(yyruleno==41);
110356 case 42: /* nm ::= STRING */ yytestcase(yyruleno==42);
110357 case 43: /* nm ::= JOIN_KW */ yytestcase(yyruleno==43);
110358 case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46);
110359 case 49: /* typename ::= ids */ yytestcase(yyruleno==49);
110360 case 125: /* as ::= AS nm */ yytestcase(yyruleno==125);
110361 case 126: /* as ::= ids */ yytestcase(yyruleno==126);
110362 case 136: /* dbnm ::= DOT nm */ yytestcase(yyruleno==136);
110363 case 145: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==145);
110364 case 248: /* collate ::= COLLATE ids */ yytestcase(yyruleno==248);
110365 case 257: /* nmnum ::= plus_num */ yytestcase(yyruleno==257);
110366 case 258: /* nmnum ::= nm */ yytestcase(yyruleno==258);
110367 case 259: /* nmnum ::= ON */ yytestcase(yyruleno==259);
110368 case 260: /* nmnum ::= DELETE */ yytestcase(yyruleno==260);
110369 case 261: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==261);
110370 case 262: /* plus_num ::= PLUS number */ yytestcase(yyruleno==262);
110371 case 263: /* plus_num ::= number */ yytestcase(yyruleno==263);
110372 case 264: /* minus_num ::= MINUS number */ yytestcase(yyruleno==264);
110373 case 265: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==265);
110374 case 281: /* trnm ::= nm */ yytestcase(yyruleno==281);
110375 {yygotominor.yy0 = yymsp[0].minor.yy0;}
110376 break;
110377 case 45: /* type ::= typetoken */
110378 {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
110379 break;
@@ -110390,162 +110462,163 @@
110390 }
110391 break;
110392 case 50: /* typename ::= typename ids */
110393 {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
110394 break;
110395 case 55: /* cname ::= CONSTRAINT nm */
 
110396 {pParse->constraintName = yymsp[0].minor.yy0;}
110397 break;
110398 case 56: /* cname ::= */
110399 {pParse->constraintName.n = 0;}
110400 break;
110401 case 57: /* ccons ::= DEFAULT term */
110402 case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59);
110403 {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);}
110404 break;
110405 case 58: /* ccons ::= DEFAULT LP expr RP */
110406 {sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy342);}
110407 break;
110408 case 60: /* ccons ::= DEFAULT MINUS term */
110409 {
110410 ExprSpan v;
110411 v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy342.pExpr, 0, 0);
110412 v.zStart = yymsp[-1].minor.yy0.z;
110413 v.zEnd = yymsp[0].minor.yy342.zEnd;
110414 sqlite3AddDefaultValue(pParse,&v);
110415 }
110416 break;
110417 case 61: /* ccons ::= DEFAULT id */
110418 {
110419 ExprSpan v;
110420 spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0);
110421 sqlite3AddDefaultValue(pParse,&v);
110422 }
110423 break;
110424 case 63: /* ccons ::= NOT NULL onconf */
110425 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy392);}
110426 break;
110427 case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
110428 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy392,yymsp[0].minor.yy392,yymsp[-2].minor.yy392);}
110429 break;
110430 case 65: /* ccons ::= UNIQUE onconf */
110431 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy392,0,0,0,0);}
110432 break;
110433 case 66: /* ccons ::= CHECK LP expr RP */
110434 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy342.pExpr);}
110435 break;
110436 case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */
110437 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy442,yymsp[0].minor.yy392);}
110438 break;
110439 case 68: /* ccons ::= defer_subclause */
110440 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy392);}
110441 break;
110442 case 69: /* ccons ::= COLLATE ids */
110443 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
110444 break;
110445 case 72: /* refargs ::= */
110446 { yygotominor.yy392 = OE_None*0x0101; /* EV: R-19803-45884 */}
110447 break;
110448 case 73: /* refargs ::= refargs refarg */
110449 { yygotominor.yy392 = (yymsp[-1].minor.yy392 & ~yymsp[0].minor.yy207.mask) | yymsp[0].minor.yy207.value; }
110450 break;
110451 case 74: /* refarg ::= MATCH nm */
110452 case 75: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==75);
110453 { yygotominor.yy207.value = 0; yygotominor.yy207.mask = 0x000000; }
110454 break;
110455 case 76: /* refarg ::= ON DELETE refact */
110456 { yygotominor.yy207.value = yymsp[0].minor.yy392; yygotominor.yy207.mask = 0x0000ff; }
110457 break;
110458 case 77: /* refarg ::= ON UPDATE refact */
110459 { yygotominor.yy207.value = yymsp[0].minor.yy392<<8; yygotominor.yy207.mask = 0x00ff00; }
110460 break;
110461 case 78: /* refact ::= SET NULL */
110462 { yygotominor.yy392 = OE_SetNull; /* EV: R-33326-45252 */}
110463 break;
110464 case 79: /* refact ::= SET DEFAULT */
110465 { yygotominor.yy392 = OE_SetDflt; /* EV: R-33326-45252 */}
110466 break;
110467 case 80: /* refact ::= CASCADE */
110468 { yygotominor.yy392 = OE_Cascade; /* EV: R-33326-45252 */}
110469 break;
110470 case 81: /* refact ::= RESTRICT */
110471 { yygotominor.yy392 = OE_Restrict; /* EV: R-33326-45252 */}
110472 break;
110473 case 82: /* refact ::= NO ACTION */
110474 { yygotominor.yy392 = OE_None; /* EV: R-33326-45252 */}
110475 break;
110476 case 84: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
110477 case 97: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==97);
110478 case 99: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==99);
110479 case 102: /* resolvetype ::= raisetype */ yytestcase(yyruleno==102);
110480 {yygotominor.yy392 = yymsp[0].minor.yy392;}
110481 break;
110482 case 88: /* conslist_opt ::= */
110483 {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
110484 break;
110485 case 89: /* conslist_opt ::= COMMA conslist */
110486 {yygotominor.yy0 = yymsp[-1].minor.yy0;}
110487 break;
110488 case 92: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
 
 
 
110489 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2].minor.yy392,0);}
110490 break;
110491 case 93: /* tcons ::= UNIQUE LP idxlist RP onconf */
110492 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0,0,0);}
110493 break;
110494 case 94: /* tcons ::= CHECK LP expr RP onconf */
110495 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy342.pExpr);}
110496 break;
110497 case 95: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
110498 {
110499 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy442, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy392);
110500 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy392);
110501 }
110502 break;
110503 case 98: /* onconf ::= */
110504 {yygotominor.yy392 = OE_Default;}
110505 break;
110506 case 100: /* orconf ::= */
110507 {yygotominor.yy258 = OE_Default;}
110508 break;
110509 case 101: /* orconf ::= OR resolvetype */
110510 {yygotominor.yy258 = (u8)yymsp[0].minor.yy392;}
110511 break;
110512 case 103: /* resolvetype ::= IGNORE */
110513 {yygotominor.yy392 = OE_Ignore;}
110514 break;
110515 case 104: /* resolvetype ::= REPLACE */
110516 {yygotominor.yy392 = OE_Replace;}
110517 break;
110518 case 105: /* cmd ::= DROP TABLE ifexists fullname */
110519 {
110520 sqlite3DropTable(pParse, yymsp[0].minor.yy347, 0, yymsp[-1].minor.yy392);
110521 }
110522 break;
110523 case 108: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
110524 {
110525 sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy159, yymsp[-6].minor.yy392, yymsp[-4].minor.yy392);
110526 }
110527 break;
110528 case 109: /* cmd ::= DROP VIEW ifexists fullname */
110529 {
110530 sqlite3DropTable(pParse, yymsp[0].minor.yy347, 1, yymsp[-1].minor.yy392);
110531 }
110532 break;
110533 case 110: /* cmd ::= select */
110534 {
110535 SelectDest dest = {SRT_Output, 0, 0, 0, 0};
110536 sqlite3Select(pParse, yymsp[0].minor.yy159, &dest);
110537 sqlite3ExplainBegin(pParse->pVdbe);
110538 sqlite3ExplainSelect(pParse->pVdbe, yymsp[0].minor.yy159);
110539 sqlite3ExplainFinish(pParse->pVdbe);
110540 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy159);
110541 }
110542 break;
110543 case 111: /* select ::= oneselect */
110544 {yygotominor.yy159 = yymsp[0].minor.yy159;}
110545 break;
110546 case 112: /* select ::= select multiselect_op oneselect */
110547 {
110548 if( yymsp[0].minor.yy159 ){
110549 yymsp[0].minor.yy159->op = (u8)yymsp[-1].minor.yy392;
110550 yymsp[0].minor.yy159->pPrior = yymsp[-2].minor.yy159;
110551 }else{
@@ -110552,83 +110625,83 @@
110552 sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy159);
110553 }
110554 yygotominor.yy159 = yymsp[0].minor.yy159;
110555 }
110556 break;
110557 case 114: /* multiselect_op ::= UNION ALL */
110558 {yygotominor.yy392 = TK_ALL;}
110559 break;
110560 case 116: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
110561 {
110562 yygotominor.yy159 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy442,yymsp[-5].minor.yy347,yymsp[-4].minor.yy122,yymsp[-3].minor.yy442,yymsp[-2].minor.yy122,yymsp[-1].minor.yy442,yymsp[-7].minor.yy392,yymsp[0].minor.yy64.pLimit,yymsp[0].minor.yy64.pOffset);
110563 }
110564 break;
110565 case 120: /* sclp ::= selcollist COMMA */
110566 case 244: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==244);
110567 {yygotominor.yy442 = yymsp[-1].minor.yy442;}
110568 break;
110569 case 121: /* sclp ::= */
110570 case 149: /* orderby_opt ::= */ yytestcase(yyruleno==149);
110571 case 156: /* groupby_opt ::= */ yytestcase(yyruleno==156);
110572 case 237: /* exprlist ::= */ yytestcase(yyruleno==237);
110573 case 243: /* idxlist_opt ::= */ yytestcase(yyruleno==243);
110574 {yygotominor.yy442 = 0;}
110575 break;
110576 case 122: /* selcollist ::= sclp expr as */
110577 {
110578 yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy442, yymsp[-1].minor.yy342.pExpr);
110579 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[0].minor.yy0, 1);
110580 sqlite3ExprListSetSpan(pParse,yygotominor.yy442,&yymsp[-1].minor.yy342);
110581 }
110582 break;
110583 case 123: /* selcollist ::= sclp STAR */
110584 {
110585 Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0);
110586 yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy442, p);
110587 }
110588 break;
110589 case 124: /* selcollist ::= sclp nm DOT STAR */
110590 {
110591 Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
110592 Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110593 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
110594 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442, pDot);
110595 }
110596 break;
110597 case 127: /* as ::= */
110598 {yygotominor.yy0.n = 0;}
110599 break;
110600 case 128: /* from ::= */
110601 {yygotominor.yy347 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy347));}
110602 break;
110603 case 129: /* from ::= FROM seltablist */
110604 {
110605 yygotominor.yy347 = yymsp[0].minor.yy347;
110606 sqlite3SrcListShiftJoinType(yygotominor.yy347);
110607 }
110608 break;
110609 case 130: /* stl_prefix ::= seltablist joinop */
110610 {
110611 yygotominor.yy347 = yymsp[-1].minor.yy347;
110612 if( ALWAYS(yygotominor.yy347 && yygotominor.yy347->nSrc>0) ) yygotominor.yy347->a[yygotominor.yy347->nSrc-1].jointype = (u8)yymsp[0].minor.yy392;
110613 }
110614 break;
110615 case 131: /* stl_prefix ::= */
110616 {yygotominor.yy347 = 0;}
110617 break;
110618 case 132: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
110619 {
110620 yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110621 sqlite3SrcListIndexedBy(pParse, yygotominor.yy347, &yymsp[-2].minor.yy0);
110622 }
110623 break;
110624 case 133: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
110625 {
110626 yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy159,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110627 }
110628 break;
110629 case 134: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
110630 {
110631 if( yymsp[-6].minor.yy347==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy122==0 && yymsp[0].minor.yy180==0 ){
110632 yygotominor.yy347 = yymsp[-4].minor.yy347;
110633 }else{
110634 Select *pSubquery;
@@ -110636,137 +110709,137 @@
110636 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy347,0,0,0,0,0,0,0);
110637 yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110638 }
110639 }
110640 break;
110641 case 135: /* dbnm ::= */
110642 case 144: /* indexed_opt ::= */ yytestcase(yyruleno==144);
110643 {yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
110644 break;
110645 case 137: /* fullname ::= nm dbnm */
110646 {yygotominor.yy347 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
110647 break;
110648 case 138: /* joinop ::= COMMA|JOIN */
110649 { yygotominor.yy392 = JT_INNER; }
110650 break;
110651 case 139: /* joinop ::= JOIN_KW JOIN */
110652 { yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
110653 break;
110654 case 140: /* joinop ::= JOIN_KW nm JOIN */
110655 { yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
110656 break;
110657 case 141: /* joinop ::= JOIN_KW nm nm JOIN */
110658 { yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
110659 break;
110660 case 142: /* on_opt ::= ON expr */
110661 case 159: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==159);
110662 case 166: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==166);
110663 case 232: /* case_else ::= ELSE expr */ yytestcase(yyruleno==232);
110664 case 234: /* case_operand ::= expr */ yytestcase(yyruleno==234);
110665 {yygotominor.yy122 = yymsp[0].minor.yy342.pExpr;}
110666 break;
110667 case 143: /* on_opt ::= */
110668 case 158: /* having_opt ::= */ yytestcase(yyruleno==158);
110669 case 165: /* where_opt ::= */ yytestcase(yyruleno==165);
110670 case 233: /* case_else ::= */ yytestcase(yyruleno==233);
110671 case 235: /* case_operand ::= */ yytestcase(yyruleno==235);
110672 {yygotominor.yy122 = 0;}
110673 break;
110674 case 146: /* indexed_opt ::= NOT INDEXED */
110675 {yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
110676 break;
110677 case 147: /* using_opt ::= USING LP inscollist RP */
110678 case 178: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==178);
110679 {yygotominor.yy180 = yymsp[-1].minor.yy180;}
110680 break;
110681 case 148: /* using_opt ::= */
110682 case 177: /* inscollist_opt ::= */ yytestcase(yyruleno==177);
110683 {yygotominor.yy180 = 0;}
110684 break;
110685 case 150: /* orderby_opt ::= ORDER BY sortlist */
110686 case 157: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==157);
110687 case 236: /* exprlist ::= nexprlist */ yytestcase(yyruleno==236);
110688 {yygotominor.yy442 = yymsp[0].minor.yy442;}
110689 break;
110690 case 151: /* sortlist ::= sortlist COMMA expr sortorder */
110691 {
110692 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442,yymsp[-1].minor.yy342.pExpr);
110693 if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
110694 }
110695 break;
110696 case 152: /* sortlist ::= expr sortorder */
110697 {
110698 yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy342.pExpr);
110699 if( yygotominor.yy442 && ALWAYS(yygotominor.yy442->a) ) yygotominor.yy442->a[0].sortOrder = (u8)yymsp[0].minor.yy392;
110700 }
110701 break;
110702 case 153: /* sortorder ::= ASC */
110703 case 155: /* sortorder ::= */ yytestcase(yyruleno==155);
110704 {yygotominor.yy392 = SQLITE_SO_ASC;}
110705 break;
110706 case 154: /* sortorder ::= DESC */
110707 {yygotominor.yy392 = SQLITE_SO_DESC;}
110708 break;
110709 case 160: /* limit_opt ::= */
110710 {yygotominor.yy64.pLimit = 0; yygotominor.yy64.pOffset = 0;}
110711 break;
110712 case 161: /* limit_opt ::= LIMIT expr */
110713 {yygotominor.yy64.pLimit = yymsp[0].minor.yy342.pExpr; yygotominor.yy64.pOffset = 0;}
110714 break;
110715 case 162: /* limit_opt ::= LIMIT expr OFFSET expr */
110716 {yygotominor.yy64.pLimit = yymsp[-2].minor.yy342.pExpr; yygotominor.yy64.pOffset = yymsp[0].minor.yy342.pExpr;}
110717 break;
110718 case 163: /* limit_opt ::= LIMIT expr COMMA expr */
110719 {yygotominor.yy64.pOffset = yymsp[-2].minor.yy342.pExpr; yygotominor.yy64.pLimit = yymsp[0].minor.yy342.pExpr;}
110720 break;
110721 case 164: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
110722 {
110723 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy347, &yymsp[-1].minor.yy0);
110724 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy347,yymsp[0].minor.yy122);
110725 }
110726 break;
110727 case 167: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
110728 {
110729 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy347, &yymsp[-3].minor.yy0);
110730 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy442,"set list");
110731 sqlite3Update(pParse,yymsp[-4].minor.yy347,yymsp[-1].minor.yy442,yymsp[0].minor.yy122,yymsp[-5].minor.yy258);
110732 }
110733 break;
110734 case 168: /* setlist ::= setlist COMMA nm EQ expr */
110735 {
110736 yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[0].minor.yy342.pExpr);
110737 sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
110738 }
110739 break;
110740 case 169: /* setlist ::= nm EQ expr */
110741 {
110742 yygotominor.yy442 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy342.pExpr);
110743 sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
110744 }
110745 break;
110746 case 170: /* cmd ::= insert_cmd INTO fullname inscollist_opt valuelist */
110747 {sqlite3Insert(pParse, yymsp[-2].minor.yy347, yymsp[0].minor.yy487.pList, yymsp[0].minor.yy487.pSelect, yymsp[-1].minor.yy180, yymsp[-4].minor.yy258);}
110748 break;
110749 case 171: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
110750 {sqlite3Insert(pParse, yymsp[-2].minor.yy347, 0, yymsp[0].minor.yy159, yymsp[-1].minor.yy180, yymsp[-4].minor.yy258);}
110751 break;
110752 case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
110753 {sqlite3Insert(pParse, yymsp[-3].minor.yy347, 0, 0, yymsp[-2].minor.yy180, yymsp[-5].minor.yy258);}
110754 break;
110755 case 173: /* insert_cmd ::= INSERT orconf */
110756 {yygotominor.yy258 = yymsp[0].minor.yy258;}
110757 break;
110758 case 174: /* insert_cmd ::= REPLACE */
110759 {yygotominor.yy258 = OE_Replace;}
110760 break;
110761 case 175: /* valuelist ::= VALUES LP nexprlist RP */
110762 {
110763 yygotominor.yy487.pList = yymsp[-1].minor.yy442;
110764 yygotominor.yy487.pSelect = 0;
110765 }
110766 break;
110767 case 176: /* valuelist ::= valuelist COMMA LP exprlist RP */
110768 {
110769 Select *pRight = sqlite3SelectNew(pParse, yymsp[-1].minor.yy442, 0, 0, 0, 0, 0, 0, 0, 0);
110770 if( yymsp[-4].minor.yy487.pList ){
110771 yymsp[-4].minor.yy487.pSelect = sqlite3SelectNew(pParse, yymsp[-4].minor.yy487.pList, 0, 0, 0, 0, 0, 0, 0, 0);
110772 yymsp[-4].minor.yy487.pList = 0;
@@ -110783,50 +110856,50 @@
110783 pRight->pPrior->selFlags |= SF_Values;
110784 yygotominor.yy487.pSelect = pRight;
110785 }
110786 }
110787 break;
110788 case 179: /* inscollist ::= inscollist COMMA nm */
110789 {yygotominor.yy180 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy180,&yymsp[0].minor.yy0);}
110790 break;
110791 case 180: /* inscollist ::= nm */
110792 {yygotominor.yy180 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
110793 break;
110794 case 181: /* expr ::= term */
110795 {yygotominor.yy342 = yymsp[0].minor.yy342;}
110796 break;
110797 case 182: /* expr ::= LP expr RP */
110798 {yygotominor.yy342.pExpr = yymsp[-1].minor.yy342.pExpr; spanSet(&yygotominor.yy342,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);}
110799 break;
110800 case 183: /* term ::= NULL */
110801 case 188: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==188);
110802 case 189: /* term ::= STRING */ yytestcase(yyruleno==189);
110803 {spanExpr(&yygotominor.yy342, pParse, yymsp[0].major, &yymsp[0].minor.yy0);}
110804 break;
110805 case 184: /* expr ::= id */
110806 case 185: /* expr ::= JOIN_KW */ yytestcase(yyruleno==185);
110807 {spanExpr(&yygotominor.yy342, pParse, TK_ID, &yymsp[0].minor.yy0);}
110808 break;
110809 case 186: /* expr ::= nm DOT nm */
110810 {
110811 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110812 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
110813 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
110814 spanSet(&yygotominor.yy342,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
110815 }
110816 break;
110817 case 187: /* expr ::= nm DOT nm DOT nm */
110818 {
110819 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
110820 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110821 Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
110822 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
110823 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
110824 spanSet(&yygotominor.yy342,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
110825 }
110826 break;
110827 case 190: /* expr ::= REGISTER */
110828 {
110829 /* When doing a nested parse, one can include terms in an expression
110830 ** that look like this: #1 #2 ... These terms refer to registers
110831 ** in the virtual machine. #N is the N-th register. */
110832 if( pParse->nested==0 ){
@@ -110837,31 +110910,31 @@
110837 if( yygotominor.yy342.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yygotominor.yy342.pExpr->iTable);
110838 }
110839 spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110840 }
110841 break;
110842 case 191: /* expr ::= VARIABLE */
110843 {
110844 spanExpr(&yygotominor.yy342, pParse, TK_VARIABLE, &yymsp[0].minor.yy0);
110845 sqlite3ExprAssignVarNumber(pParse, yygotominor.yy342.pExpr);
110846 spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110847 }
110848 break;
110849 case 192: /* expr ::= expr COLLATE ids */
110850 {
110851 yygotominor.yy342.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy342.pExpr, &yymsp[0].minor.yy0);
110852 yygotominor.yy342.zStart = yymsp[-2].minor.yy342.zStart;
110853 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
110854 }
110855 break;
110856 case 193: /* expr ::= CAST LP expr AS typetoken RP */
110857 {
110858 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy342.pExpr, 0, &yymsp[-1].minor.yy0);
110859 spanSet(&yygotominor.yy342,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
110860 }
110861 break;
110862 case 194: /* expr ::= ID LP distinct exprlist RP */
110863 {
110864 if( yymsp[-1].minor.yy442 && yymsp[-1].minor.yy442->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
110865 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
110866 }
110867 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0);
@@ -110869,17 +110942,17 @@
110869 if( yymsp[-2].minor.yy392 && yygotominor.yy342.pExpr ){
110870 yygotominor.yy342.pExpr->flags |= EP_Distinct;
110871 }
110872 }
110873 break;
110874 case 195: /* expr ::= ID LP STAR RP */
110875 {
110876 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
110877 spanSet(&yygotominor.yy342,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
110878 }
110879 break;
110880 case 196: /* term ::= CTIME_KW */
110881 {
110882 /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
110883 ** treated as functions that return constants */
110884 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
110885 if( yygotominor.yy342.pExpr ){
@@ -110886,29 +110959,29 @@
110886 yygotominor.yy342.pExpr->op = TK_CONST_FUNC;
110887 }
110888 spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110889 }
110890 break;
110891 case 197: /* expr ::= expr AND expr */
110892 case 198: /* expr ::= expr OR expr */ yytestcase(yyruleno==198);
110893 case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199);
110894 case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200);
110895 case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201);
110896 case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202);
110897 case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203);
110898 case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204);
110899 {spanBinaryExpr(&yygotominor.yy342,pParse,yymsp[-1].major,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy342);}
110900 break;
110901 case 205: /* likeop ::= LIKE_KW */
110902 case 207: /* likeop ::= MATCH */ yytestcase(yyruleno==207);
110903 {yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.bNot = 0;}
110904 break;
110905 case 206: /* likeop ::= NOT LIKE_KW */
110906 case 208: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==208);
110907 {yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.bNot = 1;}
110908 break;
110909 case 209: /* expr ::= expr likeop expr */
110910 {
110911 ExprList *pList;
110912 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy342.pExpr);
110913 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy342.pExpr);
110914 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy318.eOperator);
@@ -110916,11 +110989,11 @@
110916 yygotominor.yy342.zStart = yymsp[-2].minor.yy342.zStart;
110917 yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110918 if( yygotominor.yy342.pExpr ) yygotominor.yy342.pExpr->flags |= EP_InfixFunc;
110919 }
110920 break;
110921 case 210: /* expr ::= expr likeop expr ESCAPE expr */
110922 {
110923 ExprList *pList;
110924 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
110925 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy342.pExpr);
110926 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy342.pExpr);
@@ -110929,39 +111002,39 @@
110929 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
110930 yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110931 if( yygotominor.yy342.pExpr ) yygotominor.yy342.pExpr->flags |= EP_InfixFunc;
110932 }
110933 break;
110934 case 211: /* expr ::= expr ISNULL|NOTNULL */
110935 {spanUnaryPostfix(&yygotominor.yy342,pParse,yymsp[0].major,&yymsp[-1].minor.yy342,&yymsp[0].minor.yy0);}
110936 break;
110937 case 212: /* expr ::= expr NOT NULL */
110938 {spanUnaryPostfix(&yygotominor.yy342,pParse,TK_NOTNULL,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy0);}
110939 break;
110940 case 213: /* expr ::= expr IS expr */
110941 {
110942 spanBinaryExpr(&yygotominor.yy342,pParse,TK_IS,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy342);
110943 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy342.pExpr, yygotominor.yy342.pExpr, TK_ISNULL);
110944 }
110945 break;
110946 case 214: /* expr ::= expr IS NOT expr */
110947 {
110948 spanBinaryExpr(&yygotominor.yy342,pParse,TK_ISNOT,&yymsp[-3].minor.yy342,&yymsp[0].minor.yy342);
110949 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy342.pExpr, yygotominor.yy342.pExpr, TK_NOTNULL);
110950 }
110951 break;
110952 case 215: /* expr ::= NOT expr */
110953 case 216: /* expr ::= BITNOT expr */ yytestcase(yyruleno==216);
110954 {spanUnaryPrefix(&yygotominor.yy342,pParse,yymsp[-1].major,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
110955 break;
110956 case 217: /* expr ::= MINUS expr */
110957 {spanUnaryPrefix(&yygotominor.yy342,pParse,TK_UMINUS,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
110958 break;
110959 case 218: /* expr ::= PLUS expr */
110960 {spanUnaryPrefix(&yygotominor.yy342,pParse,TK_UPLUS,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
110961 break;
110962 case 221: /* expr ::= expr between_op expr AND expr */
110963 {
110964 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
110965 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy342.pExpr);
110966 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy342.pExpr, 0, 0);
110967 if( yygotominor.yy342.pExpr ){
@@ -110972,11 +111045,11 @@
110972 if( yymsp[-3].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
110973 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
110974 yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110975 }
110976 break;
110977 case 224: /* expr ::= expr in_op LP exprlist RP */
110978 {
110979 if( yymsp[-1].minor.yy442==0 ){
110980 /* Expressions of the form
110981 **
110982 ** expr1 IN ()
@@ -110999,11 +111072,11 @@
110999 }
111000 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111001 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111002 }
111003 break;
111004 case 225: /* expr ::= LP select RP */
111005 {
111006 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
111007 if( yygotominor.yy342.pExpr ){
111008 yygotominor.yy342.pExpr->x.pSelect = yymsp[-1].minor.yy159;
111009 ExprSetProperty(yygotominor.yy342.pExpr, EP_xIsSelect);
@@ -111013,11 +111086,11 @@
111013 }
111014 yygotominor.yy342.zStart = yymsp[-2].minor.yy0.z;
111015 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111016 }
111017 break;
111018 case 226: /* expr ::= expr in_op LP select RP */
111019 {
111020 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy342.pExpr, 0, 0);
111021 if( yygotominor.yy342.pExpr ){
111022 yygotominor.yy342.pExpr->x.pSelect = yymsp[-1].minor.yy159;
111023 ExprSetProperty(yygotominor.yy342.pExpr, EP_xIsSelect);
@@ -111028,11 +111101,11 @@
111028 if( yymsp[-3].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111029 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111030 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111031 }
111032 break;
111033 case 227: /* expr ::= expr in_op nm dbnm */
111034 {
111035 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
111036 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy342.pExpr, 0, 0);
111037 if( yygotominor.yy342.pExpr ){
111038 yygotominor.yy342.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
@@ -111044,11 +111117,11 @@
111044 if( yymsp[-2].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111045 yygotominor.yy342.zStart = yymsp[-3].minor.yy342.zStart;
111046 yygotominor.yy342.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
111047 }
111048 break;
111049 case 228: /* expr ::= EXISTS LP select RP */
111050 {
111051 Expr *p = yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
111052 if( p ){
111053 p->x.pSelect = yymsp[-1].minor.yy159;
111054 ExprSetProperty(p, EP_xIsSelect);
@@ -111058,11 +111131,11 @@
111058 }
111059 yygotominor.yy342.zStart = yymsp[-3].minor.yy0.z;
111060 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111061 }
111062 break;
111063 case 229: /* expr ::= CASE case_operand case_exprlist case_else END */
111064 {
111065 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy122, yymsp[-1].minor.yy122, 0);
111066 if( yygotominor.yy342.pExpr ){
111067 yygotominor.yy342.pExpr->x.pList = yymsp[-2].minor.yy442;
111068 sqlite3ExprSetHeight(pParse, yygotominor.yy342.pExpr);
@@ -111071,43 +111144,43 @@
111071 }
111072 yygotominor.yy342.zStart = yymsp[-4].minor.yy0.z;
111073 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111074 }
111075 break;
111076 case 230: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
111077 {
111078 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[-2].minor.yy342.pExpr);
111079 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy342.pExpr);
111080 }
111081 break;
111082 case 231: /* case_exprlist ::= WHEN expr THEN expr */
111083 {
111084 yygotominor.yy442 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
111085 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy342.pExpr);
111086 }
111087 break;
111088 case 238: /* nexprlist ::= nexprlist COMMA expr */
111089 {yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy342.pExpr);}
111090 break;
111091 case 239: /* nexprlist ::= expr */
111092 {yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy342.pExpr);}
111093 break;
111094 case 240: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
111095 {
111096 sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0,
111097 sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy442, yymsp[-9].minor.yy392,
111098 &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy392);
111099 }
111100 break;
111101 case 241: /* uniqueflag ::= UNIQUE */
111102 case 294: /* raisetype ::= ABORT */ yytestcase(yyruleno==294);
111103 {yygotominor.yy392 = OE_Abort;}
111104 break;
111105 case 242: /* uniqueflag ::= */
111106 {yygotominor.yy392 = OE_None;}
111107 break;
111108 case 245: /* idxlist ::= idxlist COMMA nm collate sortorder */
111109 {
111110 Expr *p = 0;
111111 if( yymsp[-1].minor.yy0.n>0 ){
111112 p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
111113 sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
@@ -111116,11 +111189,11 @@
111116 sqlite3ExprListSetName(pParse,yygotominor.yy442,&yymsp[-2].minor.yy0,1);
111117 sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
111118 if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
111119 }
111120 break;
111121 case 246: /* idxlist ::= nm collate sortorder */
111122 {
111123 Expr *p = 0;
111124 if( yymsp[-1].minor.yy0.n>0 ){
111125 p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
111126 sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
@@ -111129,212 +111202,212 @@
111129 sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
111130 sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
111131 if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
111132 }
111133 break;
111134 case 247: /* collate ::= */
111135 {yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
111136 break;
111137 case 249: /* cmd ::= DROP INDEX ifexists fullname */
111138 {sqlite3DropIndex(pParse, yymsp[0].minor.yy347, yymsp[-1].minor.yy392);}
111139 break;
111140 case 250: /* cmd ::= VACUUM */
111141 case 251: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==251);
111142 {sqlite3Vacuum(pParse);}
111143 break;
111144 case 252: /* cmd ::= PRAGMA nm dbnm */
111145 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
111146 break;
111147 case 253: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
111148 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
111149 break;
111150 case 254: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
111151 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
111152 break;
111153 case 255: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
111154 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
111155 break;
111156 case 256: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
111157 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
111158 break;
111159 case 266: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
111160 {
111161 Token all;
111162 all.z = yymsp[-3].minor.yy0.z;
111163 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
111164 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy327, &all);
111165 }
111166 break;
111167 case 267: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
111168 {
111169 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy392, yymsp[-4].minor.yy410.a, yymsp[-4].minor.yy410.b, yymsp[-2].minor.yy347, yymsp[0].minor.yy122, yymsp[-10].minor.yy392, yymsp[-8].minor.yy392);
111170 yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
111171 }
111172 break;
111173 case 268: /* trigger_time ::= BEFORE */
111174 case 271: /* trigger_time ::= */ yytestcase(yyruleno==271);
111175 { yygotominor.yy392 = TK_BEFORE; }
111176 break;
111177 case 269: /* trigger_time ::= AFTER */
111178 { yygotominor.yy392 = TK_AFTER; }
111179 break;
111180 case 270: /* trigger_time ::= INSTEAD OF */
111181 { yygotominor.yy392 = TK_INSTEAD;}
111182 break;
111183 case 272: /* trigger_event ::= DELETE|INSERT */
111184 case 273: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==273);
111185 {yygotominor.yy410.a = yymsp[0].major; yygotominor.yy410.b = 0;}
111186 break;
111187 case 274: /* trigger_event ::= UPDATE OF inscollist */
111188 {yygotominor.yy410.a = TK_UPDATE; yygotominor.yy410.b = yymsp[0].minor.yy180;}
111189 break;
111190 case 277: /* when_clause ::= */
111191 case 299: /* key_opt ::= */ yytestcase(yyruleno==299);
111192 { yygotominor.yy122 = 0; }
111193 break;
111194 case 278: /* when_clause ::= WHEN expr */
111195 case 300: /* key_opt ::= KEY expr */ yytestcase(yyruleno==300);
111196 { yygotominor.yy122 = yymsp[0].minor.yy342.pExpr; }
111197 break;
111198 case 279: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
111199 {
111200 assert( yymsp[-2].minor.yy327!=0 );
111201 yymsp[-2].minor.yy327->pLast->pNext = yymsp[-1].minor.yy327;
111202 yymsp[-2].minor.yy327->pLast = yymsp[-1].minor.yy327;
111203 yygotominor.yy327 = yymsp[-2].minor.yy327;
111204 }
111205 break;
111206 case 280: /* trigger_cmd_list ::= trigger_cmd SEMI */
111207 {
111208 assert( yymsp[-1].minor.yy327!=0 );
111209 yymsp[-1].minor.yy327->pLast = yymsp[-1].minor.yy327;
111210 yygotominor.yy327 = yymsp[-1].minor.yy327;
111211 }
111212 break;
111213 case 282: /* trnm ::= nm DOT nm */
111214 {
111215 yygotominor.yy0 = yymsp[0].minor.yy0;
111216 sqlite3ErrorMsg(pParse,
111217 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
111218 "statements within triggers");
111219 }
111220 break;
111221 case 284: /* tridxby ::= INDEXED BY nm */
111222 {
111223 sqlite3ErrorMsg(pParse,
111224 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
111225 "within triggers");
111226 }
111227 break;
111228 case 285: /* tridxby ::= NOT INDEXED */
111229 {
111230 sqlite3ErrorMsg(pParse,
111231 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
111232 "within triggers");
111233 }
111234 break;
111235 case 286: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
111236 { yygotominor.yy327 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy442, yymsp[0].minor.yy122, yymsp[-5].minor.yy258); }
111237 break;
111238 case 287: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist */
111239 {yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, yymsp[0].minor.yy487.pList, yymsp[0].minor.yy487.pSelect, yymsp[-4].minor.yy258);}
111240 break;
111241 case 288: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
111242 {yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, 0, yymsp[0].minor.yy159, yymsp[-4].minor.yy258);}
111243 break;
111244 case 289: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
111245 {yygotominor.yy327 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy122);}
111246 break;
111247 case 290: /* trigger_cmd ::= select */
111248 {yygotominor.yy327 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy159); }
111249 break;
111250 case 291: /* expr ::= RAISE LP IGNORE RP */
111251 {
111252 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
111253 if( yygotominor.yy342.pExpr ){
111254 yygotominor.yy342.pExpr->affinity = OE_Ignore;
111255 }
111256 yygotominor.yy342.zStart = yymsp[-3].minor.yy0.z;
111257 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111258 }
111259 break;
111260 case 292: /* expr ::= RAISE LP raisetype COMMA nm RP */
111261 {
111262 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0);
111263 if( yygotominor.yy342.pExpr ) {
111264 yygotominor.yy342.pExpr->affinity = (char)yymsp[-3].minor.yy392;
111265 }
111266 yygotominor.yy342.zStart = yymsp[-5].minor.yy0.z;
111267 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111268 }
111269 break;
111270 case 293: /* raisetype ::= ROLLBACK */
111271 {yygotominor.yy392 = OE_Rollback;}
111272 break;
111273 case 295: /* raisetype ::= FAIL */
111274 {yygotominor.yy392 = OE_Fail;}
111275 break;
111276 case 296: /* cmd ::= DROP TRIGGER ifexists fullname */
111277 {
111278 sqlite3DropTrigger(pParse,yymsp[0].minor.yy347,yymsp[-1].minor.yy392);
111279 }
111280 break;
111281 case 297: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
111282 {
111283 sqlite3Attach(pParse, yymsp[-3].minor.yy342.pExpr, yymsp[-1].minor.yy342.pExpr, yymsp[0].minor.yy122);
111284 }
111285 break;
111286 case 298: /* cmd ::= DETACH database_kw_opt expr */
111287 {
111288 sqlite3Detach(pParse, yymsp[0].minor.yy342.pExpr);
111289 }
111290 break;
111291 case 303: /* cmd ::= REINDEX */
111292 {sqlite3Reindex(pParse, 0, 0);}
111293 break;
111294 case 304: /* cmd ::= REINDEX nm dbnm */
111295 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
111296 break;
111297 case 305: /* cmd ::= ANALYZE */
111298 {sqlite3Analyze(pParse, 0, 0);}
111299 break;
111300 case 306: /* cmd ::= ANALYZE nm dbnm */
111301 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
111302 break;
111303 case 307: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
111304 {
111305 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy347,&yymsp[0].minor.yy0);
111306 }
111307 break;
111308 case 308: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */
111309 {
111310 sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0);
111311 }
111312 break;
111313 case 309: /* add_column_fullname ::= fullname */
111314 {
111315 pParse->db->lookaside.bEnabled = 0;
111316 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy347);
111317 }
111318 break;
111319 case 312: /* cmd ::= create_vtab */
111320 {sqlite3VtabFinishParse(pParse,0);}
111321 break;
111322 case 313: /* cmd ::= create_vtab LP vtabarglist RP */
111323 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
111324 break;
111325 case 314: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
111326 {
111327 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy392);
111328 }
111329 break;
111330 case 317: /* vtabarg ::= */
111331 {sqlite3VtabArgInit(pParse);}
111332 break;
111333 case 319: /* vtabargtoken ::= ANY */
111334 case 320: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==320);
111335 case 321: /* lp ::= LP */ yytestcase(yyruleno==321);
111336 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
111337 break;
111338 default:
111339 /* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
111340 /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
@@ -111350,28 +111423,29 @@
111350 /* (34) columnlist ::= columnlist COMMA column */ yytestcase(yyruleno==34);
111351 /* (35) columnlist ::= column */ yytestcase(yyruleno==35);
111352 /* (44) type ::= */ yytestcase(yyruleno==44);
111353 /* (51) signed ::= plus_num */ yytestcase(yyruleno==51);
111354 /* (52) signed ::= minus_num */ yytestcase(yyruleno==52);
111355 /* (53) carglist ::= carglist cname ccons */ yytestcase(yyruleno==53);
111356 /* (54) carglist ::= */ yytestcase(yyruleno==54);
111357 /* (62) ccons ::= NULL onconf */ yytestcase(yyruleno==62);
111358 /* (90) conslist ::= conslist COMMA cname tcons */ yytestcase(yyruleno==90);
 
111359 /* (91) conslist ::= cname tcons */ yytestcase(yyruleno==91);
111360 /* (275) foreach_clause ::= */ yytestcase(yyruleno==275);
111361 /* (276) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==276);
111362 /* (283) tridxby ::= */ yytestcase(yyruleno==283);
111363 /* (301) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==301);
111364 /* (302) database_kw_opt ::= */ yytestcase(yyruleno==302);
111365 /* (310) kwcolumn_opt ::= */ yytestcase(yyruleno==310);
111366 /* (311) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==311);
111367 /* (315) vtabarglist ::= vtabarg */ yytestcase(yyruleno==315);
111368 /* (316) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==316);
111369 /* (318) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==318);
111370 /* (322) anylist ::= */ yytestcase(yyruleno==322);
111371 /* (323) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==323);
111372 /* (324) anylist ::= anylist ANY */ yytestcase(yyruleno==324);
111373 break;
111374 };
111375 yygoto = yyRuleInfo[yyruleno].lhs;
111376 yysize = yyRuleInfo[yyruleno].nrhs;
111377 yypParser->yyidx -= yysize;
111378
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -657,11 +657,11 @@
657 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
658 ** [sqlite_version()] and [sqlite_source_id()].
659 */
660 #define SQLITE_VERSION "3.7.12"
661 #define SQLITE_VERSION_NUMBER 3007012
662 #define SQLITE_SOURCE_ID "2012-05-08 11:17:33 38bf90af1ede6ee64ef7be66392e895e60c9126e"
663
664 /*
665 ** CAPI3REF: Run-Time Library Version Numbers
666 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
667 **
@@ -1006,10 +1006,11 @@
1006 #define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
1007 #define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
1008 #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
1009 #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
1010 #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
1011 #define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
1012 #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
1013 #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
1014 #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
1015 #define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
1016
@@ -35172,10 +35173,39 @@
35173 zBuf[j+1] = 0;
35174
35175 OSTRACE(("TEMP FILENAME: %s\n", zBuf));
35176 return SQLITE_OK;
35177 }
35178
35179 /*
35180 ** Return TRUE if the named file is really a directory. Return false if
35181 ** it is something other than a directory, or if there is any kind of memory
35182 ** allocation failure.
35183 */
35184 static int winIsDir(const void *zConverted){
35185 DWORD attr;
35186 int rc = 0;
35187 DWORD lastErrno;
35188
35189 if( isNT() ){
35190 int cnt = 0;
35191 WIN32_FILE_ATTRIBUTE_DATA sAttrData;
35192 memset(&sAttrData, 0, sizeof(sAttrData));
35193 while( !(rc = osGetFileAttributesExW((LPCWSTR)zConverted,
35194 GetFileExInfoStandard,
35195 &sAttrData)) && retryIoerr(&cnt, &lastErrno) ){}
35196 if( !rc ){
35197 return 0; /* Invalid name? */
35198 }
35199 attr = sAttrData.dwFileAttributes;
35200 #if SQLITE_OS_WINCE==0
35201 }else{
35202 attr = osGetFileAttributesA((char*)zConverted);
35203 #endif
35204 }
35205 return (attr!=INVALID_FILE_ATTRIBUTES) && (attr&FILE_ATTRIBUTE_DIRECTORY);
35206 }
35207
35208 /*
35209 ** Open a file.
35210 */
35211 static int winOpen(
@@ -35278,10 +35308,15 @@
35308 /* Convert the filename to the system encoding. */
35309 zConverted = convertUtf8Filename(zUtf8Name);
35310 if( zConverted==0 ){
35311 return SQLITE_IOERR_NOMEM;
35312 }
35313
35314 if( winIsDir(zConverted) ){
35315 sqlite3_free(zConverted);
35316 return SQLITE_CANTOPEN_ISDIR;
35317 }
35318
35319 if( isReadWrite ){
35320 dwDesiredAccess = GENERIC_READ | GENERIC_WRITE;
35321 }else{
35322 dwDesiredAccess = GENERIC_READ;
@@ -35328,24 +35363,24 @@
35363 dwDesiredAccess,
35364 dwShareMode, NULL,
35365 dwCreationDisposition,
35366 dwFlagsAndAttributes,
35367 NULL))==INVALID_HANDLE_VALUE &&
35368 retryIoerr(&cnt, &lastErrno) ){
35369 /* Noop */
35370 }
 
 
35371 #if SQLITE_OS_WINCE==0
35372 }else{
35373 while( (h = osCreateFileA((LPCSTR)zConverted,
35374 dwDesiredAccess,
35375 dwShareMode, NULL,
35376 dwCreationDisposition,
35377 dwFlagsAndAttributes,
35378 NULL))==INVALID_HANDLE_VALUE &&
35379 retryIoerr(&cnt, &lastErrno) ){
35380 /* Noop */
35381 }
35382 #endif
35383 }
35384
35385 logIoerr(cnt);
35386
@@ -35421,10 +35456,11 @@
35456 const char *zFilename, /* Name of file to delete */
35457 int syncDir /* Not used on win32 */
35458 ){
35459 int cnt = 0;
35460 int rc;
35461 DWORD attr;
35462 DWORD lastErrno;
35463 void *zConverted;
35464 UNUSED_PARAMETER(pVfs);
35465 UNUSED_PARAMETER(syncDir);
35466
@@ -35432,24 +35468,54 @@
35468 zConverted = convertUtf8Filename(zFilename);
35469 if( zConverted==0 ){
35470 return SQLITE_IOERR_NOMEM;
35471 }
35472 if( isNT() ){
35473 do {
35474 attr = osGetFileAttributesW(zConverted);
35475 if ( attr==INVALID_FILE_ATTRIBUTES ){
35476 rc = SQLITE_OK; /* Already gone? */
35477 break;
35478 }
35479 if ( attr&FILE_ATTRIBUTE_DIRECTORY ){
35480 rc = SQLITE_ERROR; /* Files only. */
35481 break;
35482 }
35483 if ( osDeleteFileW(zConverted) ){
35484 rc = SQLITE_OK; /* Deleted OK. */
35485 break;
35486 }
35487 if ( !retryIoerr(&cnt, &lastErrno) ){
35488 rc = SQLITE_ERROR; /* No more retries. */
35489 break;
35490 }
35491 } while(1);
35492 /* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
35493 ** Since the ANSI version of these Windows API do not exist for WINCE,
35494 ** it's important to not reference them for WINCE builds.
35495 */
35496 #if SQLITE_OS_WINCE==0
35497 }else{
35498 do {
35499 attr = osGetFileAttributesA(zConverted);
35500 if ( attr==INVALID_FILE_ATTRIBUTES ){
35501 rc = SQLITE_OK; /* Already gone? */
35502 break;
35503 }
35504 if ( attr&FILE_ATTRIBUTE_DIRECTORY ){
35505 rc = SQLITE_ERROR; /* Files only. */
35506 break;
35507 }
35508 if ( osDeleteFileA(zConverted) ){
35509 rc = SQLITE_OK; /* Deleted OK. */
35510 break;
35511 }
35512 if ( !retryIoerr(&cnt, &lastErrno) ){
35513 rc = SQLITE_ERROR; /* No more retries. */
35514 break;
35515 }
35516 } while(1);
35517 #endif
35518 }
35519 if( rc ){
35520 rc = winLogError(SQLITE_IOERR_DELETE, lastErrno,
35521 "winDelete", zFilename);
@@ -108378,12 +108444,12 @@
108444 #endif
108445 #define sqlite3ParserARG_SDECL Parse *pParse;
108446 #define sqlite3ParserARG_PDECL ,Parse *pParse
108447 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
108448 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
108449 #define YYNSTATE 630
108450 #define YYNRULE 327
108451 #define YYFALLBACK 1
108452 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
108453 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
108454 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
108455
@@ -108449,478 +108515,479 @@
108515 ** shifting terminals.
108516 ** yy_reduce_ofst[] For each state, the offset into yy_action for
108517 ** shifting non-terminals after a reduce.
108518 ** yy_default[] Default action for each state.
108519 */
108520 #define YY_ACTTAB_COUNT (1562)
108521 static const YYACTIONTYPE yy_action[] = {
108522 /* 0 */ 312, 330, 575, 574, 15, 171, 186, 597, 56, 56,
108523 /* 10 */ 56, 56, 49, 54, 54, 54, 54, 53, 53, 52,
108524 /* 20 */ 52, 52, 51, 235, 52, 52, 52, 51, 235, 627,
108525 /* 30 */ 590, 584, 56, 56, 56, 56, 316, 54, 54, 54,
108526 /* 40 */ 54, 53, 53, 52, 52, 52, 51, 235, 301, 57,
108527 /* 50 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108528 /* 60 */ 56, 56, 571, 54, 54, 54, 54, 53, 53, 52,
108529 /* 70 */ 52, 52, 51, 235, 312, 597, 328, 198, 197, 196,
108530 /* 80 */ 33, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108531 /* 90 */ 51, 235, 53, 53, 52, 52, 52, 51, 235, 492,
108532 /* 100 */ 597, 441, 66, 237, 590, 584, 597, 299, 365, 59,
108533 /* 110 */ 482, 67, 362, 1, 621, 353, 621, 623, 622, 516,
108534 /* 120 */ 515, 442, 443, 57, 58, 48, 582, 581, 583, 583,
108535 /* 130 */ 55, 55, 56, 56, 56, 56, 608, 54, 54, 54,
108536 /* 140 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 225,
108537 /* 150 */ 618, 617, 616, 176, 138, 283, 386, 278, 385, 168,
108538 /* 160 */ 492, 554, 623, 622, 623, 622, 274, 441, 597, 412,
108539 /* 170 */ 553, 607, 67, 215, 597, 621, 506, 507, 590, 584,
108540 /* 180 */ 444, 571, 621, 391, 415, 620, 619, 442, 338, 623,
108541 /* 190 */ 622, 392, 601, 92, 224, 193, 671, 57, 58, 48,
108542 /* 200 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56,
108543 /* 210 */ 672, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108544 /* 220 */ 51, 235, 312, 262, 234, 233, 505, 132, 486, 510,
108545 /* 230 */ 620, 619, 620, 619, 399, 438, 487, 566, 621, 389,
108546 /* 240 */ 412, 384, 440, 532, 439, 602, 339, 571, 504, 603,
108547 /* 250 */ 203, 533, 590, 584, 45, 415, 548, 620, 619, 383,
108548 /* 260 */ 380, 379, 6, 601, 92, 526, 261, 572, 572, 595,
108549 /* 270 */ 378, 57, 58, 48, 582, 581, 583, 583, 55, 55,
108550 /* 280 */ 56, 56, 56, 56, 600, 54, 54, 54, 54, 53,
108551 /* 290 */ 53, 52, 52, 52, 51, 235, 312, 466, 326, 561,
108552 /* 300 */ 593, 593, 593, 282, 311, 399, 412, 568, 493, 214,
108553 /* 310 */ 400, 623, 622, 68, 281, 560, 7, 623, 622, 167,
108554 /* 320 */ 577, 415, 65, 408, 575, 574, 590, 584, 673, 601,
108555 /* 330 */ 92, 559, 410, 520, 579, 579, 306, 425, 623, 622,
108556 /* 340 */ 208, 572, 572, 467, 519, 57, 58, 48, 582, 581,
108557 /* 350 */ 583, 583, 55, 55, 56, 56, 56, 56, 576, 54,
108558 /* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235,
108559 /* 370 */ 312, 399, 412, 317, 600, 412, 350, 549, 578, 620,
108560 /* 380 */ 619, 423, 204, 175, 571, 620, 619, 415, 551, 355,
108561 /* 390 */ 415, 257, 349, 256, 174, 601, 74, 354, 601, 91,
108562 /* 400 */ 590, 584, 237, 467, 621, 547, 620, 619, 164, 623,
108563 /* 410 */ 622, 544, 62, 39, 251, 580, 600, 348, 555, 57,
108564 /* 420 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108565 /* 430 */ 56, 56, 565, 54, 54, 54, 54, 53, 53, 52,
108566 /* 440 */ 52, 52, 51, 235, 312, 554, 182, 145, 531, 292,
108567 /* 450 */ 231, 257, 349, 256, 553, 221, 412, 181, 248, 549,
108568 /* 460 */ 250, 412, 237, 50, 47, 146, 412, 410, 412, 579,
108569 /* 470 */ 579, 415, 549, 567, 590, 584, 415, 620, 619, 601,
108570 /* 480 */ 16, 415, 189, 415, 601, 92, 268, 36, 544, 601,
108571 /* 490 */ 92, 601, 73, 57, 58, 48, 582, 581, 583, 583,
108572 /* 500 */ 55, 55, 56, 56, 56, 56, 187, 54, 54, 54,
108573 /* 510 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 564,
108574 /* 520 */ 397, 410, 528, 579, 579, 561, 395, 535, 201, 145,
108575 /* 530 */ 264, 320, 266, 388, 375, 410, 249, 579, 579, 236,
108576 /* 540 */ 40, 560, 38, 50, 47, 146, 19, 606, 590, 584,
108577 /* 550 */ 422, 948, 563, 948, 549, 496, 472, 559, 602, 403,
108578 /* 560 */ 422, 947, 603, 947, 562, 167, 200, 57, 58, 48,
108579 /* 570 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56,
108580 /* 580 */ 156, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108581 /* 590 */ 51, 235, 312, 262, 412, 426, 511, 208, 347, 492,
108582 /* 600 */ 600, 50, 47, 146, 410, 426, 579, 579, 621, 415,
108583 /* 610 */ 430, 67, 199, 143, 621, 166, 474, 601, 69, 317,
108584 /* 620 */ 475, 435, 590, 584, 274, 234, 233, 958, 184, 420,
108585 /* 630 */ 2, 600, 358, 552, 366, 470, 336, 476, 476, 368,
108586 /* 640 */ 359, 57, 58, 48, 582, 581, 583, 583, 55, 55,
108587 /* 650 */ 56, 56, 56, 56, 354, 54, 54, 54, 54, 53,
108588 /* 660 */ 53, 52, 52, 52, 51, 235, 312, 412, 572, 572,
108589 /* 670 */ 271, 412, 558, 874, 361, 213, 143, 412, 50, 47,
108590 /* 680 */ 146, 30, 415, 540, 355, 334, 415, 412, 629, 2,
108591 /* 690 */ 601, 94, 415, 513, 601, 97, 590, 584, 621, 621,
108592 /* 700 */ 601, 95, 415, 306, 424, 630, 628, 332, 173, 269,
108593 /* 710 */ 601, 104, 171, 546, 597, 57, 58, 48, 582, 581,
108594 /* 720 */ 583, 583, 55, 55, 56, 56, 56, 56, 412, 54,
108595 /* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235,
108596 /* 740 */ 312, 412, 275, 415, 412, 22, 329, 340, 423, 544,
108597 /* 750 */ 217, 601, 103, 568, 407, 214, 415, 621, 35, 415,
108598 /* 760 */ 412, 540, 412, 12, 601, 105, 237, 601, 106, 11,
108599 /* 770 */ 590, 584, 50, 47, 146, 415, 621, 415, 353, 325,
108600 /* 780 */ 164, 129, 597, 601, 133, 601, 134, 207, 287, 57,
108601 /* 790 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108602 /* 800 */ 56, 56, 412, 54, 54, 54, 54, 53, 53, 52,
108603 /* 810 */ 52, 52, 51, 235, 312, 412, 275, 415, 412, 275,
108604 /* 820 */ 275, 600, 275, 544, 367, 601, 98, 542, 412, 170,
108605 /* 830 */ 415, 621, 524, 415, 621, 621, 169, 621, 601, 102,
108606 /* 840 */ 604, 601, 101, 415, 590, 584, 352, 21, 500, 32,
108607 /* 850 */ 166, 601, 93, 223, 318, 147, 324, 323, 272, 322,
108608 /* 860 */ 166, 205, 285, 57, 58, 48, 582, 581, 583, 583,
108609 /* 870 */ 55, 55, 56, 56, 56, 56, 412, 54, 54, 54,
108610 /* 880 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 412,
108611 /* 890 */ 262, 415, 412, 538, 360, 600, 360, 202, 142, 601,
108612 /* 900 */ 100, 376, 412, 166, 415, 621, 540, 415, 360, 621,
108613 /* 910 */ 141, 621, 601, 77, 230, 601, 96, 415, 590, 584,
108614 /* 920 */ 341, 621, 530, 621, 529, 601, 137, 471, 382, 166,
108615 /* 930 */ 460, 600, 170, 453, 427, 307, 28, 57, 58, 48,
108616 /* 940 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56,
108617 /* 950 */ 412, 54, 54, 54, 54, 53, 53, 52, 52, 52,
108618 /* 960 */ 51, 235, 312, 412, 503, 415, 412, 212, 459, 321,
108619 /* 970 */ 35, 211, 127, 601, 136, 428, 412, 308, 415, 412,
108620 /* 980 */ 273, 415, 222, 126, 255, 27, 601, 135, 377, 601,
108621 /* 990 */ 76, 415, 590, 584, 415, 262, 220, 51, 235, 601,
108622 /* 1000 */ 90, 600, 601, 89, 125, 600, 281, 522, 521, 373,
108623 /* 1010 */ 621, 57, 46, 48, 582, 581, 583, 583, 55, 55,
108624 /* 1020 */ 56, 56, 56, 56, 412, 54, 54, 54, 54, 53,
108625 /* 1030 */ 53, 52, 52, 52, 51, 235, 312, 412, 451, 415,
108626 /* 1040 */ 165, 624, 612, 611, 469, 521, 480, 601, 75, 185,
108627 /* 1050 */ 412, 122, 415, 412, 369, 412, 621, 621, 621, 477,
108628 /* 1060 */ 601, 88, 589, 588, 170, 415, 590, 584, 415, 121,
108629 /* 1070 */ 415, 473, 259, 601, 87, 159, 601, 99, 601, 86,
108630 /* 1080 */ 628, 332, 120, 14, 586, 585, 58, 48, 582, 581,
108631 /* 1090 */ 583, 583, 55, 55, 56, 56, 56, 56, 412, 54,
108632 /* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235,
108633 /* 1110 */ 312, 587, 412, 415, 412, 465, 262, 262, 610, 605,
108634 /* 1120 */ 158, 601, 17, 157, 412, 462, 25, 415, 118, 415,
108635 /* 1130 */ 412, 621, 621, 621, 621, 601, 85, 601, 84, 415,
108636 /* 1140 */ 590, 584, 411, 262, 24, 415, 117, 601, 83, 10,
108637 /* 1150 */ 351, 4, 115, 601, 72, 458, 456, 621, 621, 450,
108638 /* 1160 */ 449, 48, 582, 581, 583, 583, 55, 55, 56, 56,
108639 /* 1170 */ 56, 56, 253, 54, 54, 54, 54, 53, 53, 52,
108640 /* 1180 */ 52, 52, 51, 235, 44, 406, 219, 3, 412, 452,
108641 /* 1190 */ 262, 416, 622, 154, 594, 110, 107, 108, 401, 446,
108642 /* 1200 */ 64, 557, 409, 415, 412, 621, 437, 44, 406, 621,
108643 /* 1210 */ 3, 601, 71, 621, 416, 622, 621, 545, 335, 415,
108644 /* 1220 */ 436, 404, 149, 239, 262, 409, 188, 601, 82, 331,
108645 /* 1230 */ 541, 566, 621, 218, 421, 539, 229, 139, 124, 621,
108646 /* 1240 */ 148, 419, 626, 625, 404, 621, 412, 238, 315, 123,
108647 /* 1250 */ 621, 41, 42, 534, 566, 206, 412, 277, 43, 414,
108648 /* 1260 */ 413, 415, 509, 595, 314, 615, 180, 245, 614, 601,
108649 /* 1270 */ 81, 415, 621, 276, 41, 42, 613, 621, 412, 601,
108650 /* 1280 */ 80, 43, 414, 413, 179, 270, 595, 418, 621, 600,
108651 /* 1290 */ 484, 8, 177, 415, 593, 593, 593, 592, 591, 13,
108652 /* 1300 */ 621, 601, 70, 417, 237, 621, 44, 406, 267, 3,
108653 /* 1310 */ 237, 265, 342, 416, 622, 599, 296, 593, 593, 593,
108654 /* 1320 */ 592, 591, 13, 621, 409, 412, 621, 412, 396, 34,
108655 /* 1330 */ 406, 412, 3, 31, 30, 294, 416, 622, 293, 333,
108656 /* 1340 */ 415, 263, 415, 404, 398, 258, 415, 409, 601, 18,
108657 /* 1350 */ 601, 79, 363, 566, 601, 78, 621, 295, 60, 37,
108658 /* 1360 */ 621, 172, 464, 390, 463, 598, 404, 621, 356, 288,
108659 /* 1370 */ 232, 29, 556, 41, 42, 252, 566, 621, 415, 621,
108660 /* 1380 */ 43, 414, 413, 621, 455, 595, 601, 9, 183, 61,
108661 /* 1390 */ 621, 543, 445, 623, 622, 244, 41, 42, 241, 621,
108662 /* 1400 */ 240, 393, 286, 43, 414, 413, 284, 621, 595, 431,
108663 /* 1410 */ 621, 291, 537, 621, 536, 621, 593, 593, 593, 592,
108664 /* 1420 */ 591, 13, 216, 144, 621, 387, 621, 304, 303, 302,
108665 /* 1430 */ 178, 300, 394, 566, 454, 517, 290, 523, 621, 593,
108666 /* 1440 */ 593, 593, 592, 591, 13, 518, 327, 621, 150, 279,
108667 /* 1450 */ 243, 621, 514, 192, 191, 513, 512, 310, 128, 242,
108668 /* 1460 */ 228, 526, 227, 226, 490, 595, 494, 489, 488, 309,
108669 /* 1470 */ 194, 164, 152, 163, 467, 374, 481, 372, 153, 162,
108670 /* 1480 */ 161, 151, 210, 479, 260, 370, 26, 478, 160, 468,
108671 /* 1490 */ 364, 140, 119, 116, 131, 457, 593, 593, 593, 155,
108672 /* 1500 */ 114, 346, 345, 113, 112, 111, 448, 109, 130, 23,
108673 /* 1510 */ 319, 20, 434, 433, 432, 63, 429, 609, 190, 510,
108674 /* 1520 */ 596, 405, 257, 344, 246, 297, 280, 573, 313, 570,
108675 /* 1530 */ 195, 499, 498, 237, 497, 495, 381, 289, 461, 247,
108676 /* 1540 */ 357, 254, 305, 343, 5, 447, 569, 209, 550, 371,
108677 /* 1550 */ 508, 491, 402, 502, 501, 298, 337, 527, 525, 485,
108678 /* 1560 */ 483, 235,
108679 };
108680 static const YYCODETYPE yy_lookahead[] = {
108681 /* 0 */ 19, 169, 170, 171, 22, 24, 24, 26, 77, 78,
108682 /* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
108683 /* 20 */ 89, 90, 91, 92, 88, 89, 90, 91, 92, 1,
108684 /* 30 */ 49, 50, 77, 78, 79, 80, 155, 82, 83, 84,
108685 /* 40 */ 85, 86, 87, 88, 89, 90, 91, 92, 15, 68,
108686 /* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108687 /* 60 */ 79, 80, 230, 82, 83, 84, 85, 86, 87, 88,
108688 /* 70 */ 89, 90, 91, 92, 19, 94, 19, 105, 106, 107,
108689 /* 80 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108690 /* 90 */ 91, 92, 86, 87, 88, 89, 90, 91, 92, 150,
108691 /* 100 */ 26, 150, 22, 116, 49, 50, 26, 158, 227, 54,
108692 /* 110 */ 161, 162, 231, 22, 165, 128, 165, 26, 27, 7,
108693 /* 120 */ 8, 170, 171, 68, 69, 70, 71, 72, 73, 74,
108694 /* 130 */ 75, 76, 77, 78, 79, 80, 23, 82, 83, 84,
108695 /* 140 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 92,
108696 /* 150 */ 7, 8, 9, 96, 97, 98, 99, 100, 101, 102,
108697 /* 160 */ 150, 32, 26, 27, 26, 27, 109, 150, 94, 150,
108698 /* 170 */ 41, 161, 162, 22, 94, 165, 97, 98, 49, 50,
108699 /* 180 */ 229, 230, 165, 19, 165, 94, 95, 170, 171, 26,
108700 /* 190 */ 27, 27, 173, 174, 184, 185, 118, 68, 69, 70,
108701 /* 200 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108702 /* 210 */ 118, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108703 /* 220 */ 91, 92, 19, 150, 86, 87, 36, 24, 180, 181,
108704 /* 230 */ 94, 95, 94, 95, 215, 97, 188, 66, 165, 220,
108705 /* 240 */ 150, 51, 104, 23, 106, 113, 229, 230, 58, 117,
108706 /* 250 */ 160, 88, 49, 50, 22, 165, 120, 94, 95, 99,
108707 /* 260 */ 100, 101, 22, 173, 174, 94, 193, 129, 130, 98,
108708 /* 270 */ 110, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108709 /* 280 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86,
108710 /* 290 */ 87, 88, 89, 90, 91, 92, 19, 11, 108, 12,
108711 /* 300 */ 129, 130, 131, 98, 163, 215, 150, 166, 167, 168,
108712 /* 310 */ 220, 26, 27, 22, 109, 28, 76, 26, 27, 50,
108713 /* 320 */ 23, 165, 25, 169, 170, 171, 49, 50, 118, 173,
108714 /* 330 */ 174, 44, 112, 46, 114, 115, 22, 23, 26, 27,
108715 /* 340 */ 160, 129, 130, 57, 57, 68, 69, 70, 71, 72,
108716 /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 23, 82,
108717 /* 360 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108718 /* 370 */ 19, 215, 150, 104, 194, 150, 220, 25, 23, 94,
108719 /* 380 */ 95, 67, 160, 118, 230, 94, 95, 165, 25, 150,
108720 /* 390 */ 165, 105, 106, 107, 118, 173, 174, 217, 173, 174,
108721 /* 400 */ 49, 50, 116, 57, 165, 120, 94, 95, 96, 26,
108722 /* 410 */ 27, 166, 232, 136, 16, 113, 194, 237, 176, 68,
108723 /* 420 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108724 /* 430 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88,
108725 /* 440 */ 89, 90, 91, 92, 19, 32, 23, 95, 23, 224,
108726 /* 450 */ 205, 105, 106, 107, 41, 216, 150, 23, 60, 25,
108727 /* 460 */ 62, 150, 116, 221, 222, 223, 150, 112, 150, 114,
108728 /* 470 */ 115, 165, 120, 23, 49, 50, 165, 94, 95, 173,
108729 /* 480 */ 174, 165, 119, 165, 173, 174, 16, 136, 166, 173,
108730 /* 490 */ 174, 173, 174, 68, 69, 70, 71, 72, 73, 74,
108731 /* 500 */ 75, 76, 77, 78, 79, 80, 22, 82, 83, 84,
108732 /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 11,
108733 /* 520 */ 214, 112, 23, 114, 115, 12, 215, 205, 22, 95,
108734 /* 530 */ 60, 215, 62, 88, 19, 112, 138, 114, 115, 197,
108735 /* 540 */ 135, 28, 137, 221, 222, 223, 204, 172, 49, 50,
108736 /* 550 */ 22, 23, 23, 25, 120, 180, 21, 44, 113, 46,
108737 /* 560 */ 22, 23, 117, 25, 23, 50, 160, 68, 69, 70,
108738 /* 570 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108739 /* 580 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108740 /* 590 */ 91, 92, 19, 150, 150, 67, 23, 160, 63, 150,
108741 /* 600 */ 194, 221, 222, 223, 112, 67, 114, 115, 165, 165,
108742 /* 610 */ 161, 162, 206, 207, 165, 25, 30, 173, 174, 104,
108743 /* 620 */ 34, 241, 49, 50, 109, 86, 87, 142, 143, 144,
108744 /* 630 */ 145, 194, 19, 176, 48, 100, 193, 105, 106, 107,
108745 /* 640 */ 27, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108746 /* 650 */ 77, 78, 79, 80, 217, 82, 83, 84, 85, 86,
108747 /* 660 */ 87, 88, 89, 90, 91, 92, 19, 150, 129, 130,
108748 /* 670 */ 23, 150, 23, 138, 237, 206, 207, 150, 221, 222,
108749 /* 680 */ 223, 126, 165, 150, 150, 242, 165, 150, 144, 145,
108750 /* 690 */ 173, 174, 165, 103, 173, 174, 49, 50, 165, 165,
108751 /* 700 */ 173, 174, 165, 22, 23, 0, 1, 2, 25, 25,
108752 /* 710 */ 173, 174, 24, 120, 26, 68, 69, 70, 71, 72,
108753 /* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
108754 /* 730 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108755 /* 740 */ 19, 150, 150, 165, 150, 24, 213, 97, 67, 166,
108756 /* 750 */ 216, 173, 174, 166, 167, 168, 165, 165, 25, 165,
108757 /* 760 */ 150, 150, 150, 35, 173, 174, 116, 173, 174, 35,
108758 /* 770 */ 49, 50, 221, 222, 223, 165, 165, 165, 128, 187,
108759 /* 780 */ 96, 22, 94, 173, 174, 173, 174, 160, 205, 68,
108760 /* 790 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108761 /* 800 */ 79, 80, 150, 82, 83, 84, 85, 86, 87, 88,
108762 /* 810 */ 89, 90, 91, 92, 19, 150, 150, 165, 150, 150,
108763 /* 820 */ 150, 194, 150, 166, 213, 173, 174, 23, 150, 25,
108764 /* 830 */ 165, 165, 165, 165, 165, 165, 35, 165, 173, 174,
108765 /* 840 */ 173, 173, 174, 165, 49, 50, 219, 52, 23, 25,
108766 /* 850 */ 25, 173, 174, 187, 245, 246, 187, 187, 23, 187,
108767 /* 860 */ 25, 160, 205, 68, 69, 70, 71, 72, 73, 74,
108768 /* 870 */ 75, 76, 77, 78, 79, 80, 150, 82, 83, 84,
108769 /* 880 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 150,
108770 /* 890 */ 150, 165, 150, 27, 150, 194, 150, 160, 118, 173,
108771 /* 900 */ 174, 23, 150, 25, 165, 165, 150, 165, 150, 165,
108772 /* 910 */ 39, 165, 173, 174, 52, 173, 174, 165, 49, 50,
108773 /* 920 */ 219, 165, 23, 165, 23, 173, 174, 23, 52, 25,
108774 /* 930 */ 23, 194, 25, 193, 247, 248, 22, 68, 69, 70,
108775 /* 940 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
108776 /* 950 */ 150, 82, 83, 84, 85, 86, 87, 88, 89, 90,
108777 /* 960 */ 91, 92, 19, 150, 29, 165, 150, 160, 23, 213,
108778 /* 970 */ 25, 160, 22, 173, 174, 23, 150, 25, 165, 150,
108779 /* 980 */ 23, 165, 238, 22, 238, 22, 173, 174, 52, 173,
108780 /* 990 */ 174, 165, 49, 50, 165, 150, 238, 91, 92, 173,
108781 /* 1000 */ 174, 194, 173, 174, 22, 194, 109, 190, 191, 19,
108782 /* 1010 */ 165, 68, 69, 70, 71, 72, 73, 74, 75, 76,
108783 /* 1020 */ 77, 78, 79, 80, 150, 82, 83, 84, 85, 86,
108784 /* 1030 */ 87, 88, 89, 90, 91, 92, 19, 150, 193, 165,
108785 /* 1040 */ 102, 150, 150, 150, 190, 191, 20, 173, 174, 24,
108786 /* 1050 */ 150, 104, 165, 150, 43, 150, 165, 165, 165, 59,
108787 /* 1060 */ 173, 174, 49, 50, 25, 165, 49, 50, 165, 53,
108788 /* 1070 */ 165, 53, 138, 173, 174, 104, 173, 174, 173, 174,
108789 /* 1080 */ 1, 2, 22, 5, 71, 72, 69, 70, 71, 72,
108790 /* 1090 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
108791 /* 1100 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
108792 /* 1110 */ 19, 98, 150, 165, 150, 1, 150, 150, 150, 150,
108793 /* 1120 */ 118, 173, 174, 35, 150, 27, 76, 165, 108, 165,
108794 /* 1130 */ 150, 165, 165, 165, 165, 173, 174, 173, 174, 165,
108795 /* 1140 */ 49, 50, 150, 150, 76, 165, 127, 173, 174, 22,
108796 /* 1150 */ 25, 22, 119, 173, 174, 23, 1, 165, 165, 193,
108797 /* 1160 */ 193, 70, 71, 72, 73, 74, 75, 76, 77, 78,
108798 /* 1170 */ 79, 80, 16, 82, 83, 84, 85, 86, 87, 88,
108799 /* 1180 */ 89, 90, 91, 92, 19, 20, 193, 22, 150, 20,
108800 /* 1190 */ 150, 26, 27, 121, 150, 119, 127, 108, 150, 128,
108801 /* 1200 */ 16, 150, 37, 165, 150, 165, 23, 19, 20, 165,
108802 /* 1210 */ 22, 173, 174, 165, 26, 27, 165, 150, 65, 165,
108803 /* 1220 */ 23, 56, 15, 140, 150, 37, 22, 173, 174, 3,
108804 /* 1230 */ 150, 66, 165, 193, 4, 150, 179, 164, 179, 165,
108805 /* 1240 */ 246, 146, 147, 149, 56, 165, 150, 152, 249, 154,
108806 /* 1250 */ 165, 86, 87, 88, 66, 160, 150, 150, 93, 94,
108807 /* 1260 */ 95, 165, 150, 98, 249, 149, 6, 193, 149, 173,
108808 /* 1270 */ 174, 165, 165, 150, 86, 87, 13, 165, 150, 173,
108809 /* 1280 */ 174, 93, 94, 95, 151, 150, 98, 149, 165, 194,
108810 /* 1290 */ 150, 25, 151, 165, 129, 130, 131, 132, 133, 134,
108811 /* 1300 */ 165, 173, 174, 159, 116, 165, 19, 20, 150, 22,
108812 /* 1310 */ 116, 150, 217, 26, 27, 194, 199, 129, 130, 131,
108813 /* 1320 */ 132, 133, 134, 165, 37, 150, 165, 150, 123, 19,
108814 /* 1330 */ 20, 150, 22, 124, 126, 201, 26, 27, 202, 244,
108815 /* 1340 */ 165, 150, 165, 56, 122, 150, 165, 37, 173, 174,
108816 /* 1350 */ 173, 174, 150, 66, 173, 174, 165, 200, 125, 135,
108817 /* 1360 */ 165, 118, 150, 150, 150, 203, 56, 165, 150, 210,
108818 /* 1370 */ 225, 104, 157, 86, 87, 150, 66, 165, 165, 165,
108819 /* 1380 */ 93, 94, 95, 165, 150, 98, 173, 174, 157, 22,
108820 /* 1390 */ 165, 211, 150, 26, 27, 150, 86, 87, 150, 165,
108821 /* 1400 */ 150, 121, 210, 93, 94, 95, 210, 165, 98, 150,
108822 /* 1410 */ 165, 150, 211, 165, 211, 165, 129, 130, 131, 132,
108823 /* 1420 */ 133, 134, 5, 150, 165, 104, 165, 10, 11, 12,
108824 /* 1430 */ 13, 14, 150, 66, 17, 183, 150, 175, 165, 129,
108825 /* 1440 */ 130, 131, 132, 133, 134, 175, 47, 165, 31, 175,
108826 /* 1450 */ 33, 165, 177, 86, 87, 103, 175, 178, 22, 42,
108827 /* 1460 */ 228, 94, 92, 228, 175, 98, 183, 175, 175, 178,
108828 /* 1470 */ 185, 96, 55, 156, 57, 18, 157, 157, 61, 156,
108829 /* 1480 */ 156, 64, 157, 157, 235, 45, 135, 236, 156, 189,
108830 /* 1490 */ 157, 68, 189, 22, 218, 199, 129, 130, 131, 156,
108831 /* 1500 */ 192, 157, 18, 192, 192, 192, 199, 189, 218, 240,
108832 /* 1510 */ 157, 240, 40, 157, 157, 243, 38, 153, 196, 181,
108833 /* 1520 */ 166, 226, 105, 106, 107, 198, 176, 230, 111, 230,
108834 /* 1530 */ 185, 176, 166, 116, 176, 166, 177, 209, 199, 209,
108835 /* 1540 */ 239, 239, 148, 209, 196, 199, 166, 233, 208, 234,
108836 /* 1550 */ 182, 186, 191, 182, 182, 195, 139, 173, 173, 186,
108837 /* 1560 */ 186, 92,
108838 };
108839 #define YY_SHIFT_USE_DFLT (-70)
108840 #define YY_SHIFT_COUNT (419)
108841 #define YY_SHIFT_MIN (-69)
108842 #define YY_SHIFT_MAX (1484)
108843 static const short yy_shift_ofst[] = {
108844 /* 0 */ 1079, 1188, 1417, 1188, 1287, 1287, 138, 138, 312, -19,
108845 /* 10 */ 1287, 1287, 1287, 1287, 346, 383, 129, 129, 795, 1165,
108846 /* 20 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108847 /* 30 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108848 /* 40 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287,
108849 /* 50 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
108850 /* 60 */ 1287, 1287, 286, 383, 383, 539, 539, 74, 1194, 55,
108851 /* 70 */ 721, 647, 573, 499, 425, 351, 277, 203, 869, 869,
108852 /* 80 */ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869,
108853 /* 90 */ 869, 869, 869, 943, 869, 1017, 1091, 1091, -69, -45,
108854 /* 100 */ -45, -45, -45, -45, -1, 6, -64, 383, 383, 383,
108855 /* 110 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108856 /* 120 */ 383, 383, 383, 535, 515, 383, 383, 383, 383, 383,
108857 /* 130 */ 650, -13, 74, 906, 1469, -70, -70, -70, 1367, 57,
108858 /* 140 */ 287, 287, 163, 291, 285, 136, 91, 538, 528, 383,
108859 /* 150 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108860 /* 160 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108861 /* 170 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
108862 /* 180 */ 383, 688, 688, 688, 705, 1194, 1194, 1194, -70, -70,
108863 /* 190 */ -70, 171, 171, 160, 160, 160, 190, 190, 190, 434,
108864 /* 200 */ 423, 513, 409, 355, 220, 492, 492, 492, 492, 532,
108865 /* 210 */ 586, 492, 492, 352, 80, 445, 143, 555, 164, 164,
108866 /* 220 */ 613, 555, 613, 590, 684, 74, 413, 74, 413, 269,
108867 /* 230 */ 413, 164, 405, 212, 212, 74, 363, 132, -18, 1478,
108868 /* 240 */ 1243, 1243, 1472, 1472, 1243, 1471, 1423, 1208, 1484, 1484,
108869 /* 250 */ 1484, 1484, 1243, 1457, 1208, 1471, 1423, 1423, 1243, 1457,
108870 /* 260 */ 1351, 1440, 1243, 1243, 1457, 1243, 1457, 1243, 1457, 1375,
108871 /* 270 */ 1436, 1321, 1321, 1321, 1399, 1370, 1370, 1436, 1321, 1352,
108872 /* 280 */ 1321, 1399, 1321, 1321, 1280, 1267, 1280, 1267, 1280, 1267,
108873 /* 290 */ 1243, 1243, 1224, 1233, 1222, 1209, 1205, 1208, 1194, 1266,
108874 /* 300 */ 1263, 1263, 1260, 1260, 1260, 1260, -70, -70, -70, -70,
108875 /* 310 */ -70, -70, 1013, 398, 681, 314, 470, -28, 952, 240,
108876 /* 320 */ 945, 907, 904, 878, 835, 825, 79, 112, 205, 804,
108877 /* 330 */ 297, 1230, 1226, 1204, 1083, 1207, 1153, 1184, 1197, 1183,
108878 /* 340 */ 1071, 1125, 1069, 1089, 1076, 1169, 1072, 1156, 1155, 1033,
108879 /* 350 */ 1132, 1129, 1125, 1127, 1019, 1068, 1050, 1020, 1098, 1088,
108880 /* 360 */ 1002, 1114, 1078, 1060, 971, 934, 1018, 1039, 1016, 1000,
108881 /* 370 */ 1011, 947, 1025, 1026, 990, 897, 938, 982, 936, 963,
108882 /* 380 */ 961, 957, 950, 876, 935, 914, 862, 871, 901, 899,
108883 /* 390 */ 780, 866, 801, 759, 593, 733, 734, 824, 728, 733,
108884 /* 400 */ 649, 541, 683, 529, 506, 508, 484, 450, 335, 232,
108885 /* 410 */ 302, 276, 265, 210, 92, 78, 151, 113, 33, 28,
108886 };
108887 #define YY_REDUCE_USE_DFLT (-169)
108888 #define YY_REDUCE_COUNT (311)
108889 #define YY_REDUCE_MIN (-168)
108890 #define YY_REDUCE_MAX (1394)
108891 static const short yy_reduce_ofst[] = {
108892 /* 0 */ 485, 90, 1095, 222, 156, 19, 17, -49, 10, 322,
108893 /* 10 */ 316, 311, 306, 225, 180, -51, 457, 242, 380, 1213,
108894 /* 20 */ 1181, 1177, 1175, 1128, 1106, 1096, 1054, 1038, 980, 974,
108895 /* 30 */ 964, 962, 948, 905, 903, 900, 887, 874, 829, 826,
108896 /* 40 */ 816, 813, 800, 752, 742, 739, 726, 678, 668, 665,
108897 /* 50 */ 652, 612, 610, 594, 591, 578, 537, 527, 521, 517,
108898 /* 60 */ 444, 318, 437, 449, 443, 154, -168, 141, 406, 551,
108899 /* 70 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
108900 /* 80 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
108901 /* 90 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
108902 /* 100 */ 551, 551, 551, 551, 551, 551, 551, 1074, 534, 1040,
108903 /* 110 */ 993, 967, 966, 845, 740, 758, 756, 746, 239, 744,
108904 /* 120 */ 672, 611, 73, -119, 48, 670, 669, 666, 592, 533,
108905 /* 130 */ 701, 627, 587, 551, 551, 551, 551, 551, 667, 375,
108906 /* 140 */ 854, 817, 992, 1286, 1282, 1273, 1261, 687, 687, 1259,
108907 /* 150 */ 1250, 1248, 1245, 1242, 1234, 1225, 1218, 1214, 1212, 1202,
108908 /* 160 */ 1195, 1191, 1161, 1158, 1140, 1135, 1123, 1112, 1107, 1085,
108909 /* 170 */ 1080, 1067, 1051, 1048, 1044, 992, 969, 968, 893, 892,
108910 /* 180 */ 891, 657, 583, 245, 544, 811, 807, 737, 609, 469,
108911 /* 190 */ 342, 1385, 1384, 1374, 1373, 1365, 1372, 1371, 1368, 1340,
108912 /* 200 */ 1360, 1361, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1315,
108913 /* 210 */ 1314, 1360, 1360, 1340, 1380, 1348, 1394, 1346, 1334, 1330,
108914 /* 220 */ 1302, 1339, 1301, 1359, 1345, 1369, 1358, 1366, 1355, 1338,
108915 /* 230 */ 1350, 1328, 1295, 1299, 1297, 1354, 1327, 1322, 1364, 1272,
108916 /* 240 */ 1357, 1356, 1271, 1269, 1353, 1290, 1318, 1307, 1313, 1312,
108917 /* 250 */ 1311, 1308, 1344, 1343, 1296, 1276, 1303, 1300, 1333, 1332,
108918 /* 260 */ 1251, 1249, 1326, 1325, 1324, 1320, 1323, 1319, 1317, 1285,
108919 /* 270 */ 1291, 1293, 1292, 1289, 1283, 1235, 1232, 1279, 1281, 1275,
108920 /* 280 */ 1274, 1252, 1270, 1262, 1203, 1196, 1201, 1192, 1180, 1159,
108921 /* 290 */ 1231, 1215, 1145, 1162, 1136, 1134, 1157, 1117, 1121, 1144,
108922 /* 300 */ 1141, 1133, 1138, 1119, 1116, 1094, 1015, 999, 994, 1059,
108923 /* 310 */ 1057, 1073,
108924 };
108925 static const YYACTIONTYPE yy_default[] = {
108926 /* 0 */ 635, 869, 957, 957, 869, 869, 957, 957, 722, 759,
108927 /* 10 */ 957, 957, 957, 867, 957, 957, 787, 787, 931, 957,
108928 /* 20 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108929 /* 30 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108930 /* 40 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108931 /* 50 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108932 /* 60 */ 957, 957, 957, 957, 957, 957, 957, 674, 763, 793,
108933 /* 70 */ 957, 957, 957, 957, 957, 957, 957, 957, 930, 932,
108934 /* 80 */ 801, 800, 910, 774, 798, 791, 795, 870, 863, 864,
108935 /* 90 */ 862, 866, 871, 957, 794, 830, 847, 829, 841, 846,
108936 /* 100 */ 853, 845, 842, 832, 831, 833, 834, 957, 957, 957,
108937 /* 110 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108938 /* 120 */ 957, 957, 957, 661, 728, 957, 957, 957, 957, 957,
108939 /* 130 */ 957, 957, 957, 835, 836, 850, 849, 848, 957, 666,
108940 /* 140 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108941 /* 150 */ 937, 935, 957, 882, 957, 957, 957, 957, 957, 957,
108942 /* 160 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108943 /* 170 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108944 /* 180 */ 641, 759, 759, 759, 635, 957, 957, 957, 949, 763,
108945 /* 190 */ 753, 957, 957, 957, 957, 718, 957, 957, 957, 957,
108946 /* 200 */ 957, 957, 957, 957, 957, 803, 742, 920, 922, 957,
108947 /* 210 */ 903, 740, 663, 761, 676, 751, 643, 797, 776, 776,
108948 /* 220 */ 915, 797, 915, 699, 722, 957, 787, 957, 787, 696,
108949 /* 230 */ 787, 776, 865, 957, 957, 957, 760, 751, 957, 942,
108950 /* 240 */ 767, 767, 934, 934, 767, 809, 732, 797, 739, 739,
108951 /* 250 */ 739, 739, 767, 658, 797, 809, 732, 732, 767, 658,
108952 /* 260 */ 909, 907, 767, 767, 658, 767, 658, 767, 658, 722,
108953 /* 270 */ 875, 730, 730, 730, 714, 879, 879, 875, 730, 699,
108954 /* 280 */ 730, 714, 730, 730, 780, 775, 780, 775, 780, 775,
108955 /* 290 */ 767, 767, 957, 792, 781, 790, 788, 797, 957, 717,
108956 /* 300 */ 651, 651, 640, 640, 640, 640, 954, 954, 949, 701,
108957 /* 310 */ 701, 684, 957, 957, 957, 957, 957, 957, 957, 884,
108958 /* 320 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108959 /* 330 */ 957, 957, 636, 944, 957, 957, 941, 957, 957, 957,
108960 /* 340 */ 957, 802, 957, 957, 957, 957, 957, 957, 957, 957,
108961 /* 350 */ 957, 957, 919, 957, 957, 957, 957, 957, 957, 957,
108962 /* 360 */ 913, 957, 957, 957, 957, 957, 957, 906, 905, 957,
108963 /* 370 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108964 /* 380 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108965 /* 390 */ 957, 957, 957, 957, 957, 789, 957, 782, 957, 868,
108966 /* 400 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
108967 /* 410 */ 745, 818, 957, 817, 821, 816, 668, 957, 649, 957,
108968 /* 420 */ 632, 637, 953, 956, 955, 952, 951, 950, 945, 943,
108969 /* 430 */ 940, 939, 938, 936, 933, 929, 888, 886, 893, 892,
108970 /* 440 */ 891, 890, 889, 887, 885, 883, 804, 799, 796, 928,
108971 /* 450 */ 881, 741, 738, 737, 657, 946, 912, 921, 808, 807,
108972 /* 460 */ 810, 918, 917, 916, 914, 911, 898, 806, 805, 733,
108973 /* 470 */ 873, 872, 660, 902, 901, 900, 904, 908, 899, 769,
108974 /* 480 */ 659, 656, 665, 721, 723, 719, 729, 727, 726, 725,
108975 /* 490 */ 724, 720, 667, 675, 713, 698, 697, 878, 880, 877,
108976 /* 500 */ 876, 706, 705, 711, 710, 709, 708, 707, 704, 703,
108977 /* 510 */ 702, 695, 694, 700, 693, 716, 715, 712, 692, 736,
108978 /* 520 */ 735, 734, 731, 691, 690, 689, 821, 688, 687, 827,
108979 /* 530 */ 826, 814, 857, 756, 755, 754, 766, 765, 778, 777,
108980 /* 540 */ 812, 811, 779, 764, 758, 757, 773, 772, 771, 770,
108981 /* 550 */ 762, 752, 784, 786, 785, 783, 859, 768, 856, 927,
108982 /* 560 */ 926, 925, 924, 923, 861, 860, 828, 825, 679, 680,
108983 /* 570 */ 896, 895, 897, 894, 682, 681, 678, 677, 858, 747,
108984 /* 580 */ 746, 854, 851, 843, 839, 855, 852, 844, 840, 838,
108985 /* 590 */ 837, 823, 822, 820, 819, 815, 824, 670, 748, 744,
108986 /* 600 */ 743, 813, 750, 749, 686, 685, 683, 664, 662, 655,
108987 /* 610 */ 653, 652, 654, 650, 648, 647, 646, 645, 644, 673,
108988 /* 620 */ 672, 671, 669, 668, 642, 639, 638, 634, 633, 631,
108989 };
108990
108991 /* The next table maps tokens into fallback tokens. If a construct
108992 ** like the following:
108993 **
@@ -109119,14 +109186,14 @@
109186 "create_table", "create_table_args", "createkw", "temp",
109187 "ifnotexists", "dbnm", "columnlist", "conslist_opt",
109188 "select", "column", "columnid", "type",
109189 "carglist", "id", "ids", "typetoken",
109190 "typename", "signed", "plus_num", "minus_num",
109191 "ccons", "term", "expr", "onconf",
109192 "sortorder", "autoinc", "idxlist_opt", "refargs",
109193 "defer_subclause", "refarg", "refact", "init_deferred_pred_opt",
109194 "conslist", "cname", "tcons", "idxlist",
109195 "defer_subclause_opt", "orconf", "resolvetype", "raisetype",
109196 "ifexists", "fullname", "oneselect", "multiselect_op",
109197 "distinct", "selcollist", "from", "where_opt",
109198 "groupby_opt", "having_opt", "orderby_opt", "limit_opt",
109199 "sclp", "as", "seltablist", "stl_prefix",
@@ -109199,282 +109266,284 @@
109266 /* 48 */ "typetoken ::= typename LP signed COMMA signed RP",
109267 /* 49 */ "typename ::= ids",
109268 /* 50 */ "typename ::= typename ids",
109269 /* 51 */ "signed ::= plus_num",
109270 /* 52 */ "signed ::= minus_num",
109271 /* 53 */ "carglist ::= carglist ccons",
109272 /* 54 */ "carglist ::=",
109273 /* 55 */ "ccons ::= CONSTRAINT nm",
109274 /* 56 */ "ccons ::= DEFAULT term",
109275 /* 57 */ "ccons ::= DEFAULT LP expr RP",
109276 /* 58 */ "ccons ::= DEFAULT PLUS term",
109277 /* 59 */ "ccons ::= DEFAULT MINUS term",
109278 /* 60 */ "ccons ::= DEFAULT id",
109279 /* 61 */ "ccons ::= NULL onconf",
109280 /* 62 */ "ccons ::= NOT NULL onconf",
109281 /* 63 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc",
109282 /* 64 */ "ccons ::= UNIQUE onconf",
109283 /* 65 */ "ccons ::= CHECK LP expr RP",
109284 /* 66 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
109285 /* 67 */ "ccons ::= defer_subclause",
109286 /* 68 */ "ccons ::= COLLATE ids",
109287 /* 69 */ "autoinc ::=",
109288 /* 70 */ "autoinc ::= AUTOINCR",
109289 /* 71 */ "refargs ::=",
109290 /* 72 */ "refargs ::= refargs refarg",
109291 /* 73 */ "refarg ::= MATCH nm",
109292 /* 74 */ "refarg ::= ON INSERT refact",
109293 /* 75 */ "refarg ::= ON DELETE refact",
109294 /* 76 */ "refarg ::= ON UPDATE refact",
109295 /* 77 */ "refact ::= SET NULL",
109296 /* 78 */ "refact ::= SET DEFAULT",
109297 /* 79 */ "refact ::= CASCADE",
109298 /* 80 */ "refact ::= RESTRICT",
109299 /* 81 */ "refact ::= NO ACTION",
109300 /* 82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
109301 /* 83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
109302 /* 84 */ "init_deferred_pred_opt ::=",
109303 /* 85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
109304 /* 86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
109305 /* 87 */ "conslist_opt ::=",
109306 /* 88 */ "conslist_opt ::= COMMA conslist cname",
109307 /* 89 */ "conslist ::= conslist COMMA cname tcons",
109308 /* 90 */ "conslist ::= conslist cname tcons",
109309 /* 91 */ "conslist ::= cname tcons",
109310 /* 92 */ "cname ::=",
109311 /* 93 */ "cname ::= CONSTRAINT nm",
109312 /* 94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
109313 /* 95 */ "tcons ::= UNIQUE LP idxlist RP onconf",
109314 /* 96 */ "tcons ::= CHECK LP expr RP onconf",
109315 /* 97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
109316 /* 98 */ "defer_subclause_opt ::=",
109317 /* 99 */ "defer_subclause_opt ::= defer_subclause",
109318 /* 100 */ "onconf ::=",
109319 /* 101 */ "onconf ::= ON CONFLICT resolvetype",
109320 /* 102 */ "orconf ::=",
109321 /* 103 */ "orconf ::= OR resolvetype",
109322 /* 104 */ "resolvetype ::= raisetype",
109323 /* 105 */ "resolvetype ::= IGNORE",
109324 /* 106 */ "resolvetype ::= REPLACE",
109325 /* 107 */ "cmd ::= DROP TABLE ifexists fullname",
109326 /* 108 */ "ifexists ::= IF EXISTS",
109327 /* 109 */ "ifexists ::=",
109328 /* 110 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select",
109329 /* 111 */ "cmd ::= DROP VIEW ifexists fullname",
109330 /* 112 */ "cmd ::= select",
109331 /* 113 */ "select ::= oneselect",
109332 /* 114 */ "select ::= select multiselect_op oneselect",
109333 /* 115 */ "multiselect_op ::= UNION",
109334 /* 116 */ "multiselect_op ::= UNION ALL",
109335 /* 117 */ "multiselect_op ::= EXCEPT|INTERSECT",
109336 /* 118 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
109337 /* 119 */ "distinct ::= DISTINCT",
109338 /* 120 */ "distinct ::= ALL",
109339 /* 121 */ "distinct ::=",
109340 /* 122 */ "sclp ::= selcollist COMMA",
109341 /* 123 */ "sclp ::=",
109342 /* 124 */ "selcollist ::= sclp expr as",
109343 /* 125 */ "selcollist ::= sclp STAR",
109344 /* 126 */ "selcollist ::= sclp nm DOT STAR",
109345 /* 127 */ "as ::= AS nm",
109346 /* 128 */ "as ::= ids",
109347 /* 129 */ "as ::=",
109348 /* 130 */ "from ::=",
109349 /* 131 */ "from ::= FROM seltablist",
109350 /* 132 */ "stl_prefix ::= seltablist joinop",
109351 /* 133 */ "stl_prefix ::=",
109352 /* 134 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
109353 /* 135 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
109354 /* 136 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
109355 /* 137 */ "dbnm ::=",
109356 /* 138 */ "dbnm ::= DOT nm",
109357 /* 139 */ "fullname ::= nm dbnm",
109358 /* 140 */ "joinop ::= COMMA|JOIN",
109359 /* 141 */ "joinop ::= JOIN_KW JOIN",
109360 /* 142 */ "joinop ::= JOIN_KW nm JOIN",
109361 /* 143 */ "joinop ::= JOIN_KW nm nm JOIN",
109362 /* 144 */ "on_opt ::= ON expr",
109363 /* 145 */ "on_opt ::=",
109364 /* 146 */ "indexed_opt ::=",
109365 /* 147 */ "indexed_opt ::= INDEXED BY nm",
109366 /* 148 */ "indexed_opt ::= NOT INDEXED",
109367 /* 149 */ "using_opt ::= USING LP inscollist RP",
109368 /* 150 */ "using_opt ::=",
109369 /* 151 */ "orderby_opt ::=",
109370 /* 152 */ "orderby_opt ::= ORDER BY sortlist",
109371 /* 153 */ "sortlist ::= sortlist COMMA expr sortorder",
109372 /* 154 */ "sortlist ::= expr sortorder",
109373 /* 155 */ "sortorder ::= ASC",
109374 /* 156 */ "sortorder ::= DESC",
109375 /* 157 */ "sortorder ::=",
109376 /* 158 */ "groupby_opt ::=",
109377 /* 159 */ "groupby_opt ::= GROUP BY nexprlist",
109378 /* 160 */ "having_opt ::=",
109379 /* 161 */ "having_opt ::= HAVING expr",
109380 /* 162 */ "limit_opt ::=",
109381 /* 163 */ "limit_opt ::= LIMIT expr",
109382 /* 164 */ "limit_opt ::= LIMIT expr OFFSET expr",
109383 /* 165 */ "limit_opt ::= LIMIT expr COMMA expr",
109384 /* 166 */ "cmd ::= DELETE FROM fullname indexed_opt where_opt",
109385 /* 167 */ "where_opt ::=",
109386 /* 168 */ "where_opt ::= WHERE expr",
109387 /* 169 */ "cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt",
109388 /* 170 */ "setlist ::= setlist COMMA nm EQ expr",
109389 /* 171 */ "setlist ::= nm EQ expr",
109390 /* 172 */ "cmd ::= insert_cmd INTO fullname inscollist_opt valuelist",
109391 /* 173 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select",
109392 /* 174 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES",
109393 /* 175 */ "insert_cmd ::= INSERT orconf",
109394 /* 176 */ "insert_cmd ::= REPLACE",
109395 /* 177 */ "valuelist ::= VALUES LP nexprlist RP",
109396 /* 178 */ "valuelist ::= valuelist COMMA LP exprlist RP",
109397 /* 179 */ "inscollist_opt ::=",
109398 /* 180 */ "inscollist_opt ::= LP inscollist RP",
109399 /* 181 */ "inscollist ::= inscollist COMMA nm",
109400 /* 182 */ "inscollist ::= nm",
109401 /* 183 */ "expr ::= term",
109402 /* 184 */ "expr ::= LP expr RP",
109403 /* 185 */ "term ::= NULL",
109404 /* 186 */ "expr ::= id",
109405 /* 187 */ "expr ::= JOIN_KW",
109406 /* 188 */ "expr ::= nm DOT nm",
109407 /* 189 */ "expr ::= nm DOT nm DOT nm",
109408 /* 190 */ "term ::= INTEGER|FLOAT|BLOB",
109409 /* 191 */ "term ::= STRING",
109410 /* 192 */ "expr ::= REGISTER",
109411 /* 193 */ "expr ::= VARIABLE",
109412 /* 194 */ "expr ::= expr COLLATE ids",
109413 /* 195 */ "expr ::= CAST LP expr AS typetoken RP",
109414 /* 196 */ "expr ::= ID LP distinct exprlist RP",
109415 /* 197 */ "expr ::= ID LP STAR RP",
109416 /* 198 */ "term ::= CTIME_KW",
109417 /* 199 */ "expr ::= expr AND expr",
109418 /* 200 */ "expr ::= expr OR expr",
109419 /* 201 */ "expr ::= expr LT|GT|GE|LE expr",
109420 /* 202 */ "expr ::= expr EQ|NE expr",
109421 /* 203 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
109422 /* 204 */ "expr ::= expr PLUS|MINUS expr",
109423 /* 205 */ "expr ::= expr STAR|SLASH|REM expr",
109424 /* 206 */ "expr ::= expr CONCAT expr",
109425 /* 207 */ "likeop ::= LIKE_KW",
109426 /* 208 */ "likeop ::= NOT LIKE_KW",
109427 /* 209 */ "likeop ::= MATCH",
109428 /* 210 */ "likeop ::= NOT MATCH",
109429 /* 211 */ "expr ::= expr likeop expr",
109430 /* 212 */ "expr ::= expr likeop expr ESCAPE expr",
109431 /* 213 */ "expr ::= expr ISNULL|NOTNULL",
109432 /* 214 */ "expr ::= expr NOT NULL",
109433 /* 215 */ "expr ::= expr IS expr",
109434 /* 216 */ "expr ::= expr IS NOT expr",
109435 /* 217 */ "expr ::= NOT expr",
109436 /* 218 */ "expr ::= BITNOT expr",
109437 /* 219 */ "expr ::= MINUS expr",
109438 /* 220 */ "expr ::= PLUS expr",
109439 /* 221 */ "between_op ::= BETWEEN",
109440 /* 222 */ "between_op ::= NOT BETWEEN",
109441 /* 223 */ "expr ::= expr between_op expr AND expr",
109442 /* 224 */ "in_op ::= IN",
109443 /* 225 */ "in_op ::= NOT IN",
109444 /* 226 */ "expr ::= expr in_op LP exprlist RP",
109445 /* 227 */ "expr ::= LP select RP",
109446 /* 228 */ "expr ::= expr in_op LP select RP",
109447 /* 229 */ "expr ::= expr in_op nm dbnm",
109448 /* 230 */ "expr ::= EXISTS LP select RP",
109449 /* 231 */ "expr ::= CASE case_operand case_exprlist case_else END",
109450 /* 232 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
109451 /* 233 */ "case_exprlist ::= WHEN expr THEN expr",
109452 /* 234 */ "case_else ::= ELSE expr",
109453 /* 235 */ "case_else ::=",
109454 /* 236 */ "case_operand ::= expr",
109455 /* 237 */ "case_operand ::=",
109456 /* 238 */ "exprlist ::= nexprlist",
109457 /* 239 */ "exprlist ::=",
109458 /* 240 */ "nexprlist ::= nexprlist COMMA expr",
109459 /* 241 */ "nexprlist ::= expr",
109460 /* 242 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP",
109461 /* 243 */ "uniqueflag ::= UNIQUE",
109462 /* 244 */ "uniqueflag ::=",
109463 /* 245 */ "idxlist_opt ::=",
109464 /* 246 */ "idxlist_opt ::= LP idxlist RP",
109465 /* 247 */ "idxlist ::= idxlist COMMA nm collate sortorder",
109466 /* 248 */ "idxlist ::= nm collate sortorder",
109467 /* 249 */ "collate ::=",
109468 /* 250 */ "collate ::= COLLATE ids",
109469 /* 251 */ "cmd ::= DROP INDEX ifexists fullname",
109470 /* 252 */ "cmd ::= VACUUM",
109471 /* 253 */ "cmd ::= VACUUM nm",
109472 /* 254 */ "cmd ::= PRAGMA nm dbnm",
109473 /* 255 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
109474 /* 256 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
109475 /* 257 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
109476 /* 258 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
109477 /* 259 */ "nmnum ::= plus_num",
109478 /* 260 */ "nmnum ::= nm",
109479 /* 261 */ "nmnum ::= ON",
109480 /* 262 */ "nmnum ::= DELETE",
109481 /* 263 */ "nmnum ::= DEFAULT",
109482 /* 264 */ "plus_num ::= PLUS number",
109483 /* 265 */ "plus_num ::= number",
109484 /* 266 */ "minus_num ::= MINUS number",
109485 /* 267 */ "number ::= INTEGER|FLOAT",
109486 /* 268 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
109487 /* 269 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
109488 /* 270 */ "trigger_time ::= BEFORE",
109489 /* 271 */ "trigger_time ::= AFTER",
109490 /* 272 */ "trigger_time ::= INSTEAD OF",
109491 /* 273 */ "trigger_time ::=",
109492 /* 274 */ "trigger_event ::= DELETE|INSERT",
109493 /* 275 */ "trigger_event ::= UPDATE",
109494 /* 276 */ "trigger_event ::= UPDATE OF inscollist",
109495 /* 277 */ "foreach_clause ::=",
109496 /* 278 */ "foreach_clause ::= FOR EACH ROW",
109497 /* 279 */ "when_clause ::=",
109498 /* 280 */ "when_clause ::= WHEN expr",
109499 /* 281 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
109500 /* 282 */ "trigger_cmd_list ::= trigger_cmd SEMI",
109501 /* 283 */ "trnm ::= nm",
109502 /* 284 */ "trnm ::= nm DOT nm",
109503 /* 285 */ "tridxby ::=",
109504 /* 286 */ "tridxby ::= INDEXED BY nm",
109505 /* 287 */ "tridxby ::= NOT INDEXED",
109506 /* 288 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
109507 /* 289 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist",
109508 /* 290 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select",
109509 /* 291 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
109510 /* 292 */ "trigger_cmd ::= select",
109511 /* 293 */ "expr ::= RAISE LP IGNORE RP",
109512 /* 294 */ "expr ::= RAISE LP raisetype COMMA nm RP",
109513 /* 295 */ "raisetype ::= ROLLBACK",
109514 /* 296 */ "raisetype ::= ABORT",
109515 /* 297 */ "raisetype ::= FAIL",
109516 /* 298 */ "cmd ::= DROP TRIGGER ifexists fullname",
109517 /* 299 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
109518 /* 300 */ "cmd ::= DETACH database_kw_opt expr",
109519 /* 301 */ "key_opt ::=",
109520 /* 302 */ "key_opt ::= KEY expr",
109521 /* 303 */ "database_kw_opt ::= DATABASE",
109522 /* 304 */ "database_kw_opt ::=",
109523 /* 305 */ "cmd ::= REINDEX",
109524 /* 306 */ "cmd ::= REINDEX nm dbnm",
109525 /* 307 */ "cmd ::= ANALYZE",
109526 /* 308 */ "cmd ::= ANALYZE nm dbnm",
109527 /* 309 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
109528 /* 310 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column",
109529 /* 311 */ "add_column_fullname ::= fullname",
109530 /* 312 */ "kwcolumn_opt ::=",
109531 /* 313 */ "kwcolumn_opt ::= COLUMNKW",
109532 /* 314 */ "cmd ::= create_vtab",
109533 /* 315 */ "cmd ::= create_vtab LP vtabarglist RP",
109534 /* 316 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
109535 /* 317 */ "vtabarglist ::= vtabarg",
109536 /* 318 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
109537 /* 319 */ "vtabarg ::=",
109538 /* 320 */ "vtabarg ::= vtabarg vtabargtoken",
109539 /* 321 */ "vtabargtoken ::= ANY",
109540 /* 322 */ "vtabargtoken ::= lp anylist RP",
109541 /* 323 */ "lp ::= LP",
109542 /* 324 */ "anylist ::=",
109543 /* 325 */ "anylist ::= anylist LP anylist RP",
109544 /* 326 */ "anylist ::= anylist ANY",
109545 };
109546 #endif /* NDEBUG */
109547
109548
109549 #if YYSTACKDEPTH<=0
@@ -109555,17 +109624,17 @@
109624 case 194: /* oneselect */
109625 {
109626 sqlite3SelectDelete(pParse->db, (yypminor->yy159));
109627 }
109628 break;
109629 case 173: /* term */
109630 case 174: /* expr */
109631 {
109632 sqlite3ExprDelete(pParse->db, (yypminor->yy342).pExpr);
109633 }
109634 break;
109635 case 178: /* idxlist_opt */
109636 case 187: /* idxlist */
109637 case 197: /* selcollist */
109638 case 200: /* groupby_opt */
109639 case 202: /* orderby_opt */
109640 case 204: /* sclp */
@@ -109916,57 +109985,59 @@
109985 { 167, 6 },
109986 { 168, 1 },
109987 { 168, 2 },
109988 { 169, 1 },
109989 { 169, 1 },
109990 { 164, 2 },
109991 { 164, 0 },
109992 { 172, 2 },
109993 { 172, 2 },
109994 { 172, 4 },
109995 { 172, 3 },
109996 { 172, 3 },
109997 { 172, 2 },
109998 { 172, 2 },
109999 { 172, 3 },
110000 { 172, 5 },
110001 { 172, 2 },
110002 { 172, 4 },
110003 { 172, 4 },
110004 { 172, 1 },
110005 { 172, 2 },
110006 { 177, 0 },
110007 { 177, 1 },
110008 { 179, 0 },
110009 { 179, 2 },
110010 { 181, 2 },
110011 { 181, 3 },
110012 { 181, 3 },
110013 { 181, 3 },
110014 { 182, 2 },
110015 { 182, 2 },
110016 { 182, 1 },
110017 { 182, 1 },
110018 { 182, 2 },
110019 { 180, 3 },
110020 { 180, 2 },
110021 { 183, 0 },
110022 { 183, 2 },
110023 { 183, 2 },
110024 { 159, 0 },
110025 { 159, 3 },
110026 { 184, 4 },
110027 { 184, 3 },
110028 { 184, 2 },
110029 { 185, 0 },
110030 { 185, 2 },
110031 { 186, 7 },
110032 { 186, 5 },
110033 { 186, 5 },
110034 { 186, 10 },
110035 { 188, 0 },
110036 { 188, 1 },
110037 { 175, 0 },
110038 { 175, 3 },
110039 { 189, 0 },
110040 { 189, 2 },
110041 { 190, 1 },
110042 { 190, 1 },
110043 { 190, 1 },
@@ -110016,13 +110087,13 @@
110087 { 211, 0 },
110088 { 202, 0 },
110089 { 202, 3 },
110090 { 214, 4 },
110091 { 214, 2 },
110092 { 176, 1 },
110093 { 176, 1 },
110094 { 176, 0 },
110095 { 200, 0 },
110096 { 200, 3 },
110097 { 201, 0 },
110098 { 201, 2 },
110099 { 203, 0 },
@@ -110044,59 +110115,59 @@
110115 { 219, 5 },
110116 { 218, 0 },
110117 { 218, 3 },
110118 { 213, 3 },
110119 { 213, 1 },
110120 { 174, 1 },
110121 { 174, 3 },
110122 { 173, 1 },
110123 { 174, 1 },
110124 { 174, 1 },
110125 { 174, 3 },
110126 { 174, 5 },
110127 { 173, 1 },
110128 { 173, 1 },
110129 { 174, 1 },
110130 { 174, 1 },
110131 { 174, 3 },
110132 { 174, 6 },
110133 { 174, 5 },
110134 { 174, 4 },
110135 { 173, 1 },
110136 { 174, 3 },
110137 { 174, 3 },
110138 { 174, 3 },
110139 { 174, 3 },
110140 { 174, 3 },
110141 { 174, 3 },
110142 { 174, 3 },
110143 { 174, 3 },
110144 { 221, 1 },
110145 { 221, 2 },
110146 { 221, 1 },
110147 { 221, 2 },
110148 { 174, 3 },
110149 { 174, 5 },
110150 { 174, 2 },
110151 { 174, 3 },
110152 { 174, 3 },
110153 { 174, 4 },
110154 { 174, 2 },
110155 { 174, 2 },
110156 { 174, 2 },
110157 { 174, 2 },
110158 { 222, 1 },
110159 { 222, 2 },
110160 { 174, 5 },
110161 { 223, 1 },
110162 { 223, 2 },
110163 { 174, 5 },
110164 { 174, 3 },
110165 { 174, 5 },
110166 { 174, 4 },
110167 { 174, 4 },
110168 { 174, 5 },
110169 { 225, 5 },
110170 { 225, 4 },
110171 { 226, 2 },
110172 { 226, 0 },
110173 { 224, 1 },
@@ -110106,12 +110177,12 @@
110177 { 215, 3 },
110178 { 215, 1 },
110179 { 147, 11 },
110180 { 227, 1 },
110181 { 227, 0 },
110182 { 178, 0 },
110183 { 178, 3 },
110184 { 187, 5 },
110185 { 187, 3 },
110186 { 228, 0 },
110187 { 228, 2 },
110188 { 147, 4 },
@@ -110154,12 +110225,12 @@
110225 { 237, 7 },
110226 { 237, 5 },
110227 { 237, 5 },
110228 { 237, 5 },
110229 { 237, 1 },
110230 { 174, 4 },
110231 { 174, 6 },
110232 { 191, 1 },
110233 { 191, 1 },
110234 { 191, 1 },
110235 { 147, 4 },
110236 { 147, 6 },
@@ -110263,12 +110334,12 @@
110334 {yygotominor.yy392 = TK_DEFERRED;}
110335 break;
110336 case 14: /* transtype ::= DEFERRED */
110337 case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15);
110338 case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16);
110339 case 115: /* multiselect_op ::= UNION */ yytestcase(yyruleno==115);
110340 case 117: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==117);
110341 {yygotominor.yy392 = yymsp[0].major;}
110342 break;
110343 case 17: /* cmd ::= COMMIT trans_opt */
110344 case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18);
110345 {sqlite3CommitTransaction(pParse);}
@@ -110302,30 +110373,30 @@
110373 yygotominor.yy0 = yymsp[0].minor.yy0;
110374 }
110375 break;
110376 case 28: /* ifnotexists ::= */
110377 case 31: /* temp ::= */ yytestcase(yyruleno==31);
110378 case 69: /* autoinc ::= */ yytestcase(yyruleno==69);
110379 case 82: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==82);
110380 case 84: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==84);
110381 case 86: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==86);
110382 case 98: /* defer_subclause_opt ::= */ yytestcase(yyruleno==98);
110383 case 109: /* ifexists ::= */ yytestcase(yyruleno==109);
110384 case 120: /* distinct ::= ALL */ yytestcase(yyruleno==120);
110385 case 121: /* distinct ::= */ yytestcase(yyruleno==121);
110386 case 221: /* between_op ::= BETWEEN */ yytestcase(yyruleno==221);
110387 case 224: /* in_op ::= IN */ yytestcase(yyruleno==224);
110388 {yygotominor.yy392 = 0;}
110389 break;
110390 case 29: /* ifnotexists ::= IF NOT EXISTS */
110391 case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30);
110392 case 70: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==70);
110393 case 85: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==85);
110394 case 108: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==108);
110395 case 119: /* distinct ::= DISTINCT */ yytestcase(yyruleno==119);
110396 case 222: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==222);
110397 case 225: /* in_op ::= NOT IN */ yytestcase(yyruleno==225);
110398 {yygotominor.yy392 = 1;}
110399 break;
110400 case 32: /* create_table_args ::= LP columnlist conslist_opt RP */
110401 {
110402 sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
@@ -110345,10 +110416,11 @@
110416 break;
110417 case 37: /* columnid ::= nm */
110418 {
110419 sqlite3AddColumn(pParse,&yymsp[0].minor.yy0);
110420 yygotominor.yy0 = yymsp[0].minor.yy0;
110421 pParse->constraintName.n = 0;
110422 }
110423 break;
110424 case 38: /* id ::= ID */
110425 case 39: /* id ::= INDEXED */ yytestcase(yyruleno==39);
110426 case 40: /* ids ::= ID|STRING */ yytestcase(yyruleno==40);
@@ -110355,25 +110427,25 @@
110427 case 41: /* nm ::= id */ yytestcase(yyruleno==41);
110428 case 42: /* nm ::= STRING */ yytestcase(yyruleno==42);
110429 case 43: /* nm ::= JOIN_KW */ yytestcase(yyruleno==43);
110430 case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46);
110431 case 49: /* typename ::= ids */ yytestcase(yyruleno==49);
110432 case 127: /* as ::= AS nm */ yytestcase(yyruleno==127);
110433 case 128: /* as ::= ids */ yytestcase(yyruleno==128);
110434 case 138: /* dbnm ::= DOT nm */ yytestcase(yyruleno==138);
110435 case 147: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==147);
110436 case 250: /* collate ::= COLLATE ids */ yytestcase(yyruleno==250);
110437 case 259: /* nmnum ::= plus_num */ yytestcase(yyruleno==259);
110438 case 260: /* nmnum ::= nm */ yytestcase(yyruleno==260);
110439 case 261: /* nmnum ::= ON */ yytestcase(yyruleno==261);
110440 case 262: /* nmnum ::= DELETE */ yytestcase(yyruleno==262);
110441 case 263: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==263);
110442 case 264: /* plus_num ::= PLUS number */ yytestcase(yyruleno==264);
110443 case 265: /* plus_num ::= number */ yytestcase(yyruleno==265);
110444 case 266: /* minus_num ::= MINUS number */ yytestcase(yyruleno==266);
110445 case 267: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==267);
110446 case 283: /* trnm ::= nm */ yytestcase(yyruleno==283);
110447 {yygotominor.yy0 = yymsp[0].minor.yy0;}
110448 break;
110449 case 45: /* type ::= typetoken */
110450 {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
110451 break;
@@ -110390,162 +110462,163 @@
110462 }
110463 break;
110464 case 50: /* typename ::= typename ids */
110465 {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
110466 break;
110467 case 55: /* ccons ::= CONSTRAINT nm */
110468 case 93: /* cname ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
110469 {pParse->constraintName = yymsp[0].minor.yy0;}
110470 break;
110471 case 56: /* ccons ::= DEFAULT term */
110472 case 58: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==58);
 
 
 
110473 {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);}
110474 break;
110475 case 57: /* ccons ::= DEFAULT LP expr RP */
110476 {sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy342);}
110477 break;
110478 case 59: /* ccons ::= DEFAULT MINUS term */
110479 {
110480 ExprSpan v;
110481 v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy342.pExpr, 0, 0);
110482 v.zStart = yymsp[-1].minor.yy0.z;
110483 v.zEnd = yymsp[0].minor.yy342.zEnd;
110484 sqlite3AddDefaultValue(pParse,&v);
110485 }
110486 break;
110487 case 60: /* ccons ::= DEFAULT id */
110488 {
110489 ExprSpan v;
110490 spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0);
110491 sqlite3AddDefaultValue(pParse,&v);
110492 }
110493 break;
110494 case 62: /* ccons ::= NOT NULL onconf */
110495 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy392);}
110496 break;
110497 case 63: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
110498 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy392,yymsp[0].minor.yy392,yymsp[-2].minor.yy392);}
110499 break;
110500 case 64: /* ccons ::= UNIQUE onconf */
110501 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy392,0,0,0,0);}
110502 break;
110503 case 65: /* ccons ::= CHECK LP expr RP */
110504 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy342.pExpr);}
110505 break;
110506 case 66: /* ccons ::= REFERENCES nm idxlist_opt refargs */
110507 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy442,yymsp[0].minor.yy392);}
110508 break;
110509 case 67: /* ccons ::= defer_subclause */
110510 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy392);}
110511 break;
110512 case 68: /* ccons ::= COLLATE ids */
110513 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
110514 break;
110515 case 71: /* refargs ::= */
110516 { yygotominor.yy392 = OE_None*0x0101; /* EV: R-19803-45884 */}
110517 break;
110518 case 72: /* refargs ::= refargs refarg */
110519 { yygotominor.yy392 = (yymsp[-1].minor.yy392 & ~yymsp[0].minor.yy207.mask) | yymsp[0].minor.yy207.value; }
110520 break;
110521 case 73: /* refarg ::= MATCH nm */
110522 case 74: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==74);
110523 { yygotominor.yy207.value = 0; yygotominor.yy207.mask = 0x000000; }
110524 break;
110525 case 75: /* refarg ::= ON DELETE refact */
110526 { yygotominor.yy207.value = yymsp[0].minor.yy392; yygotominor.yy207.mask = 0x0000ff; }
110527 break;
110528 case 76: /* refarg ::= ON UPDATE refact */
110529 { yygotominor.yy207.value = yymsp[0].minor.yy392<<8; yygotominor.yy207.mask = 0x00ff00; }
110530 break;
110531 case 77: /* refact ::= SET NULL */
110532 { yygotominor.yy392 = OE_SetNull; /* EV: R-33326-45252 */}
110533 break;
110534 case 78: /* refact ::= SET DEFAULT */
110535 { yygotominor.yy392 = OE_SetDflt; /* EV: R-33326-45252 */}
110536 break;
110537 case 79: /* refact ::= CASCADE */
110538 { yygotominor.yy392 = OE_Cascade; /* EV: R-33326-45252 */}
110539 break;
110540 case 80: /* refact ::= RESTRICT */
110541 { yygotominor.yy392 = OE_Restrict; /* EV: R-33326-45252 */}
110542 break;
110543 case 81: /* refact ::= NO ACTION */
110544 { yygotominor.yy392 = OE_None; /* EV: R-33326-45252 */}
110545 break;
110546 case 83: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
110547 case 99: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==99);
110548 case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101);
110549 case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
110550 {yygotominor.yy392 = yymsp[0].minor.yy392;}
110551 break;
110552 case 87: /* conslist_opt ::= */
110553 {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
110554 break;
110555 case 88: /* conslist_opt ::= COMMA conslist cname */
110556 {yygotominor.yy0 = yymsp[-2].minor.yy0;}
110557 break;
110558 case 92: /* cname ::= */
110559 {pParse->constraintName.n = 0;}
110560 break;
110561 case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
110562 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2].minor.yy392,0);}
110563 break;
110564 case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
110565 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0,0,0);}
110566 break;
110567 case 96: /* tcons ::= CHECK LP expr RP onconf */
110568 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy342.pExpr);}
110569 break;
110570 case 97: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
110571 {
110572 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy442, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy392);
110573 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy392);
110574 }
110575 break;
110576 case 100: /* onconf ::= */
110577 {yygotominor.yy392 = OE_Default;}
110578 break;
110579 case 102: /* orconf ::= */
110580 {yygotominor.yy258 = OE_Default;}
110581 break;
110582 case 103: /* orconf ::= OR resolvetype */
110583 {yygotominor.yy258 = (u8)yymsp[0].minor.yy392;}
110584 break;
110585 case 105: /* resolvetype ::= IGNORE */
110586 {yygotominor.yy392 = OE_Ignore;}
110587 break;
110588 case 106: /* resolvetype ::= REPLACE */
110589 {yygotominor.yy392 = OE_Replace;}
110590 break;
110591 case 107: /* cmd ::= DROP TABLE ifexists fullname */
110592 {
110593 sqlite3DropTable(pParse, yymsp[0].minor.yy347, 0, yymsp[-1].minor.yy392);
110594 }
110595 break;
110596 case 110: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
110597 {
110598 sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy159, yymsp[-6].minor.yy392, yymsp[-4].minor.yy392);
110599 }
110600 break;
110601 case 111: /* cmd ::= DROP VIEW ifexists fullname */
110602 {
110603 sqlite3DropTable(pParse, yymsp[0].minor.yy347, 1, yymsp[-1].minor.yy392);
110604 }
110605 break;
110606 case 112: /* cmd ::= select */
110607 {
110608 SelectDest dest = {SRT_Output, 0, 0, 0, 0};
110609 sqlite3Select(pParse, yymsp[0].minor.yy159, &dest);
110610 sqlite3ExplainBegin(pParse->pVdbe);
110611 sqlite3ExplainSelect(pParse->pVdbe, yymsp[0].minor.yy159);
110612 sqlite3ExplainFinish(pParse->pVdbe);
110613 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy159);
110614 }
110615 break;
110616 case 113: /* select ::= oneselect */
110617 {yygotominor.yy159 = yymsp[0].minor.yy159;}
110618 break;
110619 case 114: /* select ::= select multiselect_op oneselect */
110620 {
110621 if( yymsp[0].minor.yy159 ){
110622 yymsp[0].minor.yy159->op = (u8)yymsp[-1].minor.yy392;
110623 yymsp[0].minor.yy159->pPrior = yymsp[-2].minor.yy159;
110624 }else{
@@ -110552,83 +110625,83 @@
110625 sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy159);
110626 }
110627 yygotominor.yy159 = yymsp[0].minor.yy159;
110628 }
110629 break;
110630 case 116: /* multiselect_op ::= UNION ALL */
110631 {yygotominor.yy392 = TK_ALL;}
110632 break;
110633 case 118: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
110634 {
110635 yygotominor.yy159 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy442,yymsp[-5].minor.yy347,yymsp[-4].minor.yy122,yymsp[-3].minor.yy442,yymsp[-2].minor.yy122,yymsp[-1].minor.yy442,yymsp[-7].minor.yy392,yymsp[0].minor.yy64.pLimit,yymsp[0].minor.yy64.pOffset);
110636 }
110637 break;
110638 case 122: /* sclp ::= selcollist COMMA */
110639 case 246: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==246);
110640 {yygotominor.yy442 = yymsp[-1].minor.yy442;}
110641 break;
110642 case 123: /* sclp ::= */
110643 case 151: /* orderby_opt ::= */ yytestcase(yyruleno==151);
110644 case 158: /* groupby_opt ::= */ yytestcase(yyruleno==158);
110645 case 239: /* exprlist ::= */ yytestcase(yyruleno==239);
110646 case 245: /* idxlist_opt ::= */ yytestcase(yyruleno==245);
110647 {yygotominor.yy442 = 0;}
110648 break;
110649 case 124: /* selcollist ::= sclp expr as */
110650 {
110651 yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy442, yymsp[-1].minor.yy342.pExpr);
110652 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[0].minor.yy0, 1);
110653 sqlite3ExprListSetSpan(pParse,yygotominor.yy442,&yymsp[-1].minor.yy342);
110654 }
110655 break;
110656 case 125: /* selcollist ::= sclp STAR */
110657 {
110658 Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0);
110659 yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy442, p);
110660 }
110661 break;
110662 case 126: /* selcollist ::= sclp nm DOT STAR */
110663 {
110664 Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
110665 Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110666 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
110667 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442, pDot);
110668 }
110669 break;
110670 case 129: /* as ::= */
110671 {yygotominor.yy0.n = 0;}
110672 break;
110673 case 130: /* from ::= */
110674 {yygotominor.yy347 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy347));}
110675 break;
110676 case 131: /* from ::= FROM seltablist */
110677 {
110678 yygotominor.yy347 = yymsp[0].minor.yy347;
110679 sqlite3SrcListShiftJoinType(yygotominor.yy347);
110680 }
110681 break;
110682 case 132: /* stl_prefix ::= seltablist joinop */
110683 {
110684 yygotominor.yy347 = yymsp[-1].minor.yy347;
110685 if( ALWAYS(yygotominor.yy347 && yygotominor.yy347->nSrc>0) ) yygotominor.yy347->a[yygotominor.yy347->nSrc-1].jointype = (u8)yymsp[0].minor.yy392;
110686 }
110687 break;
110688 case 133: /* stl_prefix ::= */
110689 {yygotominor.yy347 = 0;}
110690 break;
110691 case 134: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
110692 {
110693 yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110694 sqlite3SrcListIndexedBy(pParse, yygotominor.yy347, &yymsp[-2].minor.yy0);
110695 }
110696 break;
110697 case 135: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
110698 {
110699 yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy159,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110700 }
110701 break;
110702 case 136: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
110703 {
110704 if( yymsp[-6].minor.yy347==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy122==0 && yymsp[0].minor.yy180==0 ){
110705 yygotominor.yy347 = yymsp[-4].minor.yy347;
110706 }else{
110707 Select *pSubquery;
@@ -110636,137 +110709,137 @@
110709 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy347,0,0,0,0,0,0,0);
110710 yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
110711 }
110712 }
110713 break;
110714 case 137: /* dbnm ::= */
110715 case 146: /* indexed_opt ::= */ yytestcase(yyruleno==146);
110716 {yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
110717 break;
110718 case 139: /* fullname ::= nm dbnm */
110719 {yygotominor.yy347 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
110720 break;
110721 case 140: /* joinop ::= COMMA|JOIN */
110722 { yygotominor.yy392 = JT_INNER; }
110723 break;
110724 case 141: /* joinop ::= JOIN_KW JOIN */
110725 { yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
110726 break;
110727 case 142: /* joinop ::= JOIN_KW nm JOIN */
110728 { yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
110729 break;
110730 case 143: /* joinop ::= JOIN_KW nm nm JOIN */
110731 { yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
110732 break;
110733 case 144: /* on_opt ::= ON expr */
110734 case 161: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==161);
110735 case 168: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==168);
110736 case 234: /* case_else ::= ELSE expr */ yytestcase(yyruleno==234);
110737 case 236: /* case_operand ::= expr */ yytestcase(yyruleno==236);
110738 {yygotominor.yy122 = yymsp[0].minor.yy342.pExpr;}
110739 break;
110740 case 145: /* on_opt ::= */
110741 case 160: /* having_opt ::= */ yytestcase(yyruleno==160);
110742 case 167: /* where_opt ::= */ yytestcase(yyruleno==167);
110743 case 235: /* case_else ::= */ yytestcase(yyruleno==235);
110744 case 237: /* case_operand ::= */ yytestcase(yyruleno==237);
110745 {yygotominor.yy122 = 0;}
110746 break;
110747 case 148: /* indexed_opt ::= NOT INDEXED */
110748 {yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
110749 break;
110750 case 149: /* using_opt ::= USING LP inscollist RP */
110751 case 180: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==180);
110752 {yygotominor.yy180 = yymsp[-1].minor.yy180;}
110753 break;
110754 case 150: /* using_opt ::= */
110755 case 179: /* inscollist_opt ::= */ yytestcase(yyruleno==179);
110756 {yygotominor.yy180 = 0;}
110757 break;
110758 case 152: /* orderby_opt ::= ORDER BY sortlist */
110759 case 159: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==159);
110760 case 238: /* exprlist ::= nexprlist */ yytestcase(yyruleno==238);
110761 {yygotominor.yy442 = yymsp[0].minor.yy442;}
110762 break;
110763 case 153: /* sortlist ::= sortlist COMMA expr sortorder */
110764 {
110765 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442,yymsp[-1].minor.yy342.pExpr);
110766 if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
110767 }
110768 break;
110769 case 154: /* sortlist ::= expr sortorder */
110770 {
110771 yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy342.pExpr);
110772 if( yygotominor.yy442 && ALWAYS(yygotominor.yy442->a) ) yygotominor.yy442->a[0].sortOrder = (u8)yymsp[0].minor.yy392;
110773 }
110774 break;
110775 case 155: /* sortorder ::= ASC */
110776 case 157: /* sortorder ::= */ yytestcase(yyruleno==157);
110777 {yygotominor.yy392 = SQLITE_SO_ASC;}
110778 break;
110779 case 156: /* sortorder ::= DESC */
110780 {yygotominor.yy392 = SQLITE_SO_DESC;}
110781 break;
110782 case 162: /* limit_opt ::= */
110783 {yygotominor.yy64.pLimit = 0; yygotominor.yy64.pOffset = 0;}
110784 break;
110785 case 163: /* limit_opt ::= LIMIT expr */
110786 {yygotominor.yy64.pLimit = yymsp[0].minor.yy342.pExpr; yygotominor.yy64.pOffset = 0;}
110787 break;
110788 case 164: /* limit_opt ::= LIMIT expr OFFSET expr */
110789 {yygotominor.yy64.pLimit = yymsp[-2].minor.yy342.pExpr; yygotominor.yy64.pOffset = yymsp[0].minor.yy342.pExpr;}
110790 break;
110791 case 165: /* limit_opt ::= LIMIT expr COMMA expr */
110792 {yygotominor.yy64.pOffset = yymsp[-2].minor.yy342.pExpr; yygotominor.yy64.pLimit = yymsp[0].minor.yy342.pExpr;}
110793 break;
110794 case 166: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
110795 {
110796 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy347, &yymsp[-1].minor.yy0);
110797 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy347,yymsp[0].minor.yy122);
110798 }
110799 break;
110800 case 169: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
110801 {
110802 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy347, &yymsp[-3].minor.yy0);
110803 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy442,"set list");
110804 sqlite3Update(pParse,yymsp[-4].minor.yy347,yymsp[-1].minor.yy442,yymsp[0].minor.yy122,yymsp[-5].minor.yy258);
110805 }
110806 break;
110807 case 170: /* setlist ::= setlist COMMA nm EQ expr */
110808 {
110809 yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[0].minor.yy342.pExpr);
110810 sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
110811 }
110812 break;
110813 case 171: /* setlist ::= nm EQ expr */
110814 {
110815 yygotominor.yy442 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy342.pExpr);
110816 sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
110817 }
110818 break;
110819 case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt valuelist */
110820 {sqlite3Insert(pParse, yymsp[-2].minor.yy347, yymsp[0].minor.yy487.pList, yymsp[0].minor.yy487.pSelect, yymsp[-1].minor.yy180, yymsp[-4].minor.yy258);}
110821 break;
110822 case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
110823 {sqlite3Insert(pParse, yymsp[-2].minor.yy347, 0, yymsp[0].minor.yy159, yymsp[-1].minor.yy180, yymsp[-4].minor.yy258);}
110824 break;
110825 case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
110826 {sqlite3Insert(pParse, yymsp[-3].minor.yy347, 0, 0, yymsp[-2].minor.yy180, yymsp[-5].minor.yy258);}
110827 break;
110828 case 175: /* insert_cmd ::= INSERT orconf */
110829 {yygotominor.yy258 = yymsp[0].minor.yy258;}
110830 break;
110831 case 176: /* insert_cmd ::= REPLACE */
110832 {yygotominor.yy258 = OE_Replace;}
110833 break;
110834 case 177: /* valuelist ::= VALUES LP nexprlist RP */
110835 {
110836 yygotominor.yy487.pList = yymsp[-1].minor.yy442;
110837 yygotominor.yy487.pSelect = 0;
110838 }
110839 break;
110840 case 178: /* valuelist ::= valuelist COMMA LP exprlist RP */
110841 {
110842 Select *pRight = sqlite3SelectNew(pParse, yymsp[-1].minor.yy442, 0, 0, 0, 0, 0, 0, 0, 0);
110843 if( yymsp[-4].minor.yy487.pList ){
110844 yymsp[-4].minor.yy487.pSelect = sqlite3SelectNew(pParse, yymsp[-4].minor.yy487.pList, 0, 0, 0, 0, 0, 0, 0, 0);
110845 yymsp[-4].minor.yy487.pList = 0;
@@ -110783,50 +110856,50 @@
110856 pRight->pPrior->selFlags |= SF_Values;
110857 yygotominor.yy487.pSelect = pRight;
110858 }
110859 }
110860 break;
110861 case 181: /* inscollist ::= inscollist COMMA nm */
110862 {yygotominor.yy180 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy180,&yymsp[0].minor.yy0);}
110863 break;
110864 case 182: /* inscollist ::= nm */
110865 {yygotominor.yy180 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
110866 break;
110867 case 183: /* expr ::= term */
110868 {yygotominor.yy342 = yymsp[0].minor.yy342;}
110869 break;
110870 case 184: /* expr ::= LP expr RP */
110871 {yygotominor.yy342.pExpr = yymsp[-1].minor.yy342.pExpr; spanSet(&yygotominor.yy342,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);}
110872 break;
110873 case 185: /* term ::= NULL */
110874 case 190: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==190);
110875 case 191: /* term ::= STRING */ yytestcase(yyruleno==191);
110876 {spanExpr(&yygotominor.yy342, pParse, yymsp[0].major, &yymsp[0].minor.yy0);}
110877 break;
110878 case 186: /* expr ::= id */
110879 case 187: /* expr ::= JOIN_KW */ yytestcase(yyruleno==187);
110880 {spanExpr(&yygotominor.yy342, pParse, TK_ID, &yymsp[0].minor.yy0);}
110881 break;
110882 case 188: /* expr ::= nm DOT nm */
110883 {
110884 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110885 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
110886 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
110887 spanSet(&yygotominor.yy342,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
110888 }
110889 break;
110890 case 189: /* expr ::= nm DOT nm DOT nm */
110891 {
110892 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
110893 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
110894 Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
110895 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
110896 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
110897 spanSet(&yygotominor.yy342,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
110898 }
110899 break;
110900 case 192: /* expr ::= REGISTER */
110901 {
110902 /* When doing a nested parse, one can include terms in an expression
110903 ** that look like this: #1 #2 ... These terms refer to registers
110904 ** in the virtual machine. #N is the N-th register. */
110905 if( pParse->nested==0 ){
@@ -110837,31 +110910,31 @@
110910 if( yygotominor.yy342.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yygotominor.yy342.pExpr->iTable);
110911 }
110912 spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110913 }
110914 break;
110915 case 193: /* expr ::= VARIABLE */
110916 {
110917 spanExpr(&yygotominor.yy342, pParse, TK_VARIABLE, &yymsp[0].minor.yy0);
110918 sqlite3ExprAssignVarNumber(pParse, yygotominor.yy342.pExpr);
110919 spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110920 }
110921 break;
110922 case 194: /* expr ::= expr COLLATE ids */
110923 {
110924 yygotominor.yy342.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy342.pExpr, &yymsp[0].minor.yy0);
110925 yygotominor.yy342.zStart = yymsp[-2].minor.yy342.zStart;
110926 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
110927 }
110928 break;
110929 case 195: /* expr ::= CAST LP expr AS typetoken RP */
110930 {
110931 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy342.pExpr, 0, &yymsp[-1].minor.yy0);
110932 spanSet(&yygotominor.yy342,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
110933 }
110934 break;
110935 case 196: /* expr ::= ID LP distinct exprlist RP */
110936 {
110937 if( yymsp[-1].minor.yy442 && yymsp[-1].minor.yy442->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
110938 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
110939 }
110940 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0);
@@ -110869,17 +110942,17 @@
110942 if( yymsp[-2].minor.yy392 && yygotominor.yy342.pExpr ){
110943 yygotominor.yy342.pExpr->flags |= EP_Distinct;
110944 }
110945 }
110946 break;
110947 case 197: /* expr ::= ID LP STAR RP */
110948 {
110949 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
110950 spanSet(&yygotominor.yy342,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
110951 }
110952 break;
110953 case 198: /* term ::= CTIME_KW */
110954 {
110955 /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
110956 ** treated as functions that return constants */
110957 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
110958 if( yygotominor.yy342.pExpr ){
@@ -110886,29 +110959,29 @@
110959 yygotominor.yy342.pExpr->op = TK_CONST_FUNC;
110960 }
110961 spanSet(&yygotominor.yy342, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
110962 }
110963 break;
110964 case 199: /* expr ::= expr AND expr */
110965 case 200: /* expr ::= expr OR expr */ yytestcase(yyruleno==200);
110966 case 201: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==201);
110967 case 202: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==202);
110968 case 203: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==203);
110969 case 204: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==204);
110970 case 205: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==205);
110971 case 206: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==206);
110972 {spanBinaryExpr(&yygotominor.yy342,pParse,yymsp[-1].major,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy342);}
110973 break;
110974 case 207: /* likeop ::= LIKE_KW */
110975 case 209: /* likeop ::= MATCH */ yytestcase(yyruleno==209);
110976 {yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.bNot = 0;}
110977 break;
110978 case 208: /* likeop ::= NOT LIKE_KW */
110979 case 210: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==210);
110980 {yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.bNot = 1;}
110981 break;
110982 case 211: /* expr ::= expr likeop expr */
110983 {
110984 ExprList *pList;
110985 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy342.pExpr);
110986 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy342.pExpr);
110987 yygotominor.yy342.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy318.eOperator);
@@ -110916,11 +110989,11 @@
110989 yygotominor.yy342.zStart = yymsp[-2].minor.yy342.zStart;
110990 yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
110991 if( yygotominor.yy342.pExpr ) yygotominor.yy342.pExpr->flags |= EP_InfixFunc;
110992 }
110993 break;
110994 case 212: /* expr ::= expr likeop expr ESCAPE expr */
110995 {
110996 ExprList *pList;
110997 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
110998 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy342.pExpr);
110999 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy342.pExpr);
@@ -110929,39 +111002,39 @@
111002 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111003 yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
111004 if( yygotominor.yy342.pExpr ) yygotominor.yy342.pExpr->flags |= EP_InfixFunc;
111005 }
111006 break;
111007 case 213: /* expr ::= expr ISNULL|NOTNULL */
111008 {spanUnaryPostfix(&yygotominor.yy342,pParse,yymsp[0].major,&yymsp[-1].minor.yy342,&yymsp[0].minor.yy0);}
111009 break;
111010 case 214: /* expr ::= expr NOT NULL */
111011 {spanUnaryPostfix(&yygotominor.yy342,pParse,TK_NOTNULL,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy0);}
111012 break;
111013 case 215: /* expr ::= expr IS expr */
111014 {
111015 spanBinaryExpr(&yygotominor.yy342,pParse,TK_IS,&yymsp[-2].minor.yy342,&yymsp[0].minor.yy342);
111016 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy342.pExpr, yygotominor.yy342.pExpr, TK_ISNULL);
111017 }
111018 break;
111019 case 216: /* expr ::= expr IS NOT expr */
111020 {
111021 spanBinaryExpr(&yygotominor.yy342,pParse,TK_ISNOT,&yymsp[-3].minor.yy342,&yymsp[0].minor.yy342);
111022 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy342.pExpr, yygotominor.yy342.pExpr, TK_NOTNULL);
111023 }
111024 break;
111025 case 217: /* expr ::= NOT expr */
111026 case 218: /* expr ::= BITNOT expr */ yytestcase(yyruleno==218);
111027 {spanUnaryPrefix(&yygotominor.yy342,pParse,yymsp[-1].major,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
111028 break;
111029 case 219: /* expr ::= MINUS expr */
111030 {spanUnaryPrefix(&yygotominor.yy342,pParse,TK_UMINUS,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
111031 break;
111032 case 220: /* expr ::= PLUS expr */
111033 {spanUnaryPrefix(&yygotominor.yy342,pParse,TK_UPLUS,&yymsp[0].minor.yy342,&yymsp[-1].minor.yy0);}
111034 break;
111035 case 223: /* expr ::= expr between_op expr AND expr */
111036 {
111037 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
111038 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy342.pExpr);
111039 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy342.pExpr, 0, 0);
111040 if( yygotominor.yy342.pExpr ){
@@ -110972,11 +111045,11 @@
111045 if( yymsp[-3].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111046 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111047 yygotominor.yy342.zEnd = yymsp[0].minor.yy342.zEnd;
111048 }
111049 break;
111050 case 226: /* expr ::= expr in_op LP exprlist RP */
111051 {
111052 if( yymsp[-1].minor.yy442==0 ){
111053 /* Expressions of the form
111054 **
111055 ** expr1 IN ()
@@ -110999,11 +111072,11 @@
111072 }
111073 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111074 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111075 }
111076 break;
111077 case 227: /* expr ::= LP select RP */
111078 {
111079 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
111080 if( yygotominor.yy342.pExpr ){
111081 yygotominor.yy342.pExpr->x.pSelect = yymsp[-1].minor.yy159;
111082 ExprSetProperty(yygotominor.yy342.pExpr, EP_xIsSelect);
@@ -111013,11 +111086,11 @@
111086 }
111087 yygotominor.yy342.zStart = yymsp[-2].minor.yy0.z;
111088 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111089 }
111090 break;
111091 case 228: /* expr ::= expr in_op LP select RP */
111092 {
111093 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy342.pExpr, 0, 0);
111094 if( yygotominor.yy342.pExpr ){
111095 yygotominor.yy342.pExpr->x.pSelect = yymsp[-1].minor.yy159;
111096 ExprSetProperty(yygotominor.yy342.pExpr, EP_xIsSelect);
@@ -111028,11 +111101,11 @@
111101 if( yymsp[-3].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111102 yygotominor.yy342.zStart = yymsp[-4].minor.yy342.zStart;
111103 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111104 }
111105 break;
111106 case 229: /* expr ::= expr in_op nm dbnm */
111107 {
111108 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
111109 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy342.pExpr, 0, 0);
111110 if( yygotominor.yy342.pExpr ){
111111 yygotominor.yy342.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
@@ -111044,11 +111117,11 @@
111117 if( yymsp[-2].minor.yy392 ) yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy342.pExpr, 0, 0);
111118 yygotominor.yy342.zStart = yymsp[-3].minor.yy342.zStart;
111119 yygotominor.yy342.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
111120 }
111121 break;
111122 case 230: /* expr ::= EXISTS LP select RP */
111123 {
111124 Expr *p = yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
111125 if( p ){
111126 p->x.pSelect = yymsp[-1].minor.yy159;
111127 ExprSetProperty(p, EP_xIsSelect);
@@ -111058,11 +111131,11 @@
111131 }
111132 yygotominor.yy342.zStart = yymsp[-3].minor.yy0.z;
111133 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111134 }
111135 break;
111136 case 231: /* expr ::= CASE case_operand case_exprlist case_else END */
111137 {
111138 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy122, yymsp[-1].minor.yy122, 0);
111139 if( yygotominor.yy342.pExpr ){
111140 yygotominor.yy342.pExpr->x.pList = yymsp[-2].minor.yy442;
111141 sqlite3ExprSetHeight(pParse, yygotominor.yy342.pExpr);
@@ -111071,43 +111144,43 @@
111144 }
111145 yygotominor.yy342.zStart = yymsp[-4].minor.yy0.z;
111146 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111147 }
111148 break;
111149 case 232: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
111150 {
111151 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[-2].minor.yy342.pExpr);
111152 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy342.pExpr);
111153 }
111154 break;
111155 case 233: /* case_exprlist ::= WHEN expr THEN expr */
111156 {
111157 yygotominor.yy442 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy342.pExpr);
111158 yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy342.pExpr);
111159 }
111160 break;
111161 case 240: /* nexprlist ::= nexprlist COMMA expr */
111162 {yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy342.pExpr);}
111163 break;
111164 case 241: /* nexprlist ::= expr */
111165 {yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy342.pExpr);}
111166 break;
111167 case 242: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
111168 {
111169 sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0,
111170 sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy442, yymsp[-9].minor.yy392,
111171 &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy392);
111172 }
111173 break;
111174 case 243: /* uniqueflag ::= UNIQUE */
111175 case 296: /* raisetype ::= ABORT */ yytestcase(yyruleno==296);
111176 {yygotominor.yy392 = OE_Abort;}
111177 break;
111178 case 244: /* uniqueflag ::= */
111179 {yygotominor.yy392 = OE_None;}
111180 break;
111181 case 247: /* idxlist ::= idxlist COMMA nm collate sortorder */
111182 {
111183 Expr *p = 0;
111184 if( yymsp[-1].minor.yy0.n>0 ){
111185 p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
111186 sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
@@ -111116,11 +111189,11 @@
111189 sqlite3ExprListSetName(pParse,yygotominor.yy442,&yymsp[-2].minor.yy0,1);
111190 sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
111191 if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
111192 }
111193 break;
111194 case 248: /* idxlist ::= nm collate sortorder */
111195 {
111196 Expr *p = 0;
111197 if( yymsp[-1].minor.yy0.n>0 ){
111198 p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
111199 sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
@@ -111129,212 +111202,212 @@
111202 sqlite3ExprListSetName(pParse, yygotominor.yy442, &yymsp[-2].minor.yy0, 1);
111203 sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
111204 if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
111205 }
111206 break;
111207 case 249: /* collate ::= */
111208 {yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
111209 break;
111210 case 251: /* cmd ::= DROP INDEX ifexists fullname */
111211 {sqlite3DropIndex(pParse, yymsp[0].minor.yy347, yymsp[-1].minor.yy392);}
111212 break;
111213 case 252: /* cmd ::= VACUUM */
111214 case 253: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==253);
111215 {sqlite3Vacuum(pParse);}
111216 break;
111217 case 254: /* cmd ::= PRAGMA nm dbnm */
111218 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
111219 break;
111220 case 255: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
111221 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
111222 break;
111223 case 256: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
111224 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
111225 break;
111226 case 257: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
111227 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
111228 break;
111229 case 258: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
111230 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
111231 break;
111232 case 268: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
111233 {
111234 Token all;
111235 all.z = yymsp[-3].minor.yy0.z;
111236 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
111237 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy327, &all);
111238 }
111239 break;
111240 case 269: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
111241 {
111242 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy392, yymsp[-4].minor.yy410.a, yymsp[-4].minor.yy410.b, yymsp[-2].minor.yy347, yymsp[0].minor.yy122, yymsp[-10].minor.yy392, yymsp[-8].minor.yy392);
111243 yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
111244 }
111245 break;
111246 case 270: /* trigger_time ::= BEFORE */
111247 case 273: /* trigger_time ::= */ yytestcase(yyruleno==273);
111248 { yygotominor.yy392 = TK_BEFORE; }
111249 break;
111250 case 271: /* trigger_time ::= AFTER */
111251 { yygotominor.yy392 = TK_AFTER; }
111252 break;
111253 case 272: /* trigger_time ::= INSTEAD OF */
111254 { yygotominor.yy392 = TK_INSTEAD;}
111255 break;
111256 case 274: /* trigger_event ::= DELETE|INSERT */
111257 case 275: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==275);
111258 {yygotominor.yy410.a = yymsp[0].major; yygotominor.yy410.b = 0;}
111259 break;
111260 case 276: /* trigger_event ::= UPDATE OF inscollist */
111261 {yygotominor.yy410.a = TK_UPDATE; yygotominor.yy410.b = yymsp[0].minor.yy180;}
111262 break;
111263 case 279: /* when_clause ::= */
111264 case 301: /* key_opt ::= */ yytestcase(yyruleno==301);
111265 { yygotominor.yy122 = 0; }
111266 break;
111267 case 280: /* when_clause ::= WHEN expr */
111268 case 302: /* key_opt ::= KEY expr */ yytestcase(yyruleno==302);
111269 { yygotominor.yy122 = yymsp[0].minor.yy342.pExpr; }
111270 break;
111271 case 281: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
111272 {
111273 assert( yymsp[-2].minor.yy327!=0 );
111274 yymsp[-2].minor.yy327->pLast->pNext = yymsp[-1].minor.yy327;
111275 yymsp[-2].minor.yy327->pLast = yymsp[-1].minor.yy327;
111276 yygotominor.yy327 = yymsp[-2].minor.yy327;
111277 }
111278 break;
111279 case 282: /* trigger_cmd_list ::= trigger_cmd SEMI */
111280 {
111281 assert( yymsp[-1].minor.yy327!=0 );
111282 yymsp[-1].minor.yy327->pLast = yymsp[-1].minor.yy327;
111283 yygotominor.yy327 = yymsp[-1].minor.yy327;
111284 }
111285 break;
111286 case 284: /* trnm ::= nm DOT nm */
111287 {
111288 yygotominor.yy0 = yymsp[0].minor.yy0;
111289 sqlite3ErrorMsg(pParse,
111290 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
111291 "statements within triggers");
111292 }
111293 break;
111294 case 286: /* tridxby ::= INDEXED BY nm */
111295 {
111296 sqlite3ErrorMsg(pParse,
111297 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
111298 "within triggers");
111299 }
111300 break;
111301 case 287: /* tridxby ::= NOT INDEXED */
111302 {
111303 sqlite3ErrorMsg(pParse,
111304 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
111305 "within triggers");
111306 }
111307 break;
111308 case 288: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
111309 { yygotominor.yy327 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy442, yymsp[0].minor.yy122, yymsp[-5].minor.yy258); }
111310 break;
111311 case 289: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt valuelist */
111312 {yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, yymsp[0].minor.yy487.pList, yymsp[0].minor.yy487.pSelect, yymsp[-4].minor.yy258);}
111313 break;
111314 case 290: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
111315 {yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, 0, yymsp[0].minor.yy159, yymsp[-4].minor.yy258);}
111316 break;
111317 case 291: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
111318 {yygotominor.yy327 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy122);}
111319 break;
111320 case 292: /* trigger_cmd ::= select */
111321 {yygotominor.yy327 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy159); }
111322 break;
111323 case 293: /* expr ::= RAISE LP IGNORE RP */
111324 {
111325 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
111326 if( yygotominor.yy342.pExpr ){
111327 yygotominor.yy342.pExpr->affinity = OE_Ignore;
111328 }
111329 yygotominor.yy342.zStart = yymsp[-3].minor.yy0.z;
111330 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111331 }
111332 break;
111333 case 294: /* expr ::= RAISE LP raisetype COMMA nm RP */
111334 {
111335 yygotominor.yy342.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0);
111336 if( yygotominor.yy342.pExpr ) {
111337 yygotominor.yy342.pExpr->affinity = (char)yymsp[-3].minor.yy392;
111338 }
111339 yygotominor.yy342.zStart = yymsp[-5].minor.yy0.z;
111340 yygotominor.yy342.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
111341 }
111342 break;
111343 case 295: /* raisetype ::= ROLLBACK */
111344 {yygotominor.yy392 = OE_Rollback;}
111345 break;
111346 case 297: /* raisetype ::= FAIL */
111347 {yygotominor.yy392 = OE_Fail;}
111348 break;
111349 case 298: /* cmd ::= DROP TRIGGER ifexists fullname */
111350 {
111351 sqlite3DropTrigger(pParse,yymsp[0].minor.yy347,yymsp[-1].minor.yy392);
111352 }
111353 break;
111354 case 299: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
111355 {
111356 sqlite3Attach(pParse, yymsp[-3].minor.yy342.pExpr, yymsp[-1].minor.yy342.pExpr, yymsp[0].minor.yy122);
111357 }
111358 break;
111359 case 300: /* cmd ::= DETACH database_kw_opt expr */
111360 {
111361 sqlite3Detach(pParse, yymsp[0].minor.yy342.pExpr);
111362 }
111363 break;
111364 case 305: /* cmd ::= REINDEX */
111365 {sqlite3Reindex(pParse, 0, 0);}
111366 break;
111367 case 306: /* cmd ::= REINDEX nm dbnm */
111368 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
111369 break;
111370 case 307: /* cmd ::= ANALYZE */
111371 {sqlite3Analyze(pParse, 0, 0);}
111372 break;
111373 case 308: /* cmd ::= ANALYZE nm dbnm */
111374 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
111375 break;
111376 case 309: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
111377 {
111378 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy347,&yymsp[0].minor.yy0);
111379 }
111380 break;
111381 case 310: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */
111382 {
111383 sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0);
111384 }
111385 break;
111386 case 311: /* add_column_fullname ::= fullname */
111387 {
111388 pParse->db->lookaside.bEnabled = 0;
111389 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy347);
111390 }
111391 break;
111392 case 314: /* cmd ::= create_vtab */
111393 {sqlite3VtabFinishParse(pParse,0);}
111394 break;
111395 case 315: /* cmd ::= create_vtab LP vtabarglist RP */
111396 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
111397 break;
111398 case 316: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
111399 {
111400 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy392);
111401 }
111402 break;
111403 case 319: /* vtabarg ::= */
111404 {sqlite3VtabArgInit(pParse);}
111405 break;
111406 case 321: /* vtabargtoken ::= ANY */
111407 case 322: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==322);
111408 case 323: /* lp ::= LP */ yytestcase(yyruleno==323);
111409 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
111410 break;
111411 default:
111412 /* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
111413 /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
@@ -111350,28 +111423,29 @@
111423 /* (34) columnlist ::= columnlist COMMA column */ yytestcase(yyruleno==34);
111424 /* (35) columnlist ::= column */ yytestcase(yyruleno==35);
111425 /* (44) type ::= */ yytestcase(yyruleno==44);
111426 /* (51) signed ::= plus_num */ yytestcase(yyruleno==51);
111427 /* (52) signed ::= minus_num */ yytestcase(yyruleno==52);
111428 /* (53) carglist ::= carglist ccons */ yytestcase(yyruleno==53);
111429 /* (54) carglist ::= */ yytestcase(yyruleno==54);
111430 /* (61) ccons ::= NULL onconf */ yytestcase(yyruleno==61);
111431 /* (89) conslist ::= conslist COMMA cname tcons */ yytestcase(yyruleno==89);
111432 /* (90) conslist ::= conslist cname tcons */ yytestcase(yyruleno==90);
111433 /* (91) conslist ::= cname tcons */ yytestcase(yyruleno==91);
111434 /* (277) foreach_clause ::= */ yytestcase(yyruleno==277);
111435 /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278);
111436 /* (285) tridxby ::= */ yytestcase(yyruleno==285);
111437 /* (303) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==303);
111438 /* (304) database_kw_opt ::= */ yytestcase(yyruleno==304);
111439 /* (312) kwcolumn_opt ::= */ yytestcase(yyruleno==312);
111440 /* (313) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==313);
111441 /* (317) vtabarglist ::= vtabarg */ yytestcase(yyruleno==317);
111442 /* (318) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==318);
111443 /* (320) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==320);
111444 /* (324) anylist ::= */ yytestcase(yyruleno==324);
111445 /* (325) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==325);
111446 /* (326) anylist ::= anylist ANY */ yytestcase(yyruleno==326);
111447 break;
111448 };
111449 yygoto = yyRuleInfo[yyruleno].lhs;
111450 yysize = yyRuleInfo[yyruleno].nrhs;
111451 yypParser->yyidx -= yysize;
111452
+2 -1
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -107,11 +107,11 @@
107107
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108108
** [sqlite_version()] and [sqlite_source_id()].
109109
*/
110110
#define SQLITE_VERSION "3.7.12"
111111
#define SQLITE_VERSION_NUMBER 3007012
112
-#define SQLITE_SOURCE_ID "2012-05-01 14:21:57 bfa61e781cb442be641486e7e55a1518e888d830"
112
+#define SQLITE_SOURCE_ID "2012-05-08 11:17:33 38bf90af1ede6ee64ef7be66392e895e60c9126e"
113113
114114
/*
115115
** CAPI3REF: Run-Time Library Version Numbers
116116
** KEYWORDS: sqlite3_version, sqlite3_sourceid
117117
**
@@ -456,10 +456,11 @@
456456
#define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
457457
#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
458458
#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
459459
#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
460460
#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
461
+#define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
461462
#define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
462463
#define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
463464
#define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
464465
#define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
465466
466467
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -107,11 +107,11 @@
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.7.12"
111 #define SQLITE_VERSION_NUMBER 3007012
112 #define SQLITE_SOURCE_ID "2012-05-01 14:21:57 bfa61e781cb442be641486e7e55a1518e888d830"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
@@ -456,10 +456,11 @@
456 #define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
457 #define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
458 #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
459 #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
460 #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
 
461 #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
462 #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
463 #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
464 #define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
465
466
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -107,11 +107,11 @@
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.7.12"
111 #define SQLITE_VERSION_NUMBER 3007012
112 #define SQLITE_SOURCE_ID "2012-05-08 11:17:33 38bf90af1ede6ee64ef7be66392e895e60c9126e"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
@@ -456,10 +456,11 @@
456 #define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
457 #define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
458 #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
459 #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
460 #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
461 #define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
462 #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
463 #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
464 #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
465 #define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
466
467

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button