| | @@ -16,11 +16,11 @@ |
| 16 | 16 | ** if you want a wrapper to interface SQLite with your choice of programming |
| 17 | 17 | ** language. The code for the "sqlite3" command-line shell is also in a |
| 18 | 18 | ** separate file. This file contains only code for the core SQLite library. |
| 19 | 19 | ** |
| 20 | 20 | ** The content in this amalgamation comes from Fossil check-in |
| 21 | | -** b65b29656c835db22557733f4dcfe906bf21 with changes in files: |
| 21 | +** 8a230e4da230a7b103749b069a99a58e4c22 with changes in files: |
| 22 | 22 | ** |
| 23 | 23 | ** |
| 24 | 24 | */ |
| 25 | 25 | #ifndef SQLITE_AMALGAMATION |
| 26 | 26 | #define SQLITE_CORE 1 |
| | @@ -467,14 +467,14 @@ |
| 467 | 467 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 468 | 468 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 469 | 469 | */ |
| 470 | 470 | #define SQLITE_VERSION "3.52.0" |
| 471 | 471 | #define SQLITE_VERSION_NUMBER 3052000 |
| 472 | | -#define SQLITE_SOURCE_ID "2025-11-19 19:37:28 b65b29656c835db22557733f4dcfe906bf21a7a3c36266cbbc7e3277f029b901" |
| 472 | +#define SQLITE_SOURCE_ID "2025-11-21 17:30:44 8a230e4da230a7b103749b069a99a58e4c220873c2f9576abdc928c3538d70b3" |
| 473 | 473 | #define SQLITE_SCM_BRANCH "trunk" |
| 474 | 474 | #define SQLITE_SCM_TAGS "" |
| 475 | | -#define SQLITE_SCM_DATETIME "2025-11-19T19:37:28.777Z" |
| 475 | +#define SQLITE_SCM_DATETIME "2025-11-21T17:30:44.138Z" |
| 476 | 476 | |
| 477 | 477 | /* |
| 478 | 478 | ** CAPI3REF: Run-Time Library Version Numbers |
| 479 | 479 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 480 | 480 | ** |
| | @@ -20881,14 +20881,15 @@ |
| 20881 | 20881 | } InitData; |
| 20882 | 20882 | |
| 20883 | 20883 | /* |
| 20884 | 20884 | ** Allowed values for mInitFlags |
| 20885 | 20885 | */ |
| 20886 | | -#define INITFLAG_AlterMask 0x0003 /* Types of ALTER */ |
| 20886 | +#define INITFLAG_AlterMask 0x0007 /* Types of ALTER */ |
| 20887 | 20887 | #define INITFLAG_AlterRename 0x0001 /* Reparse after a RENAME */ |
| 20888 | 20888 | #define INITFLAG_AlterDrop 0x0002 /* Reparse after a DROP COLUMN */ |
| 20889 | 20889 | #define INITFLAG_AlterAdd 0x0003 /* Reparse after an ADD COLUMN */ |
| 20890 | +#define INITFLAG_AlterDropCons 0x0004 /* Reparse after an ADD COLUMN */ |
| 20890 | 20891 | |
| 20891 | 20892 | /* Tuning parameters are set using SQLITE_TESTCTRL_TUNE and are controlled |
| 20892 | 20893 | ** on debug-builds of the CLI using ".testctrl tune ID VALUE". Tuning |
| 20893 | 20894 | ** parameters are for temporary use during development, to help find |
| 20894 | 20895 | ** optimal values for parameters in the query planner. The should not |
| | @@ -22065,10 +22066,13 @@ |
| 22065 | 22066 | SQLITE_PRIVATE void sqlite3RootPageMoved(sqlite3*, int, Pgno, Pgno); |
| 22066 | 22067 | SQLITE_PRIVATE void sqlite3Reindex(Parse*, Token*, Token*); |
| 22067 | 22068 | SQLITE_PRIVATE void sqlite3AlterFunctions(void); |
| 22068 | 22069 | SQLITE_PRIVATE void sqlite3AlterRenameTable(Parse*, SrcList*, Token*); |
| 22069 | 22070 | SQLITE_PRIVATE void sqlite3AlterRenameColumn(Parse*, SrcList*, Token*, Token*); |
| 22071 | +SQLITE_PRIVATE void sqlite3AlterDropConstraint(Parse*,SrcList*,Token*,Token*); |
| 22072 | +SQLITE_PRIVATE void sqlite3AlterAddConstraint(Parse*,SrcList*,Token*,Token*,const char*,int); |
| 22073 | +SQLITE_PRIVATE void sqlite3AlterSetNotNull(Parse*, SrcList*, Token*, Token*); |
| 22070 | 22074 | SQLITE_PRIVATE i64 sqlite3GetToken(const unsigned char *, int *); |
| 22071 | 22075 | SQLITE_PRIVATE void sqlite3NestedParse(Parse*, const char*, ...); |
| 22072 | 22076 | SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3*, int); |
| 22073 | 22077 | SQLITE_PRIVATE void sqlite3CodeRhsOfIN(Parse*, Expr*, int); |
| 22074 | 22078 | SQLITE_PRIVATE int sqlite3CodeSubselect(Parse*, Expr*); |
| | @@ -95332,10 +95336,11 @@ |
| 95332 | 95336 | #ifndef SQLITE_HWTIME_H |
| 95333 | 95337 | #define SQLITE_HWTIME_H |
| 95334 | 95338 | |
| 95335 | 95339 | #if defined(_MSC_VER) && defined(_WIN32) |
| 95336 | 95340 | |
| 95341 | +/* #include "windows.h" */ |
| 95337 | 95342 | #include <profileapi.h> |
| 95338 | 95343 | |
| 95339 | 95344 | __inline sqlite3_uint64 sqlite3Hwtime(void){ |
| 95340 | 95345 | LARGE_INTEGER tm; |
| 95341 | 95346 | QueryPerformanceCounter(&tm); |
| | @@ -119669,11 +119674,11 @@ |
| 119669 | 119674 | sqlite3 *db = pParse->db; |
| 119670 | 119675 | |
| 119671 | 119676 | /* Look up the table being altered. */ |
| 119672 | 119677 | assert( pParse->pNewTable==0 ); |
| 119673 | 119678 | assert( sqlite3BtreeHoldsAllMutexes(db) ); |
| 119674 | | - if( db->mallocFailed ) goto exit_begin_add_column; |
| 119679 | + if( NEVER(db->mallocFailed) ) goto exit_begin_add_column; |
| 119675 | 119680 | pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); |
| 119676 | 119681 | if( !pTab ) goto exit_begin_add_column; |
| 119677 | 119682 | |
| 119678 | 119683 | #ifndef SQLITE_OMIT_VIRTUALTABLE |
| 119679 | 119684 | if( IsVirtual(pTab) ){ |
| | @@ -119741,11 +119746,11 @@ |
| 119741 | 119746 | ** it loads an error message into pParse and returns non-zero. |
| 119742 | 119747 | ** |
| 119743 | 119748 | ** Or, if pTab is not a view or virtual table, zero is returned. |
| 119744 | 119749 | */ |
| 119745 | 119750 | #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) |
| 119746 | | -static int isRealTable(Parse *pParse, Table *pTab, int bDrop){ |
| 119751 | +static int isRealTable(Parse *pParse, Table *pTab, int iOp){ |
| 119747 | 119752 | const char *zType = 0; |
| 119748 | 119753 | #ifndef SQLITE_OMIT_VIEW |
| 119749 | 119754 | if( IsView(pTab) ){ |
| 119750 | 119755 | zType = "view"; |
| 119751 | 119756 | } |
| | @@ -119754,13 +119759,16 @@ |
| 119754 | 119759 | if( IsVirtual(pTab) ){ |
| 119755 | 119760 | zType = "virtual table"; |
| 119756 | 119761 | } |
| 119757 | 119762 | #endif |
| 119758 | 119763 | if( zType ){ |
| 119764 | + const char *azMsg[] = { |
| 119765 | + "rename columns of", "drop column from", "edit constraints of" |
| 119766 | + }; |
| 119767 | + assert( iOp>=0 && iOp<ArraySize(azMsg) ); |
| 119759 | 119768 | sqlite3ErrorMsg(pParse, "cannot %s %s \"%s\"", |
| 119760 | | - (bDrop ? "drop column from" : "rename columns of"), |
| 119761 | | - zType, pTab->zName |
| 119769 | + azMsg[iOp], zType, pTab->zName |
| 119762 | 119770 | ); |
| 119763 | 119771 | return 1; |
| 119764 | 119772 | } |
| 119765 | 119773 | return 0; |
| 119766 | 119774 | } |
| | @@ -120226,10 +120234,29 @@ |
| 120226 | 120234 | for(pp=&pCtx->pList; *pp!=pBest; pp=&(*pp)->pNext); |
| 120227 | 120235 | *pp = pBest->pNext; |
| 120228 | 120236 | |
| 120229 | 120237 | return pBest; |
| 120230 | 120238 | } |
| 120239 | + |
| 120240 | +/* |
| 120241 | +** Set the error message of the context passed as the first argument to |
| 120242 | +** the result of formatting zFmt using printf() style formatting. |
| 120243 | +*/ |
| 120244 | +static void errorMPrintf(sqlite3_context *pCtx, const char *zFmt, ...){ |
| 120245 | + sqlite3 *db = sqlite3_context_db_handle(pCtx); |
| 120246 | + char *zErr = 0; |
| 120247 | + va_list ap; |
| 120248 | + va_start(ap, zFmt); |
| 120249 | + zErr = sqlite3VMPrintf(db, zFmt, ap); |
| 120250 | + va_end(ap); |
| 120251 | + if( zErr ){ |
| 120252 | + sqlite3_result_error(pCtx, zErr, -1); |
| 120253 | + sqlite3DbFree(db, zErr); |
| 120254 | + }else{ |
| 120255 | + sqlite3_result_error_nomem(pCtx); |
| 120256 | + } |
| 120257 | +} |
| 120231 | 120258 | |
| 120232 | 120259 | /* |
| 120233 | 120260 | ** An error occurred while parsing or otherwise processing a database |
| 120234 | 120261 | ** object (either pParse->pNewTable, pNewIndex or pNewTrigger) as part of an |
| 120235 | 120262 | ** ALTER TABLE RENAME COLUMN program. The error message emitted by the |
| | @@ -121490,10 +121517,700 @@ |
| 121490 | 121517 | |
| 121491 | 121518 | exit_drop_column: |
| 121492 | 121519 | sqlite3DbFree(db, zCol); |
| 121493 | 121520 | sqlite3SrcListDelete(db, pSrc); |
| 121494 | 121521 | } |
| 121522 | + |
| 121523 | +/* |
| 121524 | +** Return the number of bytes of leading whitespace/comments in string z[]. |
| 121525 | +*/ |
| 121526 | +static int getWhitespace(const u8 *z){ |
| 121527 | + int nRet = 0; |
| 121528 | + while( 1 ){ |
| 121529 | + int t = 0; |
| 121530 | + int n = sqlite3GetToken(&z[nRet], &t); |
| 121531 | + if( t!=TK_SPACE && t!=TK_COMMENT ) break; |
| 121532 | + nRet += n; |
| 121533 | + } |
| 121534 | + return nRet; |
| 121535 | +} |
| 121536 | + |
| 121537 | + |
| 121538 | +/* |
| 121539 | +** Return the number of bytes until the end of the next non-whitespace and |
| 121540 | +** non-comment token. For the purpose of this function, a "(" token includes |
| 121541 | +** all of the bytes through and including the matching ")", or until the |
| 121542 | +** first illegal token, whichever comes first. |
| 121543 | +** |
| 121544 | +** Write the token type into *piToken. |
| 121545 | +** |
| 121546 | +** The value returned is the number of bytes in the token itself plus |
| 121547 | +** the number of bytes of leading whitespace and comments skipped plus |
| 121548 | +** all bytes through the next matching ")" if the token is TK_LP. |
| 121549 | +** |
| 121550 | +** Example: (Note: '.' used in place of '*' in the example z[] text) |
| 121551 | +** |
| 121552 | +** ,--------- *piToken := TK_RP |
| 121553 | +** v |
| 121554 | +** z[] = " /.comment./ --comment\n (two three four) five" |
| 121555 | +** | | |
| 121556 | +** |<-------------------------------------->| |
| 121557 | +** | |
| 121558 | +** `--- return value |
| 121559 | +*/ |
| 121560 | +static int getConstraintToken(const u8 *z, int *piToken){ |
| 121561 | + int iOff = 0; |
| 121562 | + int t = 0; |
| 121563 | + do { |
| 121564 | + iOff += sqlite3GetToken(&z[iOff], &t); |
| 121565 | + }while( t==TK_SPACE || t==TK_COMMENT ); |
| 121566 | + |
| 121567 | + *piToken = t; |
| 121568 | + |
| 121569 | + if( t==TK_LP ){ |
| 121570 | + int nNest = 1; |
| 121571 | + while( nNest>0 ){ |
| 121572 | + iOff += sqlite3GetToken(&z[iOff], &t); |
| 121573 | + if( t==TK_LP ){ |
| 121574 | + nNest++; |
| 121575 | + }else if( t==TK_RP ){ |
| 121576 | + t = TK_LP; |
| 121577 | + nNest--; |
| 121578 | + }else if( t==TK_ILLEGAL ){ |
| 121579 | + break; |
| 121580 | + } |
| 121581 | + } |
| 121582 | + } |
| 121583 | + |
| 121584 | + *piToken = t; |
| 121585 | + return iOff; |
| 121586 | +} |
| 121587 | + |
| 121588 | +/* |
| 121589 | +** Argument z points into the body of a constraint - specifically the |
| 121590 | +** second token of the constraint definition. For a named constraint, |
| 121591 | +** z points to the first token past the CONSTRAINT keyword. For an |
| 121592 | +** unnamed NOT NULL constraint, z points to the first byte past the NOT |
| 121593 | +** keyword. |
| 121594 | +** |
| 121595 | +** Return the number of bytes until the end of the constraint. |
| 121596 | +*/ |
| 121597 | +static int getConstraint(const u8 *z){ |
| 121598 | + int iOff = 0; |
| 121599 | + int t = 0; |
| 121600 | + |
| 121601 | + /* Now, the current constraint proceeds until the next occurence of one |
| 121602 | + ** of the following tokens: |
| 121603 | + ** |
| 121604 | + ** CONSTRAINT, PRIMARY, NOT, UNIQUE, CHECK, DEFAULT, |
| 121605 | + ** COLLATE, REFERENCES, FOREIGN, GENERATED, AS, RP, or COMMA |
| 121606 | + ** |
| 121607 | + ** Also exit the loop if ILLEGAL turns up. |
| 121608 | + */ |
| 121609 | + while( 1 ){ |
| 121610 | + int n = getConstraintToken(&z[iOff], &t); |
| 121611 | + if( t==TK_CONSTRAINT || t==TK_PRIMARY || t==TK_NOT || t==TK_UNIQUE |
| 121612 | + || t==TK_CHECK || t==TK_DEFAULT || t==TK_COLLATE || t==TK_REFERENCES |
| 121613 | + || t==TK_FOREIGN || t==TK_RP || t==TK_COMMA || t==TK_ILLEGAL |
| 121614 | + || t==TK_AS || t==TK_GENERATED |
| 121615 | + ){ |
| 121616 | + break; |
| 121617 | + } |
| 121618 | + iOff += n; |
| 121619 | + } |
| 121620 | + |
| 121621 | + return iOff; |
| 121622 | +} |
| 121623 | + |
| 121624 | +/* |
| 121625 | +** Compare two constraint names. |
| 121626 | +** |
| 121627 | +** Summary: *pRes := zQuote != zCmp |
| 121628 | +** |
| 121629 | +** Details: |
| 121630 | +** Compare the (possibly quoted) constraint name zQuote[0..nQuote-1] |
| 121631 | +** against zCmp[]. Write zero into *pRes if they are the same and |
| 121632 | +** non-zero if they differ. Normally return SQLITE_OK, except if there |
| 121633 | +** is an OOM, set the OOM error condition on ctx and return SQLITE_NOMEM. |
| 121634 | +*/ |
| 121635 | +static int quotedCompare( |
| 121636 | + sqlite3_context *ctx, /* Function context on which to report errors */ |
| 121637 | + const u8 *zQuote, /* Possibly quoted text. Not zero-terminated. */ |
| 121638 | + int nQuote, /* Length of zQuote in bytes */ |
| 121639 | + const u8 *zCmp, /* Zero-terminated, unquoted name to compare against */ |
| 121640 | + int *pRes /* OUT: Set to 0 if equal, non-zero if unequal */ |
| 121641 | +){ |
| 121642 | + char *zCopy = 0; /* De-quoted, zero-terminated copy of zQuote[] */ |
| 121643 | + |
| 121644 | + zCopy = sqlite3MallocZero(nQuote+1); |
| 121645 | + if( zCopy==0 ){ |
| 121646 | + sqlite3_result_error_nomem(ctx); |
| 121647 | + return SQLITE_NOMEM_BKPT; |
| 121648 | + } |
| 121649 | + memcpy(zCopy, zQuote, nQuote); |
| 121650 | + sqlite3Dequote(zCopy); |
| 121651 | + *pRes = sqlite3_stricmp((const char*)zCopy, (const char*)zCmp); |
| 121652 | + sqlite3_free(zCopy); |
| 121653 | + return SQLITE_OK; |
| 121654 | +} |
| 121655 | + |
| 121656 | +/* |
| 121657 | +** zSql[] is a CREATE TABLE statement, supposedly. Find the offset |
| 121658 | +** into zSql[] of the first character past the first "(" and write |
| 121659 | +** that offset into *piOff and return SQLITE_OK. Or, if not found, |
| 121660 | +** set the SQLITE_CORRUPT error code and return SQLITE_ERROR. |
| 121661 | +*/ |
| 121662 | +static int skipCreateTable(sqlite3_context *ctx, const u8 *zSql, int *piOff){ |
| 121663 | + int iOff = 0; |
| 121664 | + |
| 121665 | + if( zSql==0 ) return SQLITE_ERROR; |
| 121666 | + |
| 121667 | + /* Jump past the "CREATE TABLE" bit. */ |
| 121668 | + while( 1 ){ |
| 121669 | + int t = 0; |
| 121670 | + iOff += sqlite3GetToken(&zSql[iOff], &t); |
| 121671 | + if( t==TK_LP ) break; |
| 121672 | + if( t==TK_ILLEGAL ){ |
| 121673 | + sqlite3_result_error_code(ctx, SQLITE_CORRUPT_BKPT); |
| 121674 | + return SQLITE_ERROR; |
| 121675 | + } |
| 121676 | + } |
| 121677 | + |
| 121678 | + *piOff = iOff; |
| 121679 | + return SQLITE_OK; |
| 121680 | +} |
| 121681 | + |
| 121682 | +/* |
| 121683 | +** Internal SQL function sqlite3_drop_constraint(): Given an input |
| 121684 | +** CREATE TABLE statement, return a revised CREATE TABLE statement |
| 121685 | +** with a constraint removed. Two forms, depending on the datatype |
| 121686 | +** of argv[2]: |
| 121687 | +** |
| 121688 | +** sqlite_drop_constraint(SQL, INT) -- Omit NOT NULL from the INT-th column |
| 121689 | +** sqlite_drop_constraint(SQL, TEXT) -- OMIT constraint with name TEXT |
| 121690 | +** |
| 121691 | +** In the first case, the left-most column is 0. |
| 121692 | +*/ |
| 121693 | +static void dropConstraintFunc( |
| 121694 | + sqlite3_context *ctx, |
| 121695 | + int NotUsed, |
| 121696 | + sqlite3_value **argv |
| 121697 | +){ |
| 121698 | + const u8 *zSql = sqlite3_value_text(argv[0]); |
| 121699 | + const u8 *zCons = 0; |
| 121700 | + int iNotNull = -1; |
| 121701 | + int ii; |
| 121702 | + int iOff = 0; |
| 121703 | + int iStart = 0; |
| 121704 | + int iEnd = 0; |
| 121705 | + char *zNew = 0; |
| 121706 | + int t = 0; |
| 121707 | + sqlite3 *db; |
| 121708 | + UNUSED_PARAMETER(NotUsed); |
| 121709 | + |
| 121710 | + if( zSql==0 ) return; |
| 121711 | + |
| 121712 | + /* Jump past the "CREATE TABLE" bit. */ |
| 121713 | + if( skipCreateTable(ctx, zSql, &iOff) ) return; |
| 121714 | + |
| 121715 | + if( sqlite3_value_type(argv[1])==SQLITE_INTEGER ){ |
| 121716 | + iNotNull = sqlite3_value_int(argv[1]); |
| 121717 | + }else{ |
| 121718 | + zCons = sqlite3_value_text(argv[1]); |
| 121719 | + } |
| 121720 | + |
| 121721 | + /* Search for the named constraint within column definitions. */ |
| 121722 | + for(ii=0; iEnd==0; ii++){ |
| 121723 | + |
| 121724 | + /* Now parse the column or table constraint definition. Search |
| 121725 | + ** for the token CONSTRAINT if this is a DROP CONSTRAINT command, or |
| 121726 | + ** NOT in the right column if this is a DROP NOT NULL. */ |
| 121727 | + while( 1 ){ |
| 121728 | + iStart = iOff; |
| 121729 | + iOff += getConstraintToken(&zSql[iOff], &t); |
| 121730 | + if( t==TK_CONSTRAINT && (zCons || iNotNull==ii) ){ |
| 121731 | + /* Check if this is the constraint we are searching for. */ |
| 121732 | + int nTok = 0; |
| 121733 | + int cmp = 1; |
| 121734 | + |
| 121735 | + /* Skip past any whitespace. */ |
| 121736 | + iOff += getWhitespace(&zSql[iOff]); |
| 121737 | + |
| 121738 | + /* Compare the next token - which may be quoted - with the name of |
| 121739 | + ** the constraint being dropped. */ |
| 121740 | + nTok = getConstraintToken(&zSql[iOff], &t); |
| 121741 | + if( zCons ){ |
| 121742 | + if( quotedCompare(ctx, &zSql[iOff], nTok, zCons, &cmp) ) return; |
| 121743 | + } |
| 121744 | + iOff += nTok; |
| 121745 | + |
| 121746 | + /* The next token is usually the first token of the constraint |
| 121747 | + ** definition. This is enough to tell the type of the constraint - |
| 121748 | + ** TK_NOT means it is a NOT NULL, TK_CHECK a CHECK constraint etc. |
| 121749 | + ** |
| 121750 | + ** There is also the chance that the next token is TK_CONSTRAINT |
| 121751 | + ** (or TK_DEFAULT or TK_COLLATE), for example if a table has been |
| 121752 | + ** created as follows: |
| 121753 | + ** |
| 121754 | + ** CREATE TABLE t1(cols, CONSTRAINT one CONSTRAINT two NOT NULL); |
| 121755 | + ** |
| 121756 | + ** In this case, allow the "CONSTRAINT one" bit to be dropped by |
| 121757 | + ** this command if that is what is requested, or to advance to |
| 121758 | + ** the next iteration of the loop with &zSql[iOff] still pointing |
| 121759 | + ** to the CONSTRAINT keyword. */ |
| 121760 | + nTok = getConstraintToken(&zSql[iOff], &t); |
| 121761 | + if( t==TK_CONSTRAINT || t==TK_DEFAULT || t==TK_COLLATE |
| 121762 | + || t==TK_COMMA || t==TK_RP || t==TK_GENERATED || t==TK_AS |
| 121763 | + ){ |
| 121764 | + t = TK_CHECK; |
| 121765 | + }else{ |
| 121766 | + iOff += nTok; |
| 121767 | + iOff += getConstraint(&zSql[iOff]); |
| 121768 | + } |
| 121769 | + |
| 121770 | + if( cmp==0 || (iNotNull>=0 && t==TK_NOT) ){ |
| 121771 | + if( t!=TK_NOT && t!=TK_CHECK ){ |
| 121772 | + errorMPrintf(ctx, "constraint may not be dropped: %s", zCons); |
| 121773 | + return; |
| 121774 | + } |
| 121775 | + iEnd = iOff; |
| 121776 | + break; |
| 121777 | + } |
| 121778 | + |
| 121779 | + }else if( t==TK_NOT && iNotNull==ii ){ |
| 121780 | + iEnd = iOff + getConstraint(&zSql[iOff]); |
| 121781 | + break; |
| 121782 | + }else if( t==TK_RP || t==TK_ILLEGAL ){ |
| 121783 | + iEnd = -1; |
| 121784 | + break; |
| 121785 | + }else if( t==TK_COMMA ){ |
| 121786 | + break; |
| 121787 | + } |
| 121788 | + } |
| 121789 | + } |
| 121790 | + |
| 121791 | + /* If the constraint has not been found it is an error. */ |
| 121792 | + if( iEnd<=0 ){ |
| 121793 | + if( zCons ){ |
| 121794 | + errorMPrintf(ctx, "no such constraint: %s", zCons); |
| 121795 | + }else{ |
| 121796 | + /* SQLite follows postgres in that a DROP NOT NULL on a column that is |
| 121797 | + ** not NOT NULL is not an error. So just return the original SQL here. */ |
| 121798 | + sqlite3_result_text(ctx, (const char*)zSql, -1, SQLITE_TRANSIENT); |
| 121799 | + } |
| 121800 | + }else{ |
| 121801 | + |
| 121802 | + /* Figure out if an extra space should be inserted after the constraint |
| 121803 | + ** is removed. And if an additional comma preceding the constraint |
| 121804 | + ** should be removed. */ |
| 121805 | + const char *zSpace = " "; |
| 121806 | + iEnd += getWhitespace(&zSql[iEnd]); |
| 121807 | + sqlite3GetToken(&zSql[iEnd], &t); |
| 121808 | + if( t==TK_RP || t==TK_COMMA ){ |
| 121809 | + zSpace = ""; |
| 121810 | + if( zSql[iStart-1]==',' ) iStart--; |
| 121811 | + } |
| 121812 | + |
| 121813 | + db = sqlite3_context_db_handle(ctx); |
| 121814 | + zNew = sqlite3MPrintf(db, "%.*s%s%s", iStart, zSql, zSpace, &zSql[iEnd]); |
| 121815 | + sqlite3_result_text(ctx, zNew, -1, SQLITE_DYNAMIC); |
| 121816 | + } |
| 121817 | +} |
| 121818 | + |
| 121819 | +/* |
| 121820 | +** Internal SQL function: |
| 121821 | +** |
| 121822 | +** sqlite_add_constraint(SQL, CONSTRAINT-TEXT, ICOL) |
| 121823 | +** |
| 121824 | +** SQL is a CREATE TABLE statement. Return a modified version of |
| 121825 | +** SQL that adds CONSTRAINT-TEXT at the end of the ICOL-th column |
| 121826 | +** definition. (The left-most column defintion is 0.) |
| 121827 | +*/ |
| 121828 | +static void addConstraintFunc( |
| 121829 | + sqlite3_context *ctx, |
| 121830 | + int NotUsed, |
| 121831 | + sqlite3_value **argv |
| 121832 | +){ |
| 121833 | + const u8 *zSql = sqlite3_value_text(argv[0]); |
| 121834 | + const char *zCons = (const char*)sqlite3_value_text(argv[1]); |
| 121835 | + int iCol = sqlite3_value_int(argv[2]); |
| 121836 | + int iOff = 0; |
| 121837 | + int ii; |
| 121838 | + char *zNew = 0; |
| 121839 | + int t = 0; |
| 121840 | + sqlite3 *db; |
| 121841 | + UNUSED_PARAMETER(NotUsed); |
| 121842 | + |
| 121843 | + if( skipCreateTable(ctx, zSql, &iOff) ) return; |
| 121844 | + |
| 121845 | + for(ii=0; ii<=iCol || (iCol<0 && t!=TK_RP); ii++){ |
| 121846 | + iOff += getConstraintToken(&zSql[iOff], &t); |
| 121847 | + while( 1 ){ |
| 121848 | + int nTok = getConstraintToken(&zSql[iOff], &t); |
| 121849 | + if( t==TK_COMMA || t==TK_RP ) break; |
| 121850 | + if( t==TK_ILLEGAL ){ |
| 121851 | + sqlite3_result_error_code(ctx, SQLITE_CORRUPT_BKPT); |
| 121852 | + return; |
| 121853 | + } |
| 121854 | + iOff += nTok; |
| 121855 | + } |
| 121856 | + } |
| 121857 | + |
| 121858 | + iOff += getWhitespace(&zSql[iOff]); |
| 121859 | + |
| 121860 | + db = sqlite3_context_db_handle(ctx); |
| 121861 | + if( iCol<0 ){ |
| 121862 | + zNew = sqlite3MPrintf(db, "%.*s, %s%s", iOff, zSql, zCons, &zSql[iOff]); |
| 121863 | + }else{ |
| 121864 | + zNew = sqlite3MPrintf(db, "%.*s %s%s", iOff, zSql, zCons, &zSql[iOff]); |
| 121865 | + } |
| 121866 | + sqlite3_result_text(ctx, zNew, -1, SQLITE_DYNAMIC); |
| 121867 | +} |
| 121868 | + |
| 121869 | +/* |
| 121870 | +** Find a column named pCol in table pTab. If successful, set output |
| 121871 | +** parameter *piCol to the index of the column in the table and return |
| 121872 | +** SQLITE_OK. Otherwise, set *piCol to -1 and return an SQLite error |
| 121873 | +** code. |
| 121874 | +*/ |
| 121875 | +static int alterFindCol(Parse *pParse, Table *pTab, Token *pCol, int *piCol){ |
| 121876 | + sqlite3 *db = pParse->db; |
| 121877 | + char *zName = sqlite3NameFromToken(db, pCol); |
| 121878 | + int rc = SQLITE_NOMEM; |
| 121879 | + int iCol = -1; |
| 121880 | + |
| 121881 | + if( zName ){ |
| 121882 | + iCol = sqlite3ColumnIndex(pTab, zName); |
| 121883 | + if( iCol<0 ){ |
| 121884 | + sqlite3ErrorMsg(pParse, "no such column: %s", zName); |
| 121885 | + rc = SQLITE_ERROR; |
| 121886 | + }else{ |
| 121887 | + rc = SQLITE_OK; |
| 121888 | + } |
| 121889 | + } |
| 121890 | + |
| 121891 | +#ifndef SQLITE_OMIT_AUTHORIZATION |
| 121892 | + if( rc==SQLITE_OK ){ |
| 121893 | + const char *zDb = db->aDb[sqlite3SchemaToIndex(db, pTab->pSchema)].zDbSName; |
| 121894 | + const char *zCol = pTab->aCol[iCol].zCnName; |
| 121895 | + if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, zCol) ){ |
| 121896 | + pTab = 0; |
| 121897 | + } |
| 121898 | + } |
| 121899 | +#endif |
| 121900 | + |
| 121901 | + sqlite3DbFree(db, zName); |
| 121902 | + *piCol = iCol; |
| 121903 | + return rc; |
| 121904 | +} |
| 121905 | + |
| 121906 | + |
| 121907 | +/* |
| 121908 | +** Find the table named by the first entry in source list pSrc. If successful, |
| 121909 | +** return a pointer to the Table structure and set output variable (*pzDb) |
| 121910 | +** to point to the name of the database containin the table (i.e. "main", |
| 121911 | +** "temp" or the name of an attached database). |
| 121912 | +** |
| 121913 | +** If the table cannot be located, return NULL. The value of the two output |
| 121914 | +** parameters is undefined in this case. |
| 121915 | +*/ |
| 121916 | +static Table *alterFindTable( |
| 121917 | + Parse *pParse, /* Parsing context */ |
| 121918 | + SrcList *pSrc, /* Name of the table to look for */ |
| 121919 | + int *piDb, /* OUT: write the iDb here */ |
| 121920 | + const char **pzDb, /* OUT: write name of schema here */ |
| 121921 | + int bAuth /* Do ALTER TABLE authorization checks if true */ |
| 121922 | +){ |
| 121923 | + sqlite3 *db = pParse->db; |
| 121924 | + Table *pTab = 0; |
| 121925 | + assert( sqlite3BtreeHoldsAllMutexes(db) ); |
| 121926 | + pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); |
| 121927 | + if( pTab ){ |
| 121928 | + int iDb = sqlite3SchemaToIndex(db, pTab->pSchema); |
| 121929 | + *pzDb = db->aDb[iDb].zDbSName; |
| 121930 | + *piDb = iDb; |
| 121931 | + |
| 121932 | + if( SQLITE_OK!=isRealTable(pParse, pTab, 2) |
| 121933 | + || SQLITE_OK!=isAlterableTable(pParse, pTab) |
| 121934 | + ){ |
| 121935 | + pTab = 0; |
| 121936 | + } |
| 121937 | + } |
| 121938 | +#ifndef SQLITE_OMIT_AUTHORIZATION |
| 121939 | + if( pTab && bAuth ){ |
| 121940 | + if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, *pzDb, pTab->zName, 0) ){ |
| 121941 | + pTab = 0; |
| 121942 | + } |
| 121943 | + } |
| 121944 | +#endif |
| 121945 | + sqlite3SrcListDelete(db, pSrc); |
| 121946 | + return pTab; |
| 121947 | +} |
| 121948 | + |
| 121949 | +/* |
| 121950 | +** Generate bytecode for one of: |
| 121951 | +** |
| 121952 | +** (1) ALTER TABLE pSrc DROP CONSTRAINT pCons |
| 121953 | +** (2) ALTER TABLE pSrc ALTER pCol DROP NOT NULL |
| 121954 | +** |
| 121955 | +** One of pCons and pCol must be NULL and the other non-null. |
| 121956 | +*/ |
| 121957 | +SQLITE_PRIVATE void sqlite3AlterDropConstraint( |
| 121958 | + Parse *pParse, /* Parsing context */ |
| 121959 | + SrcList *pSrc, /* The table being altered */ |
| 121960 | + Token *pCons, /* Name of the constraint to drop */ |
| 121961 | + Token *pCol /* Name of the column from which to remove the NOT NULL */ |
| 121962 | +){ |
| 121963 | + sqlite3 *db = pParse->db; |
| 121964 | + Table *pTab = 0; |
| 121965 | + int iDb = 0; |
| 121966 | + const char *zDb = 0; |
| 121967 | + char *zArg = 0; |
| 121968 | + |
| 121969 | + assert( (pCol==0)!=(pCons==0) ); |
| 121970 | + assert( pSrc->nSrc==1 ); |
| 121971 | + pTab = alterFindTable(pParse, pSrc, &iDb, &zDb, pCons!=0); |
| 121972 | + if( !pTab ) return; |
| 121973 | + |
| 121974 | + if( pCons ){ |
| 121975 | + zArg = sqlite3MPrintf(db, "%.*Q", pCons->n, pCons->z); |
| 121976 | + }else{ |
| 121977 | + int iCol; |
| 121978 | + if( alterFindCol(pParse, pTab, pCol, &iCol) ) return; |
| 121979 | + zArg = sqlite3MPrintf(db, "%d", iCol); |
| 121980 | + } |
| 121981 | + |
| 121982 | + /* Edit the SQL for the named table. */ |
| 121983 | + sqlite3NestedParse(pParse, |
| 121984 | + "UPDATE \"%w\"." LEGACY_SCHEMA_TABLE " SET " |
| 121985 | + "sql = sqlite_drop_constraint(sql, %s) " |
| 121986 | + "WHERE type='table' AND tbl_name=%Q COLLATE nocase" |
| 121987 | + , zDb, zArg, pTab->zName |
| 121988 | + ); |
| 121989 | + sqlite3DbFree(db, zArg); |
| 121990 | + |
| 121991 | + /* Finally, reload the database schema. */ |
| 121992 | + renameReloadSchema(pParse, iDb, INITFLAG_AlterDropCons); |
| 121993 | +} |
| 121994 | + |
| 121995 | +/* |
| 121996 | +** The implementation of SQL function sqlite_fail(MSG). This takes a single |
| 121997 | +** argument, and returns it as an error message with the error code set to |
| 121998 | +** SQLITE_CONSTRAINT. |
| 121999 | +*/ |
| 122000 | +static void failConstraintFunc( |
| 122001 | + sqlite3_context *ctx, |
| 122002 | + int NotUsed, |
| 122003 | + sqlite3_value **argv |
| 122004 | +){ |
| 122005 | + const char *zText = (const char*)sqlite3_value_text(argv[0]); |
| 122006 | + int err = sqlite3_value_int(argv[1]); |
| 122007 | + (void)NotUsed; |
| 122008 | + sqlite3_result_error(ctx, zText, -1); |
| 122009 | + sqlite3_result_error_code(ctx, err); |
| 122010 | +} |
| 122011 | + |
| 122012 | +/* |
| 122013 | +** Buffer pCons, which is nCons bytes in size, contains the text of a |
| 122014 | +** NOT NULL or CHECK constraint that will be inserted into a CREATE TABLE |
| 122015 | +** statement. If successful, this function returns the size of the buffer in |
| 122016 | +** bytes not including any trailing whitespace or "--" style comments. Or, |
| 122017 | +** if an OOM occurs, it returns 0 and sets db->mallocFailed to true. |
| 122018 | +** |
| 122019 | +** C-style comments at the end are preserved. "--" style comments are |
| 122020 | +** removed because the comment terminator might be \000, and we are about |
| 122021 | +** to insert the pCons[] text into the middle of a larger string, and that |
| 122022 | +** will have the effect of removing the comment terminator and messing up |
| 122023 | +** the syntax. |
| 122024 | +*/ |
| 122025 | +static int alterRtrimConstraint( |
| 122026 | + sqlite3 *db, /* used to record OOM error */ |
| 122027 | + const char *pCons, /* Buffer containing constraint */ |
| 122028 | + int nCons /* Size of pCons in bytes */ |
| 122029 | +){ |
| 122030 | + u8 *zTmp = (u8*)sqlite3MPrintf(db, "%.*s", nCons, pCons); |
| 122031 | + int iOff = 0; |
| 122032 | + int iEnd = 0; |
| 122033 | + |
| 122034 | + if( zTmp==0 ) return 0; |
| 122035 | + |
| 122036 | + while( 1 ){ |
| 122037 | + int t = 0; |
| 122038 | + int nToken = sqlite3GetToken(&zTmp[iOff], &t); |
| 122039 | + if( t==TK_ILLEGAL ) break; |
| 122040 | + if( t!=TK_SPACE && (t!=TK_COMMENT || zTmp[iOff]!='-') ){ |
| 122041 | + iEnd = iOff+nToken; |
| 122042 | + } |
| 122043 | + iOff += nToken; |
| 122044 | + } |
| 122045 | + |
| 122046 | + sqlite3DbFree(db, zTmp); |
| 122047 | + return iEnd; |
| 122048 | +} |
| 122049 | + |
| 122050 | +/* |
| 122051 | +** Prepare a statement of the form: |
| 122052 | +** |
| 122053 | +** ALTER TABLE pSrc ALTER pCol SET NOT NULL |
| 122054 | +*/ |
| 122055 | +SQLITE_PRIVATE void sqlite3AlterSetNotNull( |
| 122056 | + Parse *pParse, /* Parsing context */ |
| 122057 | + SrcList *pSrc, /* Name of the table being altered */ |
| 122058 | + Token *pCol, /* Name of the column to add a NOT NULL constraint to */ |
| 122059 | + Token *pFirst /* The NOT token of the NOT NULL constraint text */ |
| 122060 | +){ |
| 122061 | + Table *pTab = 0; |
| 122062 | + int iCol = 0; |
| 122063 | + int iDb = 0; |
| 122064 | + const char *zDb = 0; |
| 122065 | + const char *pCons = 0; |
| 122066 | + int nCons = 0; |
| 122067 | + |
| 122068 | + /* Look up the table being altered. */ |
| 122069 | + assert( pSrc->nSrc==1 ); |
| 122070 | + pTab = alterFindTable(pParse, pSrc, &iDb, &zDb, 0); |
| 122071 | + if( !pTab ) return; |
| 122072 | + |
| 122073 | + /* Find the column being altered. */ |
| 122074 | + if( alterFindCol(pParse, pTab, pCol, &iCol) ){ |
| 122075 | + return; |
| 122076 | + } |
| 122077 | + |
| 122078 | + /* Find the length in bytes of the constraint definition */ |
| 122079 | + pCons = pFirst->z; |
| 122080 | + nCons = alterRtrimConstraint(pParse->db, pCons, pParse->sLastToken.z - pCons); |
| 122081 | + |
| 122082 | + /* Search for a constraint violation. Throw an exception if one is found. */ |
| 122083 | + sqlite3NestedParse(pParse, |
| 122084 | + "SELECT sqlite_fail('constraint failed', %d) " |
| 122085 | + "FROM %Q.%Q AS x WHERE x.%.*s IS NULL", |
| 122086 | + SQLITE_CONSTRAINT, zDb, pTab->zName, (int)pCol->n, pCol->z |
| 122087 | + ); |
| 122088 | + |
| 122089 | + /* Edit the SQL for the named table. */ |
| 122090 | + sqlite3NestedParse(pParse, |
| 122091 | + "UPDATE \"%w\"." LEGACY_SCHEMA_TABLE " SET " |
| 122092 | + "sql = sqlite_add_constraint(sqlite_drop_constraint(sql, %d), %.*Q, %d) " |
| 122093 | + "WHERE type='table' AND tbl_name=%Q COLLATE nocase" |
| 122094 | + , zDb, iCol, nCons, pCons, iCol, pTab->zName |
| 122095 | + ); |
| 122096 | + |
| 122097 | + /* Finally, reload the database schema. */ |
| 122098 | + renameReloadSchema(pParse, iDb, INITFLAG_AlterDropCons); |
| 122099 | +} |
| 122100 | + |
| 122101 | +/* |
| 122102 | +** Implementation of internal SQL function: |
| 122103 | +** |
| 122104 | +** sqlite_find_constraint(SQL, CONSTRAINT-NAME) |
| 122105 | +** |
| 122106 | +** This function returns true if the SQL passed as the first argument is a |
| 122107 | +** CREATE TABLE that contains a constraint with the name CONSTRAINT-NAME, |
| 122108 | +** or false otherwise. |
| 122109 | +*/ |
| 122110 | +static void findConstraintFunc( |
| 122111 | + sqlite3_context *ctx, |
| 122112 | + int NotUsed, |
| 122113 | + sqlite3_value **argv |
| 122114 | +){ |
| 122115 | + const u8 *zSql = 0; |
| 122116 | + const u8 *zCons = 0; |
| 122117 | + int iOff = 0; |
| 122118 | + int t = 0; |
| 122119 | + |
| 122120 | + (void)NotUsed; |
| 122121 | + zSql = sqlite3_value_text(argv[0]); |
| 122122 | + zCons = sqlite3_value_text(argv[1]); |
| 122123 | + |
| 122124 | + if( zSql==0 || zCons==0 ) return; |
| 122125 | + while( t!=TK_LP && t!=TK_ILLEGAL ){ |
| 122126 | + iOff += sqlite3GetToken(&zSql[iOff], &t); |
| 122127 | + } |
| 122128 | + |
| 122129 | + while( 1 ){ |
| 122130 | + iOff += getConstraintToken(&zSql[iOff], &t); |
| 122131 | + if( t==TK_CONSTRAINT ){ |
| 122132 | + int nTok = 0; |
| 122133 | + int cmp = 0; |
| 122134 | + iOff += getWhitespace(&zSql[iOff]); |
| 122135 | + nTok = getConstraintToken(&zSql[iOff], &t); |
| 122136 | + if( quotedCompare(ctx, &zSql[iOff], nTok, zCons, &cmp) ) return; |
| 122137 | + if( cmp==0 ){ |
| 122138 | + sqlite3_result_int(ctx, 1); |
| 122139 | + return; |
| 122140 | + } |
| 122141 | + }else if( t==TK_ILLEGAL ){ |
| 122142 | + break; |
| 122143 | + } |
| 122144 | + } |
| 122145 | + |
| 122146 | + sqlite3_result_int(ctx, 0); |
| 122147 | +} |
| 122148 | + |
| 122149 | +/* |
| 122150 | +** Generate bytecode to implement: |
| 122151 | +** |
| 122152 | +** ALTER TABLE pSrc ADD [CONSTRAINT pName] CHECK(pExpr) |
| 122153 | +** |
| 122154 | +** Any "ON CONFLICT" text that occurs after the "CHECK(...)", up |
| 122155 | +** until pParse->sLastToken, is included as part of the new constraint. |
| 122156 | +*/ |
| 122157 | +SQLITE_PRIVATE void sqlite3AlterAddConstraint( |
| 122158 | + Parse *pParse, /* Parse context */ |
| 122159 | + SrcList *pSrc, /* Table to add constraint to */ |
| 122160 | + Token *pFirst, /* First token of new constraint */ |
| 122161 | + Token *pName, /* Name of new constraint. NULL if name omitted. */ |
| 122162 | + const char *pExpr, /* Text of CHECK expression */ |
| 122163 | + int nExpr /* Size of pExpr in bytes */ |
| 122164 | +){ |
| 122165 | + Table *pTab = 0; /* Table identified by pSrc */ |
| 122166 | + int iDb = 0; /* Which schema does pTab live in */ |
| 122167 | + const char *zDb = 0; /* Name of the schema in which pTab lives */ |
| 122168 | + const char *pCons = 0; /* Text of the constraint */ |
| 122169 | + int nCons; /* Bytes of text to use from pCons[] */ |
| 122170 | + |
| 122171 | + /* Look up the table being altered. */ |
| 122172 | + assert( pSrc->nSrc==1 ); |
| 122173 | + pTab = alterFindTable(pParse, pSrc, &iDb, &zDb, 1); |
| 122174 | + if( !pTab ) return; |
| 122175 | + |
| 122176 | + /* If this new constraint has a name, check that it is not a duplicate of |
| 122177 | + ** an existing constraint. It is an error if it is. */ |
| 122178 | + if( pName ){ |
| 122179 | + char *zName = sqlite3NameFromToken(pParse->db, pName); |
| 122180 | + |
| 122181 | + sqlite3NestedParse(pParse, |
| 122182 | + "SELECT sqlite_fail('constraint %q already exists', %d) " |
| 122183 | + "FROM \"%w\"." LEGACY_SCHEMA_TABLE " " |
| 122184 | + "WHERE type='table' AND tbl_name=%Q COLLATE nocase " |
| 122185 | + "AND sqlite_find_constraint(sql, %Q)", |
| 122186 | + zName, SQLITE_ERROR, zDb, pTab->zName, zName |
| 122187 | + ); |
| 122188 | + sqlite3DbFree(pParse->db, zName); |
| 122189 | + } |
| 122190 | + |
| 122191 | + /* Search for a constraint violation. Throw an exception if one is found. */ |
| 122192 | + sqlite3NestedParse(pParse, |
| 122193 | + "SELECT sqlite_fail('constraint failed', %d) " |
| 122194 | + "FROM %Q.%Q WHERE (%.*s) IS NOT TRUE", |
| 122195 | + SQLITE_CONSTRAINT, zDb, pTab->zName, nExpr, pExpr |
| 122196 | + ); |
| 122197 | + |
| 122198 | + /* Edit the SQL for the named table. */ |
| 122199 | + pCons = pFirst->z; |
| 122200 | + nCons = alterRtrimConstraint(pParse->db, pCons, pParse->sLastToken.z - pCons); |
| 122201 | + |
| 122202 | + sqlite3NestedParse(pParse, |
| 122203 | + "UPDATE \"%w\"." LEGACY_SCHEMA_TABLE " SET " |
| 122204 | + "sql = sqlite_add_constraint(sql, %.*Q, -1) " |
| 122205 | + "WHERE type='table' AND tbl_name=%Q COLLATE nocase" |
| 122206 | + , zDb, nCons, pCons, pTab->zName |
| 122207 | + ); |
| 122208 | + |
| 122209 | + /* Finally, reload the database schema. */ |
| 122210 | + renameReloadSchema(pParse, iDb, INITFLAG_AlterDropCons); |
| 122211 | +} |
| 121495 | 122212 | |
| 121496 | 122213 | /* |
| 121497 | 122214 | ** Register built-in functions used to help implement ALTER TABLE |
| 121498 | 122215 | */ |
| 121499 | 122216 | SQLITE_PRIVATE void sqlite3AlterFunctions(void){ |
| | @@ -121501,10 +122218,14 @@ |
| 121501 | 122218 | INTERNAL_FUNCTION(sqlite_rename_column, 9, renameColumnFunc), |
| 121502 | 122219 | INTERNAL_FUNCTION(sqlite_rename_table, 7, renameTableFunc), |
| 121503 | 122220 | INTERNAL_FUNCTION(sqlite_rename_test, 7, renameTableTest), |
| 121504 | 122221 | INTERNAL_FUNCTION(sqlite_drop_column, 3, dropColumnFunc), |
| 121505 | 122222 | INTERNAL_FUNCTION(sqlite_rename_quotefix,2, renameQuotefixFunc), |
| 122223 | + INTERNAL_FUNCTION(sqlite_drop_constraint,2, dropConstraintFunc), |
| 122224 | + INTERNAL_FUNCTION(sqlite_fail, 2, failConstraintFunc), |
| 122225 | + INTERNAL_FUNCTION(sqlite_add_constraint, 3, addConstraintFunc), |
| 122226 | + INTERNAL_FUNCTION(sqlite_find_constraint,2, findConstraintFunc), |
| 121506 | 122227 | }; |
| 121507 | 122228 | sqlite3InsertBuiltinFuncs(aAlterTableFuncs, ArraySize(aAlterTableFuncs)); |
| 121508 | 122229 | } |
| 121509 | 122230 | #endif /* SQLITE_ALTER_TABLE */ |
| 121510 | 122231 | |
| | @@ -145769,11 +146490,12 @@ |
| 145769 | 146490 | /* A error message has already been generated. Do not overwrite it */ |
| 145770 | 146491 | }else if( pData->mInitFlags & (INITFLAG_AlterMask) ){ |
| 145771 | 146492 | static const char *azAlterType[] = { |
| 145772 | 146493 | "rename", |
| 145773 | 146494 | "drop column", |
| 145774 | | - "add column" |
| 146495 | + "add column", |
| 146496 | + "drop constraint" |
| 145775 | 146497 | }; |
| 145776 | 146498 | *pData->pzErrMsg = sqlite3MPrintf(db, |
| 145777 | 146499 | "error in %s %s after %s: %s", azObj[0], azObj[1], |
| 145778 | 146500 | azAlterType[(pData->mInitFlags&INITFLAG_AlterMask)-1], |
| 145779 | 146501 | zExtra |
| | @@ -178135,22 +178857,22 @@ |
| 178135 | 178857 | #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; |
| 178136 | 178858 | #undef YYERRORSYMBOL |
| 178137 | 178859 | #undef YYERRSYMDT |
| 178138 | 178860 | #undef YYFALLBACK |
| 178139 | 178861 | #define YYFALLBACK 1 |
| 178140 | | -#define YYNSTATE 583 |
| 178141 | | -#define YYNRULE 409 |
| 178142 | | -#define YYNRULE_WITH_ACTION 344 |
| 178862 | +#define YYNSTATE 602 |
| 178863 | +#define YYNRULE 414 |
| 178864 | +#define YYNRULE_WITH_ACTION 349 |
| 178143 | 178865 | #define YYNTOKEN 187 |
| 178144 | | -#define YY_MAX_SHIFT 582 |
| 178145 | | -#define YY_MIN_SHIFTREDUCE 845 |
| 178146 | | -#define YY_MAX_SHIFTREDUCE 1253 |
| 178147 | | -#define YY_ERROR_ACTION 1254 |
| 178148 | | -#define YY_ACCEPT_ACTION 1255 |
| 178149 | | -#define YY_NO_ACTION 1256 |
| 178150 | | -#define YY_MIN_REDUCE 1257 |
| 178151 | | -#define YY_MAX_REDUCE 1665 |
| 178866 | +#define YY_MAX_SHIFT 601 |
| 178867 | +#define YY_MIN_SHIFTREDUCE 870 |
| 178868 | +#define YY_MAX_SHIFTREDUCE 1283 |
| 178869 | +#define YY_ERROR_ACTION 1284 |
| 178870 | +#define YY_ACCEPT_ACTION 1285 |
| 178871 | +#define YY_NO_ACTION 1286 |
| 178872 | +#define YY_MIN_REDUCE 1287 |
| 178873 | +#define YY_MAX_REDUCE 1700 |
| 178152 | 178874 | #define YY_MIN_DSTRCTR 206 |
| 178153 | 178875 | #define YY_MAX_DSTRCTR 320 |
| 178154 | 178876 | /************* End control #defines *******************************************/ |
| 178155 | 178877 | #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) |
| 178156 | 178878 | |
| | @@ -178231,647 +178953,686 @@ |
| 178231 | 178953 | ** yy_reduce_ofst[] For each state, the offset into yy_action for |
| 178232 | 178954 | ** shifting non-terminals after a reduce. |
| 178233 | 178955 | ** yy_default[] Default action for each state. |
| 178234 | 178956 | ** |
| 178235 | 178957 | *********** Begin parsing tables **********************************************/ |
| 178236 | | -#define YY_ACTTAB_COUNT (2207) |
| 178958 | +#define YY_ACTTAB_COUNT (2379) |
| 178237 | 178959 | static const YYACTIONTYPE yy_action[] = { |
| 178238 | | - /* 0 */ 130, 127, 234, 282, 282, 1328, 576, 1307, 460, 289, |
| 178239 | | - /* 10 */ 289, 576, 1622, 381, 576, 1328, 573, 576, 562, 413, |
| 178240 | | - /* 20 */ 1300, 1542, 573, 481, 562, 524, 460, 459, 558, 82, |
| 178241 | | - /* 30 */ 82, 983, 294, 375, 51, 51, 498, 61, 61, 984, |
| 178242 | | - /* 40 */ 82, 82, 1577, 137, 138, 91, 7, 1228, 1228, 1063, |
| 178243 | | - /* 50 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 413, |
| 178244 | | - /* 60 */ 288, 288, 182, 288, 288, 481, 536, 288, 288, 130, |
| 178245 | | - /* 70 */ 127, 234, 432, 573, 525, 562, 573, 557, 562, 1290, |
| 178246 | | - /* 80 */ 573, 421, 562, 137, 138, 91, 559, 1228, 1228, 1063, |
| 178247 | | - /* 90 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 296, |
| 178248 | | - /* 100 */ 460, 398, 1249, 134, 134, 134, 134, 133, 133, 132, |
| 178249 | | - /* 110 */ 132, 132, 131, 128, 451, 451, 1050, 1050, 1064, 1067, |
| 178250 | | - /* 120 */ 1255, 1, 1, 582, 2, 1259, 581, 1174, 1259, 1174, |
| 178251 | | - /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 481, 1341, |
| 178252 | | - /* 140 */ 456, 299, 1341, 134, 134, 134, 134, 133, 133, 132, |
| 178253 | | - /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 498, 1228, |
| 178254 | | - /* 160 */ 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, |
| 178255 | | - /* 170 */ 136, 1204, 862, 1281, 288, 288, 283, 288, 288, 523, |
| 178256 | | - /* 180 */ 523, 1250, 139, 578, 7, 578, 1345, 573, 1169, 562, |
| 178257 | | - /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 573, 547, |
| 178258 | | - /* 200 */ 562, 1169, 245, 1541, 1169, 245, 133, 133, 132, 132, |
| 178259 | | - /* 210 */ 132, 131, 128, 451, 302, 134, 134, 134, 134, 133, |
| 178260 | | - /* 220 */ 133, 132, 132, 132, 131, 128, 451, 1575, 1204, 1205, |
| 178261 | | - /* 230 */ 1204, 7, 470, 550, 455, 413, 550, 455, 130, 127, |
| 178262 | | - /* 240 */ 234, 134, 134, 134, 134, 133, 133, 132, 132, 132, |
| 178263 | | - /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 483, 137, |
| 178264 | | - /* 260 */ 138, 91, 1019, 1228, 1228, 1063, 1066, 1053, 1053, 135, |
| 178265 | | - /* 270 */ 135, 136, 136, 136, 136, 1085, 576, 1204, 132, 132, |
| 178266 | | - /* 280 */ 132, 131, 128, 451, 93, 214, 134, 134, 134, 134, |
| 178267 | | - /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 401, 19, |
| 178268 | | - /* 300 */ 19, 134, 134, 134, 134, 133, 133, 132, 132, 132, |
| 178269 | | - /* 310 */ 131, 128, 451, 1498, 426, 267, 344, 467, 332, 134, |
| 178270 | | - /* 320 */ 134, 134, 134, 133, 133, 132, 132, 132, 131, 128, |
| 178271 | | - /* 330 */ 451, 1281, 576, 6, 1204, 1205, 1204, 257, 576, 413, |
| 178272 | | - /* 340 */ 511, 508, 507, 1279, 94, 1019, 464, 1204, 551, 551, |
| 178273 | | - /* 350 */ 506, 1224, 1571, 44, 38, 51, 51, 411, 576, 413, |
| 178274 | | - /* 360 */ 45, 51, 51, 137, 138, 91, 530, 1228, 1228, 1063, |
| 178275 | | - /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 398, |
| 178276 | | - /* 380 */ 1148, 82, 82, 137, 138, 91, 39, 1228, 1228, 1063, |
| 178277 | | - /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 344, |
| 178278 | | - /* 400 */ 44, 288, 288, 375, 1204, 1205, 1204, 209, 1204, 1224, |
| 178279 | | - /* 410 */ 320, 567, 471, 576, 573, 576, 562, 576, 316, 264, |
| 178280 | | - /* 420 */ 231, 46, 160, 134, 134, 134, 134, 133, 133, 132, |
| 178281 | | - /* 430 */ 132, 132, 131, 128, 451, 303, 82, 82, 82, 82, |
| 178282 | | - /* 440 */ 82, 82, 442, 134, 134, 134, 134, 133, 133, 132, |
| 178283 | | - /* 450 */ 132, 132, 131, 128, 451, 1582, 544, 320, 567, 1250, |
| 178284 | | - /* 460 */ 874, 1582, 380, 382, 413, 1204, 1205, 1204, 360, 182, |
| 178285 | | - /* 470 */ 288, 288, 1576, 557, 1339, 557, 7, 557, 1277, 472, |
| 178286 | | - /* 480 */ 346, 526, 531, 573, 556, 562, 439, 1511, 137, 138, |
| 178287 | | - /* 490 */ 91, 219, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, |
| 178288 | | - /* 500 */ 136, 136, 136, 136, 465, 1511, 1513, 532, 413, 288, |
| 178289 | | - /* 510 */ 288, 423, 512, 288, 288, 411, 288, 288, 874, 130, |
| 178290 | | - /* 520 */ 127, 234, 573, 1107, 562, 1204, 573, 1107, 562, 573, |
| 178291 | | - /* 530 */ 560, 562, 137, 138, 91, 1293, 1228, 1228, 1063, 1066, |
| 178292 | | - /* 540 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 134, 134, |
| 178293 | | - /* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451, |
| 178294 | | - /* 560 */ 493, 503, 1292, 1204, 257, 288, 288, 511, 508, 507, |
| 178295 | | - /* 570 */ 1204, 1628, 1169, 123, 568, 275, 4, 506, 573, 1511, |
| 178296 | | - /* 580 */ 562, 331, 1204, 1205, 1204, 1169, 548, 548, 1169, 261, |
| 178297 | | - /* 590 */ 571, 7, 134, 134, 134, 134, 133, 133, 132, 132, |
| 178298 | | - /* 600 */ 132, 131, 128, 451, 108, 533, 130, 127, 234, 1204, |
| 178299 | | - /* 610 */ 448, 447, 413, 1451, 452, 983, 886, 96, 1598, 1233, |
| 178300 | | - /* 620 */ 1204, 1205, 1204, 984, 1235, 1450, 565, 1204, 1205, 1204, |
| 178301 | | - /* 630 */ 229, 522, 1234, 534, 1333, 1333, 137, 138, 91, 1449, |
| 178302 | | - /* 640 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, |
| 178303 | | - /* 650 */ 136, 136, 373, 1595, 971, 1040, 413, 1236, 418, 1236, |
| 178304 | | - /* 660 */ 879, 121, 121, 948, 373, 1595, 1204, 1205, 1204, 122, |
| 178305 | | - /* 670 */ 1204, 452, 577, 452, 363, 417, 1028, 882, 373, 1595, |
| 178306 | | - /* 680 */ 137, 138, 91, 462, 1228, 1228, 1063, 1066, 1053, 1053, |
| 178307 | | - /* 690 */ 135, 135, 136, 136, 136, 136, 134, 134, 134, 134, |
| 178308 | | - /* 700 */ 133, 133, 132, 132, 132, 131, 128, 451, 1028, 1028, |
| 178309 | | - /* 710 */ 1030, 1031, 35, 570, 570, 570, 197, 423, 1040, 198, |
| 178310 | | - /* 720 */ 1204, 123, 568, 1204, 4, 320, 567, 1204, 1205, 1204, |
| 178311 | | - /* 730 */ 40, 388, 576, 384, 882, 1029, 423, 1188, 571, 1028, |
| 178312 | | - /* 740 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, |
| 178313 | | - /* 750 */ 128, 451, 529, 1568, 1204, 19, 19, 1204, 575, 492, |
| 178314 | | - /* 760 */ 413, 157, 452, 489, 1187, 1331, 1331, 5, 1204, 949, |
| 178315 | | - /* 770 */ 431, 1028, 1028, 1030, 565, 22, 22, 1204, 1205, 1204, |
| 178316 | | - /* 780 */ 1204, 1205, 1204, 477, 137, 138, 91, 212, 1228, 1228, |
| 178317 | | - /* 790 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, |
| 178318 | | - /* 800 */ 1188, 48, 111, 1040, 413, 1204, 213, 970, 1041, 121, |
| 178319 | | - /* 810 */ 121, 1204, 1205, 1204, 1204, 1205, 1204, 122, 221, 452, |
| 178320 | | - /* 820 */ 577, 452, 44, 487, 1028, 1204, 1205, 1204, 137, 138, |
| 178321 | | - /* 830 */ 91, 378, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, |
| 178322 | | - /* 840 */ 136, 136, 136, 136, 134, 134, 134, 134, 133, 133, |
| 178323 | | - /* 850 */ 132, 132, 132, 131, 128, 451, 1028, 1028, 1030, 1031, |
| 178324 | | - /* 860 */ 35, 461, 1204, 1205, 1204, 1569, 1040, 377, 214, 1149, |
| 178325 | | - /* 870 */ 1657, 535, 1657, 437, 902, 320, 567, 1568, 364, 320, |
| 178326 | | - /* 880 */ 567, 412, 329, 1029, 519, 1188, 3, 1028, 134, 134, |
| 178327 | | - /* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451, |
| 178328 | | - /* 900 */ 1659, 399, 1169, 307, 893, 307, 515, 576, 413, 214, |
| 178329 | | - /* 910 */ 498, 944, 1024, 540, 903, 1169, 943, 392, 1169, 1028, |
| 178330 | | - /* 920 */ 1028, 1030, 406, 298, 1204, 50, 1149, 1658, 413, 1658, |
| 178331 | | - /* 930 */ 145, 145, 137, 138, 91, 293, 1228, 1228, 1063, 1066, |
| 178332 | | - /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 1188, 1147, |
| 178333 | | - /* 950 */ 514, 1568, 137, 138, 91, 1505, 1228, 1228, 1063, 1066, |
| 178334 | | - /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 323, |
| 178335 | | - /* 970 */ 435, 539, 111, 1506, 274, 291, 372, 517, 367, 516, |
| 178336 | | - /* 980 */ 262, 1204, 1205, 1204, 1574, 481, 363, 576, 7, 1569, |
| 178337 | | - /* 990 */ 1568, 377, 134, 134, 134, 134, 133, 133, 132, 132, |
| 178338 | | - /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 576, 232, 576, |
| 178339 | | - /* 1010 */ 19, 19, 134, 134, 134, 134, 133, 133, 132, 132, |
| 178340 | | - /* 1020 */ 132, 131, 128, 451, 1169, 433, 576, 1207, 19, 19, |
| 178341 | | - /* 1030 */ 19, 19, 19, 19, 1627, 576, 911, 1169, 47, 120, |
| 178342 | | - /* 1040 */ 1169, 117, 413, 306, 498, 438, 1125, 206, 336, 19, |
| 178343 | | - /* 1050 */ 19, 1435, 49, 449, 449, 449, 1368, 315, 81, 81, |
| 178344 | | - /* 1060 */ 576, 304, 413, 1570, 207, 377, 137, 138, 91, 115, |
| 178345 | | - /* 1070 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, |
| 178346 | | - /* 1080 */ 136, 136, 576, 82, 82, 1207, 137, 138, 91, 1340, |
| 178347 | | - /* 1090 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, |
| 178348 | | - /* 1100 */ 136, 136, 1569, 386, 377, 82, 82, 463, 1126, 1552, |
| 178349 | | - /* 1110 */ 333, 463, 335, 131, 128, 451, 1569, 161, 377, 16, |
| 178350 | | - /* 1120 */ 317, 387, 428, 1127, 448, 447, 134, 134, 134, 134, |
| 178351 | | - /* 1130 */ 133, 133, 132, 132, 132, 131, 128, 451, 1128, 576, |
| 178352 | | - /* 1140 */ 1105, 10, 445, 267, 576, 1554, 134, 134, 134, 134, |
| 178353 | | - /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 532, 576, |
| 178354 | | - /* 1160 */ 922, 576, 19, 19, 576, 1573, 576, 147, 147, 7, |
| 178355 | | - /* 1170 */ 923, 1236, 498, 1236, 576, 487, 413, 552, 285, 1224, |
| 178356 | | - /* 1180 */ 969, 215, 82, 82, 66, 66, 1435, 67, 67, 21, |
| 178357 | | - /* 1190 */ 21, 1110, 1110, 495, 334, 297, 413, 53, 53, 297, |
| 178358 | | - /* 1200 */ 137, 138, 91, 119, 1228, 1228, 1063, 1066, 1053, 1053, |
| 178359 | | - /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 1336, 1311, 446, |
| 178360 | | - /* 1220 */ 137, 138, 91, 227, 1228, 1228, 1063, 1066, 1053, 1053, |
| 178361 | | - /* 1230 */ 135, 135, 136, 136, 136, 136, 574, 1224, 936, 936, |
| 178362 | | - /* 1240 */ 137, 126, 91, 141, 1228, 1228, 1063, 1066, 1053, 1053, |
| 178363 | | - /* 1250 */ 135, 135, 136, 136, 136, 136, 533, 429, 472, 346, |
| 178364 | | - /* 1260 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, |
| 178365 | | - /* 1270 */ 128, 451, 576, 457, 233, 343, 1435, 403, 498, 1550, |
| 178366 | | - /* 1280 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, |
| 178367 | | - /* 1290 */ 128, 451, 576, 324, 576, 82, 82, 487, 576, 969, |
| 178368 | | - /* 1300 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131, |
| 178369 | | - /* 1310 */ 128, 451, 288, 288, 546, 68, 68, 54, 54, 553, |
| 178370 | | - /* 1320 */ 413, 69, 69, 351, 6, 573, 944, 562, 410, 409, |
| 178371 | | - /* 1330 */ 1435, 943, 450, 545, 260, 259, 258, 576, 158, 576, |
| 178372 | | - /* 1340 */ 413, 222, 1180, 479, 969, 138, 91, 430, 1228, 1228, |
| 178373 | | - /* 1350 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, |
| 178374 | | - /* 1360 */ 70, 70, 71, 71, 576, 1126, 91, 576, 1228, 1228, |
| 178375 | | - /* 1370 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, |
| 178376 | | - /* 1380 */ 1127, 166, 850, 851, 852, 1282, 419, 72, 72, 108, |
| 178377 | | - /* 1390 */ 73, 73, 1310, 358, 1180, 1128, 576, 305, 576, 123, |
| 178378 | | - /* 1400 */ 568, 494, 4, 488, 134, 134, 134, 134, 133, 133, |
| 178379 | | - /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 55, |
| 178380 | | - /* 1420 */ 55, 56, 56, 576, 134, 134, 134, 134, 133, 133, |
| 178381 | | - /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 1104, 233, 1104, |
| 178382 | | - /* 1440 */ 452, 1602, 582, 2, 1259, 576, 57, 57, 576, 321, |
| 178383 | | - /* 1450 */ 576, 155, 565, 1435, 485, 353, 576, 356, 1341, 59, |
| 178384 | | - /* 1460 */ 59, 576, 44, 969, 569, 419, 576, 238, 60, 60, |
| 178385 | | - /* 1470 */ 261, 74, 74, 75, 75, 287, 231, 576, 1366, 76, |
| 178386 | | - /* 1480 */ 76, 1040, 420, 184, 20, 20, 576, 121, 121, 77, |
| 178387 | | - /* 1490 */ 77, 97, 218, 288, 288, 122, 125, 452, 577, 452, |
| 178388 | | - /* 1500 */ 143, 143, 1028, 576, 520, 576, 573, 576, 562, 144, |
| 178389 | | - /* 1510 */ 144, 474, 227, 1244, 478, 123, 568, 576, 4, 320, |
| 178390 | | - /* 1520 */ 567, 245, 411, 576, 443, 411, 78, 78, 62, 62, |
| 178391 | | - /* 1530 */ 79, 79, 571, 319, 1028, 1028, 1030, 1031, 35, 418, |
| 178392 | | - /* 1540 */ 63, 63, 576, 290, 411, 9, 80, 80, 1144, 576, |
| 178393 | | - /* 1550 */ 400, 576, 486, 455, 576, 1223, 452, 576, 325, 342, |
| 178394 | | - /* 1560 */ 576, 111, 576, 1188, 242, 64, 64, 473, 565, 576, |
| 178395 | | - /* 1570 */ 23, 576, 170, 170, 171, 171, 576, 87, 87, 328, |
| 178396 | | - /* 1580 */ 65, 65, 542, 83, 83, 146, 146, 541, 123, 568, |
| 178397 | | - /* 1590 */ 341, 4, 84, 84, 168, 168, 576, 1040, 576, 148, |
| 178398 | | - /* 1600 */ 148, 576, 1380, 121, 121, 571, 1021, 576, 266, 576, |
| 178399 | | - /* 1610 */ 424, 122, 576, 452, 577, 452, 576, 553, 1028, 142, |
| 178400 | | - /* 1620 */ 142, 169, 169, 576, 162, 162, 528, 889, 371, 452, |
| 178401 | | - /* 1630 */ 152, 152, 151, 151, 1379, 149, 149, 109, 370, 150, |
| 178402 | | - /* 1640 */ 150, 565, 576, 480, 576, 266, 86, 86, 576, 1092, |
| 178403 | | - /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 482, 576, 266, 466, |
| 178404 | | - /* 1660 */ 543, 123, 568, 1616, 4, 88, 88, 85, 85, 475, |
| 178405 | | - /* 1670 */ 1040, 52, 52, 222, 901, 900, 121, 121, 571, 1188, |
| 178406 | | - /* 1680 */ 58, 58, 244, 1032, 122, 889, 452, 577, 452, 908, |
| 178407 | | - /* 1690 */ 909, 1028, 300, 347, 504, 111, 263, 361, 165, 111, |
| 178408 | | - /* 1700 */ 111, 1088, 452, 263, 974, 1153, 266, 1092, 986, 987, |
| 178409 | | - /* 1710 */ 942, 939, 125, 125, 565, 1103, 872, 1103, 159, 941, |
| 178410 | | - /* 1720 */ 1309, 125, 1557, 1028, 1028, 1030, 1031, 35, 542, 337, |
| 178411 | | - /* 1730 */ 1530, 205, 1529, 541, 499, 1589, 490, 348, 1376, 352, |
| 178412 | | - /* 1740 */ 355, 1032, 357, 1040, 359, 1324, 1308, 366, 563, 121, |
| 178413 | | - /* 1750 */ 121, 376, 1188, 1389, 1434, 1362, 280, 122, 1374, 452, |
| 178414 | | - /* 1760 */ 577, 452, 167, 1439, 1028, 1289, 1280, 1268, 1267, 1269, |
| 178415 | | - /* 1770 */ 1609, 1359, 312, 313, 314, 397, 12, 237, 224, 1421, |
| 178416 | | - /* 1780 */ 295, 1416, 1409, 1426, 339, 484, 340, 509, 1371, 1612, |
| 178417 | | - /* 1790 */ 1372, 1425, 1244, 404, 301, 228, 1028, 1028, 1030, 1031, |
| 178418 | | - /* 1800 */ 35, 1601, 1192, 454, 345, 1307, 292, 369, 1502, 1501, |
| 178419 | | - /* 1810 */ 270, 396, 396, 395, 277, 393, 1370, 1369, 859, 1549, |
| 178420 | | - /* 1820 */ 186, 123, 568, 235, 4, 1188, 391, 210, 211, 223, |
| 178421 | | - /* 1830 */ 1547, 239, 1241, 327, 422, 96, 220, 195, 571, 180, |
| 178422 | | - /* 1840 */ 188, 326, 468, 469, 190, 191, 502, 192, 193, 566, |
| 178423 | | - /* 1850 */ 247, 109, 1430, 491, 199, 251, 102, 281, 402, 476, |
| 178424 | | - /* 1860 */ 405, 1496, 452, 497, 253, 1422, 13, 1428, 14, 1427, |
| 178425 | | - /* 1870 */ 203, 1507, 241, 500, 565, 354, 407, 92, 95, 1270, |
| 178426 | | - /* 1880 */ 175, 254, 518, 43, 1327, 255, 1326, 1325, 436, 1518, |
| 178427 | | - /* 1890 */ 350, 1318, 104, 229, 893, 1626, 440, 441, 1625, 408, |
| 178428 | | - /* 1900 */ 240, 1296, 268, 1040, 310, 269, 1297, 527, 444, 121, |
| 178429 | | - /* 1910 */ 121, 368, 1295, 1594, 1624, 311, 1394, 122, 1317, 452, |
| 178430 | | - /* 1920 */ 577, 452, 374, 1580, 1028, 1393, 140, 553, 11, 90, |
| 178431 | | - /* 1930 */ 568, 385, 4, 116, 318, 414, 1579, 110, 1483, 537, |
| 178432 | | - /* 1940 */ 320, 567, 1350, 555, 42, 579, 571, 1349, 1198, 383, |
| 178433 | | - /* 1950 */ 276, 390, 216, 389, 278, 279, 1028, 1028, 1030, 1031, |
| 178434 | | - /* 1960 */ 35, 172, 580, 1265, 458, 1260, 415, 416, 185, 156, |
| 178435 | | - /* 1970 */ 452, 1534, 1535, 173, 1533, 1532, 89, 308, 225, 226, |
| 178436 | | - /* 1980 */ 846, 174, 565, 453, 217, 1188, 322, 236, 1102, 154, |
| 178437 | | - /* 1990 */ 1100, 330, 187, 176, 1223, 243, 189, 925, 338, 246, |
| 178438 | | - /* 2000 */ 1116, 194, 177, 425, 178, 427, 98, 196, 99, 100, |
| 178439 | | - /* 2010 */ 101, 1040, 179, 1119, 1115, 248, 249, 121, 121, 163, |
| 178440 | | - /* 2020 */ 24, 250, 349, 1238, 496, 122, 1108, 452, 577, 452, |
| 178441 | | - /* 2030 */ 1192, 454, 1028, 266, 292, 200, 252, 201, 861, 396, |
| 178442 | | - /* 2040 */ 396, 395, 277, 393, 15, 501, 859, 370, 292, 256, |
| 178443 | | - /* 2050 */ 202, 554, 505, 396, 396, 395, 277, 393, 103, 239, |
| 178444 | | - /* 2060 */ 859, 327, 25, 26, 1028, 1028, 1030, 1031, 35, 326, |
| 178445 | | - /* 2070 */ 362, 510, 891, 239, 365, 327, 513, 904, 105, 309, |
| 178446 | | - /* 2080 */ 164, 181, 27, 326, 106, 521, 107, 1185, 1069, 1155, |
| 178447 | | - /* 2090 */ 17, 1154, 230, 1188, 284, 286, 265, 204, 125, 1171, |
| 178448 | | - /* 2100 */ 241, 28, 978, 972, 29, 41, 1175, 1179, 175, 1173, |
| 178449 | | - /* 2110 */ 30, 43, 31, 8, 241, 1178, 32, 1160, 208, 549, |
| 178450 | | - /* 2120 */ 33, 111, 175, 1083, 1070, 43, 1068, 1072, 240, 113, |
| 178451 | | - /* 2130 */ 114, 34, 561, 118, 1124, 271, 1073, 36, 18, 572, |
| 178452 | | - /* 2140 */ 1033, 873, 240, 124, 37, 935, 272, 273, 1617, 183, |
| 178453 | | - /* 2150 */ 153, 394, 1194, 1193, 1256, 1256, 1256, 1256, 1256, 1256, |
| 178454 | | - /* 2160 */ 1256, 1256, 1256, 414, 1256, 1256, 1256, 1256, 320, 567, |
| 178455 | | - /* 2170 */ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 414, 1256, 1256, |
| 178456 | | - /* 2180 */ 1256, 1256, 320, 567, 1256, 1256, 1256, 1256, 1256, 1256, |
| 178457 | | - /* 2190 */ 1256, 1256, 458, 1256, 1256, 1256, 1256, 1256, 1256, 1256, |
| 178458 | | - /* 2200 */ 1256, 1256, 1256, 1256, 1256, 1256, 458, |
| 178960 | + /* 0 */ 134, 131, 238, 291, 291, 1358, 595, 1337, 479, 483, |
| 178961 | + /* 10 */ 595, 436, 595, 393, 595, 1358, 592, 595, 581, 425, |
| 178962 | + /* 20 */ 423, 1572, 134, 131, 238, 543, 479, 478, 577, 84, |
| 178963 | + /* 30 */ 84, 1008, 304, 51, 51, 51, 51, 63, 63, 1009, |
| 178964 | + /* 40 */ 84, 84, 1132, 141, 142, 93, 1132, 1258, 1258, 1088, |
| 178965 | + /* 50 */ 1091, 1078, 1078, 139, 139, 140, 140, 140, 140, 425, |
| 178966 | + /* 60 */ 297, 297, 1481, 297, 297, 569, 555, 297, 297, 134, |
| 178967 | + /* 70 */ 131, 238, 1130, 592, 544, 581, 592, 576, 581, 512, |
| 178968 | + /* 80 */ 592, 343, 581, 141, 142, 93, 578, 1258, 1258, 1088, |
| 178969 | + /* 90 */ 1091, 1078, 1078, 139, 139, 140, 140, 140, 140, 6, |
| 178970 | + /* 100 */ 479, 385, 1630, 138, 138, 138, 138, 137, 137, 136, |
| 178971 | + /* 110 */ 136, 136, 135, 132, 464, 1363, 1363, 595, 1044, 1603, |
| 178972 | + /* 120 */ 1285, 1, 1, 601, 2, 1289, 44, 1204, 231, 1204, |
| 178973 | + /* 130 */ 331, 425, 158, 1617, 392, 1617, 563, 116, 500, 1371, |
| 178974 | + /* 140 */ 84, 84, 569, 138, 138, 138, 138, 137, 137, 136, |
| 178975 | + /* 150 */ 136, 136, 135, 132, 464, 141, 142, 93, 517, 1258, |
| 178976 | + /* 160 */ 1258, 1088, 1091, 1078, 1078, 139, 139, 140, 140, 140, |
| 178977 | + /* 170 */ 140, 1234, 356, 212, 297, 297, 464, 576, 490, 1234, |
| 178978 | + /* 180 */ 570, 570, 143, 330, 586, 1320, 550, 592, 1199, 581, |
| 178979 | + /* 190 */ 491, 358, 45, 140, 140, 140, 140, 133, 394, 566, |
| 178980 | + /* 200 */ 1323, 1199, 253, 426, 1199, 137, 137, 136, 136, 136, |
| 178981 | + /* 210 */ 135, 132, 464, 292, 306, 138, 138, 138, 138, 137, |
| 178982 | + /* 220 */ 137, 136, 136, 136, 135, 132, 464, 1322, 1234, 1235, |
| 178983 | + /* 230 */ 1234, 1605, 413, 389, 468, 425, 1234, 1235, 1234, 491, |
| 178984 | + /* 240 */ 358, 138, 138, 138, 138, 137, 137, 136, 136, 136, |
| 178985 | + /* 250 */ 135, 132, 464, 113, 134, 131, 238, 557, 1606, 141, |
| 178986 | + /* 260 */ 142, 93, 595, 1258, 1258, 1088, 1091, 1078, 1078, 139, |
| 178987 | + /* 270 */ 139, 140, 140, 140, 140, 134, 131, 238, 1612, 425, |
| 178988 | + /* 280 */ 502, 185, 7, 334, 97, 19, 19, 994, 140, 140, |
| 178989 | + /* 290 */ 140, 140, 136, 136, 136, 135, 132, 464, 1179, 1692, |
| 178990 | + /* 300 */ 209, 1692, 1610, 141, 142, 93, 7, 1258, 1258, 1088, |
| 178991 | + /* 310 */ 1091, 1078, 1078, 139, 139, 140, 140, 140, 140, 138, |
| 178992 | + /* 320 */ 138, 138, 138, 137, 137, 136, 136, 136, 135, 132, |
| 178993 | + /* 330 */ 464, 1663, 1234, 589, 589, 589, 138, 138, 138, 138, |
| 178994 | + /* 340 */ 137, 137, 136, 136, 136, 135, 132, 464, 138, 138, |
| 178995 | + /* 350 */ 138, 138, 137, 137, 136, 136, 136, 135, 132, 464, |
| 178996 | + /* 360 */ 275, 595, 430, 138, 138, 138, 138, 137, 137, 136, |
| 178997 | + /* 370 */ 136, 136, 135, 132, 464, 400, 1234, 396, 1177, 461, |
| 178998 | + /* 380 */ 460, 237, 1611, 425, 51, 51, 7, 335, 1263, 1234, |
| 178999 | + /* 390 */ 1235, 1234, 1311, 1265, 549, 145, 1254, 283, 542, 542, |
| 179000 | + /* 400 */ 595, 1264, 597, 7, 597, 927, 994, 141, 142, 93, |
| 179001 | + /* 410 */ 506, 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, 140, |
| 179002 | + /* 420 */ 140, 140, 140, 19, 19, 44, 1266, 425, 1266, 297, |
| 179003 | + /* 430 */ 297, 1234, 98, 1234, 1235, 1234, 265, 534, 439, 530, |
| 179004 | + /* 440 */ 527, 526, 592, 1633, 581, 928, 511, 272, 235, 525, |
| 179005 | + /* 450 */ 508, 141, 142, 93, 1254, 1258, 1258, 1088, 1091, 1078, |
| 179006 | + /* 460 */ 1078, 139, 139, 140, 140, 140, 140, 138, 138, 138, |
| 179007 | + /* 470 */ 138, 137, 137, 136, 136, 136, 135, 132, 464, 595, |
| 179008 | + /* 480 */ 422, 421, 330, 586, 1619, 517, 391, 517, 1234, 1235, |
| 179009 | + /* 490 */ 1234, 1274, 127, 587, 265, 4, 1311, 530, 527, 526, |
| 179010 | + /* 500 */ 595, 448, 84, 84, 594, 595, 572, 525, 1309, 590, |
| 179011 | + /* 510 */ 308, 138, 138, 138, 138, 137, 137, 136, 136, 136, |
| 179012 | + /* 520 */ 135, 132, 464, 19, 19, 161, 1234, 390, 19, 19, |
| 179013 | + /* 530 */ 1571, 425, 1535, 465, 1637, 601, 2, 1289, 444, 576, |
| 179014 | + /* 540 */ 330, 586, 331, 446, 158, 584, 1274, 481, 575, 595, |
| 179015 | + /* 550 */ 240, 1371, 506, 551, 1234, 141, 142, 93, 313, 1258, |
| 179016 | + /* 560 */ 1258, 1088, 1091, 1078, 1078, 139, 139, 140, 140, 140, |
| 179017 | + /* 570 */ 140, 160, 83, 83, 1065, 974, 135, 132, 464, 595, |
| 179018 | + /* 580 */ 125, 125, 973, 1234, 1235, 1234, 297, 297, 126, 517, |
| 179019 | + /* 590 */ 465, 596, 465, 297, 297, 1053, 1234, 1369, 387, 592, |
| 179020 | + /* 600 */ 1234, 581, 84, 84, 517, 242, 592, 1465, 581, 46, |
| 179021 | + /* 610 */ 473, 1234, 1235, 1234, 253, 138, 138, 138, 138, 137, |
| 179022 | + /* 620 */ 137, 136, 136, 136, 135, 132, 464, 1053, 1053, 1055, |
| 179023 | + /* 630 */ 1056, 35, 297, 297, 1370, 399, 425, 445, 996, 576, |
| 179024 | + /* 640 */ 372, 415, 233, 541, 413, 592, 468, 581, 452, 1366, |
| 179025 | + /* 650 */ 112, 552, 355, 1234, 1235, 1234, 1218, 1234, 1235, 1234, |
| 179026 | + /* 660 */ 141, 142, 93, 223, 1258, 1258, 1088, 1091, 1078, 1078, |
| 179027 | + /* 670 */ 139, 139, 140, 140, 140, 140, 297, 297, 441, 553, |
| 179028 | + /* 680 */ 425, 298, 298, 1375, 531, 330, 586, 1199, 115, 592, |
| 179029 | + /* 690 */ 1465, 581, 100, 1480, 592, 592, 581, 581, 559, 1307, |
| 179030 | + /* 700 */ 1199, 907, 545, 1199, 141, 142, 93, 498, 1258, 1258, |
| 179031 | + /* 710 */ 1088, 1091, 1078, 1078, 139, 139, 140, 140, 140, 140, |
| 179032 | + /* 720 */ 138, 138, 138, 138, 137, 137, 136, 136, 136, 135, |
| 179033 | + /* 730 */ 132, 464, 385, 1630, 297, 297, 470, 297, 297, 472, |
| 179034 | + /* 740 */ 200, 579, 1065, 201, 44, 127, 587, 592, 4, 581, |
| 179035 | + /* 750 */ 592, 1044, 581, 482, 40, 500, 558, 482, 907, 1054, |
| 179036 | + /* 760 */ 1479, 442, 590, 1053, 138, 138, 138, 138, 137, 137, |
| 179037 | + /* 770 */ 136, 136, 136, 135, 132, 464, 297, 297, 1234, 1657, |
| 179038 | + /* 780 */ 492, 1234, 1603, 480, 425, 506, 465, 1330, 911, 592, |
| 179039 | + /* 790 */ 918, 581, 1234, 1361, 1361, 1053, 1053, 1055, 584, 385, |
| 179040 | + /* 800 */ 1630, 330, 586, 353, 5, 356, 486, 344, 141, 142, |
| 179041 | + /* 810 */ 93, 185, 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, |
| 179042 | + /* 820 */ 140, 140, 140, 140, 1218, 1694, 411, 1065, 425, 1234, |
| 179043 | + /* 830 */ 48, 309, 904, 125, 125, 1234, 1235, 1234, 1234, 1235, |
| 179044 | + /* 840 */ 1234, 126, 1234, 465, 596, 465, 348, 517, 1053, 1234, |
| 179045 | + /* 850 */ 1235, 1234, 141, 142, 93, 3, 1258, 1258, 1088, 1091, |
| 179046 | + /* 860 */ 1078, 1078, 139, 139, 140, 140, 140, 140, 138, 138, |
| 179047 | + /* 870 */ 138, 138, 137, 137, 136, 136, 136, 135, 132, 464, |
| 179048 | + /* 880 */ 1053, 1053, 1055, 1056, 35, 315, 1234, 1235, 1234, 1234, |
| 179049 | + /* 890 */ 1065, 1237, 363, 1234, 1604, 887, 389, 341, 500, 1234, |
| 179050 | + /* 900 */ 1235, 1234, 595, 1075, 1075, 1089, 1092, 1054, 345, 1218, |
| 179051 | + /* 910 */ 347, 1053, 138, 138, 138, 138, 137, 137, 136, 136, |
| 179052 | + /* 920 */ 136, 135, 132, 464, 436, 19, 19, 370, 567, 567, |
| 179053 | + /* 930 */ 595, 554, 425, 7, 1398, 325, 1217, 462, 462, 462, |
| 179054 | + /* 940 */ 316, 1582, 432, 1053, 1053, 1055, 1234, 1235, 1234, 1237, |
| 179055 | + /* 950 */ 1234, 1235, 1234, 84, 84, 489, 141, 142, 93, 595, |
| 179056 | + /* 960 */ 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, 140, 140, |
| 179057 | + /* 970 */ 140, 140, 1218, 995, 312, 383, 425, 600, 1079, 1289, |
| 179058 | + /* 980 */ 1066, 115, 19, 19, 331, 382, 158, 1603, 1536, 365, |
| 179059 | + /* 990 */ 326, 368, 346, 1371, 216, 461, 460, 451, 1110, 236, |
| 179060 | + /* 1000 */ 141, 142, 93, 1465, 1258, 1258, 1088, 1091, 1078, 1078, |
| 179061 | + /* 1010 */ 139, 139, 140, 140, 140, 140, 138, 138, 138, 138, |
| 179062 | + /* 1020 */ 137, 137, 136, 136, 136, 135, 132, 464, 297, 297, |
| 179063 | + /* 1030 */ 595, 500, 1008, 1199, 595, 50, 1528, 398, 218, 218, |
| 179064 | + /* 1040 */ 1009, 592, 1266, 581, 1266, 450, 1199, 404, 522, 1199, |
| 179065 | + /* 1050 */ 376, 424, 418, 84, 84, 595, 253, 19, 19, 548, |
| 179066 | + /* 1060 */ 138, 138, 138, 138, 137, 137, 136, 136, 136, 135, |
| 179067 | + /* 1070 */ 132, 464, 210, 317, 443, 317, 269, 307, 19, 19, |
| 179068 | + /* 1080 */ 425, 307, 22, 22, 1049, 294, 413, 994, 468, 593, |
| 179069 | + /* 1090 */ 327, 961, 961, 571, 269, 1603, 1603, 595, 231, 1604, |
| 179070 | + /* 1100 */ 425, 389, 410, 1279, 141, 142, 93, 314, 1258, 1258, |
| 179071 | + /* 1110 */ 1088, 1091, 1078, 1078, 139, 139, 140, 140, 140, 140, |
| 179072 | + /* 1120 */ 84, 84, 533, 387, 141, 142, 93, 434, 1258, 1258, |
| 179073 | + /* 1130 */ 1088, 1091, 1078, 1078, 139, 139, 140, 140, 140, 140, |
| 179074 | + /* 1140 */ 447, 1541, 1585, 47, 49, 431, 282, 300, 384, 536, |
| 179075 | + /* 1150 */ 379, 535, 270, 595, 436, 595, 1465, 458, 375, 1541, |
| 179076 | + /* 1160 */ 1543, 375, 455, 431, 138, 138, 138, 138, 137, 137, |
| 179077 | + /* 1170 */ 136, 136, 136, 135, 132, 464, 84, 84, 84, 84, |
| 179078 | + /* 1180 */ 595, 237, 1280, 1583, 138, 138, 138, 138, 137, 137, |
| 179079 | + /* 1190 */ 136, 136, 136, 135, 132, 464, 1179, 1693, 10, 1693, |
| 179080 | + /* 1200 */ 275, 565, 1151, 149, 149, 475, 994, 1604, 1604, 389, |
| 179081 | + /* 1210 */ 389, 1465, 1199, 459, 425, 463, 226, 1152, 1150, 1609, |
| 179082 | + /* 1220 */ 564, 303, 1608, 7, 217, 1199, 7, 513, 1199, 1210, |
| 179083 | + /* 1230 */ 1312, 432, 1153, 1541, 425, 1662, 1254, 936, 141, 142, |
| 179084 | + /* 1240 */ 93, 119, 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, |
| 179085 | + /* 1250 */ 140, 140, 140, 140, 583, 302, 538, 1396, 141, 142, |
| 179086 | + /* 1260 */ 93, 6, 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, |
| 179087 | + /* 1270 */ 140, 140, 140, 140, 588, 432, 1177, 1135, 1135, 514, |
| 179088 | + /* 1280 */ 1151, 1210, 456, 969, 333, 288, 433, 187, 968, 595, |
| 179089 | + /* 1290 */ 129, 595, 547, 595, 1254, 1152, 1341, 551, 138, 138, |
| 179090 | + /* 1300 */ 138, 138, 137, 137, 136, 136, 136, 135, 132, 464, |
| 179091 | + /* 1310 */ 1153, 595, 151, 151, 53, 53, 54, 54, 138, 138, |
| 179092 | + /* 1320 */ 138, 138, 137, 137, 136, 136, 136, 135, 132, 464, |
| 179093 | + /* 1330 */ 504, 595, 947, 595, 68, 68, 595, 296, 235, 595, |
| 179094 | + /* 1340 */ 507, 595, 948, 595, 101, 222, 595, 484, 425, 875, |
| 179095 | + /* 1350 */ 876, 877, 215, 219, 69, 69, 21, 21, 423, 55, |
| 179096 | + /* 1360 */ 55, 1584, 70, 70, 56, 56, 71, 71, 425, 72, |
| 179097 | + /* 1370 */ 72, 1183, 141, 142, 93, 123, 1258, 1258, 1088, 1091, |
| 179098 | + /* 1380 */ 1078, 1078, 139, 139, 140, 140, 140, 140, 425, 268, |
| 179099 | + /* 1390 */ 267, 266, 141, 142, 93, 552, 1258, 1258, 1088, 1091, |
| 179100 | + /* 1400 */ 1078, 1078, 139, 139, 140, 140, 140, 140, 23, 163, |
| 179101 | + /* 1410 */ 496, 572, 141, 130, 93, 476, 1258, 1258, 1088, 1091, |
| 179102 | + /* 1420 */ 1078, 1078, 139, 139, 140, 140, 140, 140, 505, 124, |
| 179103 | + /* 1430 */ 1580, 121, 138, 138, 138, 138, 137, 137, 136, 136, |
| 179104 | + /* 1440 */ 136, 135, 132, 464, 595, 225, 595, 899, 437, 246, |
| 179105 | + /* 1450 */ 336, 1253, 138, 138, 138, 138, 137, 137, 136, 136, |
| 179106 | + /* 1460 */ 136, 135, 132, 464, 595, 1340, 595, 73, 73, 74, |
| 179107 | + /* 1470 */ 74, 337, 138, 138, 138, 138, 137, 137, 136, 136, |
| 179108 | + /* 1480 */ 136, 135, 132, 464, 38, 595, 493, 75, 75, 57, |
| 179109 | + /* 1490 */ 57, 595, 425, 410, 1178, 1274, 497, 423, 250, 969, |
| 179110 | + /* 1500 */ 329, 164, 914, 16, 968, 899, 1117, 423, 58, 58, |
| 179111 | + /* 1510 */ 595, 423, 425, 595, 59, 59, 39, 142, 93, 340, |
| 179112 | + /* 1520 */ 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, 140, 140, |
| 179113 | + /* 1530 */ 140, 140, 595, 61, 61, 595, 62, 62, 93, 595, |
| 179114 | + /* 1540 */ 1258, 1258, 1088, 1091, 1078, 1078, 139, 139, 140, 140, |
| 179115 | + /* 1550 */ 140, 140, 1410, 926, 925, 76, 76, 1409, 77, 77, |
| 179116 | + /* 1560 */ 914, 485, 78, 78, 1117, 1174, 595, 412, 595, 226, |
| 179117 | + /* 1570 */ 595, 127, 587, 1280, 4, 1592, 138, 138, 138, 138, |
| 179118 | + /* 1580 */ 137, 137, 136, 136, 136, 135, 132, 464, 590, 20, |
| 179119 | + /* 1590 */ 20, 79, 79, 147, 147, 595, 138, 138, 138, 138, |
| 179120 | + /* 1600 */ 137, 137, 136, 136, 136, 135, 132, 464, 595, 354, |
| 179121 | + /* 1610 */ 169, 115, 465, 595, 349, 595, 252, 595, 148, 148, |
| 179122 | + /* 1620 */ 595, 1046, 595, 274, 584, 494, 112, 499, 595, 274, |
| 179123 | + /* 1630 */ 1560, 80, 80, 595, 44, 1559, 64, 64, 81, 81, |
| 179124 | + /* 1640 */ 65, 65, 595, 82, 82, 66, 66, 509, 310, 595, |
| 179125 | + /* 1650 */ 360, 173, 173, 1065, 595, 553, 174, 174, 595, 125, |
| 179126 | + /* 1660 */ 125, 501, 595, 274, 1406, 89, 89, 126, 299, 465, |
| 179127 | + /* 1670 */ 596, 465, 67, 67, 1053, 595, 364, 85, 85, 595, |
| 179128 | + /* 1680 */ 1057, 150, 150, 933, 934, 86, 86, 127, 587, 367, |
| 179129 | + /* 1690 */ 4, 330, 586, 359, 523, 115, 271, 369, 171, 171, |
| 179130 | + /* 1700 */ 1011, 1012, 152, 152, 590, 1339, 1053, 1053, 1055, 1056, |
| 179131 | + /* 1710 */ 35, 371, 373, 595, 115, 1354, 1338, 9, 595, 168, |
| 179132 | + /* 1720 */ 595, 115, 595, 1113, 595, 271, 595, 378, 465, 595, |
| 179133 | + /* 1730 */ 388, 1419, 595, 539, 595, 1218, 146, 146, 1057, 1464, |
| 179134 | + /* 1740 */ 584, 172, 172, 165, 165, 156, 156, 155, 155, 153, |
| 179135 | + /* 1750 */ 153, 1392, 154, 154, 561, 88, 88, 90, 90, 560, |
| 179136 | + /* 1760 */ 127, 587, 1129, 4, 1129, 999, 208, 274, 595, 1065, |
| 179137 | + /* 1770 */ 595, 967, 595, 129, 1404, 125, 125, 590, 964, 1128, |
| 179138 | + /* 1780 */ 129, 1128, 897, 126, 162, 465, 596, 465, 1651, 582, |
| 179139 | + /* 1790 */ 1053, 87, 87, 52, 52, 60, 60, 966, 1624, 129, |
| 179140 | + /* 1800 */ 1469, 465, 1319, 243, 1310, 1298, 1297, 1299, 1644, 170, |
| 179141 | + /* 1810 */ 518, 1389, 289, 584, 12, 322, 323, 324, 228, 409, |
| 179142 | + /* 1820 */ 1451, 305, 1053, 1053, 1055, 1056, 35, 561, 241, 351, |
| 179143 | + /* 1830 */ 245, 1446, 562, 127, 587, 357, 4, 1439, 352, 311, |
| 179144 | + /* 1840 */ 1456, 503, 1065, 528, 1455, 416, 232, 1401, 125, 125, |
| 179145 | + /* 1850 */ 590, 1218, 381, 1532, 1337, 1531, 126, 1402, 465, 596, |
| 179146 | + /* 1860 */ 465, 1400, 1399, 1053, 585, 213, 403, 227, 214, 537, |
| 179147 | + /* 1870 */ 1647, 1587, 1274, 1589, 465, 1588, 239, 278, 1271, 1579, |
| 179148 | + /* 1880 */ 1577, 96, 435, 100, 224, 198, 584, 1537, 183, 99, |
| 179149 | + /* 1890 */ 191, 487, 488, 1452, 521, 1053, 1053, 1055, 1056, 35, |
| 179150 | + /* 1900 */ 561, 13, 193, 194, 195, 560, 196, 255, 113, 414, |
| 179151 | + /* 1910 */ 1458, 1457, 14, 510, 495, 1065, 259, 1460, 202, 106, |
| 179152 | + /* 1920 */ 516, 125, 125, 417, 1218, 290, 1548, 1526, 261, 126, |
| 179153 | + /* 1930 */ 206, 465, 596, 465, 362, 519, 1053, 419, 366, 262, |
| 179154 | + /* 1940 */ 1357, 1300, 1356, 449, 263, 1355, 1348, 108, 918, 1327, |
| 179155 | + /* 1950 */ 1661, 420, 1660, 233, 1326, 453, 1629, 380, 546, 1347, |
| 179156 | + /* 1960 */ 1325, 454, 277, 276, 1659, 1615, 1614, 457, 1053, 1053, |
| 179157 | + /* 1970 */ 1055, 1056, 35, 1636, 1222, 467, 320, 321, 301, 386, |
| 179158 | + /* 1980 */ 144, 1424, 572, 408, 408, 407, 285, 405, 11, 1423, |
| 179159 | + /* 1990 */ 884, 397, 120, 127, 587, 220, 4, 1218, 1380, 1513, |
| 179160 | + /* 2000 */ 395, 114, 1379, 247, 42, 339, 556, 598, 1228, 284, |
| 179161 | + /* 2010 */ 590, 401, 402, 338, 286, 287, 328, 599, 1295, 1290, |
| 179162 | + /* 2020 */ 1564, 175, 428, 1565, 429, 1563, 176, 871, 159, 177, |
| 179163 | + /* 2030 */ 1562, 318, 229, 466, 465, 230, 221, 91, 332, 469, |
| 179164 | + /* 2040 */ 1169, 471, 474, 94, 249, 189, 584, 95, 244, 1127, |
| 179165 | + /* 2050 */ 188, 1125, 178, 342, 190, 43, 1253, 179, 251, 950, |
| 179166 | + /* 2060 */ 254, 350, 192, 1141, 197, 180, 181, 438, 182, 440, |
| 179167 | + /* 2070 */ 102, 103, 248, 104, 199, 1065, 1144, 256, 105, 1140, |
| 179168 | + /* 2080 */ 257, 125, 125, 24, 166, 258, 361, 1133, 274, 126, |
| 179169 | + /* 2090 */ 515, 465, 596, 465, 260, 15, 1053, 204, 264, 382, |
| 179170 | + /* 2100 */ 886, 92, 587, 1268, 4, 203, 520, 427, 205, 524, |
| 179171 | + /* 2110 */ 107, 25, 330, 586, 374, 574, 26, 916, 590, 529, |
| 179172 | + /* 2120 */ 377, 929, 109, 319, 167, 110, 27, 184, 1053, 1053, |
| 179173 | + /* 2130 */ 1055, 1056, 35, 540, 532, 1215, 477, 1094, 111, 1185, |
| 179174 | + /* 2140 */ 17, 234, 465, 293, 1184, 295, 207, 997, 129, 273, |
| 179175 | + /* 2150 */ 1205, 28, 1003, 29, 584, 30, 1201, 1218, 1208, 31, |
| 179176 | + /* 2160 */ 1203, 1209, 32, 1190, 41, 568, 33, 34, 211, 115, |
| 179177 | + /* 2170 */ 8, 1108, 1095, 1093, 1097, 1098, 279, 580, 122, 1149, |
| 179178 | + /* 2180 */ 36, 117, 18, 1065, 1058, 118, 898, 128, 37, 125, |
| 179179 | + /* 2190 */ 125, 406, 591, 186, 960, 280, 281, 126, 1652, 465, |
| 179180 | + /* 2200 */ 596, 465, 1222, 467, 1053, 157, 301, 1224, 1223, 1286, |
| 179181 | + /* 2210 */ 1286, 408, 408, 407, 285, 405, 1286, 1286, 884, 1286, |
| 179182 | + /* 2220 */ 301, 1286, 1286, 573, 1286, 408, 408, 407, 285, 405, |
| 179183 | + /* 2230 */ 1286, 247, 884, 339, 1286, 1286, 1053, 1053, 1055, 1056, |
| 179184 | + /* 2240 */ 35, 338, 1286, 1286, 1286, 247, 1286, 339, 1286, 1286, |
| 179185 | + /* 2250 */ 1286, 1286, 1286, 1286, 1286, 338, 1286, 1286, 1286, 1286, |
| 179186 | + /* 2260 */ 1286, 1286, 1286, 1286, 1286, 1218, 1286, 1286, 1286, 1286, |
| 179187 | + /* 2270 */ 1286, 1286, 249, 1286, 1286, 1286, 1286, 1286, 1286, 1286, |
| 179188 | + /* 2280 */ 178, 1286, 1286, 43, 1286, 1286, 249, 1286, 1286, 1286, |
| 179189 | + /* 2290 */ 1286, 1286, 1286, 1286, 178, 1286, 1286, 43, 1286, 1286, |
| 179190 | + /* 2300 */ 248, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, |
| 179191 | + /* 2310 */ 1286, 1286, 1286, 1286, 248, 1286, 1286, 1286, 1286, 1286, |
| 179192 | + /* 2320 */ 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, |
| 179193 | + /* 2330 */ 1286, 1286, 1286, 1286, 1286, 427, 1286, 1286, 1286, 1286, |
| 179194 | + /* 2340 */ 330, 586, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 427, |
| 179195 | + /* 2350 */ 1286, 1286, 1286, 1286, 330, 586, 1286, 1286, 1286, 1286, |
| 179196 | + /* 2360 */ 1286, 1286, 1286, 1286, 477, 1286, 1286, 1286, 1286, 1286, |
| 179197 | + /* 2370 */ 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 477, |
| 178459 | 179198 | }; |
| 178460 | 179199 | static const YYCODETYPE yy_lookahead[] = { |
| 178461 | | - /* 0 */ 277, 278, 279, 241, 242, 225, 195, 227, 195, 241, |
| 178462 | | - /* 10 */ 242, 195, 217, 221, 195, 235, 254, 195, 256, 19, |
| 178463 | | - /* 20 */ 225, 298, 254, 195, 256, 206, 213, 214, 206, 218, |
| 178464 | | - /* 30 */ 219, 31, 206, 195, 218, 219, 195, 218, 219, 39, |
| 178465 | | - /* 40 */ 218, 219, 313, 43, 44, 45, 317, 47, 48, 49, |
| 179200 | + /* 0 */ 277, 278, 279, 241, 242, 225, 195, 227, 195, 246, |
| 179201 | + /* 10 */ 195, 195, 195, 221, 195, 235, 254, 195, 256, 19, |
| 179202 | + /* 20 */ 257, 298, 277, 278, 279, 206, 213, 214, 206, 218, |
| 179203 | + /* 30 */ 219, 31, 206, 218, 219, 218, 219, 218, 219, 39, |
| 179204 | + /* 40 */ 218, 219, 29, 43, 44, 45, 33, 47, 48, 49, |
| 178466 | 179205 | /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 19, |
| 178467 | | - /* 60 */ 241, 242, 195, 241, 242, 195, 255, 241, 242, 277, |
| 178468 | | - /* 70 */ 278, 279, 234, 254, 255, 256, 254, 255, 256, 218, |
| 178469 | | - /* 80 */ 254, 240, 256, 43, 44, 45, 264, 47, 48, 49, |
| 178470 | | - /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 271, |
| 178471 | | - /* 100 */ 287, 22, 23, 103, 104, 105, 106, 107, 108, 109, |
| 178472 | | - /* 110 */ 110, 111, 112, 113, 114, 114, 47, 48, 49, 50, |
| 178473 | | - /* 120 */ 187, 188, 189, 190, 191, 192, 190, 87, 192, 89, |
| 178474 | | - /* 130 */ 197, 19, 199, 197, 318, 199, 320, 25, 195, 206, |
| 178475 | | - /* 140 */ 299, 271, 206, 103, 104, 105, 106, 107, 108, 109, |
| 179206 | + /* 60 */ 241, 242, 276, 241, 242, 195, 255, 241, 242, 277, |
| 179207 | + /* 70 */ 278, 279, 11, 254, 255, 256, 254, 255, 256, 66, |
| 179208 | + /* 80 */ 254, 265, 256, 43, 44, 45, 264, 47, 48, 49, |
| 179209 | + /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 215, |
| 179210 | + /* 100 */ 287, 315, 316, 103, 104, 105, 106, 107, 108, 109, |
| 179211 | + /* 110 */ 110, 111, 112, 113, 114, 237, 238, 195, 74, 195, |
| 179212 | + /* 120 */ 187, 188, 189, 190, 191, 192, 82, 87, 25, 89, |
| 179213 | + /* 130 */ 197, 19, 199, 318, 319, 318, 319, 25, 195, 206, |
| 179214 | + /* 140 */ 218, 219, 195, 103, 104, 105, 106, 107, 108, 109, |
| 178476 | 179215 | /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 195, 47, |
| 178477 | 179216 | /* 160 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 178478 | | - /* 170 */ 58, 60, 21, 195, 241, 242, 215, 241, 242, 312, |
| 178479 | | - /* 180 */ 313, 102, 70, 205, 317, 207, 242, 254, 77, 256, |
| 178480 | | - /* 190 */ 254, 122, 256, 55, 56, 57, 58, 59, 254, 88, |
| 178481 | | - /* 200 */ 256, 90, 269, 240, 93, 269, 107, 108, 109, 110, |
| 178482 | | - /* 210 */ 111, 112, 113, 114, 271, 103, 104, 105, 106, 107, |
| 178483 | | - /* 220 */ 108, 109, 110, 111, 112, 113, 114, 313, 117, 118, |
| 178484 | | - /* 230 */ 119, 317, 81, 195, 301, 19, 195, 301, 277, 278, |
| 178485 | | - /* 240 */ 279, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 178486 | | - /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 195, 43, |
| 178487 | | - /* 260 */ 44, 45, 74, 47, 48, 49, 50, 51, 52, 53, |
| 178488 | | - /* 270 */ 54, 55, 56, 57, 58, 124, 195, 60, 109, 110, |
| 178489 | | - /* 280 */ 111, 112, 113, 114, 68, 195, 103, 104, 105, 106, |
| 178490 | | - /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 208, 218, |
| 178491 | | - /* 300 */ 219, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 178492 | | - /* 310 */ 112, 113, 114, 162, 233, 24, 128, 129, 130, 103, |
| 179217 | + /* 170 */ 58, 60, 128, 289, 241, 242, 114, 255, 294, 60, |
| 179218 | + /* 180 */ 310, 311, 70, 139, 140, 218, 264, 254, 77, 256, |
| 179219 | + /* 190 */ 129, 130, 73, 55, 56, 57, 58, 59, 221, 88, |
| 179220 | + /* 200 */ 218, 90, 269, 240, 93, 107, 108, 109, 110, 111, |
| 179221 | + /* 210 */ 112, 113, 114, 215, 271, 103, 104, 105, 106, 107, |
| 179222 | + /* 220 */ 108, 109, 110, 111, 112, 113, 114, 218, 117, 118, |
| 179223 | + /* 230 */ 119, 307, 299, 309, 301, 19, 117, 118, 119, 129, |
| 179224 | + /* 240 */ 130, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 179225 | + /* 250 */ 112, 113, 114, 150, 277, 278, 279, 146, 311, 43, |
| 179226 | + /* 260 */ 44, 45, 195, 47, 48, 49, 50, 51, 52, 53, |
| 179227 | + /* 270 */ 54, 55, 56, 57, 58, 277, 278, 279, 313, 19, |
| 179228 | + /* 280 */ 195, 195, 317, 23, 68, 218, 219, 25, 55, 56, |
| 179229 | + /* 290 */ 57, 58, 109, 110, 111, 112, 113, 114, 22, 23, |
| 179230 | + /* 300 */ 233, 25, 313, 43, 44, 45, 317, 47, 48, 49, |
| 179231 | + /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 103, |
| 178493 | 179232 | /* 320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, |
| 178494 | | - /* 330 */ 114, 195, 195, 215, 117, 118, 119, 120, 195, 19, |
| 178495 | | - /* 340 */ 123, 124, 125, 207, 24, 74, 246, 60, 310, 311, |
| 178496 | | - /* 350 */ 133, 60, 311, 82, 22, 218, 219, 257, 195, 19, |
| 178497 | | - /* 360 */ 73, 218, 219, 43, 44, 45, 206, 47, 48, 49, |
| 178498 | | - /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 22, |
| 178499 | | - /* 380 */ 23, 218, 219, 43, 44, 45, 54, 47, 48, 49, |
| 178500 | | - /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 128, |
| 178501 | | - /* 400 */ 82, 241, 242, 195, 117, 118, 119, 289, 60, 118, |
| 178502 | | - /* 410 */ 139, 140, 294, 195, 254, 195, 256, 195, 255, 259, |
| 178503 | | - /* 420 */ 260, 73, 22, 103, 104, 105, 106, 107, 108, 109, |
| 178504 | | - /* 430 */ 110, 111, 112, 113, 114, 206, 218, 219, 218, 219, |
| 178505 | | - /* 440 */ 218, 219, 234, 103, 104, 105, 106, 107, 108, 109, |
| 178506 | | - /* 450 */ 110, 111, 112, 113, 114, 318, 319, 139, 140, 102, |
| 178507 | | - /* 460 */ 60, 318, 319, 221, 19, 117, 118, 119, 23, 195, |
| 178508 | | - /* 470 */ 241, 242, 313, 255, 206, 255, 317, 255, 206, 129, |
| 178509 | | - /* 480 */ 130, 206, 264, 254, 264, 256, 264, 195, 43, 44, |
| 178510 | | - /* 490 */ 45, 151, 47, 48, 49, 50, 51, 52, 53, 54, |
| 178511 | | - /* 500 */ 55, 56, 57, 58, 246, 213, 214, 19, 19, 241, |
| 178512 | | - /* 510 */ 242, 195, 23, 241, 242, 257, 241, 242, 118, 277, |
| 178513 | | - /* 520 */ 278, 279, 254, 29, 256, 60, 254, 33, 256, 254, |
| 178514 | | - /* 530 */ 206, 256, 43, 44, 45, 218, 47, 48, 49, 50, |
| 178515 | | - /* 540 */ 51, 52, 53, 54, 55, 56, 57, 58, 103, 104, |
| 178516 | | - /* 550 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 178517 | | - /* 560 */ 66, 19, 218, 60, 120, 241, 242, 123, 124, 125, |
| 178518 | | - /* 570 */ 60, 232, 77, 19, 20, 26, 22, 133, 254, 287, |
| 178519 | | - /* 580 */ 256, 265, 117, 118, 119, 90, 312, 313, 93, 47, |
| 178520 | | - /* 590 */ 36, 317, 103, 104, 105, 106, 107, 108, 109, 110, |
| 178521 | | - /* 600 */ 111, 112, 113, 114, 116, 117, 277, 278, 279, 60, |
| 178522 | | - /* 610 */ 107, 108, 19, 276, 60, 31, 23, 152, 195, 116, |
| 178523 | | - /* 620 */ 117, 118, 119, 39, 121, 276, 72, 117, 118, 119, |
| 178524 | | - /* 630 */ 166, 167, 129, 145, 237, 238, 43, 44, 45, 276, |
| 178525 | | - /* 640 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 178526 | | - /* 650 */ 57, 58, 315, 316, 144, 101, 19, 154, 116, 156, |
| 178527 | | - /* 660 */ 23, 107, 108, 109, 315, 316, 117, 118, 119, 115, |
| 178528 | | - /* 670 */ 60, 117, 118, 119, 132, 200, 122, 60, 315, 316, |
| 178529 | | - /* 680 */ 43, 44, 45, 272, 47, 48, 49, 50, 51, 52, |
| 178530 | | - /* 690 */ 53, 54, 55, 56, 57, 58, 103, 104, 105, 106, |
| 178531 | | - /* 700 */ 107, 108, 109, 110, 111, 112, 113, 114, 154, 155, |
| 178532 | | - /* 710 */ 156, 157, 158, 212, 213, 214, 22, 195, 101, 22, |
| 178533 | | - /* 720 */ 60, 19, 20, 60, 22, 139, 140, 117, 118, 119, |
| 178534 | | - /* 730 */ 22, 251, 195, 253, 117, 118, 195, 183, 36, 122, |
| 178535 | | - /* 740 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 178536 | | - /* 750 */ 113, 114, 195, 195, 60, 218, 219, 60, 195, 284, |
| 178537 | | - /* 760 */ 19, 25, 60, 288, 23, 237, 238, 22, 60, 109, |
| 178538 | | - /* 770 */ 233, 154, 155, 156, 72, 218, 219, 117, 118, 119, |
| 178539 | | - /* 780 */ 117, 118, 119, 116, 43, 44, 45, 265, 47, 48, |
| 178540 | | - /* 790 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 178541 | | - /* 800 */ 183, 243, 25, 101, 19, 60, 265, 144, 23, 107, |
| 178542 | | - /* 810 */ 108, 117, 118, 119, 117, 118, 119, 115, 151, 117, |
| 178543 | | - /* 820 */ 118, 119, 82, 195, 122, 117, 118, 119, 43, 44, |
| 178544 | | - /* 830 */ 45, 195, 47, 48, 49, 50, 51, 52, 53, 54, |
| 178545 | | - /* 840 */ 55, 56, 57, 58, 103, 104, 105, 106, 107, 108, |
| 178546 | | - /* 850 */ 109, 110, 111, 112, 113, 114, 154, 155, 156, 157, |
| 178547 | | - /* 860 */ 158, 121, 117, 118, 119, 307, 101, 309, 195, 22, |
| 178548 | | - /* 870 */ 23, 195, 25, 19, 35, 139, 140, 195, 24, 139, |
| 178549 | | - /* 880 */ 140, 208, 195, 118, 109, 183, 22, 122, 103, 104, |
| 178550 | | - /* 890 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 178551 | | - /* 900 */ 304, 305, 77, 230, 127, 232, 67, 195, 19, 195, |
| 178552 | | - /* 910 */ 195, 136, 23, 88, 75, 90, 141, 203, 93, 154, |
| 178553 | | - /* 920 */ 155, 156, 208, 295, 60, 243, 22, 23, 19, 25, |
| 178554 | | - /* 930 */ 218, 219, 43, 44, 45, 100, 47, 48, 49, 50, |
| 178555 | | - /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 183, 102, |
| 178556 | | - /* 950 */ 96, 195, 43, 44, 45, 240, 47, 48, 49, 50, |
| 178557 | | - /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 134, |
| 178558 | | - /* 970 */ 131, 146, 25, 286, 120, 121, 122, 123, 124, 125, |
| 178559 | | - /* 980 */ 126, 117, 118, 119, 313, 195, 132, 195, 317, 307, |
| 178560 | | - /* 990 */ 195, 309, 103, 104, 105, 106, 107, 108, 109, 110, |
| 178561 | | - /* 1000 */ 111, 112, 113, 114, 195, 195, 102, 195, 195, 195, |
| 178562 | | - /* 1010 */ 218, 219, 103, 104, 105, 106, 107, 108, 109, 110, |
| 178563 | | - /* 1020 */ 111, 112, 113, 114, 77, 233, 195, 60, 218, 219, |
| 178564 | | - /* 1030 */ 218, 219, 218, 219, 23, 195, 25, 90, 243, 159, |
| 178565 | | - /* 1040 */ 93, 161, 19, 233, 195, 233, 23, 233, 16, 218, |
| 178566 | | - /* 1050 */ 219, 195, 243, 212, 213, 214, 262, 263, 218, 219, |
| 178567 | | - /* 1060 */ 195, 271, 19, 307, 233, 309, 43, 44, 45, 160, |
| 178568 | | - /* 1070 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 178569 | | - /* 1080 */ 57, 58, 195, 218, 219, 118, 43, 44, 45, 240, |
| 178570 | | - /* 1090 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 178571 | | - /* 1100 */ 57, 58, 307, 195, 309, 218, 219, 263, 12, 195, |
| 178572 | | - /* 1110 */ 78, 267, 80, 112, 113, 114, 307, 22, 309, 24, |
| 178573 | | - /* 1120 */ 255, 281, 266, 27, 107, 108, 103, 104, 105, 106, |
| 178574 | | - /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 195, |
| 178575 | | - /* 1140 */ 11, 22, 255, 24, 195, 195, 103, 104, 105, 106, |
| 178576 | | - /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 19, 195, |
| 178577 | | - /* 1160 */ 64, 195, 218, 219, 195, 313, 195, 218, 219, 317, |
| 178578 | | - /* 1170 */ 74, 154, 195, 156, 195, 195, 19, 233, 23, 60, |
| 178579 | | - /* 1180 */ 25, 24, 218, 219, 218, 219, 195, 218, 219, 218, |
| 178580 | | - /* 1190 */ 219, 128, 129, 130, 162, 263, 19, 218, 219, 267, |
| 178581 | | - /* 1200 */ 43, 44, 45, 160, 47, 48, 49, 50, 51, 52, |
| 178582 | | - /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 240, 228, 255, |
| 178583 | | - /* 1220 */ 43, 44, 45, 25, 47, 48, 49, 50, 51, 52, |
| 178584 | | - /* 1230 */ 53, 54, 55, 56, 57, 58, 135, 118, 137, 138, |
| 178585 | | - /* 1240 */ 43, 44, 45, 22, 47, 48, 49, 50, 51, 52, |
| 178586 | | - /* 1250 */ 53, 54, 55, 56, 57, 58, 117, 266, 129, 130, |
| 178587 | | - /* 1260 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 178588 | | - /* 1270 */ 113, 114, 195, 195, 119, 295, 195, 206, 195, 195, |
| 178589 | | - /* 1280 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 178590 | | - /* 1290 */ 113, 114, 195, 195, 195, 218, 219, 195, 195, 144, |
| 178591 | | - /* 1300 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 178592 | | - /* 1310 */ 113, 114, 241, 242, 67, 218, 219, 218, 219, 146, |
| 178593 | | - /* 1320 */ 19, 218, 219, 240, 215, 254, 136, 256, 107, 108, |
| 178594 | | - /* 1330 */ 195, 141, 255, 86, 128, 129, 130, 195, 165, 195, |
| 178595 | | - /* 1340 */ 19, 143, 95, 272, 25, 44, 45, 266, 47, 48, |
| 178596 | | - /* 1350 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 178597 | | - /* 1360 */ 218, 219, 218, 219, 195, 12, 45, 195, 47, 48, |
| 178598 | | - /* 1370 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 178599 | | - /* 1380 */ 27, 23, 7, 8, 9, 210, 211, 218, 219, 116, |
| 178600 | | - /* 1390 */ 218, 219, 228, 16, 147, 42, 195, 295, 195, 19, |
| 178601 | | - /* 1400 */ 20, 266, 22, 294, 103, 104, 105, 106, 107, 108, |
| 178602 | | - /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 218, |
| 178603 | | - /* 1420 */ 219, 218, 219, 195, 103, 104, 105, 106, 107, 108, |
| 178604 | | - /* 1430 */ 109, 110, 111, 112, 113, 114, 195, 154, 119, 156, |
| 178605 | | - /* 1440 */ 60, 189, 190, 191, 192, 195, 218, 219, 195, 197, |
| 178606 | | - /* 1450 */ 195, 199, 72, 195, 19, 78, 195, 80, 206, 218, |
| 178607 | | - /* 1460 */ 219, 195, 82, 144, 210, 211, 195, 15, 218, 219, |
| 178608 | | - /* 1470 */ 47, 218, 219, 218, 219, 259, 260, 195, 261, 218, |
| 178609 | | - /* 1480 */ 219, 101, 302, 303, 218, 219, 195, 107, 108, 218, |
| 178610 | | - /* 1490 */ 219, 150, 151, 241, 242, 115, 25, 117, 118, 119, |
| 178611 | | - /* 1500 */ 218, 219, 122, 195, 146, 195, 254, 195, 256, 218, |
| 178612 | | - /* 1510 */ 219, 246, 25, 61, 246, 19, 20, 195, 22, 139, |
| 178613 | | - /* 1520 */ 140, 269, 257, 195, 266, 257, 218, 219, 218, 219, |
| 178614 | | - /* 1530 */ 218, 219, 36, 246, 154, 155, 156, 157, 158, 116, |
| 178615 | | - /* 1540 */ 218, 219, 195, 22, 257, 49, 218, 219, 23, 195, |
| 178616 | | - /* 1550 */ 25, 195, 117, 301, 195, 25, 60, 195, 195, 23, |
| 178617 | | - /* 1560 */ 195, 25, 195, 183, 24, 218, 219, 130, 72, 195, |
| 178618 | | - /* 1570 */ 22, 195, 218, 219, 218, 219, 195, 218, 219, 195, |
| 178619 | | - /* 1580 */ 218, 219, 86, 218, 219, 218, 219, 91, 19, 20, |
| 178620 | | - /* 1590 */ 153, 22, 218, 219, 218, 219, 195, 101, 195, 218, |
| 178621 | | - /* 1600 */ 219, 195, 195, 107, 108, 36, 23, 195, 25, 195, |
| 178622 | | - /* 1610 */ 62, 115, 195, 117, 118, 119, 195, 146, 122, 218, |
| 178623 | | - /* 1620 */ 219, 218, 219, 195, 218, 219, 19, 60, 122, 60, |
| 178624 | | - /* 1630 */ 218, 219, 218, 219, 195, 218, 219, 150, 132, 218, |
| 178625 | | - /* 1640 */ 219, 72, 195, 23, 195, 25, 218, 219, 195, 60, |
| 178626 | | - /* 1650 */ 154, 155, 156, 157, 158, 86, 23, 195, 25, 195, |
| 178627 | | - /* 1660 */ 91, 19, 20, 142, 22, 218, 219, 218, 219, 130, |
| 178628 | | - /* 1670 */ 101, 218, 219, 143, 121, 122, 107, 108, 36, 183, |
| 178629 | | - /* 1680 */ 218, 219, 142, 60, 115, 118, 117, 118, 119, 7, |
| 178630 | | - /* 1690 */ 8, 122, 153, 23, 23, 25, 25, 23, 23, 25, |
| 178631 | | - /* 1700 */ 25, 23, 60, 25, 23, 98, 25, 118, 84, 85, |
| 178632 | | - /* 1710 */ 23, 23, 25, 25, 72, 154, 23, 156, 25, 23, |
| 178633 | | - /* 1720 */ 228, 25, 195, 154, 155, 156, 157, 158, 86, 195, |
| 178634 | | - /* 1730 */ 195, 258, 195, 91, 291, 322, 195, 195, 195, 195, |
| 178635 | | - /* 1740 */ 195, 118, 195, 101, 195, 195, 195, 195, 238, 107, |
| 178636 | | - /* 1750 */ 108, 195, 183, 195, 195, 195, 290, 115, 195, 117, |
| 178637 | | - /* 1760 */ 118, 119, 244, 195, 122, 195, 195, 195, 195, 195, |
| 178638 | | - /* 1770 */ 195, 258, 258, 258, 258, 193, 245, 300, 216, 274, |
| 178639 | | - /* 1780 */ 247, 270, 270, 274, 296, 296, 248, 222, 262, 198, |
| 178640 | | - /* 1790 */ 262, 274, 61, 274, 248, 231, 154, 155, 156, 157, |
| 178641 | | - /* 1800 */ 158, 0, 1, 2, 247, 227, 5, 221, 221, 221, |
| 178642 | | - /* 1810 */ 142, 10, 11, 12, 13, 14, 262, 262, 17, 202, |
| 178643 | | - /* 1820 */ 300, 19, 20, 300, 22, 183, 247, 251, 251, 245, |
| 178644 | | - /* 1830 */ 202, 30, 38, 32, 202, 152, 151, 22, 36, 43, |
| 178645 | | - /* 1840 */ 236, 40, 18, 202, 239, 239, 18, 239, 239, 283, |
| 178646 | | - /* 1850 */ 201, 150, 236, 202, 236, 201, 159, 202, 248, 248, |
| 178647 | | - /* 1860 */ 248, 248, 60, 63, 201, 275, 273, 275, 273, 275, |
| 178648 | | - /* 1870 */ 22, 286, 71, 223, 72, 202, 223, 297, 297, 202, |
| 178649 | | - /* 1880 */ 79, 201, 116, 82, 220, 201, 220, 220, 65, 293, |
| 178650 | | - /* 1890 */ 292, 229, 22, 166, 127, 226, 24, 114, 226, 223, |
| 178651 | | - /* 1900 */ 99, 222, 202, 101, 285, 92, 220, 308, 83, 107, |
| 178652 | | - /* 1910 */ 108, 220, 220, 316, 220, 285, 268, 115, 229, 117, |
| 178653 | | - /* 1920 */ 118, 119, 223, 321, 122, 268, 149, 146, 22, 19, |
| 178654 | | - /* 1930 */ 20, 202, 22, 159, 282, 134, 321, 148, 280, 147, |
| 178655 | | - /* 1940 */ 139, 140, 252, 141, 25, 204, 36, 252, 13, 251, |
| 178656 | | - /* 1950 */ 196, 248, 250, 249, 196, 6, 154, 155, 156, 157, |
| 178657 | | - /* 1960 */ 158, 209, 194, 194, 163, 194, 306, 306, 303, 224, |
| 178658 | | - /* 1970 */ 60, 215, 215, 209, 215, 215, 215, 224, 216, 216, |
| 178659 | | - /* 1980 */ 4, 209, 72, 3, 22, 183, 164, 15, 23, 16, |
| 178660 | | - /* 1990 */ 23, 140, 152, 131, 25, 24, 143, 20, 16, 145, |
| 178661 | | - /* 2000 */ 1, 143, 131, 62, 131, 37, 54, 152, 54, 54, |
| 178662 | | - /* 2010 */ 54, 101, 131, 117, 1, 34, 142, 107, 108, 5, |
| 178663 | | - /* 2020 */ 22, 116, 162, 76, 41, 115, 69, 117, 118, 119, |
| 178664 | | - /* 2030 */ 1, 2, 122, 25, 5, 69, 142, 116, 20, 10, |
| 178665 | | - /* 2040 */ 11, 12, 13, 14, 24, 19, 17, 132, 5, 126, |
| 178666 | | - /* 2050 */ 22, 141, 68, 10, 11, 12, 13, 14, 22, 30, |
| 178667 | | - /* 2060 */ 17, 32, 22, 22, 154, 155, 156, 157, 158, 40, |
| 178668 | | - /* 2070 */ 23, 68, 60, 30, 24, 32, 97, 28, 22, 68, |
| 178669 | | - /* 2080 */ 23, 37, 34, 40, 150, 22, 25, 23, 23, 23, |
| 178670 | | - /* 2090 */ 22, 98, 142, 183, 23, 23, 34, 22, 25, 89, |
| 178671 | | - /* 2100 */ 71, 34, 117, 144, 34, 22, 76, 76, 79, 87, |
| 178672 | | - /* 2110 */ 34, 82, 34, 44, 71, 94, 34, 23, 25, 24, |
| 178673 | | - /* 2120 */ 34, 25, 79, 23, 23, 82, 23, 23, 99, 143, |
| 178674 | | - /* 2130 */ 143, 22, 25, 25, 23, 22, 11, 22, 22, 25, |
| 178675 | | - /* 2140 */ 23, 23, 99, 22, 22, 136, 142, 142, 142, 25, |
| 178676 | | - /* 2150 */ 23, 15, 1, 1, 323, 323, 323, 323, 323, 323, |
| 178677 | | - /* 2160 */ 323, 323, 323, 134, 323, 323, 323, 323, 139, 140, |
| 178678 | | - /* 2170 */ 323, 323, 323, 323, 323, 323, 323, 134, 323, 323, |
| 178679 | | - /* 2180 */ 323, 323, 139, 140, 323, 323, 323, 323, 323, 323, |
| 178680 | | - /* 2190 */ 323, 323, 163, 323, 323, 323, 323, 323, 323, 323, |
| 178681 | | - /* 2200 */ 323, 323, 323, 323, 323, 323, 163, 323, 323, 323, |
| 178682 | | - /* 2210 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178683 | | - /* 2220 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178684 | | - /* 2230 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178685 | | - /* 2240 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178686 | | - /* 2250 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178687 | | - /* 2260 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178688 | | - /* 2270 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178689 | | - /* 2280 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178690 | | - /* 2290 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178691 | | - /* 2300 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178692 | | - /* 2310 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 179233 | + /* 330 */ 114, 232, 60, 212, 213, 214, 103, 104, 105, 106, |
| 179234 | + /* 340 */ 107, 108, 109, 110, 111, 112, 113, 114, 103, 104, |
| 179235 | + /* 350 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 179236 | + /* 360 */ 24, 195, 200, 103, 104, 105, 106, 107, 108, 109, |
| 179237 | + /* 370 */ 110, 111, 112, 113, 114, 251, 60, 253, 102, 107, |
| 179238 | + /* 380 */ 108, 119, 313, 19, 218, 219, 317, 23, 116, 117, |
| 179239 | + /* 390 */ 118, 119, 195, 121, 206, 22, 60, 26, 312, 313, |
| 179240 | + /* 400 */ 195, 129, 205, 317, 207, 35, 144, 43, 44, 45, |
| 179241 | + /* 410 */ 195, 47, 48, 49, 50, 51, 52, 53, 54, 55, |
| 179242 | + /* 420 */ 56, 57, 58, 218, 219, 82, 154, 19, 156, 241, |
| 179243 | + /* 430 */ 242, 60, 24, 117, 118, 119, 120, 67, 233, 123, |
| 179244 | + /* 440 */ 124, 125, 254, 195, 256, 75, 284, 259, 260, 133, |
| 179245 | + /* 450 */ 288, 43, 44, 45, 118, 47, 48, 49, 50, 51, |
| 179246 | + /* 460 */ 52, 53, 54, 55, 56, 57, 58, 103, 104, 105, |
| 179247 | + /* 470 */ 106, 107, 108, 109, 110, 111, 112, 113, 114, 195, |
| 179248 | + /* 480 */ 107, 108, 139, 140, 318, 195, 320, 195, 117, 118, |
| 179249 | + /* 490 */ 119, 61, 19, 20, 120, 22, 195, 123, 124, 125, |
| 179250 | + /* 500 */ 195, 131, 218, 219, 195, 195, 146, 133, 207, 36, |
| 179251 | + /* 510 */ 295, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 179252 | + /* 520 */ 112, 113, 114, 218, 219, 165, 60, 195, 218, 219, |
| 179253 | + /* 530 */ 240, 19, 240, 60, 189, 190, 191, 192, 233, 255, |
| 179254 | + /* 540 */ 139, 140, 197, 233, 199, 72, 61, 272, 264, 195, |
| 179255 | + /* 550 */ 120, 206, 195, 19, 60, 43, 44, 45, 206, 47, |
| 179256 | + /* 560 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 179257 | + /* 570 */ 58, 25, 218, 219, 101, 109, 112, 113, 114, 195, |
| 179258 | + /* 580 */ 107, 108, 109, 117, 118, 119, 241, 242, 115, 195, |
| 179259 | + /* 590 */ 117, 118, 119, 241, 242, 122, 60, 206, 195, 254, |
| 179260 | + /* 600 */ 60, 256, 218, 219, 195, 120, 254, 195, 256, 73, |
| 179261 | + /* 610 */ 125, 117, 118, 119, 269, 103, 104, 105, 106, 107, |
| 179262 | + /* 620 */ 108, 109, 110, 111, 112, 113, 114, 154, 155, 156, |
| 179263 | + /* 630 */ 157, 158, 241, 242, 240, 281, 19, 234, 144, 255, |
| 179264 | + /* 640 */ 23, 206, 166, 167, 299, 254, 301, 256, 264, 240, |
| 179265 | + /* 650 */ 116, 117, 295, 117, 118, 119, 183, 117, 118, 119, |
| 179266 | + /* 660 */ 43, 44, 45, 151, 47, 48, 49, 50, 51, 52, |
| 179267 | + /* 670 */ 53, 54, 55, 56, 57, 58, 241, 242, 266, 145, |
| 179268 | + /* 680 */ 19, 241, 242, 242, 23, 139, 140, 77, 25, 254, |
| 179269 | + /* 690 */ 195, 256, 152, 276, 254, 254, 256, 256, 88, 206, |
| 179270 | + /* 700 */ 90, 60, 206, 93, 43, 44, 45, 272, 47, 48, |
| 179271 | + /* 710 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 179272 | + /* 720 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 179273 | + /* 730 */ 113, 114, 315, 316, 241, 242, 131, 241, 242, 134, |
| 179274 | + /* 740 */ 22, 206, 101, 22, 82, 19, 20, 254, 22, 256, |
| 179275 | + /* 750 */ 254, 74, 256, 263, 22, 195, 146, 267, 117, 118, |
| 179276 | + /* 760 */ 276, 266, 36, 122, 103, 104, 105, 106, 107, 108, |
| 179277 | + /* 770 */ 109, 110, 111, 112, 113, 114, 241, 242, 60, 217, |
| 179278 | + /* 780 */ 130, 60, 195, 121, 19, 195, 60, 225, 23, 254, |
| 179279 | + /* 790 */ 127, 256, 60, 237, 238, 154, 155, 156, 72, 315, |
| 179280 | + /* 800 */ 316, 139, 140, 153, 22, 128, 129, 130, 43, 44, |
| 179281 | + /* 810 */ 45, 195, 47, 48, 49, 50, 51, 52, 53, 54, |
| 179282 | + /* 820 */ 55, 56, 57, 58, 183, 304, 305, 101, 19, 60, |
| 179283 | + /* 830 */ 243, 271, 23, 107, 108, 117, 118, 119, 117, 118, |
| 179284 | + /* 840 */ 119, 115, 60, 117, 118, 119, 16, 195, 122, 117, |
| 179285 | + /* 850 */ 118, 119, 43, 44, 45, 22, 47, 48, 49, 50, |
| 179286 | + /* 860 */ 51, 52, 53, 54, 55, 56, 57, 58, 103, 104, |
| 179287 | + /* 870 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 179288 | + /* 880 */ 154, 155, 156, 157, 158, 295, 117, 118, 119, 60, |
| 179289 | + /* 890 */ 101, 60, 240, 60, 307, 21, 309, 195, 195, 117, |
| 179290 | + /* 900 */ 118, 119, 195, 47, 48, 49, 50, 118, 78, 183, |
| 179291 | + /* 910 */ 80, 122, 103, 104, 105, 106, 107, 108, 109, 110, |
| 179292 | + /* 920 */ 111, 112, 113, 114, 195, 218, 219, 16, 312, 313, |
| 179293 | + /* 930 */ 195, 195, 19, 317, 262, 263, 23, 212, 213, 214, |
| 179294 | + /* 940 */ 233, 210, 211, 154, 155, 156, 117, 118, 119, 118, |
| 179295 | + /* 950 */ 117, 118, 119, 218, 219, 81, 43, 44, 45, 195, |
| 179296 | + /* 960 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 179297 | + /* 970 */ 57, 58, 183, 144, 271, 122, 19, 190, 122, 192, |
| 179298 | + /* 980 */ 23, 25, 218, 219, 197, 132, 199, 195, 286, 78, |
| 179299 | + /* 990 */ 255, 80, 162, 206, 265, 107, 108, 233, 124, 195, |
| 179300 | + /* 1000 */ 43, 44, 45, 195, 47, 48, 49, 50, 51, 52, |
| 179301 | + /* 1010 */ 53, 54, 55, 56, 57, 58, 103, 104, 105, 106, |
| 179302 | + /* 1020 */ 107, 108, 109, 110, 111, 112, 113, 114, 241, 242, |
| 179303 | + /* 1030 */ 195, 195, 31, 77, 195, 243, 162, 195, 195, 195, |
| 179304 | + /* 1040 */ 39, 254, 154, 256, 156, 19, 90, 203, 19, 93, |
| 179305 | + /* 1050 */ 24, 208, 208, 218, 219, 195, 269, 218, 219, 195, |
| 179306 | + /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 179307 | + /* 1070 */ 113, 114, 233, 230, 266, 232, 47, 263, 218, 219, |
| 179308 | + /* 1080 */ 19, 267, 218, 219, 23, 23, 299, 25, 301, 135, |
| 179309 | + /* 1090 */ 255, 137, 138, 233, 47, 195, 195, 195, 25, 307, |
| 179310 | + /* 1100 */ 19, 309, 22, 23, 43, 44, 45, 271, 47, 48, |
| 179311 | + /* 1110 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 179312 | + /* 1120 */ 218, 219, 96, 195, 43, 44, 45, 195, 47, 48, |
| 179313 | + /* 1130 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 179314 | + /* 1140 */ 114, 195, 195, 243, 243, 116, 120, 121, 122, 123, |
| 179315 | + /* 1150 */ 124, 125, 126, 195, 195, 195, 195, 255, 132, 213, |
| 179316 | + /* 1160 */ 214, 132, 234, 116, 103, 104, 105, 106, 107, 108, |
| 179317 | + /* 1170 */ 109, 110, 111, 112, 113, 114, 218, 219, 218, 219, |
| 179318 | + /* 1180 */ 195, 119, 102, 195, 103, 104, 105, 106, 107, 108, |
| 179319 | + /* 1190 */ 109, 110, 111, 112, 113, 114, 22, 23, 22, 25, |
| 179320 | + /* 1200 */ 24, 67, 12, 218, 219, 195, 144, 307, 307, 309, |
| 179321 | + /* 1210 */ 309, 195, 77, 255, 19, 255, 143, 27, 23, 313, |
| 179322 | + /* 1220 */ 86, 100, 313, 317, 265, 90, 317, 266, 93, 95, |
| 179323 | + /* 1230 */ 210, 211, 42, 287, 19, 23, 60, 25, 43, 44, |
| 179324 | + /* 1240 */ 45, 160, 47, 48, 49, 50, 51, 52, 53, 54, |
| 179325 | + /* 1250 */ 55, 56, 57, 58, 64, 134, 109, 261, 43, 44, |
| 179326 | + /* 1260 */ 45, 215, 47, 48, 49, 50, 51, 52, 53, 54, |
| 179327 | + /* 1270 */ 55, 56, 57, 58, 210, 211, 102, 128, 129, 130, |
| 179328 | + /* 1280 */ 12, 147, 266, 136, 163, 164, 302, 303, 141, 195, |
| 179329 | + /* 1290 */ 25, 195, 19, 195, 118, 27, 228, 19, 103, 104, |
| 179330 | + /* 1300 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 179331 | + /* 1310 */ 42, 195, 218, 219, 218, 219, 218, 219, 103, 104, |
| 179332 | + /* 1320 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 179333 | + /* 1330 */ 19, 195, 64, 195, 218, 219, 195, 259, 260, 195, |
| 179334 | + /* 1340 */ 294, 195, 74, 195, 150, 151, 195, 246, 19, 7, |
| 179335 | + /* 1350 */ 8, 9, 195, 24, 218, 219, 218, 219, 257, 218, |
| 179336 | + /* 1360 */ 219, 195, 218, 219, 218, 219, 218, 219, 19, 218, |
| 179337 | + /* 1370 */ 219, 98, 43, 44, 45, 160, 47, 48, 49, 50, |
| 179338 | + /* 1380 */ 51, 52, 53, 54, 55, 56, 57, 58, 19, 128, |
| 179339 | + /* 1390 */ 129, 130, 43, 44, 45, 117, 47, 48, 49, 50, |
| 179340 | + /* 1400 */ 51, 52, 53, 54, 55, 56, 57, 58, 22, 22, |
| 179341 | + /* 1410 */ 116, 146, 43, 44, 45, 195, 47, 48, 49, 50, |
| 179342 | + /* 1420 */ 51, 52, 53, 54, 55, 56, 57, 58, 117, 159, |
| 179343 | + /* 1430 */ 195, 161, 103, 104, 105, 106, 107, 108, 109, 110, |
| 179344 | + /* 1440 */ 111, 112, 113, 114, 195, 151, 195, 60, 62, 15, |
| 179345 | + /* 1450 */ 195, 25, 103, 104, 105, 106, 107, 108, 109, 110, |
| 179346 | + /* 1460 */ 111, 112, 113, 114, 195, 228, 195, 218, 219, 218, |
| 179347 | + /* 1470 */ 219, 195, 103, 104, 105, 106, 107, 108, 109, 110, |
| 179348 | + /* 1480 */ 111, 112, 113, 114, 22, 195, 246, 218, 219, 218, |
| 179349 | + /* 1490 */ 219, 195, 19, 22, 23, 61, 246, 257, 24, 136, |
| 179350 | + /* 1500 */ 246, 22, 60, 24, 141, 118, 60, 257, 218, 219, |
| 179351 | + /* 1510 */ 195, 257, 19, 195, 218, 219, 54, 44, 45, 195, |
| 179352 | + /* 1520 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 179353 | + /* 1530 */ 57, 58, 195, 218, 219, 195, 218, 219, 45, 195, |
| 179354 | + /* 1540 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 179355 | + /* 1550 */ 57, 58, 195, 121, 122, 218, 219, 195, 218, 219, |
| 179356 | + /* 1560 */ 118, 195, 218, 219, 118, 23, 195, 25, 195, 143, |
| 179357 | + /* 1570 */ 195, 19, 20, 102, 22, 195, 103, 104, 105, 106, |
| 179358 | + /* 1580 */ 107, 108, 109, 110, 111, 112, 113, 114, 36, 218, |
| 179359 | + /* 1590 */ 219, 218, 219, 218, 219, 195, 103, 104, 105, 106, |
| 179360 | + /* 1600 */ 107, 108, 109, 110, 111, 112, 113, 114, 195, 23, |
| 179361 | + /* 1610 */ 23, 25, 60, 195, 195, 195, 142, 195, 218, 219, |
| 179362 | + /* 1620 */ 195, 23, 195, 25, 72, 130, 116, 23, 195, 25, |
| 179363 | + /* 1630 */ 195, 218, 219, 195, 82, 195, 218, 219, 218, 219, |
| 179364 | + /* 1640 */ 218, 219, 195, 218, 219, 218, 219, 195, 153, 195, |
| 179365 | + /* 1650 */ 195, 218, 219, 101, 195, 145, 218, 219, 195, 107, |
| 179366 | + /* 1660 */ 108, 23, 195, 25, 195, 218, 219, 115, 22, 117, |
| 179367 | + /* 1670 */ 118, 119, 218, 219, 122, 195, 195, 218, 219, 195, |
| 179368 | + /* 1680 */ 60, 218, 219, 7, 8, 218, 219, 19, 20, 195, |
| 179369 | + /* 1690 */ 22, 139, 140, 23, 23, 25, 25, 195, 218, 219, |
| 179370 | + /* 1700 */ 84, 85, 218, 219, 36, 228, 154, 155, 156, 157, |
| 179371 | + /* 1710 */ 158, 195, 23, 195, 25, 195, 195, 49, 195, 23, |
| 179372 | + /* 1720 */ 195, 25, 195, 23, 195, 25, 195, 195, 60, 195, |
| 179373 | + /* 1730 */ 195, 195, 195, 146, 195, 183, 218, 219, 118, 195, |
| 179374 | + /* 1740 */ 72, 218, 219, 218, 219, 218, 219, 218, 219, 218, |
| 179375 | + /* 1750 */ 219, 195, 218, 219, 86, 218, 219, 218, 219, 91, |
| 179376 | + /* 1760 */ 19, 20, 154, 22, 156, 23, 258, 25, 195, 101, |
| 179377 | + /* 1770 */ 195, 23, 195, 25, 195, 107, 108, 36, 23, 154, |
| 179378 | + /* 1780 */ 25, 156, 23, 115, 25, 117, 118, 119, 142, 238, |
| 179379 | + /* 1790 */ 122, 218, 219, 218, 219, 218, 219, 23, 322, 25, |
| 179380 | + /* 1800 */ 195, 60, 195, 300, 195, 195, 195, 195, 195, 244, |
| 179381 | + /* 1810 */ 291, 258, 290, 72, 245, 258, 258, 258, 216, 193, |
| 179382 | + /* 1820 */ 274, 247, 154, 155, 156, 157, 158, 86, 300, 296, |
| 179383 | + /* 1830 */ 300, 270, 91, 19, 20, 247, 22, 270, 248, 248, |
| 179384 | + /* 1840 */ 274, 296, 101, 222, 274, 274, 231, 262, 107, 108, |
| 179385 | + /* 1850 */ 36, 183, 221, 221, 227, 221, 115, 262, 117, 118, |
| 179386 | + /* 1860 */ 119, 262, 262, 122, 283, 251, 247, 245, 251, 116, |
| 179387 | + /* 1870 */ 198, 220, 61, 220, 60, 220, 300, 142, 38, 202, |
| 179388 | + /* 1880 */ 202, 297, 202, 152, 151, 22, 72, 286, 43, 297, |
| 179389 | + /* 1890 */ 236, 18, 202, 275, 18, 154, 155, 156, 157, 158, |
| 179390 | + /* 1900 */ 86, 273, 239, 239, 239, 91, 239, 201, 150, 248, |
| 179391 | + /* 1910 */ 275, 275, 273, 202, 248, 101, 201, 236, 236, 159, |
| 179392 | + /* 1920 */ 63, 107, 108, 248, 183, 202, 293, 248, 201, 115, |
| 179393 | + /* 1930 */ 22, 117, 118, 119, 292, 223, 122, 223, 202, 201, |
| 179394 | + /* 1940 */ 220, 202, 220, 65, 201, 220, 229, 22, 127, 220, |
| 179395 | + /* 1950 */ 226, 223, 226, 166, 222, 24, 316, 220, 308, 229, |
| 179396 | + /* 1960 */ 220, 114, 92, 202, 220, 321, 321, 83, 154, 155, |
| 179397 | + /* 1970 */ 156, 157, 158, 0, 1, 2, 285, 285, 5, 223, |
| 179398 | + /* 1980 */ 149, 268, 146, 10, 11, 12, 13, 14, 22, 268, |
| 179399 | + /* 1990 */ 17, 202, 159, 19, 20, 250, 22, 183, 252, 280, |
| 179400 | + /* 2000 */ 251, 148, 252, 30, 25, 32, 147, 204, 13, 196, |
| 179401 | + /* 2010 */ 36, 249, 248, 40, 196, 6, 282, 194, 194, 194, |
| 179402 | + /* 2020 */ 215, 209, 306, 215, 306, 215, 209, 4, 224, 209, |
| 179403 | + /* 2030 */ 215, 224, 216, 3, 60, 216, 22, 215, 122, 19, |
| 179404 | + /* 2040 */ 122, 19, 125, 22, 71, 16, 72, 22, 15, 23, |
| 179405 | + /* 2050 */ 303, 23, 79, 140, 152, 82, 25, 131, 24, 20, |
| 179406 | + /* 2060 */ 145, 16, 143, 1, 143, 131, 131, 62, 131, 37, |
| 179407 | + /* 2070 */ 54, 54, 99, 54, 152, 101, 117, 34, 54, 1, |
| 179408 | + /* 2080 */ 142, 107, 108, 22, 5, 116, 162, 69, 25, 115, |
| 179409 | + /* 2090 */ 41, 117, 118, 119, 142, 24, 122, 116, 126, 132, |
| 179410 | + /* 2100 */ 20, 19, 20, 76, 22, 69, 19, 134, 22, 68, |
| 179411 | + /* 2110 */ 22, 22, 139, 140, 23, 141, 22, 60, 36, 68, |
| 179412 | + /* 2120 */ 24, 28, 22, 68, 23, 150, 34, 37, 154, 155, |
| 179413 | + /* 2130 */ 156, 157, 158, 22, 97, 23, 163, 23, 25, 23, |
| 179414 | + /* 2140 */ 22, 142, 60, 23, 98, 23, 22, 144, 25, 34, |
| 179415 | + /* 2150 */ 76, 34, 117, 34, 72, 34, 89, 183, 94, 34, |
| 179416 | + /* 2160 */ 87, 76, 34, 23, 22, 24, 34, 22, 25, 25, |
| 179417 | + /* 2170 */ 44, 23, 23, 23, 23, 11, 22, 25, 25, 23, |
| 179418 | + /* 2180 */ 22, 143, 22, 101, 23, 143, 23, 22, 22, 107, |
| 179419 | + /* 2190 */ 108, 15, 25, 25, 136, 142, 142, 115, 142, 117, |
| 179420 | + /* 2200 */ 118, 119, 1, 2, 122, 23, 5, 1, 1, 323, |
| 179421 | + /* 2210 */ 323, 10, 11, 12, 13, 14, 323, 323, 17, 323, |
| 179422 | + /* 2220 */ 5, 323, 323, 141, 323, 10, 11, 12, 13, 14, |
| 179423 | + /* 2230 */ 323, 30, 17, 32, 323, 323, 154, 155, 156, 157, |
| 179424 | + /* 2240 */ 158, 40, 323, 323, 323, 30, 323, 32, 323, 323, |
| 179425 | + /* 2250 */ 323, 323, 323, 323, 323, 40, 323, 323, 323, 323, |
| 179426 | + /* 2260 */ 323, 323, 323, 323, 323, 183, 323, 323, 323, 323, |
| 179427 | + /* 2270 */ 323, 323, 71, 323, 323, 323, 323, 323, 323, 323, |
| 179428 | + /* 2280 */ 79, 323, 323, 82, 323, 323, 71, 323, 323, 323, |
| 179429 | + /* 2290 */ 323, 323, 323, 323, 79, 323, 323, 82, 323, 323, |
| 179430 | + /* 2300 */ 99, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 179431 | + /* 2310 */ 323, 323, 323, 323, 99, 323, 323, 323, 323, 323, |
| 178693 | 179432 | /* 2320 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178694 | | - /* 2330 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 178695 | | - /* 2340 */ 323, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 178696 | | - /* 2350 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 178697 | | - /* 2360 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 178698 | | - /* 2370 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 178699 | | - /* 2380 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 178700 | | - /* 2390 */ 187, 187, 187, 187, |
| 179433 | + /* 2330 */ 323, 323, 323, 323, 323, 134, 323, 323, 323, 323, |
| 179434 | + /* 2340 */ 139, 140, 323, 323, 323, 323, 323, 323, 323, 134, |
| 179435 | + /* 2350 */ 323, 323, 323, 323, 139, 140, 323, 323, 323, 323, |
| 179436 | + /* 2360 */ 323, 323, 323, 323, 163, 323, 323, 323, 323, 323, |
| 179437 | + /* 2370 */ 323, 323, 323, 323, 323, 323, 323, 323, 163, 323, |
| 179438 | + /* 2380 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 179439 | + /* 2390 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, |
| 179440 | + /* 2400 */ 323, 323, 323, 323, 323, 323, 323, 323, 187, 187, |
| 179441 | + /* 2410 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179442 | + /* 2420 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179443 | + /* 2430 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179444 | + /* 2440 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179445 | + /* 2450 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179446 | + /* 2460 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179447 | + /* 2470 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179448 | + /* 2480 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179449 | + /* 2490 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179450 | + /* 2500 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179451 | + /* 2510 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179452 | + /* 2520 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179453 | + /* 2530 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179454 | + /* 2540 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179455 | + /* 2550 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, |
| 179456 | + /* 2560 */ 187, 187, 187, 187, 187, 187, |
| 178701 | 179457 | }; |
| 178702 | | -#define YY_SHIFT_COUNT (582) |
| 179458 | +#define YY_SHIFT_COUNT (601) |
| 178703 | 179459 | #define YY_SHIFT_MIN (0) |
| 178704 | | -#define YY_SHIFT_MAX (2152) |
| 179460 | +#define YY_SHIFT_MAX (2215) |
| 178705 | 179461 | static const unsigned short int yy_shift_ofst[] = { |
| 178706 | | - /* 0 */ 2029, 1801, 2043, 1380, 1380, 318, 271, 1496, 1569, 1642, |
| 178707 | | - /* 10 */ 702, 702, 702, 740, 318, 318, 318, 318, 318, 0, |
| 178708 | | - /* 20 */ 0, 216, 1177, 702, 702, 702, 702, 702, 702, 702, |
| 178709 | | - /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 503, 503, |
| 178710 | | - /* 40 */ 111, 111, 217, 287, 348, 610, 610, 736, 736, 736, |
| 178711 | | - /* 50 */ 736, 40, 112, 320, 340, 445, 489, 593, 637, 741, |
| 178712 | | - /* 60 */ 785, 889, 909, 1023, 1043, 1157, 1177, 1177, 1177, 1177, |
| 178713 | | - /* 70 */ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, |
| 178714 | | - /* 80 */ 1177, 1177, 1177, 1177, 1197, 1177, 1301, 1321, 1321, 554, |
| 178715 | | - /* 90 */ 1802, 1910, 702, 702, 702, 702, 702, 702, 702, 702, |
| 178716 | | - /* 100 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, |
| 178717 | | - /* 110 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, |
| 178718 | | - /* 120 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, |
| 178719 | | - /* 130 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, |
| 178720 | | - /* 140 */ 702, 702, 138, 198, 198, 198, 198, 198, 198, 198, |
| 178721 | | - /* 150 */ 183, 99, 169, 549, 610, 151, 542, 610, 610, 1017, |
| 178722 | | - /* 160 */ 1017, 610, 1001, 350, 464, 464, 464, 586, 1, 1, |
| 178723 | | - /* 170 */ 2207, 2207, 854, 854, 854, 465, 694, 694, 694, 694, |
| 178724 | | - /* 180 */ 1096, 1096, 825, 549, 847, 904, 610, 610, 610, 610, |
| 178725 | | - /* 190 */ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, |
| 178726 | | - /* 200 */ 610, 610, 610, 610, 610, 488, 947, 947, 610, 1129, |
| 178727 | | - /* 210 */ 495, 495, 1139, 1139, 967, 967, 1173, 2207, 2207, 2207, |
| 178728 | | - /* 220 */ 2207, 2207, 2207, 2207, 617, 765, 765, 697, 444, 708, |
| 178729 | | - /* 230 */ 660, 745, 510, 663, 864, 610, 610, 610, 610, 610, |
| 178730 | | - /* 240 */ 610, 610, 610, 610, 610, 188, 610, 610, 610, 610, |
| 178731 | | - /* 250 */ 610, 610, 610, 610, 610, 610, 610, 610, 839, 839, |
| 178732 | | - /* 260 */ 839, 610, 610, 610, 1155, 610, 610, 610, 1119, 1247, |
| 178733 | | - /* 270 */ 610, 1353, 610, 610, 610, 610, 610, 610, 610, 610, |
| 178734 | | - /* 280 */ 1063, 494, 1101, 291, 291, 291, 291, 1319, 1101, 1101, |
| 178735 | | - /* 290 */ 775, 1221, 1375, 1452, 667, 1341, 1198, 1341, 1435, 1487, |
| 178736 | | - /* 300 */ 667, 667, 1487, 667, 1198, 1435, 777, 1011, 1423, 584, |
| 178737 | | - /* 310 */ 584, 584, 1273, 1273, 1273, 1273, 1471, 1471, 880, 1530, |
| 178738 | | - /* 320 */ 1190, 1095, 1731, 1731, 1668, 1668, 1794, 1794, 1668, 1683, |
| 178739 | | - /* 330 */ 1685, 1815, 1796, 1824, 1824, 1824, 1824, 1668, 1828, 1701, |
| 178740 | | - /* 340 */ 1685, 1685, 1701, 1815, 1796, 1701, 1796, 1701, 1668, 1828, |
| 178741 | | - /* 350 */ 1697, 1800, 1668, 1828, 1848, 1668, 1828, 1668, 1828, 1848, |
| 178742 | | - /* 360 */ 1766, 1766, 1766, 1823, 1870, 1870, 1848, 1766, 1767, 1766, |
| 178743 | | - /* 370 */ 1823, 1766, 1766, 1727, 1872, 1783, 1783, 1848, 1668, 1813, |
| 178744 | | - /* 380 */ 1813, 1825, 1825, 1777, 1781, 1906, 1668, 1774, 1777, 1789, |
| 178745 | | - /* 390 */ 1792, 1701, 1919, 1935, 1935, 1949, 1949, 1949, 2207, 2207, |
| 178746 | | - /* 400 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, |
| 178747 | | - /* 410 */ 2207, 2207, 2207, 69, 1032, 79, 357, 1377, 1206, 400, |
| 178748 | | - /* 420 */ 1525, 835, 332, 1540, 1437, 1539, 1536, 1548, 1583, 1620, |
| 178749 | | - /* 430 */ 1633, 1670, 1671, 1674, 1567, 1553, 1682, 1506, 1675, 1358, |
| 178750 | | - /* 440 */ 1607, 1589, 1678, 1681, 1624, 1687, 1688, 1283, 1561, 1693, |
| 178751 | | - /* 450 */ 1696, 1623, 1521, 1976, 1980, 1962, 1822, 1972, 1973, 1965, |
| 178752 | | - /* 460 */ 1967, 1851, 1840, 1862, 1969, 1969, 1971, 1853, 1977, 1854, |
| 178753 | | - /* 470 */ 1982, 1999, 1858, 1871, 1969, 1873, 1941, 1968, 1969, 1855, |
| 178754 | | - /* 480 */ 1952, 1954, 1955, 1956, 1881, 1896, 1981, 1874, 2013, 2014, |
| 178755 | | - /* 490 */ 1998, 1905, 1860, 1957, 2008, 1966, 1947, 1983, 1894, 1921, |
| 178756 | | - /* 500 */ 2020, 2018, 2026, 1915, 1923, 2028, 1984, 2036, 2040, 2047, |
| 178757 | | - /* 510 */ 2041, 2003, 2012, 2050, 1979, 2049, 2056, 2011, 2044, 2057, |
| 178758 | | - /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1950, |
| 178759 | | - /* 530 */ 2071, 2072, 1985, 2062, 2075, 1959, 2073, 2067, 2070, 2076, |
| 178760 | | - /* 540 */ 2078, 2010, 2030, 2022, 2069, 2031, 2021, 2082, 2094, 2083, |
| 178761 | | - /* 550 */ 2095, 2093, 2096, 2086, 1986, 1987, 2100, 2073, 2101, 2103, |
| 178762 | | - /* 560 */ 2104, 2109, 2107, 2108, 2111, 2113, 2125, 2115, 2116, 2117, |
| 178763 | | - /* 570 */ 2118, 2121, 2122, 2114, 2009, 2004, 2005, 2006, 2124, 2127, |
| 178764 | | - /* 580 */ 2136, 2151, 2152, |
| 178765 | | -}; |
| 178766 | | -#define YY_REDUCE_COUNT (412) |
| 179462 | + /* 0 */ 2201, 1973, 2215, 1552, 1552, 343, 44, 1668, 1741, 1814, |
| 179463 | + /* 10 */ 726, 726, 726, 662, 343, 343, 343, 343, 343, 0, |
| 179464 | + /* 20 */ 0, 216, 1349, 726, 726, 726, 726, 726, 726, 726, |
| 179465 | + /* 30 */ 726, 726, 726, 726, 726, 726, 726, 726, 272, 272, |
| 179466 | + /* 40 */ 111, 111, 316, 119, 536, 769, 769, 546, 546, 546, |
| 179467 | + /* 50 */ 546, 40, 112, 260, 364, 408, 512, 617, 661, 765, |
| 179468 | + /* 60 */ 809, 913, 957, 1061, 1081, 1195, 1215, 1329, 1349, 1349, |
| 179469 | + /* 70 */ 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, |
| 179470 | + /* 80 */ 1349, 1349, 1349, 1349, 1349, 1349, 1369, 1349, 1473, 1493, |
| 179471 | + /* 90 */ 1493, 473, 1974, 2082, 726, 726, 726, 726, 726, 726, |
| 179472 | + /* 100 */ 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, |
| 179473 | + /* 110 */ 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, |
| 179474 | + /* 120 */ 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, |
| 179475 | + /* 130 */ 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, |
| 179476 | + /* 140 */ 726, 726, 726, 726, 726, 726, 138, 233, 233, 233, |
| 179477 | + /* 150 */ 233, 233, 233, 233, 245, 98, 183, 371, 874, 1029, |
| 179478 | + /* 160 */ 769, 769, 888, 888, 769, 464, 110, 476, 476, 476, |
| 179479 | + /* 170 */ 401, 62, 62, 2379, 2379, 1026, 1026, 1026, 540, 718, |
| 179480 | + /* 180 */ 718, 718, 718, 1268, 1268, 610, 371, 276, 1174, 769, |
| 179481 | + /* 190 */ 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, |
| 179482 | + /* 200 */ 769, 769, 769, 769, 769, 769, 769, 769, 534, 956, |
| 179483 | + /* 210 */ 956, 769, 61, 1135, 1135, 831, 1278, 1278, 831, 831, |
| 179484 | + /* 220 */ 360, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 641, 789, |
| 179485 | + /* 230 */ 789, 721, 374, 732, 466, 782, 494, 829, 833, 769, |
| 179486 | + /* 240 */ 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, |
| 179487 | + /* 250 */ 769, 769, 769, 677, 769, 769, 769, 769, 769, 769, |
| 179488 | + /* 260 */ 769, 769, 769, 769, 769, 769, 370, 370, 370, 769, |
| 179489 | + /* 270 */ 769, 769, 1062, 769, 769, 769, 1176, 1134, 769, 1190, |
| 179490 | + /* 280 */ 769, 769, 769, 769, 769, 769, 769, 769, 485, 1149, |
| 179491 | + /* 290 */ 13, 954, 336, 336, 336, 336, 262, 954, 954, 1147, |
| 179492 | + /* 300 */ 373, 1342, 430, 1434, 1294, 1194, 1073, 1194, 1311, 103, |
| 179493 | + /* 310 */ 1294, 1294, 103, 1294, 1073, 1311, 663, 1212, 1047, 1001, |
| 179494 | + /* 320 */ 1001, 1001, 1510, 1510, 1510, 1510, 1265, 1265, 1270, 1426, |
| 179495 | + /* 330 */ 1363, 1479, 1753, 1811, 1753, 1753, 1735, 1735, 1840, 1840, |
| 179496 | + /* 340 */ 1735, 1731, 1733, 1863, 1845, 1873, 1873, 1873, 1873, 1735, |
| 179497 | + /* 350 */ 1876, 1758, 1733, 1733, 1758, 1863, 1845, 1758, 1845, 1758, |
| 179498 | + /* 360 */ 1735, 1876, 1760, 1857, 1735, 1876, 1908, 1735, 1876, 1735, |
| 179499 | + /* 370 */ 1876, 1908, 1753, 1753, 1753, 1878, 1925, 1925, 1908, 1753, |
| 179500 | + /* 380 */ 1821, 1753, 1878, 1753, 1753, 1787, 1931, 1847, 1847, 1908, |
| 179501 | + /* 390 */ 1735, 1870, 1870, 1884, 1884, 1831, 1836, 1966, 1735, 1833, |
| 179502 | + /* 400 */ 1831, 1853, 1859, 1758, 1979, 1995, 1995, 2009, 2009, 2009, |
| 179503 | + /* 410 */ 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, |
| 179504 | + /* 420 */ 2379, 2379, 2379, 2379, 2379, 856, 1121, 830, 1080, 1471, |
| 179505 | + /* 430 */ 911, 1261, 1387, 1542, 605, 1462, 1474, 650, 1495, 1586, |
| 179506 | + /* 440 */ 1386, 1598, 1604, 1638, 1670, 1671, 1689, 1442, 1432, 1676, |
| 179507 | + /* 450 */ 853, 1696, 1587, 1273, 1446, 1700, 1742, 1616, 1748, 1755, |
| 179508 | + /* 460 */ 1608, 1625, 1759, 1774, 1620, 1646, 2023, 2030, 2014, 1916, |
| 179509 | + /* 470 */ 2020, 1918, 2022, 2021, 2025, 1917, 2033, 2029, 2026, 2028, |
| 179510 | + /* 480 */ 1913, 1902, 1926, 2031, 2031, 2034, 1919, 2039, 1915, 2045, |
| 179511 | + /* 490 */ 2062, 1921, 1934, 2031, 1935, 2005, 2032, 2031, 1922, 2016, |
| 179512 | + /* 500 */ 2017, 2019, 2024, 1937, 1959, 2043, 1938, 2078, 2079, 2061, |
| 179513 | + /* 510 */ 1969, 1924, 2018, 2063, 2036, 2027, 2049, 1952, 1981, 2071, |
| 179514 | + /* 520 */ 2080, 2087, 1967, 1972, 2086, 2041, 2088, 2089, 2091, 2094, |
| 179515 | + /* 530 */ 2051, 2057, 2096, 2037, 2093, 2100, 2055, 2090, 2101, 2092, |
| 179516 | + /* 540 */ 1975, 2111, 2112, 2114, 2113, 2116, 2118, 2046, 1999, 2120, |
| 179517 | + /* 550 */ 2122, 2035, 2115, 2124, 2003, 2123, 2117, 2119, 2121, 2125, |
| 179518 | + /* 560 */ 2067, 2074, 2073, 2126, 2085, 2064, 2128, 2140, 2142, 2141, |
| 179519 | + /* 570 */ 2143, 2144, 2132, 2038, 2042, 2148, 2123, 2149, 2150, 2151, |
| 179520 | + /* 580 */ 2145, 2152, 2153, 2156, 2154, 2164, 2158, 2160, 2161, 2163, |
| 179521 | + /* 590 */ 2165, 2166, 2167, 2058, 2053, 2054, 2056, 2168, 2182, 2176, |
| 179522 | + /* 600 */ 2206, 2207, |
| 179523 | +}; |
| 179524 | +#define YY_REDUCE_COUNT (424) |
| 178767 | 179525 | #define YY_REDUCE_MIN (-277) |
| 178768 | | -#define YY_REDUCE_MAX (1772) |
| 179526 | +#define YY_REDUCE_MAX (1825) |
| 178769 | 179527 | static const short yy_reduce_ofst[] = { |
| 178770 | | - /* 0 */ -67, 1252, -64, -178, -181, 160, 1071, 143, -184, 137, |
| 178771 | | - /* 10 */ 218, 220, 222, -174, 229, 268, 272, 275, 324, -208, |
| 178772 | | - /* 20 */ 242, -277, -39, 81, 537, 792, 810, 812, -189, 814, |
| 178773 | | - /* 30 */ 831, 163, 865, 944, 887, 840, 964, 1077, -187, 292, |
| 178774 | | - /* 40 */ -133, 274, 673, 558, 682, 795, 809, -238, -232, -238, |
| 178775 | | - /* 50 */ -232, 329, 329, 329, 329, 329, 329, 329, 329, 329, |
| 178776 | | - /* 60 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, |
| 178777 | | - /* 70 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, |
| 178778 | | - /* 80 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 557, |
| 178779 | | - /* 90 */ 712, 949, 966, 969, 971, 979, 1097, 1099, 1103, 1142, |
| 178780 | | - /* 100 */ 1144, 1169, 1172, 1201, 1203, 1228, 1241, 1250, 1253, 1255, |
| 178781 | | - /* 110 */ 1261, 1266, 1271, 1282, 1291, 1308, 1310, 1312, 1322, 1328, |
| 178782 | | - /* 120 */ 1347, 1354, 1356, 1359, 1362, 1365, 1367, 1374, 1376, 1381, |
| 178783 | | - /* 130 */ 1401, 1403, 1406, 1412, 1414, 1417, 1421, 1428, 1447, 1449, |
| 178784 | | - /* 140 */ 1453, 1462, 329, 329, 329, 329, 329, 329, 329, 329, |
| 178785 | | - /* 150 */ 329, 329, 329, -22, -159, 475, -220, 756, 38, 501, |
| 178786 | | - /* 160 */ 841, 714, 329, 118, 337, 349, 363, -56, 329, 329, |
| 178787 | | - /* 170 */ 329, 329, -205, -205, -205, 687, -172, -130, -57, 790, |
| 178788 | | - /* 180 */ 397, 528, -271, 136, 596, 596, 90, 316, 522, 541, |
| 178789 | | - /* 190 */ -37, 715, 849, 977, 628, 856, 980, 991, 1081, 1102, |
| 178790 | | - /* 200 */ 1135, 1083, -162, 208, 1258, 794, -86, 159, 41, 1109, |
| 178791 | | - /* 210 */ 671, 852, 844, 932, 1175, 1254, 480, 1180, 100, 258, |
| 178792 | | - /* 220 */ 1265, 1268, 1216, 1287, -139, 317, 344, 63, 339, 423, |
| 178793 | | - /* 230 */ 563, 636, 676, 813, 908, 914, 950, 1078, 1084, 1098, |
| 178794 | | - /* 240 */ 1363, 1384, 1407, 1439, 1464, 411, 1527, 1534, 1535, 1537, |
| 178795 | | - /* 250 */ 1541, 1542, 1543, 1544, 1545, 1547, 1549, 1550, 990, 1164, |
| 178796 | | - /* 260 */ 1492, 1551, 1552, 1556, 1217, 1558, 1559, 1560, 1473, 1413, |
| 178797 | | - /* 270 */ 1563, 1510, 1568, 563, 1570, 1571, 1572, 1573, 1574, 1575, |
| 178798 | | - /* 280 */ 1443, 1466, 1518, 1513, 1514, 1515, 1516, 1217, 1518, 1518, |
| 178799 | | - /* 290 */ 1531, 1562, 1582, 1477, 1505, 1511, 1533, 1512, 1488, 1538, |
| 178800 | | - /* 300 */ 1509, 1517, 1546, 1519, 1557, 1489, 1565, 1564, 1578, 1586, |
| 178801 | | - /* 310 */ 1587, 1588, 1526, 1528, 1554, 1555, 1576, 1577, 1566, 1579, |
| 178802 | | - /* 320 */ 1584, 1591, 1520, 1523, 1617, 1628, 1580, 1581, 1632, 1585, |
| 178803 | | - /* 330 */ 1590, 1593, 1604, 1605, 1606, 1608, 1609, 1641, 1649, 1610, |
| 178804 | | - /* 340 */ 1592, 1594, 1611, 1595, 1616, 1612, 1618, 1613, 1651, 1654, |
| 178805 | | - /* 350 */ 1596, 1598, 1655, 1663, 1650, 1673, 1680, 1677, 1684, 1653, |
| 178806 | | - /* 360 */ 1664, 1666, 1667, 1662, 1669, 1672, 1676, 1686, 1679, 1691, |
| 178807 | | - /* 370 */ 1689, 1692, 1694, 1597, 1599, 1619, 1630, 1699, 1700, 1602, |
| 178808 | | - /* 380 */ 1615, 1648, 1657, 1690, 1698, 1658, 1729, 1652, 1695, 1702, |
| 178809 | | - /* 390 */ 1704, 1703, 1741, 1754, 1758, 1768, 1769, 1771, 1660, 1661, |
| 178810 | | - /* 400 */ 1665, 1752, 1756, 1757, 1759, 1760, 1764, 1745, 1753, 1762, |
| 178811 | | - /* 410 */ 1763, 1761, 1772, |
| 179528 | + /* 0 */ -67, 345, 787, -178, -181, 188, 435, -185, 166, -183, |
| 179529 | + /* 10 */ -78, 284, 384, -174, 352, 391, 493, 496, 535, -208, |
| 179530 | + /* 20 */ -23, -277, -2, 205, 305, 310, 707, 764, -189, 67, |
| 179531 | + /* 30 */ 839, 735, 835, 860, 902, 354, 958, 960, -187, 946, |
| 179532 | + /* 40 */ 86, 616, 843, 587, 792, 900, 901, -238, 440, -238, |
| 179533 | + /* 50 */ 440, -255, -255, -255, -255, -255, -255, -255, -255, -255, |
| 179534 | + /* 60 */ -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, |
| 179535 | + /* 70 */ -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, |
| 179536 | + /* 80 */ -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, |
| 179537 | + /* 90 */ -255, 864, 985, 1094, 1096, 1098, 1116, 1136, 1138, 1141, |
| 179538 | + /* 100 */ 1144, 1146, 1148, 1151, 1249, 1251, 1269, 1271, 1290, 1296, |
| 179539 | + /* 110 */ 1315, 1318, 1337, 1340, 1344, 1371, 1373, 1375, 1400, 1413, |
| 179540 | + /* 120 */ 1418, 1420, 1422, 1425, 1427, 1433, 1438, 1447, 1454, 1459, |
| 179541 | + /* 130 */ 1463, 1467, 1480, 1484, 1518, 1523, 1525, 1527, 1529, 1531, |
| 179542 | + /* 140 */ 1534, 1537, 1539, 1573, 1575, 1577, -255, -255, -255, -255, |
| 179543 | + /* 150 */ -255, -255, -255, -255, -255, -255, -255, 197, 162, -220, |
| 179544 | + /* 160 */ -76, -130, 121, 725, 844, -255, -116, -214, 417, 484, |
| 179545 | + /* 170 */ 441, -255, -255, -255, -255, 562, 562, 562, 702, -57, |
| 179546 | + /* 180 */ 560, 703, 836, -122, 556, -35, 301, 521, 521, -37, |
| 179547 | + /* 190 */ -184, 729, 959, 290, 292, 394, 409, 215, 412, 357, |
| 179548 | + /* 200 */ 495, 808, 590, 961, 652, 403, 928, 1016, 672, -11, |
| 179549 | + /* 210 */ 69, -53, 1046, 906, 909, 731, 490, 814, 1020, 1064, |
| 179550 | + /* 220 */ 124, 984, -237, 1101, 1240, 1250, 1078, 1254, -33, -18, |
| 179551 | + /* 230 */ 9, 85, 99, 248, 309, 332, 736, 804, 842, 932, |
| 179552 | + /* 240 */ 947, 988, 1010, 1157, 1166, 1220, 1235, 1255, 1276, 1324, |
| 179553 | + /* 250 */ 1357, 1362, 1366, 275, 1380, 1419, 1435, 1440, 1452, 1455, |
| 179554 | + /* 260 */ 1469, 1481, 1494, 1502, 1516, 1520, 1068, 1237, 1477, 1521, |
| 179555 | + /* 270 */ 1532, 1535, 996, 1536, 1544, 1556, 1508, 1476, 1579, 1551, |
| 179556 | + /* 280 */ 1605, 309, 1607, 1609, 1610, 1611, 1612, 1613, 1503, 1519, |
| 179557 | + /* 290 */ 1522, 1565, 1553, 1557, 1558, 1559, 996, 1565, 1565, 1569, |
| 179558 | + /* 300 */ 1602, 1626, 1528, 1530, 1546, 1561, 1574, 1567, 1533, 1590, |
| 179559 | + /* 310 */ 1566, 1570, 1591, 1571, 1588, 1545, 1621, 1615, 1627, 1631, |
| 179560 | + /* 320 */ 1632, 1634, 1585, 1595, 1599, 1600, 1614, 1617, 1581, 1619, |
| 179561 | + /* 330 */ 1622, 1672, 1651, 1576, 1653, 1655, 1677, 1678, 1584, 1592, |
| 179562 | + /* 340 */ 1680, 1601, 1618, 1628, 1654, 1663, 1664, 1665, 1667, 1690, |
| 179563 | + /* 350 */ 1706, 1661, 1635, 1636, 1666, 1639, 1681, 1675, 1682, 1679, |
| 179564 | + /* 360 */ 1711, 1715, 1633, 1642, 1723, 1727, 1712, 1736, 1738, 1739, |
| 179565 | + /* 370 */ 1743, 1714, 1720, 1722, 1725, 1717, 1724, 1726, 1728, 1729, |
| 179566 | + /* 380 */ 1732, 1737, 1730, 1740, 1744, 1640, 1650, 1691, 1692, 1756, |
| 179567 | + /* 390 */ 1761, 1644, 1645, 1713, 1721, 1746, 1749, 1719, 1789, 1734, |
| 179568 | + /* 400 */ 1750, 1745, 1762, 1764, 1803, 1813, 1818, 1823, 1824, 1825, |
| 179569 | + /* 410 */ 1716, 1718, 1747, 1812, 1805, 1808, 1810, 1815, 1817, 1804, |
| 179570 | + /* 420 */ 1807, 1816, 1819, 1822, 1820, |
| 178812 | 179571 | }; |
| 178813 | 179572 | static const YYACTIONTYPE yy_default[] = { |
| 178814 | | - /* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254, |
| 178815 | | - /* 10 */ 1491, 1491, 1491, 1254, 1254, 1254, 1254, 1254, 1254, 1397, |
| 178816 | | - /* 20 */ 1397, 1544, 1287, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178817 | | - /* 30 */ 1254, 1254, 1254, 1254, 1254, 1490, 1254, 1254, 1254, 1254, |
| 178818 | | - /* 40 */ 1578, 1578, 1254, 1254, 1254, 1254, 1254, 1563, 1562, 1254, |
| 178819 | | - /* 50 */ 1254, 1254, 1406, 1254, 1413, 1254, 1254, 1254, 1254, 1254, |
| 178820 | | - /* 60 */ 1492, 1493, 1254, 1254, 1254, 1254, 1543, 1545, 1508, 1420, |
| 178821 | | - /* 70 */ 1419, 1418, 1417, 1526, 1385, 1411, 1404, 1408, 1487, 1488, |
| 178822 | | - /* 80 */ 1486, 1641, 1493, 1492, 1254, 1407, 1455, 1471, 1454, 1254, |
| 178823 | | - /* 90 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178824 | | - /* 100 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178825 | | - /* 110 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178826 | | - /* 120 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178827 | | - /* 130 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178828 | | - /* 140 */ 1254, 1254, 1463, 1470, 1469, 1468, 1477, 1467, 1464, 1457, |
| 178829 | | - /* 150 */ 1456, 1458, 1459, 1278, 1254, 1275, 1329, 1254, 1254, 1254, |
| 178830 | | - /* 160 */ 1254, 1254, 1460, 1287, 1448, 1447, 1446, 1254, 1474, 1461, |
| 178831 | | - /* 170 */ 1473, 1472, 1551, 1615, 1614, 1509, 1254, 1254, 1254, 1254, |
| 178832 | | - /* 180 */ 1254, 1254, 1578, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178833 | | - /* 190 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178834 | | - /* 200 */ 1254, 1254, 1254, 1254, 1254, 1387, 1578, 1578, 1254, 1287, |
| 178835 | | - /* 210 */ 1578, 1578, 1388, 1388, 1283, 1283, 1391, 1558, 1358, 1358, |
| 178836 | | - /* 220 */ 1358, 1358, 1367, 1358, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178837 | | - /* 230 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1548, |
| 178838 | | - /* 240 */ 1546, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178839 | | - /* 250 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178840 | | - /* 260 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1363, 1254, |
| 178841 | | - /* 270 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1608, |
| 178842 | | - /* 280 */ 1254, 1521, 1343, 1363, 1363, 1363, 1363, 1365, 1344, 1342, |
| 178843 | | - /* 290 */ 1357, 1288, 1261, 1655, 1423, 1412, 1364, 1412, 1652, 1410, |
| 178844 | | - /* 300 */ 1423, 1423, 1410, 1423, 1364, 1652, 1304, 1630, 1299, 1397, |
| 178845 | | - /* 310 */ 1397, 1397, 1387, 1387, 1387, 1387, 1391, 1391, 1489, 1364, |
| 178846 | | - /* 320 */ 1357, 1254, 1655, 1655, 1373, 1373, 1654, 1654, 1373, 1509, |
| 178847 | | - /* 330 */ 1638, 1432, 1332, 1338, 1338, 1338, 1338, 1373, 1272, 1410, |
| 178848 | | - /* 340 */ 1638, 1638, 1410, 1432, 1332, 1410, 1332, 1410, 1373, 1272, |
| 178849 | | - /* 350 */ 1525, 1649, 1373, 1272, 1499, 1373, 1272, 1373, 1272, 1499, |
| 178850 | | - /* 360 */ 1330, 1330, 1330, 1319, 1254, 1254, 1499, 1330, 1304, 1330, |
| 178851 | | - /* 370 */ 1319, 1330, 1330, 1596, 1254, 1503, 1503, 1499, 1373, 1588, |
| 178852 | | - /* 380 */ 1588, 1400, 1400, 1405, 1391, 1494, 1373, 1254, 1405, 1403, |
| 178853 | | - /* 390 */ 1401, 1410, 1322, 1611, 1611, 1607, 1607, 1607, 1660, 1660, |
| 178854 | | - /* 400 */ 1558, 1623, 1287, 1287, 1287, 1287, 1623, 1306, 1306, 1288, |
| 178855 | | - /* 410 */ 1288, 1287, 1623, 1254, 1254, 1254, 1254, 1254, 1254, 1618, |
| 178856 | | - /* 420 */ 1254, 1553, 1510, 1377, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178857 | | - /* 430 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178858 | | - /* 440 */ 1564, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178859 | | - /* 450 */ 1254, 1254, 1437, 1254, 1257, 1555, 1254, 1254, 1254, 1254, |
| 178860 | | - /* 460 */ 1254, 1254, 1254, 1254, 1414, 1415, 1378, 1254, 1254, 1254, |
| 178861 | | - /* 470 */ 1254, 1254, 1254, 1254, 1429, 1254, 1254, 1254, 1424, 1254, |
| 178862 | | - /* 480 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1651, 1254, 1254, |
| 178863 | | - /* 490 */ 1254, 1254, 1254, 1254, 1524, 1523, 1254, 1254, 1375, 1254, |
| 178864 | | - /* 500 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178865 | | - /* 510 */ 1254, 1254, 1302, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178866 | | - /* 520 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178867 | | - /* 530 */ 1254, 1254, 1254, 1254, 1254, 1254, 1402, 1254, 1254, 1254, |
| 178868 | | - /* 540 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178869 | | - /* 550 */ 1254, 1593, 1392, 1254, 1254, 1254, 1254, 1642, 1254, 1254, |
| 178870 | | - /* 560 */ 1254, 1254, 1352, 1254, 1254, 1254, 1254, 1254, 1254, 1254, |
| 178871 | | - /* 570 */ 1254, 1254, 1254, 1634, 1346, 1438, 1254, 1441, 1276, 1254, |
| 178872 | | - /* 580 */ 1266, 1254, 1254, |
| 179573 | + /* 0 */ 1698, 1698, 1698, 1521, 1284, 1397, 1284, 1284, 1284, 1284, |
| 179574 | + /* 10 */ 1521, 1521, 1521, 1284, 1284, 1284, 1284, 1284, 1284, 1427, |
| 179575 | + /* 20 */ 1427, 1574, 1317, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179576 | + /* 30 */ 1284, 1284, 1284, 1284, 1284, 1520, 1284, 1284, 1284, 1284, |
| 179577 | + /* 40 */ 1613, 1613, 1284, 1284, 1284, 1284, 1284, 1598, 1597, 1284, |
| 179578 | + /* 50 */ 1284, 1284, 1436, 1284, 1284, 1284, 1443, 1284, 1284, 1284, |
| 179579 | + /* 60 */ 1284, 1284, 1522, 1523, 1284, 1284, 1284, 1284, 1573, 1575, |
| 179580 | + /* 70 */ 1538, 1450, 1449, 1448, 1447, 1556, 1415, 1441, 1434, 1438, |
| 179581 | + /* 80 */ 1517, 1518, 1516, 1676, 1523, 1522, 1284, 1437, 1485, 1501, |
| 179582 | + /* 90 */ 1484, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179583 | + /* 100 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179584 | + /* 110 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179585 | + /* 120 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179586 | + /* 130 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179587 | + /* 140 */ 1284, 1284, 1284, 1284, 1284, 1284, 1493, 1500, 1499, 1498, |
| 179588 | + /* 150 */ 1507, 1497, 1494, 1487, 1486, 1488, 1489, 1308, 1305, 1359, |
| 179589 | + /* 160 */ 1284, 1284, 1284, 1284, 1284, 1490, 1317, 1478, 1477, 1476, |
| 179590 | + /* 170 */ 1284, 1504, 1491, 1503, 1502, 1581, 1650, 1649, 1539, 1284, |
| 179591 | + /* 180 */ 1284, 1284, 1284, 1284, 1284, 1613, 1284, 1284, 1284, 1284, |
| 179592 | + /* 190 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179593 | + /* 200 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1417, 1613, |
| 179594 | + /* 210 */ 1613, 1284, 1317, 1613, 1613, 1313, 1418, 1418, 1313, 1313, |
| 179595 | + /* 220 */ 1421, 1593, 1388, 1388, 1388, 1388, 1397, 1388, 1284, 1284, |
| 179596 | + /* 230 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179597 | + /* 240 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1578, 1576, 1284, |
| 179598 | + /* 250 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179599 | + /* 260 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179600 | + /* 270 */ 1284, 1284, 1284, 1284, 1284, 1284, 1393, 1284, 1284, 1284, |
| 179601 | + /* 280 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1643, 1690, 1284, |
| 179602 | + /* 290 */ 1551, 1373, 1393, 1393, 1393, 1393, 1395, 1374, 1372, 1387, |
| 179603 | + /* 300 */ 1318, 1291, 1690, 1690, 1453, 1442, 1394, 1442, 1687, 1440, |
| 179604 | + /* 310 */ 1453, 1453, 1440, 1453, 1394, 1687, 1334, 1665, 1329, 1427, |
| 179605 | + /* 320 */ 1427, 1427, 1417, 1417, 1417, 1417, 1421, 1421, 1519, 1394, |
| 179606 | + /* 330 */ 1387, 1284, 1360, 1690, 1360, 1360, 1403, 1403, 1689, 1689, |
| 179607 | + /* 340 */ 1403, 1539, 1673, 1462, 1362, 1368, 1368, 1368, 1368, 1403, |
| 179608 | + /* 350 */ 1302, 1440, 1673, 1673, 1440, 1462, 1362, 1440, 1362, 1440, |
| 179609 | + /* 360 */ 1403, 1302, 1555, 1684, 1403, 1302, 1529, 1403, 1302, 1403, |
| 179610 | + /* 370 */ 1302, 1529, 1360, 1360, 1360, 1349, 1284, 1284, 1529, 1360, |
| 179611 | + /* 380 */ 1334, 1360, 1349, 1360, 1360, 1631, 1284, 1533, 1533, 1529, |
| 179612 | + /* 390 */ 1403, 1623, 1623, 1430, 1430, 1435, 1421, 1524, 1403, 1284, |
| 179613 | + /* 400 */ 1435, 1433, 1431, 1440, 1352, 1646, 1646, 1642, 1642, 1642, |
| 179614 | + /* 410 */ 1695, 1695, 1593, 1658, 1317, 1317, 1317, 1317, 1658, 1336, |
| 179615 | + /* 420 */ 1336, 1318, 1318, 1317, 1658, 1284, 1284, 1284, 1284, 1284, |
| 179616 | + /* 430 */ 1284, 1284, 1653, 1284, 1284, 1540, 1407, 1284, 1284, 1284, |
| 179617 | + /* 440 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179618 | + /* 450 */ 1284, 1284, 1284, 1599, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179619 | + /* 460 */ 1284, 1284, 1284, 1284, 1284, 1467, 1284, 1287, 1590, 1284, |
| 179620 | + /* 470 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179621 | + /* 480 */ 1284, 1284, 1284, 1444, 1445, 1408, 1284, 1284, 1284, 1284, |
| 179622 | + /* 490 */ 1284, 1284, 1284, 1459, 1284, 1284, 1284, 1454, 1284, 1284, |
| 179623 | + /* 500 */ 1284, 1284, 1284, 1284, 1284, 1284, 1686, 1284, 1284, 1284, |
| 179624 | + /* 510 */ 1284, 1284, 1284, 1554, 1553, 1284, 1284, 1405, 1284, 1284, |
| 179625 | + /* 520 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179626 | + /* 530 */ 1284, 1332, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179627 | + /* 540 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179628 | + /* 550 */ 1284, 1284, 1284, 1284, 1284, 1432, 1284, 1284, 1284, 1284, |
| 179629 | + /* 560 */ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179630 | + /* 570 */ 1628, 1422, 1284, 1284, 1284, 1284, 1677, 1284, 1284, 1284, |
| 179631 | + /* 580 */ 1284, 1382, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, |
| 179632 | + /* 590 */ 1284, 1284, 1669, 1376, 1468, 1284, 1471, 1306, 1284, 1296, |
| 179633 | + /* 600 */ 1284, 1284, |
| 178873 | 179634 | }; |
| 178874 | 179635 | /********** End of lemon-generated parsing tables *****************************/ |
| 178875 | 179636 | |
| 178876 | 179637 | /* The next table maps tokens (terminal symbols) into fallback tokens. |
| 178877 | 179638 | ** If a construct like the following: |
| | @@ -179456,11 +180217,11 @@ |
| 179456 | 180217 | /* 294 */ "trigger_cmd", |
| 179457 | 180218 | /* 295 */ "trnm", |
| 179458 | 180219 | /* 296 */ "tridxby", |
| 179459 | 180220 | /* 297 */ "database_kw_opt", |
| 179460 | 180221 | /* 298 */ "key_opt", |
| 179461 | | - /* 299 */ "add_column_fullname", |
| 180222 | + /* 299 */ "alter_add", |
| 179462 | 180223 | /* 300 */ "kwcolumn_opt", |
| 179463 | 180224 | /* 301 */ "create_vtab", |
| 179464 | 180225 | /* 302 */ "vtabarglist", |
| 179465 | 180226 | /* 303 */ "vtabarg", |
| 179466 | 180227 | /* 304 */ "vtabargtoken", |
| | @@ -179781,125 +180542,130 @@ |
| 179781 | 180542 | /* 289 */ "cmd ::= REINDEX", |
| 179782 | 180543 | /* 290 */ "cmd ::= REINDEX nm dbnm", |
| 179783 | 180544 | /* 291 */ "cmd ::= ANALYZE", |
| 179784 | 180545 | /* 292 */ "cmd ::= ANALYZE nm dbnm", |
| 179785 | 180546 | /* 293 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", |
| 179786 | | - /* 294 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", |
| 179787 | | - /* 295 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", |
| 179788 | | - /* 296 */ "add_column_fullname ::= fullname", |
| 180547 | + /* 294 */ "cmd ::= alter_add carglist", |
| 180548 | + /* 295 */ "alter_add ::= ALTER TABLE fullname ADD kwcolumn_opt nm typetoken", |
| 180549 | + /* 296 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", |
| 179789 | 180550 | /* 297 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", |
| 179790 | | - /* 298 */ "cmd ::= create_vtab", |
| 179791 | | - /* 299 */ "cmd ::= create_vtab LP vtabarglist RP", |
| 179792 | | - /* 300 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", |
| 179793 | | - /* 301 */ "vtabarg ::=", |
| 179794 | | - /* 302 */ "vtabargtoken ::= ANY", |
| 179795 | | - /* 303 */ "vtabargtoken ::= lp anylist RP", |
| 179796 | | - /* 304 */ "lp ::= LP", |
| 179797 | | - /* 305 */ "with ::= WITH wqlist", |
| 179798 | | - /* 306 */ "with ::= WITH RECURSIVE wqlist", |
| 179799 | | - /* 307 */ "wqas ::= AS", |
| 179800 | | - /* 308 */ "wqas ::= AS MATERIALIZED", |
| 179801 | | - /* 309 */ "wqas ::= AS NOT MATERIALIZED", |
| 179802 | | - /* 310 */ "wqitem ::= withnm eidlist_opt wqas LP select RP", |
| 179803 | | - /* 311 */ "withnm ::= nm", |
| 179804 | | - /* 312 */ "wqlist ::= wqitem", |
| 179805 | | - /* 313 */ "wqlist ::= wqlist COMMA wqitem", |
| 179806 | | - /* 314 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", |
| 179807 | | - /* 315 */ "windowdefn ::= nm AS LP window RP", |
| 179808 | | - /* 316 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", |
| 179809 | | - /* 317 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", |
| 179810 | | - /* 318 */ "window ::= ORDER BY sortlist frame_opt", |
| 179811 | | - /* 319 */ "window ::= nm ORDER BY sortlist frame_opt", |
| 179812 | | - /* 320 */ "window ::= nm frame_opt", |
| 179813 | | - /* 321 */ "frame_opt ::=", |
| 179814 | | - /* 322 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", |
| 179815 | | - /* 323 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", |
| 179816 | | - /* 324 */ "range_or_rows ::= RANGE|ROWS|GROUPS", |
| 179817 | | - /* 325 */ "frame_bound_s ::= frame_bound", |
| 179818 | | - /* 326 */ "frame_bound_s ::= UNBOUNDED PRECEDING", |
| 179819 | | - /* 327 */ "frame_bound_e ::= frame_bound", |
| 179820 | | - /* 328 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", |
| 179821 | | - /* 329 */ "frame_bound ::= expr PRECEDING|FOLLOWING", |
| 179822 | | - /* 330 */ "frame_bound ::= CURRENT ROW", |
| 179823 | | - /* 331 */ "frame_exclude_opt ::=", |
| 179824 | | - /* 332 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", |
| 179825 | | - /* 333 */ "frame_exclude ::= NO OTHERS", |
| 179826 | | - /* 334 */ "frame_exclude ::= CURRENT ROW", |
| 179827 | | - /* 335 */ "frame_exclude ::= GROUP|TIES", |
| 179828 | | - /* 336 */ "window_clause ::= WINDOW windowdefn_list", |
| 179829 | | - /* 337 */ "filter_over ::= filter_clause over_clause", |
| 179830 | | - /* 338 */ "filter_over ::= over_clause", |
| 179831 | | - /* 339 */ "filter_over ::= filter_clause", |
| 179832 | | - /* 340 */ "over_clause ::= OVER LP window RP", |
| 179833 | | - /* 341 */ "over_clause ::= OVER nm", |
| 179834 | | - /* 342 */ "filter_clause ::= FILTER LP WHERE expr RP", |
| 179835 | | - /* 343 */ "term ::= QNUMBER", |
| 179836 | | - /* 344 */ "input ::= cmdlist", |
| 179837 | | - /* 345 */ "cmdlist ::= cmdlist ecmd", |
| 179838 | | - /* 346 */ "cmdlist ::= ecmd", |
| 179839 | | - /* 347 */ "ecmd ::= SEMI", |
| 179840 | | - /* 348 */ "ecmd ::= cmdx SEMI", |
| 179841 | | - /* 349 */ "ecmd ::= explain cmdx SEMI", |
| 179842 | | - /* 350 */ "trans_opt ::=", |
| 179843 | | - /* 351 */ "trans_opt ::= TRANSACTION", |
| 179844 | | - /* 352 */ "trans_opt ::= TRANSACTION nm", |
| 179845 | | - /* 353 */ "savepoint_opt ::= SAVEPOINT", |
| 179846 | | - /* 354 */ "savepoint_opt ::=", |
| 179847 | | - /* 355 */ "cmd ::= create_table create_table_args", |
| 179848 | | - /* 356 */ "table_option_set ::= table_option", |
| 179849 | | - /* 357 */ "columnlist ::= columnlist COMMA columnname carglist", |
| 179850 | | - /* 358 */ "columnlist ::= columnname carglist", |
| 179851 | | - /* 359 */ "nm ::= ID|INDEXED|JOIN_KW", |
| 179852 | | - /* 360 */ "nm ::= STRING", |
| 179853 | | - /* 361 */ "typetoken ::= typename", |
| 179854 | | - /* 362 */ "typename ::= ID|STRING", |
| 179855 | | - /* 363 */ "signed ::= plus_num", |
| 179856 | | - /* 364 */ "signed ::= minus_num", |
| 179857 | | - /* 365 */ "carglist ::= carglist ccons", |
| 179858 | | - /* 366 */ "carglist ::=", |
| 179859 | | - /* 367 */ "ccons ::= NULL onconf", |
| 179860 | | - /* 368 */ "ccons ::= GENERATED ALWAYS AS generated", |
| 179861 | | - /* 369 */ "ccons ::= AS generated", |
| 179862 | | - /* 370 */ "conslist_opt ::= COMMA conslist", |
| 179863 | | - /* 371 */ "conslist ::= conslist tconscomma tcons", |
| 179864 | | - /* 372 */ "conslist ::= tcons", |
| 179865 | | - /* 373 */ "tconscomma ::=", |
| 179866 | | - /* 374 */ "defer_subclause_opt ::= defer_subclause", |
| 179867 | | - /* 375 */ "resolvetype ::= raisetype", |
| 179868 | | - /* 376 */ "selectnowith ::= oneselect", |
| 179869 | | - /* 377 */ "oneselect ::= values", |
| 179870 | | - /* 378 */ "sclp ::= selcollist COMMA", |
| 179871 | | - /* 379 */ "as ::= ID|STRING", |
| 179872 | | - /* 380 */ "indexed_opt ::= indexed_by", |
| 179873 | | - /* 381 */ "returning ::=", |
| 179874 | | - /* 382 */ "expr ::= term", |
| 179875 | | - /* 383 */ "likeop ::= LIKE_KW|MATCH", |
| 179876 | | - /* 384 */ "case_operand ::= expr", |
| 179877 | | - /* 385 */ "exprlist ::= nexprlist", |
| 179878 | | - /* 386 */ "nmnum ::= plus_num", |
| 179879 | | - /* 387 */ "nmnum ::= nm", |
| 179880 | | - /* 388 */ "nmnum ::= ON", |
| 179881 | | - /* 389 */ "nmnum ::= DELETE", |
| 179882 | | - /* 390 */ "nmnum ::= DEFAULT", |
| 179883 | | - /* 391 */ "plus_num ::= INTEGER|FLOAT", |
| 179884 | | - /* 392 */ "foreach_clause ::=", |
| 179885 | | - /* 393 */ "foreach_clause ::= FOR EACH ROW", |
| 179886 | | - /* 394 */ "trnm ::= nm", |
| 179887 | | - /* 395 */ "tridxby ::=", |
| 179888 | | - /* 396 */ "database_kw_opt ::= DATABASE", |
| 179889 | | - /* 397 */ "database_kw_opt ::=", |
| 179890 | | - /* 398 */ "kwcolumn_opt ::=", |
| 179891 | | - /* 399 */ "kwcolumn_opt ::= COLUMNKW", |
| 179892 | | - /* 400 */ "vtabarglist ::= vtabarg", |
| 179893 | | - /* 401 */ "vtabarglist ::= vtabarglist COMMA vtabarg", |
| 179894 | | - /* 402 */ "vtabarg ::= vtabarg vtabargtoken", |
| 179895 | | - /* 403 */ "anylist ::=", |
| 179896 | | - /* 404 */ "anylist ::= anylist LP anylist RP", |
| 179897 | | - /* 405 */ "anylist ::= anylist ANY", |
| 179898 | | - /* 406 */ "with ::=", |
| 179899 | | - /* 407 */ "windowdefn_list ::= windowdefn", |
| 179900 | | - /* 408 */ "window ::= frame_opt", |
| 180551 | + /* 298 */ "cmd ::= ALTER TABLE fullname DROP CONSTRAINT nm", |
| 180552 | + /* 299 */ "cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm DROP NOT NULL", |
| 180553 | + /* 300 */ "cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm SET NOT NULL onconf", |
| 180554 | + /* 301 */ "cmd ::= ALTER TABLE fullname ADD CONSTRAINT nm CHECK LP expr RP onconf", |
| 180555 | + /* 302 */ "cmd ::= ALTER TABLE fullname ADD CHECK LP expr RP onconf", |
| 180556 | + /* 303 */ "cmd ::= create_vtab", |
| 180557 | + /* 304 */ "cmd ::= create_vtab LP vtabarglist RP", |
| 180558 | + /* 305 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", |
| 180559 | + /* 306 */ "vtabarg ::=", |
| 180560 | + /* 307 */ "vtabargtoken ::= ANY", |
| 180561 | + /* 308 */ "vtabargtoken ::= lp anylist RP", |
| 180562 | + /* 309 */ "lp ::= LP", |
| 180563 | + /* 310 */ "with ::= WITH wqlist", |
| 180564 | + /* 311 */ "with ::= WITH RECURSIVE wqlist", |
| 180565 | + /* 312 */ "wqas ::= AS", |
| 180566 | + /* 313 */ "wqas ::= AS MATERIALIZED", |
| 180567 | + /* 314 */ "wqas ::= AS NOT MATERIALIZED", |
| 180568 | + /* 315 */ "wqitem ::= withnm eidlist_opt wqas LP select RP", |
| 180569 | + /* 316 */ "withnm ::= nm", |
| 180570 | + /* 317 */ "wqlist ::= wqitem", |
| 180571 | + /* 318 */ "wqlist ::= wqlist COMMA wqitem", |
| 180572 | + /* 319 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", |
| 180573 | + /* 320 */ "windowdefn ::= nm AS LP window RP", |
| 180574 | + /* 321 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", |
| 180575 | + /* 322 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", |
| 180576 | + /* 323 */ "window ::= ORDER BY sortlist frame_opt", |
| 180577 | + /* 324 */ "window ::= nm ORDER BY sortlist frame_opt", |
| 180578 | + /* 325 */ "window ::= nm frame_opt", |
| 180579 | + /* 326 */ "frame_opt ::=", |
| 180580 | + /* 327 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", |
| 180581 | + /* 328 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", |
| 180582 | + /* 329 */ "range_or_rows ::= RANGE|ROWS|GROUPS", |
| 180583 | + /* 330 */ "frame_bound_s ::= frame_bound", |
| 180584 | + /* 331 */ "frame_bound_s ::= UNBOUNDED PRECEDING", |
| 180585 | + /* 332 */ "frame_bound_e ::= frame_bound", |
| 180586 | + /* 333 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", |
| 180587 | + /* 334 */ "frame_bound ::= expr PRECEDING|FOLLOWING", |
| 180588 | + /* 335 */ "frame_bound ::= CURRENT ROW", |
| 180589 | + /* 336 */ "frame_exclude_opt ::=", |
| 180590 | + /* 337 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", |
| 180591 | + /* 338 */ "frame_exclude ::= NO OTHERS", |
| 180592 | + /* 339 */ "frame_exclude ::= CURRENT ROW", |
| 180593 | + /* 340 */ "frame_exclude ::= GROUP|TIES", |
| 180594 | + /* 341 */ "window_clause ::= WINDOW windowdefn_list", |
| 180595 | + /* 342 */ "filter_over ::= filter_clause over_clause", |
| 180596 | + /* 343 */ "filter_over ::= over_clause", |
| 180597 | + /* 344 */ "filter_over ::= filter_clause", |
| 180598 | + /* 345 */ "over_clause ::= OVER LP window RP", |
| 180599 | + /* 346 */ "over_clause ::= OVER nm", |
| 180600 | + /* 347 */ "filter_clause ::= FILTER LP WHERE expr RP", |
| 180601 | + /* 348 */ "term ::= QNUMBER", |
| 180602 | + /* 349 */ "input ::= cmdlist", |
| 180603 | + /* 350 */ "cmdlist ::= cmdlist ecmd", |
| 180604 | + /* 351 */ "cmdlist ::= ecmd", |
| 180605 | + /* 352 */ "ecmd ::= SEMI", |
| 180606 | + /* 353 */ "ecmd ::= cmdx SEMI", |
| 180607 | + /* 354 */ "ecmd ::= explain cmdx SEMI", |
| 180608 | + /* 355 */ "trans_opt ::=", |
| 180609 | + /* 356 */ "trans_opt ::= TRANSACTION", |
| 180610 | + /* 357 */ "trans_opt ::= TRANSACTION nm", |
| 180611 | + /* 358 */ "savepoint_opt ::= SAVEPOINT", |
| 180612 | + /* 359 */ "savepoint_opt ::=", |
| 180613 | + /* 360 */ "cmd ::= create_table create_table_args", |
| 180614 | + /* 361 */ "table_option_set ::= table_option", |
| 180615 | + /* 362 */ "columnlist ::= columnlist COMMA columnname carglist", |
| 180616 | + /* 363 */ "columnlist ::= columnname carglist", |
| 180617 | + /* 364 */ "nm ::= ID|INDEXED|JOIN_KW", |
| 180618 | + /* 365 */ "nm ::= STRING", |
| 180619 | + /* 366 */ "typetoken ::= typename", |
| 180620 | + /* 367 */ "typename ::= ID|STRING", |
| 180621 | + /* 368 */ "signed ::= plus_num", |
| 180622 | + /* 369 */ "signed ::= minus_num", |
| 180623 | + /* 370 */ "carglist ::= carglist ccons", |
| 180624 | + /* 371 */ "carglist ::=", |
| 180625 | + /* 372 */ "ccons ::= NULL onconf", |
| 180626 | + /* 373 */ "ccons ::= GENERATED ALWAYS AS generated", |
| 180627 | + /* 374 */ "ccons ::= AS generated", |
| 180628 | + /* 375 */ "conslist_opt ::= COMMA conslist", |
| 180629 | + /* 376 */ "conslist ::= conslist tconscomma tcons", |
| 180630 | + /* 377 */ "conslist ::= tcons", |
| 180631 | + /* 378 */ "tconscomma ::=", |
| 180632 | + /* 379 */ "defer_subclause_opt ::= defer_subclause", |
| 180633 | + /* 380 */ "resolvetype ::= raisetype", |
| 180634 | + /* 381 */ "selectnowith ::= oneselect", |
| 180635 | + /* 382 */ "oneselect ::= values", |
| 180636 | + /* 383 */ "sclp ::= selcollist COMMA", |
| 180637 | + /* 384 */ "as ::= ID|STRING", |
| 180638 | + /* 385 */ "indexed_opt ::= indexed_by", |
| 180639 | + /* 386 */ "returning ::=", |
| 180640 | + /* 387 */ "expr ::= term", |
| 180641 | + /* 388 */ "likeop ::= LIKE_KW|MATCH", |
| 180642 | + /* 389 */ "case_operand ::= expr", |
| 180643 | + /* 390 */ "exprlist ::= nexprlist", |
| 180644 | + /* 391 */ "nmnum ::= plus_num", |
| 180645 | + /* 392 */ "nmnum ::= nm", |
| 180646 | + /* 393 */ "nmnum ::= ON", |
| 180647 | + /* 394 */ "nmnum ::= DELETE", |
| 180648 | + /* 395 */ "nmnum ::= DEFAULT", |
| 180649 | + /* 396 */ "plus_num ::= INTEGER|FLOAT", |
| 180650 | + /* 397 */ "foreach_clause ::=", |
| 180651 | + /* 398 */ "foreach_clause ::= FOR EACH ROW", |
| 180652 | + /* 399 */ "trnm ::= nm", |
| 180653 | + /* 400 */ "tridxby ::=", |
| 180654 | + /* 401 */ "database_kw_opt ::= DATABASE", |
| 180655 | + /* 402 */ "database_kw_opt ::=", |
| 180656 | + /* 403 */ "kwcolumn_opt ::=", |
| 180657 | + /* 404 */ "kwcolumn_opt ::= COLUMNKW", |
| 180658 | + /* 405 */ "vtabarglist ::= vtabarg", |
| 180659 | + /* 406 */ "vtabarglist ::= vtabarglist COMMA vtabarg", |
| 180660 | + /* 407 */ "vtabarg ::= vtabarg vtabargtoken", |
| 180661 | + /* 408 */ "anylist ::=", |
| 180662 | + /* 409 */ "anylist ::= anylist LP anylist RP", |
| 180663 | + /* 410 */ "anylist ::= anylist ANY", |
| 180664 | + /* 411 */ "with ::=", |
| 180665 | + /* 412 */ "windowdefn_list ::= windowdefn", |
| 180666 | + /* 413 */ "window ::= frame_opt", |
| 179901 | 180667 | }; |
| 179902 | 180668 | #endif /* NDEBUG */ |
| 179903 | 180669 | |
| 179904 | 180670 | |
| 179905 | 180671 | #if YYGROWABLESTACK |
| | @@ -180717,125 +181483,130 @@ |
| 180717 | 181483 | 192, /* (289) cmd ::= REINDEX */ |
| 180718 | 181484 | 192, /* (290) cmd ::= REINDEX nm dbnm */ |
| 180719 | 181485 | 192, /* (291) cmd ::= ANALYZE */ |
| 180720 | 181486 | 192, /* (292) cmd ::= ANALYZE nm dbnm */ |
| 180721 | 181487 | 192, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 180722 | | - 192, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 180723 | | - 192, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 180724 | | - 299, /* (296) add_column_fullname ::= fullname */ |
| 181488 | + 192, /* (294) cmd ::= alter_add carglist */ |
| 181489 | + 299, /* (295) alter_add ::= ALTER TABLE fullname ADD kwcolumn_opt nm typetoken */ |
| 181490 | + 192, /* (296) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 180725 | 181491 | 192, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 180726 | | - 192, /* (298) cmd ::= create_vtab */ |
| 180727 | | - 192, /* (299) cmd ::= create_vtab LP vtabarglist RP */ |
| 180728 | | - 301, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 180729 | | - 303, /* (301) vtabarg ::= */ |
| 180730 | | - 304, /* (302) vtabargtoken ::= ANY */ |
| 180731 | | - 304, /* (303) vtabargtoken ::= lp anylist RP */ |
| 180732 | | - 305, /* (304) lp ::= LP */ |
| 180733 | | - 269, /* (305) with ::= WITH wqlist */ |
| 180734 | | - 269, /* (306) with ::= WITH RECURSIVE wqlist */ |
| 180735 | | - 308, /* (307) wqas ::= AS */ |
| 180736 | | - 308, /* (308) wqas ::= AS MATERIALIZED */ |
| 180737 | | - 308, /* (309) wqas ::= AS NOT MATERIALIZED */ |
| 180738 | | - 307, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 180739 | | - 309, /* (311) withnm ::= nm */ |
| 180740 | | - 243, /* (312) wqlist ::= wqitem */ |
| 180741 | | - 243, /* (313) wqlist ::= wqlist COMMA wqitem */ |
| 180742 | | - 310, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 180743 | | - 311, /* (315) windowdefn ::= nm AS LP window RP */ |
| 180744 | | - 312, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 180745 | | - 312, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 180746 | | - 312, /* (318) window ::= ORDER BY sortlist frame_opt */ |
| 180747 | | - 312, /* (319) window ::= nm ORDER BY sortlist frame_opt */ |
| 180748 | | - 312, /* (320) window ::= nm frame_opt */ |
| 180749 | | - 313, /* (321) frame_opt ::= */ |
| 180750 | | - 313, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 180751 | | - 313, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 180752 | | - 317, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 180753 | | - 319, /* (325) frame_bound_s ::= frame_bound */ |
| 180754 | | - 319, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 180755 | | - 320, /* (327) frame_bound_e ::= frame_bound */ |
| 180756 | | - 320, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 180757 | | - 318, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 180758 | | - 318, /* (330) frame_bound ::= CURRENT ROW */ |
| 180759 | | - 321, /* (331) frame_exclude_opt ::= */ |
| 180760 | | - 321, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 180761 | | - 322, /* (333) frame_exclude ::= NO OTHERS */ |
| 180762 | | - 322, /* (334) frame_exclude ::= CURRENT ROW */ |
| 180763 | | - 322, /* (335) frame_exclude ::= GROUP|TIES */ |
| 180764 | | - 253, /* (336) window_clause ::= WINDOW windowdefn_list */ |
| 180765 | | - 276, /* (337) filter_over ::= filter_clause over_clause */ |
| 180766 | | - 276, /* (338) filter_over ::= over_clause */ |
| 180767 | | - 276, /* (339) filter_over ::= filter_clause */ |
| 180768 | | - 316, /* (340) over_clause ::= OVER LP window RP */ |
| 180769 | | - 316, /* (341) over_clause ::= OVER nm */ |
| 180770 | | - 315, /* (342) filter_clause ::= FILTER LP WHERE expr RP */ |
| 180771 | | - 218, /* (343) term ::= QNUMBER */ |
| 180772 | | - 187, /* (344) input ::= cmdlist */ |
| 180773 | | - 188, /* (345) cmdlist ::= cmdlist ecmd */ |
| 180774 | | - 188, /* (346) cmdlist ::= ecmd */ |
| 180775 | | - 189, /* (347) ecmd ::= SEMI */ |
| 180776 | | - 189, /* (348) ecmd ::= cmdx SEMI */ |
| 180777 | | - 189, /* (349) ecmd ::= explain cmdx SEMI */ |
| 180778 | | - 194, /* (350) trans_opt ::= */ |
| 180779 | | - 194, /* (351) trans_opt ::= TRANSACTION */ |
| 180780 | | - 194, /* (352) trans_opt ::= TRANSACTION nm */ |
| 180781 | | - 196, /* (353) savepoint_opt ::= SAVEPOINT */ |
| 180782 | | - 196, /* (354) savepoint_opt ::= */ |
| 180783 | | - 192, /* (355) cmd ::= create_table create_table_args */ |
| 180784 | | - 205, /* (356) table_option_set ::= table_option */ |
| 180785 | | - 203, /* (357) columnlist ::= columnlist COMMA columnname carglist */ |
| 180786 | | - 203, /* (358) columnlist ::= columnname carglist */ |
| 180787 | | - 195, /* (359) nm ::= ID|INDEXED|JOIN_KW */ |
| 180788 | | - 195, /* (360) nm ::= STRING */ |
| 180789 | | - 210, /* (361) typetoken ::= typename */ |
| 180790 | | - 211, /* (362) typename ::= ID|STRING */ |
| 180791 | | - 212, /* (363) signed ::= plus_num */ |
| 180792 | | - 212, /* (364) signed ::= minus_num */ |
| 180793 | | - 209, /* (365) carglist ::= carglist ccons */ |
| 180794 | | - 209, /* (366) carglist ::= */ |
| 180795 | | - 217, /* (367) ccons ::= NULL onconf */ |
| 180796 | | - 217, /* (368) ccons ::= GENERATED ALWAYS AS generated */ |
| 180797 | | - 217, /* (369) ccons ::= AS generated */ |
| 180798 | | - 204, /* (370) conslist_opt ::= COMMA conslist */ |
| 180799 | | - 230, /* (371) conslist ::= conslist tconscomma tcons */ |
| 180800 | | - 230, /* (372) conslist ::= tcons */ |
| 180801 | | - 231, /* (373) tconscomma ::= */ |
| 180802 | | - 235, /* (374) defer_subclause_opt ::= defer_subclause */ |
| 180803 | | - 237, /* (375) resolvetype ::= raisetype */ |
| 180804 | | - 241, /* (376) selectnowith ::= oneselect */ |
| 180805 | | - 242, /* (377) oneselect ::= values */ |
| 180806 | | - 257, /* (378) sclp ::= selcollist COMMA */ |
| 180807 | | - 258, /* (379) as ::= ID|STRING */ |
| 180808 | | - 267, /* (380) indexed_opt ::= indexed_by */ |
| 180809 | | - 275, /* (381) returning ::= */ |
| 180810 | | - 219, /* (382) expr ::= term */ |
| 180811 | | - 277, /* (383) likeop ::= LIKE_KW|MATCH */ |
| 180812 | | - 281, /* (384) case_operand ::= expr */ |
| 180813 | | - 264, /* (385) exprlist ::= nexprlist */ |
| 180814 | | - 287, /* (386) nmnum ::= plus_num */ |
| 180815 | | - 287, /* (387) nmnum ::= nm */ |
| 180816 | | - 287, /* (388) nmnum ::= ON */ |
| 180817 | | - 287, /* (389) nmnum ::= DELETE */ |
| 180818 | | - 287, /* (390) nmnum ::= DEFAULT */ |
| 180819 | | - 213, /* (391) plus_num ::= INTEGER|FLOAT */ |
| 180820 | | - 292, /* (392) foreach_clause ::= */ |
| 180821 | | - 292, /* (393) foreach_clause ::= FOR EACH ROW */ |
| 180822 | | - 295, /* (394) trnm ::= nm */ |
| 180823 | | - 296, /* (395) tridxby ::= */ |
| 180824 | | - 297, /* (396) database_kw_opt ::= DATABASE */ |
| 180825 | | - 297, /* (397) database_kw_opt ::= */ |
| 180826 | | - 300, /* (398) kwcolumn_opt ::= */ |
| 180827 | | - 300, /* (399) kwcolumn_opt ::= COLUMNKW */ |
| 180828 | | - 302, /* (400) vtabarglist ::= vtabarg */ |
| 180829 | | - 302, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 180830 | | - 303, /* (402) vtabarg ::= vtabarg vtabargtoken */ |
| 180831 | | - 306, /* (403) anylist ::= */ |
| 180832 | | - 306, /* (404) anylist ::= anylist LP anylist RP */ |
| 180833 | | - 306, /* (405) anylist ::= anylist ANY */ |
| 180834 | | - 269, /* (406) with ::= */ |
| 180835 | | - 310, /* (407) windowdefn_list ::= windowdefn */ |
| 180836 | | - 312, /* (408) window ::= frame_opt */ |
| 181492 | + 192, /* (298) cmd ::= ALTER TABLE fullname DROP CONSTRAINT nm */ |
| 181493 | + 192, /* (299) cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm DROP NOT NULL */ |
| 181494 | + 192, /* (300) cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm SET NOT NULL onconf */ |
| 181495 | + 192, /* (301) cmd ::= ALTER TABLE fullname ADD CONSTRAINT nm CHECK LP expr RP onconf */ |
| 181496 | + 192, /* (302) cmd ::= ALTER TABLE fullname ADD CHECK LP expr RP onconf */ |
| 181497 | + 192, /* (303) cmd ::= create_vtab */ |
| 181498 | + 192, /* (304) cmd ::= create_vtab LP vtabarglist RP */ |
| 181499 | + 301, /* (305) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 181500 | + 303, /* (306) vtabarg ::= */ |
| 181501 | + 304, /* (307) vtabargtoken ::= ANY */ |
| 181502 | + 304, /* (308) vtabargtoken ::= lp anylist RP */ |
| 181503 | + 305, /* (309) lp ::= LP */ |
| 181504 | + 269, /* (310) with ::= WITH wqlist */ |
| 181505 | + 269, /* (311) with ::= WITH RECURSIVE wqlist */ |
| 181506 | + 308, /* (312) wqas ::= AS */ |
| 181507 | + 308, /* (313) wqas ::= AS MATERIALIZED */ |
| 181508 | + 308, /* (314) wqas ::= AS NOT MATERIALIZED */ |
| 181509 | + 307, /* (315) wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 181510 | + 309, /* (316) withnm ::= nm */ |
| 181511 | + 243, /* (317) wqlist ::= wqitem */ |
| 181512 | + 243, /* (318) wqlist ::= wqlist COMMA wqitem */ |
| 181513 | + 310, /* (319) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 181514 | + 311, /* (320) windowdefn ::= nm AS LP window RP */ |
| 181515 | + 312, /* (321) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 181516 | + 312, /* (322) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 181517 | + 312, /* (323) window ::= ORDER BY sortlist frame_opt */ |
| 181518 | + 312, /* (324) window ::= nm ORDER BY sortlist frame_opt */ |
| 181519 | + 312, /* (325) window ::= nm frame_opt */ |
| 181520 | + 313, /* (326) frame_opt ::= */ |
| 181521 | + 313, /* (327) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 181522 | + 313, /* (328) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 181523 | + 317, /* (329) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 181524 | + 319, /* (330) frame_bound_s ::= frame_bound */ |
| 181525 | + 319, /* (331) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 181526 | + 320, /* (332) frame_bound_e ::= frame_bound */ |
| 181527 | + 320, /* (333) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 181528 | + 318, /* (334) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 181529 | + 318, /* (335) frame_bound ::= CURRENT ROW */ |
| 181530 | + 321, /* (336) frame_exclude_opt ::= */ |
| 181531 | + 321, /* (337) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 181532 | + 322, /* (338) frame_exclude ::= NO OTHERS */ |
| 181533 | + 322, /* (339) frame_exclude ::= CURRENT ROW */ |
| 181534 | + 322, /* (340) frame_exclude ::= GROUP|TIES */ |
| 181535 | + 253, /* (341) window_clause ::= WINDOW windowdefn_list */ |
| 181536 | + 276, /* (342) filter_over ::= filter_clause over_clause */ |
| 181537 | + 276, /* (343) filter_over ::= over_clause */ |
| 181538 | + 276, /* (344) filter_over ::= filter_clause */ |
| 181539 | + 316, /* (345) over_clause ::= OVER LP window RP */ |
| 181540 | + 316, /* (346) over_clause ::= OVER nm */ |
| 181541 | + 315, /* (347) filter_clause ::= FILTER LP WHERE expr RP */ |
| 181542 | + 218, /* (348) term ::= QNUMBER */ |
| 181543 | + 187, /* (349) input ::= cmdlist */ |
| 181544 | + 188, /* (350) cmdlist ::= cmdlist ecmd */ |
| 181545 | + 188, /* (351) cmdlist ::= ecmd */ |
| 181546 | + 189, /* (352) ecmd ::= SEMI */ |
| 181547 | + 189, /* (353) ecmd ::= cmdx SEMI */ |
| 181548 | + 189, /* (354) ecmd ::= explain cmdx SEMI */ |
| 181549 | + 194, /* (355) trans_opt ::= */ |
| 181550 | + 194, /* (356) trans_opt ::= TRANSACTION */ |
| 181551 | + 194, /* (357) trans_opt ::= TRANSACTION nm */ |
| 181552 | + 196, /* (358) savepoint_opt ::= SAVEPOINT */ |
| 181553 | + 196, /* (359) savepoint_opt ::= */ |
| 181554 | + 192, /* (360) cmd ::= create_table create_table_args */ |
| 181555 | + 205, /* (361) table_option_set ::= table_option */ |
| 181556 | + 203, /* (362) columnlist ::= columnlist COMMA columnname carglist */ |
| 181557 | + 203, /* (363) columnlist ::= columnname carglist */ |
| 181558 | + 195, /* (364) nm ::= ID|INDEXED|JOIN_KW */ |
| 181559 | + 195, /* (365) nm ::= STRING */ |
| 181560 | + 210, /* (366) typetoken ::= typename */ |
| 181561 | + 211, /* (367) typename ::= ID|STRING */ |
| 181562 | + 212, /* (368) signed ::= plus_num */ |
| 181563 | + 212, /* (369) signed ::= minus_num */ |
| 181564 | + 209, /* (370) carglist ::= carglist ccons */ |
| 181565 | + 209, /* (371) carglist ::= */ |
| 181566 | + 217, /* (372) ccons ::= NULL onconf */ |
| 181567 | + 217, /* (373) ccons ::= GENERATED ALWAYS AS generated */ |
| 181568 | + 217, /* (374) ccons ::= AS generated */ |
| 181569 | + 204, /* (375) conslist_opt ::= COMMA conslist */ |
| 181570 | + 230, /* (376) conslist ::= conslist tconscomma tcons */ |
| 181571 | + 230, /* (377) conslist ::= tcons */ |
| 181572 | + 231, /* (378) tconscomma ::= */ |
| 181573 | + 235, /* (379) defer_subclause_opt ::= defer_subclause */ |
| 181574 | + 237, /* (380) resolvetype ::= raisetype */ |
| 181575 | + 241, /* (381) selectnowith ::= oneselect */ |
| 181576 | + 242, /* (382) oneselect ::= values */ |
| 181577 | + 257, /* (383) sclp ::= selcollist COMMA */ |
| 181578 | + 258, /* (384) as ::= ID|STRING */ |
| 181579 | + 267, /* (385) indexed_opt ::= indexed_by */ |
| 181580 | + 275, /* (386) returning ::= */ |
| 181581 | + 219, /* (387) expr ::= term */ |
| 181582 | + 277, /* (388) likeop ::= LIKE_KW|MATCH */ |
| 181583 | + 281, /* (389) case_operand ::= expr */ |
| 181584 | + 264, /* (390) exprlist ::= nexprlist */ |
| 181585 | + 287, /* (391) nmnum ::= plus_num */ |
| 181586 | + 287, /* (392) nmnum ::= nm */ |
| 181587 | + 287, /* (393) nmnum ::= ON */ |
| 181588 | + 287, /* (394) nmnum ::= DELETE */ |
| 181589 | + 287, /* (395) nmnum ::= DEFAULT */ |
| 181590 | + 213, /* (396) plus_num ::= INTEGER|FLOAT */ |
| 181591 | + 292, /* (397) foreach_clause ::= */ |
| 181592 | + 292, /* (398) foreach_clause ::= FOR EACH ROW */ |
| 181593 | + 295, /* (399) trnm ::= nm */ |
| 181594 | + 296, /* (400) tridxby ::= */ |
| 181595 | + 297, /* (401) database_kw_opt ::= DATABASE */ |
| 181596 | + 297, /* (402) database_kw_opt ::= */ |
| 181597 | + 300, /* (403) kwcolumn_opt ::= */ |
| 181598 | + 300, /* (404) kwcolumn_opt ::= COLUMNKW */ |
| 181599 | + 302, /* (405) vtabarglist ::= vtabarg */ |
| 181600 | + 302, /* (406) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 181601 | + 303, /* (407) vtabarg ::= vtabarg vtabargtoken */ |
| 181602 | + 306, /* (408) anylist ::= */ |
| 181603 | + 306, /* (409) anylist ::= anylist LP anylist RP */ |
| 181604 | + 306, /* (410) anylist ::= anylist ANY */ |
| 181605 | + 269, /* (411) with ::= */ |
| 181606 | + 310, /* (412) windowdefn_list ::= windowdefn */ |
| 181607 | + 312, /* (413) window ::= frame_opt */ |
| 180837 | 181608 | }; |
| 180838 | 181609 | |
| 180839 | 181610 | /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number |
| 180840 | 181611 | ** of symbols on the right-hand side of that rule. */ |
| 180841 | 181612 | static const signed char yyRuleInfoNRhs[] = { |
| | @@ -181131,125 +181902,130 @@ |
| 181131 | 181902 | -1, /* (289) cmd ::= REINDEX */ |
| 181132 | 181903 | -3, /* (290) cmd ::= REINDEX nm dbnm */ |
| 181133 | 181904 | -1, /* (291) cmd ::= ANALYZE */ |
| 181134 | 181905 | -3, /* (292) cmd ::= ANALYZE nm dbnm */ |
| 181135 | 181906 | -6, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 181136 | | - -7, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 181137 | | - -6, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 181138 | | - -1, /* (296) add_column_fullname ::= fullname */ |
| 181907 | + -2, /* (294) cmd ::= alter_add carglist */ |
| 181908 | + -7, /* (295) alter_add ::= ALTER TABLE fullname ADD kwcolumn_opt nm typetoken */ |
| 181909 | + -6, /* (296) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 181139 | 181910 | -8, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 181140 | | - -1, /* (298) cmd ::= create_vtab */ |
| 181141 | | - -4, /* (299) cmd ::= create_vtab LP vtabarglist RP */ |
| 181142 | | - -8, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 181143 | | - 0, /* (301) vtabarg ::= */ |
| 181144 | | - -1, /* (302) vtabargtoken ::= ANY */ |
| 181145 | | - -3, /* (303) vtabargtoken ::= lp anylist RP */ |
| 181146 | | - -1, /* (304) lp ::= LP */ |
| 181147 | | - -2, /* (305) with ::= WITH wqlist */ |
| 181148 | | - -3, /* (306) with ::= WITH RECURSIVE wqlist */ |
| 181149 | | - -1, /* (307) wqas ::= AS */ |
| 181150 | | - -2, /* (308) wqas ::= AS MATERIALIZED */ |
| 181151 | | - -3, /* (309) wqas ::= AS NOT MATERIALIZED */ |
| 181152 | | - -6, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 181153 | | - -1, /* (311) withnm ::= nm */ |
| 181154 | | - -1, /* (312) wqlist ::= wqitem */ |
| 181155 | | - -3, /* (313) wqlist ::= wqlist COMMA wqitem */ |
| 181156 | | - -3, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 181157 | | - -5, /* (315) windowdefn ::= nm AS LP window RP */ |
| 181158 | | - -5, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 181159 | | - -6, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 181160 | | - -4, /* (318) window ::= ORDER BY sortlist frame_opt */ |
| 181161 | | - -5, /* (319) window ::= nm ORDER BY sortlist frame_opt */ |
| 181162 | | - -2, /* (320) window ::= nm frame_opt */ |
| 181163 | | - 0, /* (321) frame_opt ::= */ |
| 181164 | | - -3, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 181165 | | - -6, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 181166 | | - -1, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 181167 | | - -1, /* (325) frame_bound_s ::= frame_bound */ |
| 181168 | | - -2, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 181169 | | - -1, /* (327) frame_bound_e ::= frame_bound */ |
| 181170 | | - -2, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 181171 | | - -2, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 181172 | | - -2, /* (330) frame_bound ::= CURRENT ROW */ |
| 181173 | | - 0, /* (331) frame_exclude_opt ::= */ |
| 181174 | | - -2, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 181175 | | - -2, /* (333) frame_exclude ::= NO OTHERS */ |
| 181176 | | - -2, /* (334) frame_exclude ::= CURRENT ROW */ |
| 181177 | | - -1, /* (335) frame_exclude ::= GROUP|TIES */ |
| 181178 | | - -2, /* (336) window_clause ::= WINDOW windowdefn_list */ |
| 181179 | | - -2, /* (337) filter_over ::= filter_clause over_clause */ |
| 181180 | | - -1, /* (338) filter_over ::= over_clause */ |
| 181181 | | - -1, /* (339) filter_over ::= filter_clause */ |
| 181182 | | - -4, /* (340) over_clause ::= OVER LP window RP */ |
| 181183 | | - -2, /* (341) over_clause ::= OVER nm */ |
| 181184 | | - -5, /* (342) filter_clause ::= FILTER LP WHERE expr RP */ |
| 181185 | | - -1, /* (343) term ::= QNUMBER */ |
| 181186 | | - -1, /* (344) input ::= cmdlist */ |
| 181187 | | - -2, /* (345) cmdlist ::= cmdlist ecmd */ |
| 181188 | | - -1, /* (346) cmdlist ::= ecmd */ |
| 181189 | | - -1, /* (347) ecmd ::= SEMI */ |
| 181190 | | - -2, /* (348) ecmd ::= cmdx SEMI */ |
| 181191 | | - -3, /* (349) ecmd ::= explain cmdx SEMI */ |
| 181192 | | - 0, /* (350) trans_opt ::= */ |
| 181193 | | - -1, /* (351) trans_opt ::= TRANSACTION */ |
| 181194 | | - -2, /* (352) trans_opt ::= TRANSACTION nm */ |
| 181195 | | - -1, /* (353) savepoint_opt ::= SAVEPOINT */ |
| 181196 | | - 0, /* (354) savepoint_opt ::= */ |
| 181197 | | - -2, /* (355) cmd ::= create_table create_table_args */ |
| 181198 | | - -1, /* (356) table_option_set ::= table_option */ |
| 181199 | | - -4, /* (357) columnlist ::= columnlist COMMA columnname carglist */ |
| 181200 | | - -2, /* (358) columnlist ::= columnname carglist */ |
| 181201 | | - -1, /* (359) nm ::= ID|INDEXED|JOIN_KW */ |
| 181202 | | - -1, /* (360) nm ::= STRING */ |
| 181203 | | - -1, /* (361) typetoken ::= typename */ |
| 181204 | | - -1, /* (362) typename ::= ID|STRING */ |
| 181205 | | - -1, /* (363) signed ::= plus_num */ |
| 181206 | | - -1, /* (364) signed ::= minus_num */ |
| 181207 | | - -2, /* (365) carglist ::= carglist ccons */ |
| 181208 | | - 0, /* (366) carglist ::= */ |
| 181209 | | - -2, /* (367) ccons ::= NULL onconf */ |
| 181210 | | - -4, /* (368) ccons ::= GENERATED ALWAYS AS generated */ |
| 181211 | | - -2, /* (369) ccons ::= AS generated */ |
| 181212 | | - -2, /* (370) conslist_opt ::= COMMA conslist */ |
| 181213 | | - -3, /* (371) conslist ::= conslist tconscomma tcons */ |
| 181214 | | - -1, /* (372) conslist ::= tcons */ |
| 181215 | | - 0, /* (373) tconscomma ::= */ |
| 181216 | | - -1, /* (374) defer_subclause_opt ::= defer_subclause */ |
| 181217 | | - -1, /* (375) resolvetype ::= raisetype */ |
| 181218 | | - -1, /* (376) selectnowith ::= oneselect */ |
| 181219 | | - -1, /* (377) oneselect ::= values */ |
| 181220 | | - -2, /* (378) sclp ::= selcollist COMMA */ |
| 181221 | | - -1, /* (379) as ::= ID|STRING */ |
| 181222 | | - -1, /* (380) indexed_opt ::= indexed_by */ |
| 181223 | | - 0, /* (381) returning ::= */ |
| 181224 | | - -1, /* (382) expr ::= term */ |
| 181225 | | - -1, /* (383) likeop ::= LIKE_KW|MATCH */ |
| 181226 | | - -1, /* (384) case_operand ::= expr */ |
| 181227 | | - -1, /* (385) exprlist ::= nexprlist */ |
| 181228 | | - -1, /* (386) nmnum ::= plus_num */ |
| 181229 | | - -1, /* (387) nmnum ::= nm */ |
| 181230 | | - -1, /* (388) nmnum ::= ON */ |
| 181231 | | - -1, /* (389) nmnum ::= DELETE */ |
| 181232 | | - -1, /* (390) nmnum ::= DEFAULT */ |
| 181233 | | - -1, /* (391) plus_num ::= INTEGER|FLOAT */ |
| 181234 | | - 0, /* (392) foreach_clause ::= */ |
| 181235 | | - -3, /* (393) foreach_clause ::= FOR EACH ROW */ |
| 181236 | | - -1, /* (394) trnm ::= nm */ |
| 181237 | | - 0, /* (395) tridxby ::= */ |
| 181238 | | - -1, /* (396) database_kw_opt ::= DATABASE */ |
| 181239 | | - 0, /* (397) database_kw_opt ::= */ |
| 181240 | | - 0, /* (398) kwcolumn_opt ::= */ |
| 181241 | | - -1, /* (399) kwcolumn_opt ::= COLUMNKW */ |
| 181242 | | - -1, /* (400) vtabarglist ::= vtabarg */ |
| 181243 | | - -3, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 181244 | | - -2, /* (402) vtabarg ::= vtabarg vtabargtoken */ |
| 181245 | | - 0, /* (403) anylist ::= */ |
| 181246 | | - -4, /* (404) anylist ::= anylist LP anylist RP */ |
| 181247 | | - -2, /* (405) anylist ::= anylist ANY */ |
| 181248 | | - 0, /* (406) with ::= */ |
| 181249 | | - -1, /* (407) windowdefn_list ::= windowdefn */ |
| 181250 | | - -1, /* (408) window ::= frame_opt */ |
| 181911 | + -6, /* (298) cmd ::= ALTER TABLE fullname DROP CONSTRAINT nm */ |
| 181912 | + -9, /* (299) cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm DROP NOT NULL */ |
| 181913 | + -10, /* (300) cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm SET NOT NULL onconf */ |
| 181914 | + -11, /* (301) cmd ::= ALTER TABLE fullname ADD CONSTRAINT nm CHECK LP expr RP onconf */ |
| 181915 | + -9, /* (302) cmd ::= ALTER TABLE fullname ADD CHECK LP expr RP onconf */ |
| 181916 | + -1, /* (303) cmd ::= create_vtab */ |
| 181917 | + -4, /* (304) cmd ::= create_vtab LP vtabarglist RP */ |
| 181918 | + -8, /* (305) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 181919 | + 0, /* (306) vtabarg ::= */ |
| 181920 | + -1, /* (307) vtabargtoken ::= ANY */ |
| 181921 | + -3, /* (308) vtabargtoken ::= lp anylist RP */ |
| 181922 | + -1, /* (309) lp ::= LP */ |
| 181923 | + -2, /* (310) with ::= WITH wqlist */ |
| 181924 | + -3, /* (311) with ::= WITH RECURSIVE wqlist */ |
| 181925 | + -1, /* (312) wqas ::= AS */ |
| 181926 | + -2, /* (313) wqas ::= AS MATERIALIZED */ |
| 181927 | + -3, /* (314) wqas ::= AS NOT MATERIALIZED */ |
| 181928 | + -6, /* (315) wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 181929 | + -1, /* (316) withnm ::= nm */ |
| 181930 | + -1, /* (317) wqlist ::= wqitem */ |
| 181931 | + -3, /* (318) wqlist ::= wqlist COMMA wqitem */ |
| 181932 | + -3, /* (319) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 181933 | + -5, /* (320) windowdefn ::= nm AS LP window RP */ |
| 181934 | + -5, /* (321) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 181935 | + -6, /* (322) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 181936 | + -4, /* (323) window ::= ORDER BY sortlist frame_opt */ |
| 181937 | + -5, /* (324) window ::= nm ORDER BY sortlist frame_opt */ |
| 181938 | + -2, /* (325) window ::= nm frame_opt */ |
| 181939 | + 0, /* (326) frame_opt ::= */ |
| 181940 | + -3, /* (327) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 181941 | + -6, /* (328) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 181942 | + -1, /* (329) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 181943 | + -1, /* (330) frame_bound_s ::= frame_bound */ |
| 181944 | + -2, /* (331) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 181945 | + -1, /* (332) frame_bound_e ::= frame_bound */ |
| 181946 | + -2, /* (333) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 181947 | + -2, /* (334) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 181948 | + -2, /* (335) frame_bound ::= CURRENT ROW */ |
| 181949 | + 0, /* (336) frame_exclude_opt ::= */ |
| 181950 | + -2, /* (337) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 181951 | + -2, /* (338) frame_exclude ::= NO OTHERS */ |
| 181952 | + -2, /* (339) frame_exclude ::= CURRENT ROW */ |
| 181953 | + -1, /* (340) frame_exclude ::= GROUP|TIES */ |
| 181954 | + -2, /* (341) window_clause ::= WINDOW windowdefn_list */ |
| 181955 | + -2, /* (342) filter_over ::= filter_clause over_clause */ |
| 181956 | + -1, /* (343) filter_over ::= over_clause */ |
| 181957 | + -1, /* (344) filter_over ::= filter_clause */ |
| 181958 | + -4, /* (345) over_clause ::= OVER LP window RP */ |
| 181959 | + -2, /* (346) over_clause ::= OVER nm */ |
| 181960 | + -5, /* (347) filter_clause ::= FILTER LP WHERE expr RP */ |
| 181961 | + -1, /* (348) term ::= QNUMBER */ |
| 181962 | + -1, /* (349) input ::= cmdlist */ |
| 181963 | + -2, /* (350) cmdlist ::= cmdlist ecmd */ |
| 181964 | + -1, /* (351) cmdlist ::= ecmd */ |
| 181965 | + -1, /* (352) ecmd ::= SEMI */ |
| 181966 | + -2, /* (353) ecmd ::= cmdx SEMI */ |
| 181967 | + -3, /* (354) ecmd ::= explain cmdx SEMI */ |
| 181968 | + 0, /* (355) trans_opt ::= */ |
| 181969 | + -1, /* (356) trans_opt ::= TRANSACTION */ |
| 181970 | + -2, /* (357) trans_opt ::= TRANSACTION nm */ |
| 181971 | + -1, /* (358) savepoint_opt ::= SAVEPOINT */ |
| 181972 | + 0, /* (359) savepoint_opt ::= */ |
| 181973 | + -2, /* (360) cmd ::= create_table create_table_args */ |
| 181974 | + -1, /* (361) table_option_set ::= table_option */ |
| 181975 | + -4, /* (362) columnlist ::= columnlist COMMA columnname carglist */ |
| 181976 | + -2, /* (363) columnlist ::= columnname carglist */ |
| 181977 | + -1, /* (364) nm ::= ID|INDEXED|JOIN_KW */ |
| 181978 | + -1, /* (365) nm ::= STRING */ |
| 181979 | + -1, /* (366) typetoken ::= typename */ |
| 181980 | + -1, /* (367) typename ::= ID|STRING */ |
| 181981 | + -1, /* (368) signed ::= plus_num */ |
| 181982 | + -1, /* (369) signed ::= minus_num */ |
| 181983 | + -2, /* (370) carglist ::= carglist ccons */ |
| 181984 | + 0, /* (371) carglist ::= */ |
| 181985 | + -2, /* (372) ccons ::= NULL onconf */ |
| 181986 | + -4, /* (373) ccons ::= GENERATED ALWAYS AS generated */ |
| 181987 | + -2, /* (374) ccons ::= AS generated */ |
| 181988 | + -2, /* (375) conslist_opt ::= COMMA conslist */ |
| 181989 | + -3, /* (376) conslist ::= conslist tconscomma tcons */ |
| 181990 | + -1, /* (377) conslist ::= tcons */ |
| 181991 | + 0, /* (378) tconscomma ::= */ |
| 181992 | + -1, /* (379) defer_subclause_opt ::= defer_subclause */ |
| 181993 | + -1, /* (380) resolvetype ::= raisetype */ |
| 181994 | + -1, /* (381) selectnowith ::= oneselect */ |
| 181995 | + -1, /* (382) oneselect ::= values */ |
| 181996 | + -2, /* (383) sclp ::= selcollist COMMA */ |
| 181997 | + -1, /* (384) as ::= ID|STRING */ |
| 181998 | + -1, /* (385) indexed_opt ::= indexed_by */ |
| 181999 | + 0, /* (386) returning ::= */ |
| 182000 | + -1, /* (387) expr ::= term */ |
| 182001 | + -1, /* (388) likeop ::= LIKE_KW|MATCH */ |
| 182002 | + -1, /* (389) case_operand ::= expr */ |
| 182003 | + -1, /* (390) exprlist ::= nexprlist */ |
| 182004 | + -1, /* (391) nmnum ::= plus_num */ |
| 182005 | + -1, /* (392) nmnum ::= nm */ |
| 182006 | + -1, /* (393) nmnum ::= ON */ |
| 182007 | + -1, /* (394) nmnum ::= DELETE */ |
| 182008 | + -1, /* (395) nmnum ::= DEFAULT */ |
| 182009 | + -1, /* (396) plus_num ::= INTEGER|FLOAT */ |
| 182010 | + 0, /* (397) foreach_clause ::= */ |
| 182011 | + -3, /* (398) foreach_clause ::= FOR EACH ROW */ |
| 182012 | + -1, /* (399) trnm ::= nm */ |
| 182013 | + 0, /* (400) tridxby ::= */ |
| 182014 | + -1, /* (401) database_kw_opt ::= DATABASE */ |
| 182015 | + 0, /* (402) database_kw_opt ::= */ |
| 182016 | + 0, /* (403) kwcolumn_opt ::= */ |
| 182017 | + -1, /* (404) kwcolumn_opt ::= COLUMNKW */ |
| 182018 | + -1, /* (405) vtabarglist ::= vtabarg */ |
| 182019 | + -3, /* (406) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 182020 | + -2, /* (407) vtabarg ::= vtabarg vtabargtoken */ |
| 182021 | + 0, /* (408) anylist ::= */ |
| 182022 | + -4, /* (409) anylist ::= anylist LP anylist RP */ |
| 182023 | + -2, /* (410) anylist ::= anylist ANY */ |
| 182024 | + 0, /* (411) with ::= */ |
| 182025 | + -1, /* (412) windowdefn_list ::= windowdefn */ |
| 182026 | + -1, /* (413) window ::= frame_opt */ |
| 181251 | 182027 | }; |
| 181252 | 182028 | |
| 181253 | 182029 | static void yy_accept(yyParser*); /* Forward Declaration */ |
| 181254 | 182030 | |
| 181255 | 182031 | /* |
| | @@ -181305,11 +182081,11 @@ |
| 181305 | 182081 | {yymsp[1].minor.yy502 = TK_DEFERRED;} |
| 181306 | 182082 | break; |
| 181307 | 182083 | case 5: /* transtype ::= DEFERRED */ |
| 181308 | 182084 | case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); |
| 181309 | 182085 | case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); |
| 181310 | | - case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324); |
| 182086 | + case 329: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==329); |
| 181311 | 182087 | {yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/} |
| 181312 | 182088 | break; |
| 181313 | 182089 | case 8: /* cmd ::= COMMIT|END trans_opt */ |
| 181314 | 182090 | case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); |
| 181315 | 182091 | {sqlite3EndTransaction(pParse,yymsp[-1].major);} |
| | @@ -182576,177 +183352,206 @@ |
| 182576 | 183352 | case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 182577 | 183353 | { |
| 182578 | 183354 | sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy563,&yymsp[0].minor.yy0); |
| 182579 | 183355 | } |
| 182580 | 183356 | break; |
| 182581 | | - case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 183357 | + case 294: /* cmd ::= alter_add carglist */ |
| 182582 | 183358 | { |
| 182583 | 183359 | yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; |
| 182584 | 183360 | sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); |
| 182585 | 183361 | } |
| 182586 | 183362 | break; |
| 182587 | | - case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 182588 | | -{ |
| 182589 | | - sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy563, &yymsp[0].minor.yy0); |
| 182590 | | -} |
| 182591 | | - break; |
| 182592 | | - case 296: /* add_column_fullname ::= fullname */ |
| 183363 | + case 295: /* alter_add ::= ALTER TABLE fullname ADD kwcolumn_opt nm typetoken */ |
| 182593 | 183364 | { |
| 182594 | 183365 | disableLookaside(pParse); |
| 182595 | | - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy563); |
| 183366 | + sqlite3AlterBeginAddColumn(pParse, yymsp[-4].minor.yy563); |
| 183367 | + sqlite3AddColumn(pParse, yymsp[-1].minor.yy0, yymsp[0].minor.yy0); |
| 183368 | + yymsp[-6].minor.yy0 = yymsp[-1].minor.yy0; |
| 183369 | +} |
| 183370 | + break; |
| 183371 | + case 296: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 183372 | +{ |
| 183373 | + sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy563, &yymsp[0].minor.yy0); |
| 182596 | 183374 | } |
| 182597 | 183375 | break; |
| 182598 | 183376 | case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 182599 | 183377 | { |
| 182600 | 183378 | sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy563, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 182601 | 183379 | } |
| 182602 | 183380 | break; |
| 182603 | | - case 298: /* cmd ::= create_vtab */ |
| 183381 | + case 298: /* cmd ::= ALTER TABLE fullname DROP CONSTRAINT nm */ |
| 183382 | +{ |
| 183383 | + sqlite3AlterDropConstraint(pParse, yymsp[-3].minor.yy563, &yymsp[0].minor.yy0, 0); |
| 183384 | +} |
| 183385 | + break; |
| 183386 | + case 299: /* cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm DROP NOT NULL */ |
| 183387 | +{ |
| 183388 | + sqlite3AlterDropConstraint(pParse, yymsp[-6].minor.yy563, 0, &yymsp[-3].minor.yy0); |
| 183389 | +} |
| 183390 | + break; |
| 183391 | + case 300: /* cmd ::= ALTER TABLE fullname ALTER kwcolumn_opt nm SET NOT NULL onconf */ |
| 183392 | +{ |
| 183393 | + sqlite3AlterSetNotNull(pParse, yymsp[-7].minor.yy563, &yymsp[-4].minor.yy0, &yymsp[-2].minor.yy0); |
| 183394 | +} |
| 183395 | + break; |
| 183396 | + case 301: /* cmd ::= ALTER TABLE fullname ADD CONSTRAINT nm CHECK LP expr RP onconf */ |
| 183397 | +{ |
| 183398 | + sqlite3AlterAddConstraint(pParse, yymsp[-8].minor.yy563, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy0.z+1, (yymsp[-1].minor.yy0.z-yymsp[-3].minor.yy0.z-1)); |
| 183399 | +} |
| 183400 | + yy_destructor(yypParser,219,&yymsp[-2].minor); |
| 183401 | + break; |
| 183402 | + case 302: /* cmd ::= ALTER TABLE fullname ADD CHECK LP expr RP onconf */ |
| 183403 | +{ |
| 183404 | + sqlite3AlterAddConstraint(pParse, yymsp[-6].minor.yy563, &yymsp[-4].minor.yy0, 0, yymsp[-3].minor.yy0.z+1, (yymsp[-1].minor.yy0.z-yymsp[-3].minor.yy0.z-1)); |
| 183405 | +} |
| 183406 | + yy_destructor(yypParser,219,&yymsp[-2].minor); |
| 183407 | + break; |
| 183408 | + case 303: /* cmd ::= create_vtab */ |
| 182604 | 183409 | {sqlite3VtabFinishParse(pParse,0);} |
| 182605 | 183410 | break; |
| 182606 | | - case 299: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 183411 | + case 304: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 182607 | 183412 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 182608 | 183413 | break; |
| 182609 | | - case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 183414 | + case 305: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 182610 | 183415 | { |
| 182611 | 183416 | sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy502); |
| 182612 | 183417 | } |
| 182613 | 183418 | break; |
| 182614 | | - case 301: /* vtabarg ::= */ |
| 183419 | + case 306: /* vtabarg ::= */ |
| 182615 | 183420 | {sqlite3VtabArgInit(pParse);} |
| 182616 | 183421 | break; |
| 182617 | | - case 302: /* vtabargtoken ::= ANY */ |
| 182618 | | - case 303: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==303); |
| 182619 | | - case 304: /* lp ::= LP */ yytestcase(yyruleno==304); |
| 183422 | + case 307: /* vtabargtoken ::= ANY */ |
| 183423 | + case 308: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==308); |
| 183424 | + case 309: /* lp ::= LP */ yytestcase(yyruleno==309); |
| 182620 | 183425 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 182621 | 183426 | break; |
| 182622 | | - case 305: /* with ::= WITH wqlist */ |
| 182623 | | - case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306); |
| 183427 | + case 310: /* with ::= WITH wqlist */ |
| 183428 | + case 311: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==311); |
| 182624 | 183429 | { sqlite3WithPush(pParse, yymsp[0].minor.yy125, 1); } |
| 182625 | 183430 | break; |
| 182626 | | - case 307: /* wqas ::= AS */ |
| 183431 | + case 312: /* wqas ::= AS */ |
| 182627 | 183432 | {yymsp[0].minor.yy444 = M10d_Any;} |
| 182628 | 183433 | break; |
| 182629 | | - case 308: /* wqas ::= AS MATERIALIZED */ |
| 183434 | + case 313: /* wqas ::= AS MATERIALIZED */ |
| 182630 | 183435 | {yymsp[-1].minor.yy444 = M10d_Yes;} |
| 182631 | 183436 | break; |
| 182632 | | - case 309: /* wqas ::= AS NOT MATERIALIZED */ |
| 183437 | + case 314: /* wqas ::= AS NOT MATERIALIZED */ |
| 182633 | 183438 | {yymsp[-2].minor.yy444 = M10d_No;} |
| 182634 | 183439 | break; |
| 182635 | | - case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 183440 | + case 315: /* wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 182636 | 183441 | { |
| 182637 | 183442 | yymsp[-5].minor.yy361 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy402, yymsp[-1].minor.yy637, yymsp[-3].minor.yy444); /*A-overwrites-X*/ |
| 182638 | 183443 | } |
| 182639 | 183444 | break; |
| 182640 | | - case 311: /* withnm ::= nm */ |
| 183445 | + case 316: /* withnm ::= nm */ |
| 182641 | 183446 | {pParse->bHasWith = 1;} |
| 182642 | 183447 | break; |
| 182643 | | - case 312: /* wqlist ::= wqitem */ |
| 183448 | + case 317: /* wqlist ::= wqitem */ |
| 182644 | 183449 | { |
| 182645 | 183450 | yymsp[0].minor.yy125 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy361); /*A-overwrites-X*/ |
| 182646 | 183451 | } |
| 182647 | 183452 | break; |
| 182648 | | - case 313: /* wqlist ::= wqlist COMMA wqitem */ |
| 183453 | + case 318: /* wqlist ::= wqlist COMMA wqitem */ |
| 182649 | 183454 | { |
| 182650 | 183455 | yymsp[-2].minor.yy125 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy125, yymsp[0].minor.yy361); |
| 182651 | 183456 | } |
| 182652 | 183457 | break; |
| 182653 | | - case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 183458 | + case 319: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 182654 | 183459 | { |
| 182655 | 183460 | assert( yymsp[0].minor.yy483!=0 ); |
| 182656 | 183461 | sqlite3WindowChain(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy483); |
| 182657 | 183462 | yymsp[0].minor.yy483->pNextWin = yymsp[-2].minor.yy483; |
| 182658 | 183463 | yylhsminor.yy483 = yymsp[0].minor.yy483; |
| 182659 | 183464 | } |
| 182660 | 183465 | yymsp[-2].minor.yy483 = yylhsminor.yy483; |
| 182661 | 183466 | break; |
| 182662 | | - case 315: /* windowdefn ::= nm AS LP window RP */ |
| 183467 | + case 320: /* windowdefn ::= nm AS LP window RP */ |
| 182663 | 183468 | { |
| 182664 | 183469 | if( ALWAYS(yymsp[-1].minor.yy483) ){ |
| 182665 | 183470 | yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); |
| 182666 | 183471 | } |
| 182667 | 183472 | yylhsminor.yy483 = yymsp[-1].minor.yy483; |
| 182668 | 183473 | } |
| 182669 | 183474 | yymsp[-4].minor.yy483 = yylhsminor.yy483; |
| 182670 | 183475 | break; |
| 182671 | | - case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 183476 | + case 321: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 182672 | 183477 | { |
| 182673 | 183478 | yymsp[-4].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, 0); |
| 182674 | 183479 | } |
| 182675 | 183480 | break; |
| 182676 | | - case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 183481 | + case 322: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 182677 | 183482 | { |
| 182678 | 183483 | yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, &yymsp[-5].minor.yy0); |
| 182679 | 183484 | } |
| 182680 | 183485 | yymsp[-5].minor.yy483 = yylhsminor.yy483; |
| 182681 | 183486 | break; |
| 182682 | | - case 318: /* window ::= ORDER BY sortlist frame_opt */ |
| 183487 | + case 323: /* window ::= ORDER BY sortlist frame_opt */ |
| 182683 | 183488 | { |
| 182684 | 183489 | yymsp[-3].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, 0); |
| 182685 | 183490 | } |
| 182686 | 183491 | break; |
| 182687 | | - case 319: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 183492 | + case 324: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 182688 | 183493 | { |
| 182689 | 183494 | yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0); |
| 182690 | 183495 | } |
| 182691 | 183496 | yymsp[-4].minor.yy483 = yylhsminor.yy483; |
| 182692 | 183497 | break; |
| 182693 | | - case 320: /* window ::= nm frame_opt */ |
| 183498 | + case 325: /* window ::= nm frame_opt */ |
| 182694 | 183499 | { |
| 182695 | 183500 | yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, 0, &yymsp[-1].minor.yy0); |
| 182696 | 183501 | } |
| 182697 | 183502 | yymsp[-1].minor.yy483 = yylhsminor.yy483; |
| 182698 | 183503 | break; |
| 182699 | | - case 321: /* frame_opt ::= */ |
| 183504 | + case 326: /* frame_opt ::= */ |
| 182700 | 183505 | { |
| 182701 | 183506 | yymsp[1].minor.yy483 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); |
| 182702 | 183507 | } |
| 182703 | 183508 | break; |
| 182704 | | - case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 183509 | + case 327: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 182705 | 183510 | { |
| 182706 | 183511 | yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy502, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy444); |
| 182707 | 183512 | } |
| 182708 | 183513 | yymsp[-2].minor.yy483 = yylhsminor.yy483; |
| 182709 | 183514 | break; |
| 182710 | | - case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 183515 | + case 328: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 182711 | 183516 | { |
| 182712 | 183517 | yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy502, yymsp[-3].minor.yy205.eType, yymsp[-3].minor.yy205.pExpr, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, yymsp[0].minor.yy444); |
| 182713 | 183518 | } |
| 182714 | 183519 | yymsp[-5].minor.yy483 = yylhsminor.yy483; |
| 182715 | 183520 | break; |
| 182716 | | - case 325: /* frame_bound_s ::= frame_bound */ |
| 182717 | | - case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327); |
| 183521 | + case 330: /* frame_bound_s ::= frame_bound */ |
| 183522 | + case 332: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==332); |
| 182718 | 183523 | {yylhsminor.yy205 = yymsp[0].minor.yy205;} |
| 182719 | 183524 | yymsp[0].minor.yy205 = yylhsminor.yy205; |
| 182720 | 183525 | break; |
| 182721 | | - case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 182722 | | - case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328); |
| 182723 | | - case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330); |
| 183526 | + case 331: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 183527 | + case 333: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==333); |
| 183528 | + case 335: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==335); |
| 182724 | 183529 | {yylhsminor.yy205.eType = yymsp[-1].major; yylhsminor.yy205.pExpr = 0;} |
| 182725 | 183530 | yymsp[-1].minor.yy205 = yylhsminor.yy205; |
| 182726 | 183531 | break; |
| 182727 | | - case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 183532 | + case 334: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 182728 | 183533 | {yylhsminor.yy205.eType = yymsp[0].major; yylhsminor.yy205.pExpr = yymsp[-1].minor.yy590;} |
| 182729 | 183534 | yymsp[-1].minor.yy205 = yylhsminor.yy205; |
| 182730 | 183535 | break; |
| 182731 | | - case 331: /* frame_exclude_opt ::= */ |
| 183536 | + case 336: /* frame_exclude_opt ::= */ |
| 182732 | 183537 | {yymsp[1].minor.yy444 = 0;} |
| 182733 | 183538 | break; |
| 182734 | | - case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 183539 | + case 337: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 182735 | 183540 | {yymsp[-1].minor.yy444 = yymsp[0].minor.yy444;} |
| 182736 | 183541 | break; |
| 182737 | | - case 333: /* frame_exclude ::= NO OTHERS */ |
| 182738 | | - case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334); |
| 183542 | + case 338: /* frame_exclude ::= NO OTHERS */ |
| 183543 | + case 339: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==339); |
| 182739 | 183544 | {yymsp[-1].minor.yy444 = yymsp[-1].major; /*A-overwrites-X*/} |
| 182740 | 183545 | break; |
| 182741 | | - case 335: /* frame_exclude ::= GROUP|TIES */ |
| 183546 | + case 340: /* frame_exclude ::= GROUP|TIES */ |
| 182742 | 183547 | {yymsp[0].minor.yy444 = yymsp[0].major; /*A-overwrites-X*/} |
| 182743 | 183548 | break; |
| 182744 | | - case 336: /* window_clause ::= WINDOW windowdefn_list */ |
| 183549 | + case 341: /* window_clause ::= WINDOW windowdefn_list */ |
| 182745 | 183550 | { yymsp[-1].minor.yy483 = yymsp[0].minor.yy483; } |
| 182746 | 183551 | break; |
| 182747 | | - case 337: /* filter_over ::= filter_clause over_clause */ |
| 183552 | + case 342: /* filter_over ::= filter_clause over_clause */ |
| 182748 | 183553 | { |
| 182749 | 183554 | if( yymsp[0].minor.yy483 ){ |
| 182750 | 183555 | yymsp[0].minor.yy483->pFilter = yymsp[-1].minor.yy590; |
| 182751 | 183556 | }else{ |
| 182752 | 183557 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590); |
| | @@ -182753,17 +183558,17 @@ |
| 182753 | 183558 | } |
| 182754 | 183559 | yylhsminor.yy483 = yymsp[0].minor.yy483; |
| 182755 | 183560 | } |
| 182756 | 183561 | yymsp[-1].minor.yy483 = yylhsminor.yy483; |
| 182757 | 183562 | break; |
| 182758 | | - case 338: /* filter_over ::= over_clause */ |
| 183563 | + case 343: /* filter_over ::= over_clause */ |
| 182759 | 183564 | { |
| 182760 | 183565 | yylhsminor.yy483 = yymsp[0].minor.yy483; |
| 182761 | 183566 | } |
| 182762 | 183567 | yymsp[0].minor.yy483 = yylhsminor.yy483; |
| 182763 | 183568 | break; |
| 182764 | | - case 339: /* filter_over ::= filter_clause */ |
| 183569 | + case 344: /* filter_over ::= filter_clause */ |
| 182765 | 183570 | { |
| 182766 | 183571 | yylhsminor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 182767 | 183572 | if( yylhsminor.yy483 ){ |
| 182768 | 183573 | yylhsminor.yy483->eFrmType = TK_FILTER; |
| 182769 | 183574 | yylhsminor.yy483->pFilter = yymsp[0].minor.yy590; |
| | @@ -182771,100 +183576,100 @@ |
| 182771 | 183576 | sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy590); |
| 182772 | 183577 | } |
| 182773 | 183578 | } |
| 182774 | 183579 | yymsp[0].minor.yy483 = yylhsminor.yy483; |
| 182775 | 183580 | break; |
| 182776 | | - case 340: /* over_clause ::= OVER LP window RP */ |
| 183581 | + case 345: /* over_clause ::= OVER LP window RP */ |
| 182777 | 183582 | { |
| 182778 | 183583 | yymsp[-3].minor.yy483 = yymsp[-1].minor.yy483; |
| 182779 | 183584 | assert( yymsp[-3].minor.yy483!=0 ); |
| 182780 | 183585 | } |
| 182781 | 183586 | break; |
| 182782 | | - case 341: /* over_clause ::= OVER nm */ |
| 183587 | + case 346: /* over_clause ::= OVER nm */ |
| 182783 | 183588 | { |
| 182784 | 183589 | yymsp[-1].minor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 182785 | 183590 | if( yymsp[-1].minor.yy483 ){ |
| 182786 | 183591 | yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); |
| 182787 | 183592 | } |
| 182788 | 183593 | } |
| 182789 | 183594 | break; |
| 182790 | | - case 342: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 183595 | + case 347: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 182791 | 183596 | { yymsp[-4].minor.yy590 = yymsp[-1].minor.yy590; } |
| 182792 | 183597 | break; |
| 182793 | | - case 343: /* term ::= QNUMBER */ |
| 183598 | + case 348: /* term ::= QNUMBER */ |
| 182794 | 183599 | { |
| 182795 | 183600 | yylhsminor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); |
| 182796 | 183601 | sqlite3DequoteNumber(pParse, yylhsminor.yy590); |
| 182797 | 183602 | } |
| 182798 | 183603 | yymsp[0].minor.yy590 = yylhsminor.yy590; |
| 182799 | 183604 | break; |
| 182800 | 183605 | default: |
| 182801 | | - /* (344) input ::= cmdlist */ yytestcase(yyruleno==344); |
| 182802 | | - /* (345) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==345); |
| 182803 | | - /* (346) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=346); |
| 182804 | | - /* (347) ecmd ::= SEMI */ yytestcase(yyruleno==347); |
| 182805 | | - /* (348) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==348); |
| 182806 | | - /* (349) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=349); |
| 182807 | | - /* (350) trans_opt ::= */ yytestcase(yyruleno==350); |
| 182808 | | - /* (351) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==351); |
| 182809 | | - /* (352) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==352); |
| 182810 | | - /* (353) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==353); |
| 182811 | | - /* (354) savepoint_opt ::= */ yytestcase(yyruleno==354); |
| 182812 | | - /* (355) cmd ::= create_table create_table_args */ yytestcase(yyruleno==355); |
| 182813 | | - /* (356) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=356); |
| 182814 | | - /* (357) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==357); |
| 182815 | | - /* (358) columnlist ::= columnname carglist */ yytestcase(yyruleno==358); |
| 182816 | | - /* (359) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==359); |
| 182817 | | - /* (360) nm ::= STRING */ yytestcase(yyruleno==360); |
| 182818 | | - /* (361) typetoken ::= typename */ yytestcase(yyruleno==361); |
| 182819 | | - /* (362) typename ::= ID|STRING */ yytestcase(yyruleno==362); |
| 182820 | | - /* (363) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=363); |
| 182821 | | - /* (364) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=364); |
| 182822 | | - /* (365) carglist ::= carglist ccons */ yytestcase(yyruleno==365); |
| 182823 | | - /* (366) carglist ::= */ yytestcase(yyruleno==366); |
| 182824 | | - /* (367) ccons ::= NULL onconf */ yytestcase(yyruleno==367); |
| 182825 | | - /* (368) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==368); |
| 182826 | | - /* (369) ccons ::= AS generated */ yytestcase(yyruleno==369); |
| 182827 | | - /* (370) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==370); |
| 182828 | | - /* (371) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==371); |
| 182829 | | - /* (372) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=372); |
| 182830 | | - /* (373) tconscomma ::= */ yytestcase(yyruleno==373); |
| 182831 | | - /* (374) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=374); |
| 182832 | | - /* (375) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=375); |
| 182833 | | - /* (376) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=376); |
| 182834 | | - /* (377) oneselect ::= values */ yytestcase(yyruleno==377); |
| 182835 | | - /* (378) sclp ::= selcollist COMMA */ yytestcase(yyruleno==378); |
| 182836 | | - /* (379) as ::= ID|STRING */ yytestcase(yyruleno==379); |
| 182837 | | - /* (380) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=380); |
| 182838 | | - /* (381) returning ::= */ yytestcase(yyruleno==381); |
| 182839 | | - /* (382) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=382); |
| 182840 | | - /* (383) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==383); |
| 182841 | | - /* (384) case_operand ::= expr */ yytestcase(yyruleno==384); |
| 182842 | | - /* (385) exprlist ::= nexprlist */ yytestcase(yyruleno==385); |
| 182843 | | - /* (386) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=386); |
| 182844 | | - /* (387) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=387); |
| 182845 | | - /* (388) nmnum ::= ON */ yytestcase(yyruleno==388); |
| 182846 | | - /* (389) nmnum ::= DELETE */ yytestcase(yyruleno==389); |
| 182847 | | - /* (390) nmnum ::= DEFAULT */ yytestcase(yyruleno==390); |
| 182848 | | - /* (391) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==391); |
| 182849 | | - /* (392) foreach_clause ::= */ yytestcase(yyruleno==392); |
| 182850 | | - /* (393) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==393); |
| 182851 | | - /* (394) trnm ::= nm */ yytestcase(yyruleno==394); |
| 182852 | | - /* (395) tridxby ::= */ yytestcase(yyruleno==395); |
| 182853 | | - /* (396) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==396); |
| 182854 | | - /* (397) database_kw_opt ::= */ yytestcase(yyruleno==397); |
| 182855 | | - /* (398) kwcolumn_opt ::= */ yytestcase(yyruleno==398); |
| 182856 | | - /* (399) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==399); |
| 182857 | | - /* (400) vtabarglist ::= vtabarg */ yytestcase(yyruleno==400); |
| 182858 | | - /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==401); |
| 182859 | | - /* (402) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==402); |
| 182860 | | - /* (403) anylist ::= */ yytestcase(yyruleno==403); |
| 182861 | | - /* (404) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==404); |
| 182862 | | - /* (405) anylist ::= anylist ANY */ yytestcase(yyruleno==405); |
| 182863 | | - /* (406) with ::= */ yytestcase(yyruleno==406); |
| 182864 | | - /* (407) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=407); |
| 182865 | | - /* (408) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=408); |
| 183606 | + /* (349) input ::= cmdlist */ yytestcase(yyruleno==349); |
| 183607 | + /* (350) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==350); |
| 183608 | + /* (351) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=351); |
| 183609 | + /* (352) ecmd ::= SEMI */ yytestcase(yyruleno==352); |
| 183610 | + /* (353) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==353); |
| 183611 | + /* (354) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=354); |
| 183612 | + /* (355) trans_opt ::= */ yytestcase(yyruleno==355); |
| 183613 | + /* (356) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==356); |
| 183614 | + /* (357) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==357); |
| 183615 | + /* (358) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==358); |
| 183616 | + /* (359) savepoint_opt ::= */ yytestcase(yyruleno==359); |
| 183617 | + /* (360) cmd ::= create_table create_table_args */ yytestcase(yyruleno==360); |
| 183618 | + /* (361) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=361); |
| 183619 | + /* (362) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==362); |
| 183620 | + /* (363) columnlist ::= columnname carglist */ yytestcase(yyruleno==363); |
| 183621 | + /* (364) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==364); |
| 183622 | + /* (365) nm ::= STRING */ yytestcase(yyruleno==365); |
| 183623 | + /* (366) typetoken ::= typename */ yytestcase(yyruleno==366); |
| 183624 | + /* (367) typename ::= ID|STRING */ yytestcase(yyruleno==367); |
| 183625 | + /* (368) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=368); |
| 183626 | + /* (369) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=369); |
| 183627 | + /* (370) carglist ::= carglist ccons */ yytestcase(yyruleno==370); |
| 183628 | + /* (371) carglist ::= */ yytestcase(yyruleno==371); |
| 183629 | + /* (372) ccons ::= NULL onconf */ yytestcase(yyruleno==372); |
| 183630 | + /* (373) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==373); |
| 183631 | + /* (374) ccons ::= AS generated */ yytestcase(yyruleno==374); |
| 183632 | + /* (375) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==375); |
| 183633 | + /* (376) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==376); |
| 183634 | + /* (377) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=377); |
| 183635 | + /* (378) tconscomma ::= */ yytestcase(yyruleno==378); |
| 183636 | + /* (379) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=379); |
| 183637 | + /* (380) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=380); |
| 183638 | + /* (381) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=381); |
| 183639 | + /* (382) oneselect ::= values */ yytestcase(yyruleno==382); |
| 183640 | + /* (383) sclp ::= selcollist COMMA */ yytestcase(yyruleno==383); |
| 183641 | + /* (384) as ::= ID|STRING */ yytestcase(yyruleno==384); |
| 183642 | + /* (385) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=385); |
| 183643 | + /* (386) returning ::= */ yytestcase(yyruleno==386); |
| 183644 | + /* (387) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=387); |
| 183645 | + /* (388) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==388); |
| 183646 | + /* (389) case_operand ::= expr */ yytestcase(yyruleno==389); |
| 183647 | + /* (390) exprlist ::= nexprlist */ yytestcase(yyruleno==390); |
| 183648 | + /* (391) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=391); |
| 183649 | + /* (392) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=392); |
| 183650 | + /* (393) nmnum ::= ON */ yytestcase(yyruleno==393); |
| 183651 | + /* (394) nmnum ::= DELETE */ yytestcase(yyruleno==394); |
| 183652 | + /* (395) nmnum ::= DEFAULT */ yytestcase(yyruleno==395); |
| 183653 | + /* (396) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==396); |
| 183654 | + /* (397) foreach_clause ::= */ yytestcase(yyruleno==397); |
| 183655 | + /* (398) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==398); |
| 183656 | + /* (399) trnm ::= nm */ yytestcase(yyruleno==399); |
| 183657 | + /* (400) tridxby ::= */ yytestcase(yyruleno==400); |
| 183658 | + /* (401) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==401); |
| 183659 | + /* (402) database_kw_opt ::= */ yytestcase(yyruleno==402); |
| 183660 | + /* (403) kwcolumn_opt ::= */ yytestcase(yyruleno==403); |
| 183661 | + /* (404) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==404); |
| 183662 | + /* (405) vtabarglist ::= vtabarg */ yytestcase(yyruleno==405); |
| 183663 | + /* (406) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==406); |
| 183664 | + /* (407) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==407); |
| 183665 | + /* (408) anylist ::= */ yytestcase(yyruleno==408); |
| 183666 | + /* (409) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==409); |
| 183667 | + /* (410) anylist ::= anylist ANY */ yytestcase(yyruleno==410); |
| 183668 | + /* (411) with ::= */ yytestcase(yyruleno==411); |
| 183669 | + /* (412) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=412); |
| 183670 | + /* (413) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=413); |
| 182866 | 183671 | break; |
| 182867 | 183672 | /********** End reduce actions ************************************************/ |
| 182868 | 183673 | }; |
| 182869 | 183674 | assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) ); |
| 182870 | 183675 | yygoto = yyRuleInfoLhs[yyruleno]; |
| | @@ -260458,11 +261263,11 @@ |
| 260458 | 261263 | int nArg, /* Number of args */ |
| 260459 | 261264 | sqlite3_value **apUnused /* Function arguments */ |
| 260460 | 261265 | ){ |
| 260461 | 261266 | assert( nArg==0 ); |
| 260462 | 261267 | UNUSED_PARAM2(nArg, apUnused); |
| 260463 | | - sqlite3_result_text(pCtx, "fts5: 2025-11-19 19:37:28 b65b29656c835db22557733f4dcfe906bf21a7a3c36266cbbc7e3277f029b901", -1, SQLITE_TRANSIENT); |
| 261268 | + sqlite3_result_text(pCtx, "fts5: 2025-11-21 17:30:44 8a230e4da230a7b103749b069a99a58e4c220873c2f9576abdc928c3538d70b3", -1, SQLITE_TRANSIENT); |
| 260464 | 261269 | } |
| 260465 | 261270 | |
| 260466 | 261271 | /* |
| 260467 | 261272 | ** Implementation of fts5_locale(LOCALE, TEXT) function. |
| 260468 | 261273 | ** |
| 260469 | 261274 | |