SQLite Android Bindings
Check-in [1064adb2bb]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update this project to SQLite version 3.23.1.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:1064adb2bbf1951f850d8246db13dcc3eb69f621
User & Date: dan 2018-04-10 18:04:13
Context
2018-06-04
19:55
Update this project to version 3.24.0. check-in: 6f830dd323 user: dan tags: trunk
2018-04-10
18:04
Update this project to SQLite version 3.23.1. check-in: 1064adb2bb user: dan tags: trunk
2018-04-02
11:10
Update this project to version 3.23.0. check-in: b085f3f1fc user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to sqlite3/src/main/jni/sqlite/sqlite3.c.

     1      1   /******************************************************************************
     2      2   ** This file is an amalgamation of many separate C source files from SQLite
     3         -** version 3.23.0.  By combining all the individual C code files into this
            3  +** version 3.23.1.  By combining all the individual C code files into this
     4      4   ** single large file, the entire code can be compiled as a single translation
     5      5   ** unit.  This allows many compilers to do optimizations that would not be
     6      6   ** possible if the files were compiled separately.  Performance improvements
     7      7   ** of 5% or more are commonly seen when SQLite is compiled as a single
     8      8   ** translation unit.
     9      9   **
    10     10   ** This file is all you need to compile SQLite.  To use SQLite in other
................................................................................
  1143   1143   ** been edited in any way since it was last checked in, then the last
  1144   1144   ** four hexadecimal digits of the hash may be modified.
  1145   1145   **
  1146   1146   ** See also: [sqlite3_libversion()],
  1147   1147   ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
  1148   1148   ** [sqlite_version()] and [sqlite_source_id()].
  1149   1149   */
  1150         -#define SQLITE_VERSION        "3.23.0"
  1151         -#define SQLITE_VERSION_NUMBER 3023000
  1152         -#define SQLITE_SOURCE_ID      "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
         1150  +#define SQLITE_VERSION        "3.23.1"
         1151  +#define SQLITE_VERSION_NUMBER 3023001
         1152  +#define SQLITE_SOURCE_ID      "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
  1153   1153   
  1154   1154   /*
  1155   1155   ** CAPI3REF: Run-Time Library Version Numbers
  1156   1156   ** KEYWORDS: sqlite3_version sqlite3_sourceid
  1157   1157   **
  1158   1158   ** These interfaces provide the same information as the [SQLITE_VERSION],
  1159   1159   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
 11126  11126   ** may set (*ppRebase) to point to a "rebase" that may be used with the 
 11127  11127   ** sqlite3_rebaser APIs buffer before returning. In this case (*pnRebase)
 11128  11128   ** is set to the size of the buffer in bytes. It is the responsibility of the
 11129  11129   ** caller to eventually free any such buffer using sqlite3_free(). The buffer
 11130  11130   ** is only allocated and populated if one or more conflicts were encountered
 11131  11131   ** while applying the patchset. See comments surrounding the sqlite3_rebaser
 11132  11132   ** APIs for further details.
        11133  +**
        11134  +** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
        11135  +** may be modified by passing a combination of
        11136  +** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
        11137  +**
        11138  +** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
        11139  +** and therefore subject to change.
 11133  11140   */
 11134  11141   SQLITE_API int sqlite3changeset_apply(
 11135  11142     sqlite3 *db,                    /* Apply change to "main" db of this handle */
 11136  11143     int nChangeset,                 /* Size of changeset in bytes */
 11137  11144     void *pChangeset,               /* Changeset blob */
 11138  11145     int(*xFilter)(
 11139  11146       void *pCtx,                   /* Copy of sixth arg to _apply() */
................................................................................
 11156  11163     ),
 11157  11164     int(*xConflict)(
 11158  11165       void *pCtx,                   /* Copy of sixth arg to _apply() */
 11159  11166       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
 11160  11167       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
 11161  11168     ),
 11162  11169     void *pCtx,                     /* First argument passed to xConflict */
 11163         -  void **ppRebase, int *pnRebase
        11170  +  void **ppRebase, int *pnRebase, /* OUT: Rebase data */
        11171  +  int flags                       /* Combination of SESSION_APPLY_* flags */
 11164  11172   );
 11165  11173   
        11174  +/*
        11175  +** CAPI3REF: Flags for sqlite3changeset_apply_v2
        11176  +**
        11177  +** The following flags may passed via the 9th parameter to
        11178  +** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
        11179  +**
        11180  +** <dl>
        11181  +** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
        11182  +**   Usually, the sessions module encloses all operations performed by
        11183  +**   a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
        11184  +**   SAVEPOINT is committed if the changeset or patchset is successfully
        11185  +**   applied, or rolled back if an error occurs. Specifying this flag
        11186  +**   causes the sessions module to omit this savepoint. In this case, if the
        11187  +**   caller has an open transaction or savepoint when apply_v2() is called, 
        11188  +**   it may revert the partially applied changeset by rolling it back.
        11189  +*/
        11190  +#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT   0x0001
        11191  +
 11166  11192   /* 
 11167  11193   ** CAPI3REF: Constants Passed To The Conflict Handler
 11168  11194   **
 11169  11195   ** Values that may be passed as the second argument to a conflict-handler.
 11170  11196   **
 11171  11197   ** <dl>
 11172  11198   ** <dt>SQLITE_CHANGESET_DATA<dd>
................................................................................
 11419  11445   **
 11420  11446   ** The six streaming API xxx_strm() functions serve similar purposes to the 
 11421  11447   ** corresponding non-streaming API functions:
 11422  11448   **
 11423  11449   ** <table border=1 style="margin-left:8ex;margin-right:8ex">
 11424  11450   **   <tr><th>Streaming function<th>Non-streaming equivalent</th>
 11425  11451   **   <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply] 
        11452  +**   <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2] 
 11426  11453   **   <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat] 
 11427  11454   **   <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert] 
 11428  11455   **   <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start] 
 11429  11456   **   <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset] 
 11430  11457   **   <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset] 
 11431  11458   ** </table>
 11432  11459   **
................................................................................
 11528  11555     ),
 11529  11556     int(*xConflict)(
 11530  11557       void *pCtx,                   /* Copy of sixth arg to _apply() */
 11531  11558       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
 11532  11559       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
 11533  11560     ),
 11534  11561     void *pCtx,                     /* First argument passed to xConflict */
 11535         -  void **ppRebase, int *pnRebase
        11562  +  void **ppRebase, int *pnRebase,
        11563  +  int flags
 11536  11564   );
 11537  11565   SQLITE_API int sqlite3changeset_concat_strm(
 11538  11566     int (*xInputA)(void *pIn, void *pData, int *pnData),
 11539  11567     void *pInA,
 11540  11568     int (*xInputB)(void *pIn, void *pData, int *pnData),
 11541  11569     void *pInB,
 11542  11570     int (*xOutput)(void *pOut, const void *pData, int nData),
................................................................................
 21283  21311   ** and we need to know about the failures.  Use sqlite3OsFileControlHint()
 21284  21312   ** when simply tossing information over the wall to the VFS and we do not
 21285  21313   ** really care if the VFS receives and understands the information since it
 21286  21314   ** is only a hint and can be safely ignored.  The sqlite3OsFileControlHint()
 21287  21315   ** routine has no return value since the return value would be meaningless.
 21288  21316   */
 21289  21317   SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){
        21318  +  if( id->pMethods==0 ) return SQLITE_NOTFOUND;
 21290  21319   #ifdef SQLITE_TEST
 21291  21320     if( op!=SQLITE_FCNTL_COMMIT_PHASETWO
 21292  21321      && op!=SQLITE_FCNTL_LOCK_TIMEOUT
 21293  21322     ){
 21294  21323       /* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite
 21295  21324       ** is using a regular VFS, it is called after the corresponding
 21296  21325       ** transaction has been committed. Injecting a fault at this point
................................................................................
 21300  21329       ** The core must call OsFileControl() though, not OsFileControlHint(),
 21301  21330       ** as if a custom VFS (e.g. zipvfs) returns an error here, it probably
 21302  21331       ** means the commit really has failed and an error should be returned
 21303  21332       ** to the user.  */
 21304  21333       DO_OS_MALLOC_TEST(id);
 21305  21334     }
 21306  21335   #endif
 21307         -  if( id->pMethods==0 ) return SQLITE_NOTFOUND;
 21308  21336     return id->pMethods->xFileControl(id, op, pArg);
 21309  21337   }
 21310  21338   SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){
 21311  21339     if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg);
 21312  21340   }
 21313  21341   
 21314  21342   SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id){
................................................................................
 98996  99024     ** a later stage of processing, so the TK_AGG_FUNCTION case does not
 98997  99025     ** need to be considered here. */
 98998  99026     assert( pExpr->op!=TK_AGG_COLUMN );
 98999  99027     testcase( pExpr->op==TK_AGG_FUNCTION );
 99000  99028   
 99001  99029     if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune;
 99002  99030     switch( pExpr->op ){
        99031  +    case TK_ISNOT:
        99032  +    case TK_NOT:
 99003  99033       case TK_ISNULL:
 99004  99034       case TK_IS:
 99005  99035       case TK_OR:
 99006  99036       case TK_CASE:
 99007  99037       case TK_IN:
 99008  99038       case TK_FUNCTION:
        99039  +      testcase( pExpr->op==TK_ISNOT );
        99040  +      testcase( pExpr->op==TK_NOT );
 99009  99041         testcase( pExpr->op==TK_ISNULL );
 99010  99042         testcase( pExpr->op==TK_IS );
 99011  99043         testcase( pExpr->op==TK_OR );
 99012  99044         testcase( pExpr->op==TK_CASE );
 99013  99045         testcase( pExpr->op==TK_IN );
 99014  99046         testcase( pExpr->op==TK_FUNCTION );
 99015  99047         return WRC_Prune;
 99016  99048       case TK_COLUMN:
 99017  99049         if( pWalker->u.iCur==pExpr->iTable ){
 99018  99050           pWalker->eCode = 1;
 99019  99051           return WRC_Abort;
 99020  99052         }
 99021  99053         return WRC_Prune;
        99054  +
        99055  +    /* Virtual tables are allowed to use constraints like x=NULL.  So
        99056  +    ** a term of the form x=y does not prove that y is not null if x
        99057  +    ** is the column of a virtual table */
        99058  +    case TK_EQ:
        99059  +    case TK_NE:
        99060  +    case TK_LT:
        99061  +    case TK_LE:
        99062  +    case TK_GT:
        99063  +    case TK_GE:
        99064  +      testcase( pExpr->op==TK_EQ );
        99065  +      testcase( pExpr->op==TK_NE );
        99066  +      testcase( pExpr->op==TK_LT );
        99067  +      testcase( pExpr->op==TK_LE );
        99068  +      testcase( pExpr->op==TK_GT );
        99069  +      testcase( pExpr->op==TK_GE );
        99070  +      if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->pTab))
        99071  +       || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->pTab))
        99072  +      ){
        99073  +       return WRC_Prune;
        99074  +      }
 99022  99075       default:
 99023  99076         return WRC_Continue;
 99024  99077     }
 99025  99078   }
 99026  99079   
 99027  99080   /*
 99028  99081   ** Return true (non-zero) if expression p can only be true if at least
................................................................................
104602 104655   ** the schema-version whenever the schema changes.
104603 104656   */
104604 104657   SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
104605 104658     sqlite3 *db = pParse->db;
104606 104659     Vdbe *v = pParse->pVdbe;
104607 104660     assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
104608 104661     sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION, 
104609         -                    db->aDb[iDb].pSchema->schema_cookie+1);
       104662  +                   (int)(1+(unsigned)db->aDb[iDb].pSchema->schema_cookie));
104610 104663   }
104611 104664   
104612 104665   /*
104613 104666   ** Measure the number of characters needed to output the given
104614 104667   ** identifier.  The number returned includes any quotes used
104615 104668   ** but does not include the null terminator.
104616 104669   **
................................................................................
124591 124644     }
124592 124645     assert( p->pSrc!=0 );
124593 124646     if( (selFlags & SF_Expanded)!=0 ){
124594 124647       return WRC_Prune;
124595 124648     }
124596 124649     pTabList = p->pSrc;
124597 124650     pEList = p->pEList;
124598         -  if( OK_IF_ALWAYS_TRUE(p->pWith) ){
124599         -    sqlite3WithPush(pParse, p->pWith, 0);
124600         -  }
       124651  +  sqlite3WithPush(pParse, p->pWith, 0);
124601 124652   
124602 124653     /* Make sure cursor numbers have been assigned to all entries in
124603 124654     ** the FROM clause of the SELECT statement.
124604 124655     */
124605 124656     sqlite3SrcListAssignCursors(pParse, pTabList);
124606 124657   
124607 124658     /* Look up every table named in the FROM clause of the select.  If
................................................................................
128056 128107       assert( pPk!=0 );
128057 128108       nPk = pPk->nKeyCol;
128058 128109       iPk = pParse->nMem+1;
128059 128110       pParse->nMem += nPk;
128060 128111       regKey = ++pParse->nMem;
128061 128112       iEph = pParse->nTab++;
128062 128113   
128063         -    sqlite3VdbeAddOp2(v, OP_Null, 0, iPk);
       128114  +    sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1);
128064 128115       addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk);
128065 128116       sqlite3VdbeSetP4KeyInfo(pParse, pPk);
128066 128117     }
128067 128118   
128068 128119     /* Begin the database scan. 
128069 128120     **
128070 128121     ** Do not consider a single-pass strategy for a multi-row update if
................................................................................
130228 130279   ** a separate source file for easier editing.
130229 130280   */
130230 130281   
130231 130282   /*
130232 130283   ** Trace output macros
130233 130284   */
130234 130285   #if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)
130235         -/***/ int sqlite3WhereTrace;
       130286  +/***/ extern int sqlite3WhereTrace;
130236 130287   #endif
130237 130288   #if defined(SQLITE_DEBUG) \
130238 130289       && (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_WHERETRACE))
130239 130290   # define WHERETRACE(K,X)  if(sqlite3WhereTrace&(K)) sqlite3DebugPrintf X
130240 130291   # define WHERETRACE_ENABLED 1
130241 130292   #else
130242 130293   # define WHERETRACE(K,X)
................................................................................
136881 136932     int rc = SQLITE_OK;             /* Return code */
136882 136933     LogEst rSize;                   /* Number of rows in the table */
136883 136934     LogEst rLogSize;                /* Logarithm of table size */
136884 136935     WhereTerm *pTop = 0, *pBtm = 0; /* Top and bottom range constraints */
136885 136936   
136886 136937     pNew = pBuilder->pNew;
136887 136938     if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;
136888         -  WHERETRACE(0x800, ("BEGIN addBtreeIdx(%s), nEq=%d\n",
136889         -                     pProbe->zName, pNew->u.btree.nEq));
       136939  +  WHERETRACE(0x800, ("BEGIN %s.addBtreeIdx(%s), nEq=%d\n",
       136940  +                     pProbe->pTable->zName,pProbe->zName, pNew->u.btree.nEq));
136890 136941   
136891 136942     assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 );
136892 136943     assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 );
136893 136944     if( pNew->wsFlags & WHERE_BTM_LIMIT ){
136894 136945       opMask = WO_LT|WO_LE;
136895 136946     }else{
136896 136947       assert( pNew->u.btree.nBtm==0 );
................................................................................
137168 137219       whereLoopAddBtreeIndex(pBuilder, pSrc, pProbe, nIter + nInMul);
137169 137220       pNew->nOut = saved_nOut;
137170 137221       pNew->u.btree.nEq = saved_nEq;
137171 137222       pNew->nSkip = saved_nSkip;
137172 137223       pNew->wsFlags = saved_wsFlags;
137173 137224     }
137174 137225   
137175         -  WHERETRACE(0x800, ("END addBtreeIdx(%s), nEq=%d, rc=%d\n",
137176         -                      pProbe->zName, saved_nEq, rc));
       137226  +  WHERETRACE(0x800, ("END %s.addBtreeIdx(%s), nEq=%d, rc=%d\n",
       137227  +                      pProbe->pTable->zName, pProbe->zName, saved_nEq, rc));
137177 137228     return rc;
137178 137229   }
137179 137230   
137180 137231   /*
137181 137232   ** Return True if it is possible that pIndex might be useful in
137182 137233   ** implementing the ORDER BY clause in pBuilder.
137183 137234   **
................................................................................
137607 137658         int j = pIdxCons->iTermOffset;
137608 137659         if( iTerm>=nConstraint
137609 137660          || j<0
137610 137661          || j>=pWC->nTerm
137611 137662          || pNew->aLTerm[iTerm]!=0
137612 137663          || pIdxCons->usable==0
137613 137664         ){
137614         -        rc = SQLITE_ERROR;
137615 137665           sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
137616         -        return rc;
       137666  +        testcase( pIdxInfo->needToFreeIdxStr );
       137667  +        return SQLITE_ERROR;
137617 137668         }
137618 137669         testcase( iTerm==nConstraint-1 );
137619 137670         testcase( j==0 );
137620 137671         testcase( j==pWC->nTerm-1 );
137621 137672         pTerm = &pWC->a[j];
137622 137673         pNew->prereq |= pTerm->prereqRight;
137623 137674         assert( iTerm<pNew->nLSlot );
................................................................................
137637 137688           *pbIn = 1; assert( (mExclude & WO_IN)==0 );
137638 137689         }
137639 137690       }
137640 137691     }
137641 137692     pNew->u.vtab.omitMask &= ~mNoOmit;
137642 137693   
137643 137694     pNew->nLTerm = mxTerm+1;
       137695  +  for(i=0; i<=mxTerm; i++){
       137696  +    if( pNew->aLTerm[i]==0 ){
       137697  +      /* The non-zero argvIdx values must be contiguous.  Raise an
       137698  +      ** error if they are not */
       137699  +      sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
       137700  +      testcase( pIdxInfo->needToFreeIdxStr );
       137701  +      return SQLITE_ERROR;
       137702  +    }
       137703  +  }
137644 137704     assert( pNew->nLTerm<=pNew->nLSlot );
137645 137705     pNew->u.vtab.idxNum = pIdxInfo->idxNum;
137646 137706     pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr;
137647 137707     pIdxInfo->needToFreeIdxStr = 0;
137648 137708     pNew->u.vtab.idxStr = pIdxInfo->idxStr;
137649 137709     pNew->u.vtab.isOrdered = (i8)(pIdxInfo->orderByConsumed ?
137650 137710         pIdxInfo->nOrderBy : 0);
................................................................................
137752 137812     nConstraint = p->nConstraint;
137753 137813     if( whereLoopResize(pParse->db, pNew, nConstraint) ){
137754 137814       sqlite3DbFree(pParse->db, p);
137755 137815       return SQLITE_NOMEM_BKPT;
137756 137816     }
137757 137817   
137758 137818     /* First call xBestIndex() with all constraints usable. */
       137819  +  WHERETRACE(0x800, ("BEGIN %s.addVirtual()\n", pSrc->pTab->zName));
137759 137820     WHERETRACE(0x40, ("  VirtualOne: all usable\n"));
137760 137821     rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn);
137761 137822   
137762 137823     /* If the call to xBestIndex() with all terms enabled produced a plan
137763 137824     ** that does not require any source tables (IOW: a plan with mBest==0),
137764 137825     ** then there is no point in making any further calls to xBestIndex() 
137765 137826     ** since they will all return the same result (if the xBestIndex()
................................................................................
137827 137888         rc = whereLoopAddVirtualOne(
137828 137889             pBuilder, mPrereq, mPrereq, WO_IN, p, mNoOmit, &bIn);
137829 137890       }
137830 137891     }
137831 137892   
137832 137893     if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);
137833 137894     sqlite3DbFreeNN(pParse->db, p);
       137895  +  WHERETRACE(0x800, ("END %s.addVirtual(), rc=%d\n", pSrc->pTab->zName, rc));
137834 137896     return rc;
137835 137897   }
137836 137898   #endif /* SQLITE_OMIT_VIRTUALTABLE */
137837 137899   
137838 137900   /*
137839 137901   ** Add WhereLoop entries to handle OR terms.  This works for either
137840 137902   ** btrees or virtual tables.
................................................................................
139967 140029   #define YYSTACKDEPTH 100
139968 140030   #endif
139969 140031   #define sqlite3ParserARG_SDECL Parse *pParse;
139970 140032   #define sqlite3ParserARG_PDECL ,Parse *pParse
139971 140033   #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
139972 140034   #define sqlite3ParserARG_STORE yypParser->pParse = pParse
139973 140035   #define YYFALLBACK 1
139974         -#define YYNSTATE             466
139975         -#define YYNRULE              330
       140036  +#define YYNSTATE             472
       140037  +#define YYNRULE              333
139976 140038   #define YYNTOKEN             143
139977         -#define YY_MAX_SHIFT         465
139978         -#define YY_MIN_SHIFTREDUCE   675
139979         -#define YY_MAX_SHIFTREDUCE   1004
139980         -#define YY_ERROR_ACTION      1005
139981         -#define YY_ACCEPT_ACTION     1006
139982         -#define YY_NO_ACTION         1007
139983         -#define YY_MIN_REDUCE        1008
139984         -#define YY_MAX_REDUCE        1337
       140039  +#define YY_MAX_SHIFT         471
       140040  +#define YY_MIN_SHIFTREDUCE   681
       140041  +#define YY_MAX_SHIFTREDUCE   1013
       140042  +#define YY_ERROR_ACTION      1014
       140043  +#define YY_ACCEPT_ACTION     1015
       140044  +#define YY_NO_ACTION         1016
       140045  +#define YY_MIN_REDUCE        1017
       140046  +#define YY_MAX_REDUCE        1349
139985 140047   /************* End control #defines *******************************************/
139986 140048   
139987 140049   /* Define the yytestcase() macro to be a no-op if is not already defined
139988 140050   ** otherwise.
139989 140051   **
139990 140052   ** Applications can choose to define yytestcase() in the %include section
139991 140053   ** to a macro that can assist in verifying code coverage.  For production
................................................................................
140043 140105   **  yy_shift_ofst[]    For each state, the offset into yy_action for
140044 140106   **                     shifting terminals.
140045 140107   **  yy_reduce_ofst[]   For each state, the offset into yy_action for
140046 140108   **                     shifting non-terminals after a reduce.
140047 140109   **  yy_default[]       Default action for each state.
140048 140110   **
140049 140111   *********** Begin parsing tables **********************************************/
140050         -#define YY_ACTTAB_COUNT (1541)
       140112  +#define YY_ACTTAB_COUNT (1566)
140051 140113   static const YYACTIONTYPE yy_action[] = {
140052         - /*     0 */  1006,  156,  156,    2, 1302,   90,   87,  179,   90,   87,
140053         - /*    10 */   179,  460, 1048,  460,  465, 1010,  460,  333, 1130,  335,
140054         - /*    20 */   246,  330,  112,  303,  439, 1258,  304,  419, 1129, 1087,
140055         - /*    30 */    72,  798,   50,   50,   50,   50,  331,   30,   30,  799,
140056         - /*    40 */   951,  364,  371,   97,   98,   88,  983,  983,  859,  862,
140057         - /*    50 */   851,  851,   95,   95,   96,   96,   96,   96,  120,  371,
140058         - /*    60 */   370,  120,  348,   22,   90,   87,  179,  438,  423,  438,
140059         - /*    70 */   440,  335,  420,  385,   90,   87,  179,  116,   73,  163,
140060         - /*    80 */   848,  848,  860,  863,   94,   94,   94,   94,   93,   93,
140061         - /*    90 */    92,   92,   92,   91,  361,   97,   98,   88,  983,  983,
140062         - /*   100 */   859,  862,  851,  851,   95,   95,   96,   96,   96,   96,
140063         - /*   110 */   718,  365,  339,   93,   93,   92,   92,   92,   91,  361,
140064         - /*   120 */    99,  371,  453,  335,   94,   94,   94,   94,   93,   93,
140065         - /*   130 */    92,   92,   92,   91,  361,  852,   94,   94,   94,   94,
140066         - /*   140 */    93,   93,   92,   92,   92,   91,  361,   97,   98,   88,
140067         - /*   150 */   983,  983,  859,  862,  851,  851,   95,   95,   96,   96,
140068         - /*   160 */    96,   96,   92,   92,   92,   91,  361,  838,  132,  195,
140069         - /*   170 */    58,  244,  412,  409,  408,  335,  457,  457,  457,  304,
140070         - /*   180 */    59,  332,  831,  407,  394,  962,  830,  391,   94,   94,
140071         - /*   190 */    94,   94,   93,   93,   92,   92,   92,   91,  361,   97,
140072         - /*   200 */    98,   88,  983,  983,  859,  862,  851,  851,   95,   95,
140073         - /*   210 */    96,   96,   96,   96,  426,  357,  460,  830,  830,  832,
140074         - /*   220 */    91,  361,  962,  963,  964,  195,  459,  335,  412,  409,
140075         - /*   230 */   408,  280,  361,  820,  132,   11,   11,   50,   50,  407,
140076         - /*   240 */    94,   94,   94,   94,   93,   93,   92,   92,   92,   91,
140077         - /*   250 */   361,   97,   98,   88,  983,  983,  859,  862,  851,  851,
140078         - /*   260 */    95,   95,   96,   96,   96,   96,  460,  221,  460,  264,
140079         - /*   270 */   375,  254,  438,  428, 1276, 1276,  383, 1074, 1053,  335,
140080         - /*   280 */   245,  422,  299,  713,  271,  271, 1074,   50,   50,   50,
140081         - /*   290 */    50,  962,   94,   94,   94,   94,   93,   93,   92,   92,
140082         - /*   300 */    92,   91,  361,   97,   98,   88,  983,  983,  859,  862,
140083         - /*   310 */   851,  851,   95,   95,   96,   96,   96,   96,   90,   87,
140084         - /*   320 */   179, 1306,  438,  437,  438,  418,  368,  253,  962,  963,
140085         - /*   330 */   964,  335,  360,  360,  360,  706,  359,  358,  324,  962,
140086         - /*   340 */  1281,  951,  364,  230,   94,   94,   94,   94,   93,   93,
140087         - /*   350 */    92,   92,   92,   91,  361,   97,   98,   88,  983,  983,
140088         - /*   360 */   859,  862,  851,  851,   95,   95,   96,   96,   96,   96,
140089         - /*   370 */   769,  460,  120,  226,  226,  366,  962,  963,  964, 1089,
140090         - /*   380 */   990,  900,  990,  335, 1057,  425,  421,  839,  759,  759,
140091         - /*   390 */   425,  427,   50,   50,  432,  381,   94,   94,   94,   94,
140092         - /*   400 */    93,   93,   92,   92,   92,   91,  361,   97,   98,   88,
140093         - /*   410 */   983,  983,  859,  862,  851,  851,   95,   95,   96,   96,
140094         - /*   420 */    96,   96,  460,  259,  460,  120,  117,  354,  942, 1332,
140095         - /*   430 */   942, 1333, 1332,  278, 1333,  335,  680,  681,  682,  825,
140096         - /*   440 */   201,  176,  303,   50,   50,   49,   49,  404,   94,   94,
140097         - /*   450 */    94,   94,   93,   93,   92,   92,   92,   91,  361,   97,
140098         - /*   460 */    98,   88,  983,  983,  859,  862,  851,  851,   95,   95,
140099         - /*   470 */    96,   96,   96,   96,  199,  460,  380,  265,  433,  380,
140100         - /*   480 */   265,  383,  256,  158,  258,  319, 1003,  335,  155,  940,
140101         - /*   490 */   177,  940,  273,  379,  276,  322,   34,   34,  302,  962,
140102         - /*   500 */    94,   94,   94,   94,   93,   93,   92,   92,   92,   91,
140103         - /*   510 */   361,   97,   98,   88,  983,  983,  859,  862,  851,  851,
140104         - /*   520 */    95,   95,   96,   96,   96,   96,  905,  905,  397,  460,
140105         - /*   530 */   301,  158,  101,  319,  941,  340,  962,  963,  964,  313,
140106         - /*   540 */   283,  449,  335,  327,  146, 1266, 1004,  257,  234,  248,
140107         - /*   550 */    35,   35,   94,   94,   94,   94,   93,   93,   92,   92,
140108         - /*   560 */    92,   91,  361,  709,  785, 1227,   97,   98,   88,  983,
140109         - /*   570 */   983,  859,  862,  851,  851,   95,   95,   96,   96,   96,
140110         - /*   580 */    96,  962, 1227, 1229,  245,  422,  838,  198,  197,  196,
140111         - /*   590 */  1079, 1079, 1077, 1077, 1004, 1334,  320,  335,  172,  171,
140112         - /*   600 */   709,  831,  159,  271,  271,  830,   76,   94,   94,   94,
140113         - /*   610 */    94,   93,   93,   92,   92,   92,   91,  361,  962,  963,
140114         - /*   620 */   964,   97,   98,   88,  983,  983,  859,  862,  851,  851,
140115         - /*   630 */    95,   95,   96,   96,   96,   96,  830,  830,  832, 1157,
140116         - /*   640 */  1157,  199, 1157,  173, 1227,  231,  232, 1282,    2,  335,
140117         - /*   650 */   271,  764,  271,  820,  271,  271,  763,  389,  389,  389,
140118         - /*   660 */   132,   79,   94,   94,   94,   94,   93,   93,   92,   92,
140119         - /*   670 */    92,   91,  361,   97,   98,   88,  983,  983,  859,  862,
140120         - /*   680 */   851,  851,   95,   95,   96,   96,   96,   96,  460,  264,
140121         - /*   690 */   223,  460, 1257,  783, 1223, 1157, 1086, 1082,   80,  271,
140122         - /*   700 */    78,  335,  340, 1031,  341,  344,  345,  902,  346,   10,
140123         - /*   710 */    10,  902,   25,   25,   94,   94,   94,   94,   93,   93,
140124         - /*   720 */    92,   92,   92,   91,  361,   97,   86,   88,  983,  983,
140125         - /*   730 */   859,  862,  851,  851,   95,   95,   96,   96,   96,   96,
140126         - /*   740 */  1157,  270,  395,  117,  233,  263,  235,   70,  456,  341,
140127         - /*   750 */   225,  176,  335, 1305,  342,  133,  736,  966,  980,  249,
140128         - /*   760 */  1150,  396,  325, 1085, 1028,  178,   94,   94,   94,   94,
140129         - /*   770 */    93,   93,   92,   92,   92,   91,  361,   98,   88,  983,
140130         - /*   780 */   983,  859,  862,  851,  851,   95,   95,   96,   96,   96,
140131         - /*   790 */    96,  783,  783,  132,  120,  966,  120,  120,  120,  798,
140132         - /*   800 */   252,  937,  335,  353,  321,  429,  355,  799,  822,  692,
140133         - /*   810 */   390,  203,  446,  450,  372,  716,  454,   94,   94,   94,
140134         - /*   820 */    94,   93,   93,   92,   92,   92,   91,  361,   88,  983,
140135         - /*   830 */   983,  859,  862,  851,  851,   95,   95,   96,   96,   96,
140136         - /*   840 */    96,   84,  455, 1225,    3, 1209,  120,  120,  382,  387,
140137         - /*   850 */   120,  203, 1271,  716,  384,  168,  266,  203,  458,   72,
140138         - /*   860 */   260, 1246,   84,  455,  178,    3,  378,   94,   94,   94,
140139         - /*   870 */    94,   93,   93,   92,   92,   92,   91,  361,  350,  458,
140140         - /*   880 */  1245,  362,  430,  213,  228,  290,  415,  285,  414,  200,
140141         - /*   890 */   783,  882,  444,  726,  725,  405,  283,  921,  209,  921,
140142         - /*   900 */   281,  132,  362,   72,  838,  289,  147,  733,  734,  392,
140143         - /*   910 */    81,   82,  922,  444,  922,  267,  288,   83,  362,  462,
140144         - /*   920 */   461,  272,  132,  830,   23,  838,  388,  923, 1216,  923,
140145         - /*   930 */  1056,   81,   82,   84,  455,  899,    3,  899,   83,  362,
140146         - /*   940 */   462,  461,  761,  962,  830,   75,    1,  443,  275,  747,
140147         - /*   950 */   458,    5,  962,  204,  830,  830,  832,  833,   18,  748,
140148         - /*   960 */   229,  962,  277,   19,  153,  317,  317,  316,  216,  314,
140149         - /*   970 */   279,  460,  689,  362, 1055,  830,  830,  832,  833,   18,
140150         - /*   980 */   962,  963,  964,  962,  444,  181,  460,  251,  981,  962,
140151         - /*   990 */   963,  964,    8,    8,   20,  250,  838, 1070,  962,  963,
140152         - /*  1000 */   964,  417,   81,   82,  768,  204,  347,   36,   36,   83,
140153         - /*  1010 */   362,  462,  461, 1054,  284,  830,   84,  455, 1123,    3,
140154         - /*  1020 */   962,  963,  964,  460,  183,  962,  981,  764,  889, 1107,
140155         - /*  1030 */   460,  184,  763,  458,  132,  182,   74,  455,  460,    3,
140156         - /*  1040 */   981,  898,  834,  898,    8,    8,  830,  830,  832,  833,
140157         - /*  1050 */    18,    8,    8,  458,  219, 1156,  362, 1103,  349,    8,
140158         - /*  1060 */     8,  240,  962,  963,  964,  236,  889,  444,  792,  336,
140159         - /*  1070 */   158,  203,  885,  435,  700,  209,  362,  114,  981,  838,
140160         - /*  1080 */   834,  227,  334, 1114,  441,   81,   82,  444,  442,  305,
140161         - /*  1090 */   784,  306,   83,  362,  462,  461,  369, 1162,  830,  838,
140162         - /*  1100 */   460, 1037,  237, 1030,  237,   81,   82,    7,   96,   96,
140163         - /*  1110 */    96,   96,   83,  362,  462,  461, 1019, 1018,  830, 1020,
140164         - /*  1120 */  1289,   37,   37,  400,   96,   96,   96,   96,   89,  830,
140165         - /*  1130 */   830,  832,  833,   18, 1100,  318,  962,  292,   94,   94,
140166         - /*  1140 */    94,   94,   93,   93,   92,   92,   92,   91,  361,  830,
140167         - /*  1150 */   830,  832,  833,   18,   94,   94,   94,   94,   93,   93,
140168         - /*  1160 */    92,   92,   92,   91,  361,  359,  358,  226,  226,  727,
140169         - /*  1170 */   294,  296,  460,  962,  963,  964,  460,  989,  160,  425,
140170         - /*  1180 */   170, 1295,  262,  460,  987,  374,  988,  386, 1145,  255,
140171         - /*  1190 */   326,  460,  373,   38,   38,  410,  174,   39,   39,  413,
140172         - /*  1200 */   460,  287,  460, 1053,   40,   40,  298,  728, 1220,  990,
140173         - /*  1210 */   445,  990,   26,   26, 1219,  460,  311,  460,  169, 1292,
140174         - /*  1220 */   460,   27,   27,   29,   29,  998,  460,  206,  135,  995,
140175         - /*  1230 */  1265, 1263,  460,   57,   60,  460,   41,   41,   42,   42,
140176         - /*  1240 */   460,   43,   43,  460,  343,  351,  460,    9,    9,  460,
140177         - /*  1250 */   144,  460,  130,   44,   44,  460,  103,  103,  460,  137,
140178         - /*  1260 */    70,   45,   45,  460,   46,   46,  460,   31,   31, 1142,
140179         - /*  1270 */    47,   47,   48,   48,  460,  376,   32,   32,  460,  122,
140180         - /*  1280 */   122,  460,  157,  460,  123,  123,  139,  124,  124,  460,
140181         - /*  1290 */   186,  460,  377,  460,  115,   54,   54,  460,  403,   33,
140182         - /*  1300 */    33,  460,  104,  104,   51,   51,  460,  161,  460,  140,
140183         - /*  1310 */   105,  105,  106,  106,  102,  102,  460,  141,  121,  121,
140184         - /*  1320 */   460,  142,  119,  119,  190,  460, 1152,  110,  110,  109,
140185         - /*  1330 */   109,  702,  460,  148,  393,   65,  460,  107,  107,  460,
140186         - /*  1340 */   323,  108,  108,  399,  460, 1234,   53,   53, 1214,  269,
140187         - /*  1350 */   154,  416, 1115,   55,   55,  220,  401,   52,   52,  191,
140188         - /*  1360 */    24,   24,  274,  192,  193,   28,   28, 1021,  328,  702,
140189         - /*  1370 */  1073,  352, 1072,  718, 1071,  431, 1111, 1064,  329, 1045,
140190         - /*  1380 */    69,  205,    6,  291, 1044,  286, 1112, 1043, 1304, 1110,
140191         - /*  1390 */   293,  300,  295,  297, 1063, 1200, 1109,   77,  241,  448,
140192         - /*  1400 */   356,  452,  436,  100,  214,   71,  434, 1027, 1093,   21,
140193         - /*  1410 */   463,  242,  243,  957,  215,  217,  218,  464,  309,  307,
140194         - /*  1420 */   308,  310, 1016,  125, 1250, 1251, 1011, 1249,  126,  127,
140195         - /*  1430 */  1248,  113,  676,  337,  238,  338,  134,  363,  167, 1041,
140196         - /*  1440 */  1040,   56,  247,  367,  180,  897,  111,  895,  136, 1038,
140197         - /*  1450 */   818,  128,  138,  750,  261,  911,  185,  143,  145,   61,
140198         - /*  1460 */    62,   63,   64,  129,  914,  187,  188,  910,  118,   12,
140199         - /*  1470 */   189,  903,  268,  992,  203,  162,  398,  150,  149,  691,
140200         - /*  1480 */   402,  288,  194,  406,  151,  411,   66,   13,  729,  239,
140201         - /*  1490 */   282,   14,   67,  131,  837,  836,  865,  758,   15,    4,
140202         - /*  1500 */    68,  762,  175,  222,  224,  424,  152,  869,  791,  202,
140203         - /*  1510 */   786,   75,   72,  880,  866,  864,   16,   17,  920,  207,
140204         - /*  1520 */   919,  208,  447,  946,  164,  211,  947,  210,  165,  451,
140205         - /*  1530 */   868,  166,  315,  835,  701,   85,  212, 1297,  312,  952,
140206         - /*  1540 */  1296,
       140114  + /*     0 */  1169, 1015,  167,  167,    1,  168,  466, 1313,  466, 1083,
       140115  + /*    10 */  1062,  466,   97,   94,  183, 1057,  466,  329, 1083,  342,
       140116  + /*    20 */    97,   94,  183,  459,  459,  459,  436,   57,   57,   57,
       140117  + /*    30 */    57,  807,   57,   57,  367,  367,  367,   57,   57,  808,
       140118  + /*    40 */  1270, 1088, 1088,  104,  105,   95,  991,  991,  868,  871,
       140119  + /*    50 */   860,  860,  102,  102,  103,  103,  103,  103,  233,  233,
       140120  + /*    60 */   326, 1011,  449,  437,  449,  446,  351,  449,  461, 1142,
       140121  + /*    70 */   463,  342,  449,  426, 1316,  209,  180,  742,   80,  299,
       140122  + /*    80 */   857,  857,  869,  872,  101,  101,  101,  101,  100,  100,
       140123  + /*    90 */    99,   99,   99,   98,  368,  104,  105,   95,  991,  991,
       140124  + /*   100 */   868,  871,  860,  860,  102,  102,  103,  103,  103,  103,
       140125  + /*   110 */    99,   99,   99,   98,  368,  355,   97,   94,  183,  228,
       140126  + /*   120 */   106, 1012,  407,  342,  101,  101,  101,  101,  100,  100,
       140127  + /*   130 */    99,   99,   99,   98,  368,  861,  101,  101,  101,  101,
       140128  + /*   140 */   100,  100,   99,   99,   99,   98,  368,  104,  105,   95,
       140129  + /*   150 */   991,  991,  868,  871,  860,  860,  102,  102,  103,  103,
       140130  + /*   160 */   103,  103,  201,  368,  375,  420,  417,  416,  387,  273,
       140131  + /*   170 */    65,   97,   94,  183,  168,  342,  415,  951, 1343,  396,
       140132  + /*   180 */    66, 1343,  320,  959,  371,  970,  334,  340,  101,  101,
       140133  + /*   190 */   101,  101,  100,  100,   99,   99,   99,   98,  368,  104,
       140134  + /*   200 */   105,   95,  991,  991,  868,  871,  860,  860,  102,  102,
       140135  + /*   210 */   103,  103,  103,  103,  373,  100,  100,   99,   99,   99,
       140136  + /*   220 */    98,  368,  970,  971,  972,  201, 1100,  342,  420,  417,
       140137  + /*   230 */   416,  287,  366,  365,  337,  970, 1162,  463,  949,  415,
       140138  + /*   240 */   101,  101,  101,  101,  100,  100,   99,   99,   99,   98,
       140139  + /*   250 */   368,  104,  105,   95,  991,  991,  868,  871,  860,  860,
       140140  + /*   260 */   102,  102,  103,  103,  103,  103,  777,  241,  233,  233,
       140141  + /*   270 */     9,  847,  970,  971,  972,  390,  998, 1141,  998,  342,
       140142  + /*   280 */   463,  252,  829,  719,   98,  368,  840,  298,  338,  142,
       140143  + /*   290 */   839,  339,  101,  101,  101,  101,  100,  100,   99,   99,
       140144  + /*   300 */    99,   98,  368,  104,  105,   95,  991,  991,  868,  871,
       140145  + /*   310 */   860,  860,  102,  102,  103,  103,  103,  103,  272,  466,
       140146  + /*   320 */   392,  839,  839,  841,   97,   94,  183,  390, 1317,  253,
       140147  + /*   330 */   456,  342,  125,  166,  807,  712,  208,  407,  386,  970,
       140148  + /*   340 */    57,   57,  808,  238,  101,  101,  101,  101,  100,  100,
       140149  + /*   350 */    99,   99,   99,   98,  368,  104,  105,   95,  991,  991,
       140150  + /*   360 */   868,  871,  860,  860,  102,  102,  103,  103,  103,  103,
       140151  + /*   370 */   466,  108,  466,  267,  465,  442,  970,  971,  972,  261,
       140152  + /*   380 */   951, 1344,  909,  342, 1344,  142,  829,  848, 1292,  959,
       140153  + /*   390 */   371,   55,   55,   57,   57,  242,  101,  101,  101,  101,
       140154  + /*   400 */   100,  100,   99,   99,   99,   98,  368,  104,  105,   95,
       140155  + /*   410 */   991,  991,  868,  871,  860,  860,  102,  102,  103,  103,
       140156  + /*   420 */   103,  103,  272,  382,  262,  253,  456,  310,  364,  253,
       140157  + /*   430 */   456,   86,  264,   84,  266,  342,  441,  176,  175,  834,
       140158  + /*   440 */   464,  949,  767,  767,  332,  313, 1094,  396,  101,  101,
       140159  + /*   450 */   101,  101,  100,  100,   99,   99,   99,   98,  368,  104,
       140160  + /*   460 */   105,   95,  991,  991,  868,  871,  860,  860,  102,  102,
       140161  + /*   470 */   103,  103,  103,  103,  227,  227,  233,  233,  233,  233,
       140162  + /*   480 */   387,  273,  234,  234,  326,  950,  463,  342,  463,  298,
       140163  + /*   490 */   463,  914,  914,  404,  463, 1037,  123,  265,   27,  970,
       140164  + /*   500 */   101,  101,  101,  101,  100,  100,   99,   99,   99,   98,
       140165  + /*   510 */   368,  104,  105,   95,  991,  991,  868,  871,  860,  860,
       140166  + /*   520 */   102,  102,  103,  103,  103,  103,  435,  233,  233,  466,
       140167  + /*   530 */   285,  686,  687,  688,  127,  271,  970,  971,  972,  463,
       140168  + /*   540 */  1345,  327,  342,  407,  157, 1012,  988,   13,   13,  181,
       140169  + /*   550 */    41,   41,  101,  101,  101,  101,  100,  100,   99,   99,
       140170  + /*   560 */    99,   98,  368,  715,  794,  378,  104,  105,   95,  991,
       140171  + /*   570 */   991,  868,  871,  860,  860,  102,  102,  103,  103,  103,
       140172  + /*   580 */   103,  970,  378,  377,  346,  239,  847, 1086, 1086,  280,
       140173  + /*   590 */  1169,  283,  204,  203,  202,  177,  298,  342,  407,  298,
       140174  + /*   600 */   715,  840,  169,  299,  407,  839,   82,  101,  101,  101,
       140175  + /*   610 */   101,  100,  100,   99,   99,   99,   98,  368,  970,  971,
       140176  + /*   620 */   972,  104,  105,   95,  991,  991,  868,  871,  860,  860,
       140177  + /*   630 */   102,  102,  103,  103,  103,  103,  839,  839,  841,  362,
       140178  + /*   640 */   240,  124, 1169,  172,  126,  378, 1269, 1169, 1066,  342,
       140179  + /*   650 */   253,  456,  407,  407,  407,  396,  352,  401,  407,  429,
       140180  + /*   660 */   398,   85,  101,  101,  101,  101,  100,  100,   99,   99,
       140181  + /*   670 */    99,   98,  368,  104,  105,   95,  991,  991,  868,  871,
       140182  + /*   680 */   860,  860,  102,  102,  103,  103,  103,  103, 1169,  466,
       140183  + /*   690 */   230,  233,  233,  792, 1235, 1095, 1091, 1293,    1,   77,
       140184  + /*   700 */   278,  342,  205,  463,  974,  911, 1040,  348,  353,  911,
       140185  + /*   710 */    42,   42,   79,  403,  101,  101,  101,  101,  100,  100,
       140186  + /*   720 */    99,   99,   99,   98,  368,  104,   93,   95,  991,  991,
       140187  + /*   730 */   868,  871,  860,  860,  102,  102,  103,  103,  103,  103,
       140188  + /*   740 */   402,    9,  974,  243,  772,  458,  348,  232,  180,  771,
       140189  + /*   750 */   946,  312,  342,  328,  363,  349,  143,  831,  389, 1278,
       140190  + /*   760 */   211,  211,   21,  347,  432,  182,  101,  101,  101,  101,
       140191  + /*   770 */   100,  100,   99,   99,   99,   98,  368,  105,   95,  991,
       140192  + /*   780 */   991,  868,  871,  860,  860,  102,  102,  103,  103,  103,
       140193  + /*   790 */   103,  792,  724,   22,  732,  731,  233,  233, 1239,  256,
       140194  + /*   800 */   391,  274,  342,  211,   79,  360,  257,  413,  463,  397,
       140195  + /*   810 */   207,  288,  260,  450,   79, 1239, 1241,  101,  101,  101,
       140196  + /*   820 */   101,  100,  100,   99,   99,   99,   98,  368,   95,  991,
       140197  + /*   830 */   991,  868,  871,  860,  860,  102,  102,  103,  103,  103,
       140198  + /*   840 */   103,   91,  457,  296,    3,  233,  233,    5,  438,  212,
       140199  + /*   850 */   331,  394,  739,  740,  295,  898,  894,  463,  460,  207,
       140200  + /*   860 */   801, 1237,  722,  211,  698,  843, 1283,  101,  101,  101,
       140201  + /*   870 */   101,  100,  100,   99,   99,   99,   98,  368, 1239,  380,
       140202  + /*   880 */   357,  369,  233,  233,  989,  219,  236,  297,  423,  292,
       140203  + /*   890 */   422,  206,  454,  898,  463,  970,   91,  457,  290,    3,
       140204  + /*   900 */   722,  142,  268,  843,  847,  466, 1258,  149,  388,  425,
       140205  + /*   910 */    88,   89,  769,  460,  930,   87,  447,   90,  369,  468,
       140206  + /*   920 */   467,  385,  989,  839, 1257,  439,   57,   57,  395,  931,
       140207  + /*   930 */  1065,  158,  970,  971,  972,  772,  369,  471, 1019,  399,
       140208  + /*   940 */   771,  253,  456,  254,  932,  119,  891,  454,  233,  233,
       140209  + /*   950 */     4,  970, 1096,  275,  839,  839,  841,  842,   19,  847,
       140210  + /*   960 */   463,  449,  448,  163,  453,   88,   89,  776,  970, 1127,
       140211  + /*   970 */   279,  930,   90,  369,  468,  467,   91,  457,  839,    3,
       140212  + /*   980 */   235, 1064,  466, 1228,  233,  233,  931,  970,  970,  971,
       140213  + /*   990 */   972,  970,  908,  460,  908,    2,  463,   81,  457,  212,
       140214  + /*  1000 */     3,  932,  282,   10,   10,  970,  971,  972,  189,  839,
       140215  + /*  1010 */   839,  841,  842,   19,  460,  284,  369,  354,  907,  286,
       140216  + /*  1020 */   907,  753,  466, 1079,  970,  971,  972,  454,  970,  971,
       140217  + /*  1030 */   972,  754,  970, 1063,  989,  372,  792,  369, 1118,  847,
       140218  + /*  1040 */   291,  452,  466,   10,   10,   88,   89,  142,  454,  168,
       140219  + /*  1050 */   300,  412,   90,  369,  468,  467,  793,  356,  839,  706,
       140220  + /*  1060 */   847,  341,  121,   10,   10,  301,   88,   89,  379,  970,
       140221  + /*  1070 */   971,  972,  989,   90,  369,  468,  467,  244,  205,  839,
       140222  + /*  1080 */  1306,  245, 1135,  245,  250, 1168, 1114,  253,  456,  839,
       140223  + /*  1090 */   839,  841,  842,   19, 1125,  237,  122,  451, 1174,  733,
       140224  + /*  1100 */   324,  324,  323,  222,  321,  466, 1046,  695,  182,  225,
       140225  + /*  1110 */   839,  839,  841,  842,   19,  103,  103,  103,  103,   96,
       140226  + /*  1120 */   185,  466,  259, 1039, 1028,  170,   10,   10, 1027,  421,
       140227  + /*  1130 */   258, 1029, 1300,  708,  792,  466,  408,  734,    8,  347,
       140228  + /*  1140 */   444,  174,   12,   12,  290,  101,  101,  101,  101,  100,
       140229  + /*  1150 */   100,   99,   99,   99,   98,  368,   32,   32,  466,  187,
       140230  + /*  1160 */   466, 1111,  103,  103,  103,  103,  188,  466,  325,  138,
       140231  + /*  1170 */   186,  708,  303,  305,  307,  358,  970,  270,  393,   43,
       140232  + /*  1180 */    43,   44,   44, 1157,  333,  178,  418,  294,   45,   45,
       140233  + /*  1190 */  1232,  318,  101,  101,  101,  101,  100,  100,   99,   99,
       140234  + /*  1200 */    99,   98,  368,  381,  343,  366,  365,  466,  263,  253,
       140235  + /*  1210 */   456,  466, 1062,  970,  971,  972, 1231,  997,  309,  466,
       140236  + /*  1220 */   455,  466,  427,  466,  995,  173,  996, 1303,   46,   46,
       140237  + /*  1230 */   145,  376,   37,   37, 1006, 1277,  466,  214, 1275,   64,
       140238  + /*  1240 */    47,   47,   33,   33,   34,   34, 1003,   67,  466,  998,
       140239  + /*  1250 */   350,  998,  466,  155,  233,  233,  466,   36,   36,   24,
       140240  + /*  1260 */   140,   77, 1154,  466,  383,  466,  463,  428,  466,   48,
       140241  + /*  1270 */    48,  466,  147,   49,   49,  466,  150,   50,   50,  466,
       140242  + /*  1280 */   151,  152,  466,  384,   11,   11,   51,   51,  466,  110,
       140243  + /*  1290 */   110,  153,   52,   52,  411,  466,   38,   38,  466,  191,
       140244  + /*  1300 */    53,   53,  466,   54,   54,  466,  400,  466,  330,   39,
       140245  + /*  1310 */    39,  466, 1164,  466,   25,  466,   56,   56,  466,  131,
       140246  + /*  1320 */   131,   72,  466,  132,  132,  159,  133,  133,   61,   61,
       140247  + /*  1330 */  1226,  195,   40,   40,  111,  111,   58,   58,  406,  112,
       140248  + /*  1340 */   112,  466,  277,  113,  113,  466,  226,  466, 1246,  466,
       140249  + /*  1350 */   197,  466,  164,  466,  409,  466,  198,  466,  199,  466,
       140250  + /*  1360 */   335,  281,  109,  109,  466, 1030,  130,  130,  129,  129,
       140251  + /*  1370 */   117,  117,  116,  116,  114,  114,  115,  115,   60,   60,
       140252  + /*  1380 */    62,   62,  466,  359,  466,   59,   59,  424, 1082, 1081,
       140253  + /*  1390 */  1080,  724, 1073, 1054,  336,  293, 1053, 1052, 1315,  431,
       140254  + /*  1400 */   361,   76,  248,   31,   31,   35,   35, 1072,  249,  440,
       140255  + /*  1410 */   302,  434,  213, 1122,    6,  311, 1212,  107,   83,  251,
       140256  + /*  1420 */    78, 1123,  445,  220,  443, 1036,  304,   23, 1121,  469,
       140257  + /*  1430 */   965,  221,  223, 1104,  314,  224,  344,  317,  315,  316,
       140258  + /*  1440 */   470,  306, 1025, 1120,  308, 1262, 1020,  134,  120,  246,
       140259  + /*  1450 */   682,  370,  171,  255, 1263,  135,  184, 1261, 1260,  374,
       140260  + /*  1460 */   118,  906,  904,  827, 1050,  146,  136,  137,  148, 1049,
       140261  + /*  1470 */    63, 1047,  756,  190,  269,  920,  154,  156,   68,   69,
       140262  + /*  1480 */    70,   71,  139,  923,  192,  193,  144,  919,  345,  128,
       140263  + /*  1490 */    14,  194,  276,  211, 1000,  405,  196,  161,  912,  160,
       140264  + /*  1500 */    26,  697,  410,  295,  200,  289,  414,  162,  419,   73,
       140265  + /*  1510 */    15,   16,  141,   74,   28,  247,  846,  845,  735,  874,
       140266  + /*  1520 */   954,   75,  430,  955,   29,  433,  179,  229,  231,  800,
       140267  + /*  1530 */   165,  795,   87,  210,  889,   79,  875,   17,  873,  877,
       140268  + /*  1540 */   929,   18,  928,  216,  215,  878,   20,   30,  462,  844,
       140269  + /*  1550 */   707,   92,  766,  770,    7,  322,  217,  218,  319, 1308,
       140270  + /*  1560 */   960, 1016, 1016, 1016, 1016, 1307,
140207 140271   };
140208 140272   static const YYCODETYPE yy_lookahead[] = {
140209         - /*     0 */   144,  145,  146,  147,  172,  222,  223,  224,  222,  223,
140210         - /*    10 */   224,  152,  180,  152,  148,  149,  152,  173,  176,   19,
140211         - /*    20 */   154,  173,  156,  152,  163,  242,  152,  163,  176,  163,
140212         - /*    30 */    26,   31,  173,  174,  173,  174,  173,  173,  174,   39,
140213         - /*    40 */     1,    2,  152,   43,   44,   45,   46,   47,   48,   49,
140214         - /*    50 */    50,   51,   52,   53,   54,   55,   56,   57,  197,  169,
140215         - /*    60 */   170,  197,  188,  197,  222,  223,  224,  208,  209,  208,
140216         - /*    70 */   209,   19,  208,  152,  222,  223,  224,   22,   26,   24,
       140273  + /*     0 */   152,  144,  145,  146,  147,  152,  152,  172,  152,  180,
       140274  + /*    10 */   181,  152,  223,  224,  225,  180,  152,  164,  189,   19,
       140275  + /*    20 */   223,  224,  225,  168,  169,  170,  163,  173,  174,  173,
       140276  + /*    30 */   174,   31,  173,  174,  168,  169,  170,  173,  174,   39,
       140277  + /*    40 */   243,  191,  192,   43,   44,   45,   46,   47,   48,   49,
       140278  + /*    50 */    50,   51,   52,   53,   54,   55,   56,   57,  195,  196,
       140279  + /*    60 */    22,   23,  208,  209,  208,  209,  218,  208,  209,  176,
       140280  + /*    70 */   207,   19,  208,  209,   23,  212,  213,   26,   26,  152,
140217 140281    /*    80 */    46,   47,   48,   49,   84,   85,   86,   87,   88,   89,
140218 140282    /*    90 */    90,   91,   92,   93,   94,   43,   44,   45,   46,   47,
140219 140283    /*   100 */    48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
140220         - /*   110 */   106,  245,  157,   88,   89,   90,   91,   92,   93,   94,
140221         - /*   120 */    68,  231,  251,   19,   84,   85,   86,   87,   88,   89,
       140284  + /*   110 */    90,   91,   92,   93,   94,  188,  223,  224,  225,  171,
       140285  + /*   120 */    68,   83,  152,   19,   84,   85,   86,   87,   88,   89,
140222 140286    /*   130 */    90,   91,   92,   93,   94,  101,   84,   85,   86,   87,
140223 140287    /*   140 */    88,   89,   90,   91,   92,   93,   94,   43,   44,   45,
140224 140288    /*   150 */    46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
140225         - /*   160 */    56,   57,   90,   91,   92,   93,   94,   82,   79,   99,
140226         - /*   170 */    66,  200,  102,  103,  104,   19,  168,  169,  170,  152,
140227         - /*   180 */    24,  210,   97,  113,  229,   59,  101,  232,   84,   85,
       140289  + /*   160 */    56,   57,   99,   94,  194,  102,  103,  104,  109,  110,
       140290  + /*   170 */    66,  223,  224,  225,  152,   19,  113,   22,   23,  152,
       140291  + /*   180 */    24,   26,  160,    1,    2,   59,  164,  173,   84,   85,
140228 140292    /*   190 */    86,   87,   88,   89,   90,   91,   92,   93,   94,   43,
140229 140293    /*   200 */    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
140230         - /*   210 */    54,   55,   56,   57,  152,  188,  152,  132,  133,  134,
140231         - /*   220 */    93,   94,   96,   97,   98,   99,  152,   19,  102,  103,
140232         - /*   230 */   104,   23,   94,   72,   79,  173,  174,  173,  174,  113,
       140294  + /*   210 */    54,   55,   56,   57,  244,   88,   89,   90,   91,   92,
       140295  + /*   220 */    93,   94,   96,   97,   98,   99,  196,   19,  102,  103,
       140296  + /*   230 */   104,   23,   88,   89,  173,   59,  163,  207,   83,  113,
140233 140297    /*   240 */    84,   85,   86,   87,   88,   89,   90,   91,   92,   93,
140234 140298    /*   250 */    94,   43,   44,   45,   46,   47,   48,   49,   50,   51,
140235         - /*   260 */    52,   53,   54,   55,   56,   57,  152,  171,  152,  108,
140236         - /*   270 */   109,  110,  208,  209,  119,  120,  152,  180,  181,   19,
140237         - /*   280 */   119,  120,  152,   23,  152,  152,  189,  173,  174,  173,
140238         - /*   290 */   174,   59,   84,   85,   86,   87,   88,   89,   90,   91,
       140299  + /*   260 */    52,   53,   54,   55,   56,   57,   90,  240,  195,  196,
       140300  + /*   270 */   171,   82,   96,   97,   98,  152,  132,  176,  134,   19,
       140301  + /*   280 */   207,  200,   72,   23,   93,   94,   97,  152,  173,   79,
       140302  + /*   290 */   101,  210,   84,   85,   86,   87,   88,   89,   90,   91,
140239 140303    /*   300 */    92,   93,   94,   43,   44,   45,   46,   47,   48,   49,
140240         - /*   310 */    50,   51,   52,   53,   54,   55,   56,   57,  222,  223,
140241         - /*   320 */   224,  186,  208,  209,  208,  209,  194,  194,   96,   97,
140242         - /*   330 */    98,   19,  168,  169,  170,   23,   88,   89,  163,   59,
140243         - /*   340 */     0,    1,    2,  219,   84,   85,   86,   87,   88,   89,
       140304  + /*   310 */    50,   51,   52,   53,   54,   55,   56,   57,  108,  152,
       140305  + /*   320 */   152,  132,  133,  134,  223,  224,  225,  152,  186,  119,
       140306  + /*   330 */   120,   19,  197,  234,   31,   23,   26,  152,  239,   59,
       140307  + /*   340 */   173,  174,   39,  220,   84,   85,   86,   87,   88,   89,
140244 140308    /*   350 */    90,   91,   92,   93,   94,   43,   44,   45,   46,   47,
140245 140309    /*   360 */    48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
140246         - /*   370 */    90,  152,  197,  195,  196,  243,   96,   97,   98,  196,
140247         - /*   380 */   132,   11,  134,   19,  182,  207,  115,   23,  117,  118,
140248         - /*   390 */   207,  163,  173,  174,  152,  220,   84,   85,   86,   87,
       140310  + /*   370 */   152,   22,  152,   16,  152,  208,   96,   97,   98,  194,
       140311  + /*   380 */    22,   23,   11,   19,   26,   79,   72,   23,    0,    1,
       140312  + /*   390 */     2,  173,  174,  173,  174,  220,   84,   85,   86,   87,
140249 140313    /*   400 */    88,   89,   90,   91,   92,   93,   94,   43,   44,   45,
140250 140314    /*   410 */    46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
140251         - /*   420 */    56,   57,  152,   16,  152,  197,  171,  208,   22,   23,
140252         - /*   430 */    22,   23,   26,   16,   26,   19,    7,    8,    9,   23,
140253         - /*   440 */   212,  213,  152,  173,  174,  173,  174,   19,   84,   85,
       140315  + /*   420 */    56,   57,  108,  109,  110,  119,  120,  152,  208,  119,
       140316  + /*   430 */   120,  137,   75,  139,   77,   19,  152,   88,   89,   23,
       140317  + /*   440 */   115,   83,  117,  118,  163,  227,  163,  152,   84,   85,
140254 140318    /*   450 */    86,   87,   88,   89,   90,   91,   92,   93,   94,   43,
140255 140319    /*   460 */    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
140256         - /*   470 */    54,   55,   56,   57,   46,  152,  109,  110,  208,  109,
140257         - /*   480 */   110,  152,   75,  152,   77,   22,   23,   19,  233,   83,
140258         - /*   490 */   152,   83,   75,  238,   77,  164,  173,  174,  226,   59,
       140320  + /*   470 */    54,   55,   56,   57,  195,  196,  195,  196,  195,  196,
       140321  + /*   480 */   109,  110,  195,  196,   22,   23,  207,   19,  207,  152,
       140322  + /*   490 */   207,  108,  109,  110,  207,  163,   22,  140,   24,   59,
140259 140323    /*   500 */    84,   85,   86,   87,   88,   89,   90,   91,   92,   93,
140260 140324    /*   510 */    94,   43,   44,   45,   46,   47,   48,   49,   50,   51,
140261         - /*   520 */    52,   53,   54,   55,   56,   57,  108,  109,  110,  152,
140262         - /*   530 */   152,  152,   22,   22,   23,  107,   96,   97,   98,  160,
140263         - /*   540 */   112,  251,   19,  164,   22,  152,   83,  140,  219,  152,
       140325  + /*   520 */    52,   53,   54,   55,   56,   57,  152,  195,  196,  152,
       140326  + /*   530 */    16,    7,    8,    9,  197,  240,   96,   97,   98,  207,
       140327  + /*   540 */   249,  250,   19,  152,   22,   83,   26,  173,  174,  152,
140264 140328    /*   550 */   173,  174,   84,   85,   86,   87,   88,   89,   90,   91,
140265 140329    /*   560 */    92,   93,   94,   59,  124,  152,   43,   44,   45,   46,
140266 140330    /*   570 */    47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
140267         - /*   580 */    57,   59,  169,  170,  119,  120,   82,  108,  109,  110,
140268         - /*   590 */   191,  192,  191,  192,   83,  248,  249,   19,   88,   89,
       140331  + /*   580 */    57,   59,  169,  170,  157,  194,   82,  191,  192,   75,
       140332  + /*   590 */   152,   77,  108,  109,  110,   26,  152,   19,  152,  152,
140269 140333    /*   600 */    96,   97,   24,  152,  152,  101,  138,   84,   85,   86,
140270 140334    /*   610 */    87,   88,   89,   90,   91,   92,   93,   94,   96,   97,
140271 140335    /*   620 */    98,   43,   44,   45,   46,   47,   48,   49,   50,   51,
140272         - /*   630 */    52,   53,   54,   55,   56,   57,  132,  133,  134,  152,
140273         - /*   640 */   152,   46,  152,   26,  231,  194,  194,  146,  147,   19,
140274         - /*   650 */   152,  116,  152,   72,  152,  152,  121,  152,  152,  152,
140275         - /*   660 */    79,  138,   84,   85,   86,   87,   88,   89,   90,   91,
       140336  + /*   630 */    52,   53,   54,   55,   56,   57,  132,  133,  134,  188,
       140337  + /*   640 */   194,  197,  152,  123,  197,  232,  194,  152,  182,   19,
       140338  + /*   650 */   119,  120,  152,  152,  152,  152,  218,  230,  152,  163,
       140339  + /*   660 */   233,  138,   84,   85,   86,   87,   88,   89,   90,   91,
140276 140340    /*   670 */    92,   93,   94,   43,   44,   45,   46,   47,   48,   49,
140277         - /*   680 */    50,   51,   52,   53,   54,   55,   56,   57,  152,  108,
140278         - /*   690 */    23,  152,  194,   26,  194,  152,  194,  194,  137,  152,
140279         - /*   700 */   139,   19,  107,  166,  167,  218,  218,   29,  218,  173,
140280         - /*   710 */   174,   33,  173,  174,   84,   85,   86,   87,   88,   89,
       140341  + /*   680 */    50,   51,   52,   53,   54,   55,   56,   57,  152,  152,
       140342  + /*   690 */    23,  195,  196,   26,  194,  194,  194,  146,  147,  130,
       140343  + /*   700 */   194,   19,   46,  207,   59,   29,  166,  167,  218,   33,
       140344  + /*   710 */   173,  174,   26,  218,   84,   85,   86,   87,   88,   89,
140281 140345    /*   720 */    90,   91,   92,   93,   94,   43,   44,   45,   46,   47,
140282 140346    /*   730 */    48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
140283         - /*   740 */   152,  194,   64,  171,  239,  239,  239,  130,  166,  167,
140284         - /*   750 */   212,  213,   19,   23,  246,  247,   26,   59,   26,  152,
140285         - /*   760 */   163,  218,  163,  163,  163,   98,   84,   85,   86,   87,
       140347  + /*   740 */    64,  171,   97,  240,  116,  166,  167,  212,  213,  121,
       140348  + /*   750 */    23,  152,   19,   26,  218,  247,  248,   23,   23,  152,
       140349  + /*   760 */    26,   26,   22,  107,  163,   98,   84,   85,   86,   87,
140286 140350    /*   770 */    88,   89,   90,   91,   92,   93,   94,   44,   45,   46,
140287 140351    /*   780 */    47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
140288         - /*   790 */    57,  124,   26,   79,  197,   97,  197,  197,  197,   31,
140289         - /*   800 */   152,   23,   19,   19,   26,   19,  218,   39,   23,   21,
140290         - /*   810 */   238,   26,  163,  163,  100,   59,  163,   84,   85,   86,
       140352  + /*   790 */    57,  124,  106,   53,  100,  101,  195,  196,  152,  152,
       140353  + /*   800 */    23,   23,   19,   26,   26,   19,  152,   23,  207,  239,
       140354  + /*   810 */    26,   23,  152,  163,   26,  169,  170,   84,   85,   86,
140291 140355    /*   820 */    87,   88,   89,   90,   91,   92,   93,   94,   45,   46,
140292 140356    /*   830 */    47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
140293         - /*   840 */    57,   19,   20,  152,   22,   23,  197,  197,   23,   19,
140294         - /*   850 */   197,   26,  152,   97,   23,  123,   23,   26,   36,   26,
140295         - /*   860 */   152,  152,   19,   20,   98,   22,   78,   84,   85,   86,
140296         - /*   870 */    87,   88,   89,   90,   91,   92,   93,   94,   94,   36,
140297         - /*   880 */   152,   59,   96,   99,  100,  101,  102,  103,  104,  105,
140298         - /*   890 */   124,  103,   70,  100,  101,   23,  112,   12,   26,   12,
140299         - /*   900 */    23,   79,   59,   26,   82,  101,   22,    7,    8,  152,
140300         - /*   910 */    88,   89,   27,   70,   27,  152,  112,   95,   96,   97,
140301         - /*   920 */    98,  152,   79,  101,   22,   82,   96,   42,  140,   42,
140302         - /*   930 */   182,   88,   89,   19,   20,  132,   22,  134,   95,   96,
140303         - /*   940 */    97,   98,   23,   59,  101,   26,   22,   62,  152,   62,
140304         - /*   950 */    36,   22,   59,   24,  132,  133,  134,  135,  136,   72,
140305         - /*   960 */     5,   59,  152,   22,   71,   10,   11,   12,   13,   14,
140306         - /*   970 */   152,  152,   17,   59,  182,  132,  133,  134,  135,  136,
140307         - /*   980 */    96,   97,   98,   59,   70,   30,  152,   32,   59,   96,
140308         - /*   990 */    97,   98,  173,  174,   53,   40,   82,  152,   96,   97,
140309         - /*  1000 */    98,   90,   88,   89,   90,   24,  187,  173,  174,   95,
140310         - /*  1010 */    96,   97,   98,  152,  152,  101,   19,   20,  152,   22,
140311         - /*  1020 */    96,   97,   98,  152,   69,   59,   97,  116,   59,  214,
140312         - /*  1030 */   152,   76,  121,   36,   79,   80,   19,   20,  152,   22,
140313         - /*  1040 */    59,  132,   59,  134,  173,  174,  132,  133,  134,  135,
140314         - /*  1050 */   136,  173,  174,   36,  234,  152,   59,  152,  187,  173,
140315         - /*  1060 */   174,  211,   96,   97,   98,  187,   97,   70,   23,  114,
140316         - /*  1070 */   152,   26,   23,  187,   23,   26,   59,   26,   97,   82,
140317         - /*  1080 */    97,   22,  164,  152,  152,   88,   89,   70,  192,  152,
140318         - /*  1090 */   124,  152,   95,   96,   97,   98,  141,  152,  101,   82,
140319         - /*  1100 */   152,  152,  184,  152,  186,   88,   89,  199,   54,   55,
140320         - /*  1110 */    56,   57,   95,   96,   97,   98,  152,  152,  101,  152,
140321         - /*  1120 */   152,  173,  174,  235,   54,   55,   56,   57,   58,  132,
140322         - /*  1130 */   133,  134,  135,  136,  211,  150,   59,  211,   84,   85,
140323         - /*  1140 */    86,   87,   88,   89,   90,   91,   92,   93,   94,  132,
140324         - /*  1150 */   133,  134,  135,  136,   84,   85,   86,   87,   88,   89,
140325         - /*  1160 */    90,   91,   92,   93,   94,   88,   89,  195,  196,   35,
140326         - /*  1170 */   211,  211,  152,   96,   97,   98,  152,  100,  198,  207,
140327         - /*  1180 */   171,  122,  240,  152,  107,  215,  109,  240,  202,  215,
140328         - /*  1190 */   202,  152,  220,  173,  174,  177,  185,  173,  174,   65,
140329         - /*  1200 */   152,  176,  152,  181,  173,  174,  215,   73,  176,  132,
140330         - /*  1210 */   228,  134,  173,  174,  176,  152,  201,  152,  199,  155,
140331         - /*  1220 */   152,  173,  174,  173,  174,   60,  152,  122,  244,   38,
140332         - /*  1230 */   159,  159,  152,  241,  241,  152,  173,  174,  173,  174,
140333         - /*  1240 */   152,  173,  174,  152,  159,  111,  152,  173,  174,  152,
140334         - /*  1250 */    22,  152,   43,  173,  174,  152,  173,  174,  152,  190,
140335         - /*  1260 */   130,  173,  174,  152,  173,  174,  152,  173,  174,  202,
140336         - /*  1270 */   173,  174,  173,  174,  152,   18,  173,  174,  152,  173,
140337         - /*  1280 */   174,  152,  221,  152,  173,  174,  193,  173,  174,  152,
140338         - /*  1290 */   158,  152,  159,  152,   22,  173,  174,  152,   18,  173,
140339         - /*  1300 */   174,  152,  173,  174,  173,  174,  152,  221,  152,  193,
140340         - /*  1310 */   173,  174,  173,  174,  173,  174,  152,  193,  173,  174,
140341         - /*  1320 */   152,  193,  173,  174,  158,  152,  190,  173,  174,  173,
140342         - /*  1330 */   174,   59,  152,  190,  159,  137,  152,  173,  174,  152,
140343         - /*  1340 */   202,  173,  174,   61,  152,  237,  173,  174,  202,  236,
140344         - /*  1350 */    22,  107,  159,  173,  174,  159,  178,  173,  174,  158,
140345         - /*  1360 */   173,  174,  159,  158,  158,  173,  174,  159,  178,   97,
140346         - /*  1370 */   175,   63,  175,  106,  175,  125,  217,  183,  178,  175,
140347         - /*  1380 */   107,  159,   22,  216,  177,  175,  217,  175,  175,  217,
140348         - /*  1390 */   216,  159,  216,  216,  183,  225,  217,  137,  227,  178,
140349         - /*  1400 */    94,  178,  126,  129,   25,  128,  127,  162,  206,   26,
140350         - /*  1410 */   161,  230,  230,   13,  153,  153,    6,  151,  203,  205,
140351         - /*  1420 */   204,  202,  151,  165,  171,  171,  151,  171,  165,  165,
140352         - /*  1430 */   171,  179,    4,  250,  179,  250,  247,    3,   22,  171,
140353         - /*  1440 */   171,  171,  142,   81,   15,   23,   16,   23,  131,  171,
140354         - /*  1450 */   120,  111,  123,   20,   16,    1,  125,  123,  131,   53,
140355         - /*  1460 */    53,   53,   53,  111,   96,   34,  122,    1,    5,   22,
140356         - /*  1470 */   107,   67,  140,   74,   26,   24,   41,  107,   67,   20,
140357         - /*  1480 */    19,  112,  105,   66,   22,   66,   22,   22,   28,   66,
140358         - /*  1490 */    23,   22,   22,   37,   23,   23,   23,  116,   22,   22,
140359         - /*  1500 */    26,   23,  122,   23,   23,   26,   22,   11,   96,   34,
140360         - /*  1510 */   124,   26,   26,   23,   23,   23,   34,   34,   23,   26,
140361         - /*  1520 */    23,   22,   24,   23,   22,  122,   23,   26,   22,   24,
140362         - /*  1530 */    23,   22,   15,   23,   23,   22,  122,  122,   23,    1,
140363         - /*  1540 */   122,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140364         - /*  1550 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140365         - /*  1560 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
       140357  + /*   840 */    57,   19,   20,  101,   22,  195,  196,   22,   19,   24,
       140358  + /*   850 */   163,   19,    7,    8,  112,   59,   23,  207,   36,   26,
       140359  + /*   860 */    23,  152,   59,   26,   21,   59,  152,   84,   85,   86,
       140360  + /*   870 */    87,   88,   89,   90,   91,   92,   93,   94,  232,  221,
       140361  + /*   880 */    94,   59,  195,  196,   59,   99,  100,  101,  102,  103,
       140362  + /*   890 */   104,  105,   70,   97,  207,   59,   19,   20,  112,   22,
       140363  + /*   900 */    97,   79,  152,   97,   82,  152,  152,   71,  221,   90,
       140364  + /*   910 */    88,   89,   23,   36,   12,   26,  163,   95,   96,   97,
       140365  + /*   920 */    98,   78,   97,  101,  152,   96,  173,  174,   96,   27,
       140366  + /*   930 */   182,   22,   96,   97,   98,  116,   59,  148,  149,  152,
       140367  + /*   940 */   121,  119,  120,  154,   42,  156,  103,   70,  195,  196,
       140368  + /*   950 */    22,   59,  163,  152,  132,  133,  134,  135,  136,   82,
       140369  + /*   960 */   207,  208,  209,   71,   62,   88,   89,   90,   59,  152,
       140370  + /*   970 */   152,   12,   95,   96,   97,   98,   19,   20,  101,   22,
       140371  + /*   980 */    22,  182,  152,  140,  195,  196,   27,   59,   96,   97,
       140372  + /*   990 */    98,   59,  132,   36,  134,   22,  207,   19,   20,   24,
       140373  + /*  1000 */    22,   42,  152,  173,  174,   96,   97,   98,  219,  132,
       140374  + /*  1010 */   133,  134,  135,  136,   36,  152,   59,  187,  132,  152,
       140375  + /*  1020 */   134,   62,  152,  152,   96,   97,   98,   70,   96,   97,
       140376  + /*  1030 */    98,   72,   59,  152,   59,  246,   26,   59,  214,   82,
       140377  + /*  1040 */   152,  192,  152,  173,  174,   88,   89,   79,   70,  152,
       140378  + /*  1050 */   152,   19,   95,   96,   97,   98,  124,  187,  101,   23,
       140379  + /*  1060 */    82,  164,   26,  173,  174,  152,   88,   89,  100,   96,
       140380  + /*  1070 */    97,   98,   97,   95,   96,   97,   98,  187,   46,  101,
       140381  + /*  1080 */   122,  184,  152,  186,  211,  152,  152,  119,  120,  132,
       140382  + /*  1090 */   133,  134,  135,  136,  152,    5,   22,  152,  152,   35,
       140383  + /*  1100 */    10,   11,   12,   13,   14,  152,  152,   17,   98,  235,
       140384  + /*  1110 */   132,  133,  134,  135,  136,   54,   55,   56,   57,   58,
       140385  + /*  1120 */    30,  152,   32,  152,  152,  198,  173,  174,  152,   65,
       140386  + /*  1130 */    40,  152,  152,   59,  124,  152,  236,   73,  199,  107,
       140387  + /*  1140 */   187,  171,  173,  174,  112,   84,   85,   86,   87,   88,
       140388  + /*  1150 */    89,   90,   91,   92,   93,   94,  173,  174,  152,   69,
       140389  + /*  1160 */   152,  211,   54,   55,   56,   57,   76,  152,  150,   79,
       140390  + /*  1170 */    80,   97,  211,  211,  211,  111,   59,  241,  241,  173,
       140391  + /*  1180 */   174,  173,  174,  202,  202,  185,  177,  176,  173,  174,
       140392  + /*  1190 */   176,  201,   84,   85,   86,   87,   88,   89,   90,   91,
       140393  + /*  1200 */    92,   93,   94,  215,  114,   88,   89,  152,  215,  119,
       140394  + /*  1210 */   120,  152,  181,   96,   97,   98,  176,  100,  215,  152,
       140395  + /*  1220 */   229,  152,  163,  152,  107,  199,  109,  155,  173,  174,
       140396  + /*  1230 */   245,  141,  173,  174,   60,  159,  152,  122,  159,  242,
       140397  + /*  1240 */   173,  174,  173,  174,  173,  174,   38,  242,  152,  132,
       140398  + /*  1250 */   159,  134,  152,   22,  195,  196,  152,  173,  174,  222,
       140399  + /*  1260 */    43,  130,  202,  152,   18,  152,  207,  208,  152,  173,
       140400  + /*  1270 */   174,  152,  190,  173,  174,  152,  193,  173,  174,  152,
       140401  + /*  1280 */   193,  193,  152,  159,  173,  174,  173,  174,  152,  173,
       140402  + /*  1290 */   174,  193,  173,  174,   18,  152,  173,  174,  152,  158,
       140403  + /*  1300 */   173,  174,  152,  173,  174,  152,  159,  152,  202,  173,
       140404  + /*  1310 */   174,  152,  190,  152,  222,  152,  173,  174,  152,  173,
       140405  + /*  1320 */   174,  137,  152,  173,  174,  190,  173,  174,  173,  174,
       140406  + /*  1330 */   202,  158,  173,  174,  173,  174,  173,  174,   61,  173,
       140407  + /*  1340 */   174,  152,  237,  173,  174,  152,  159,  152,  238,  152,
       140408  + /*  1350 */   158,  152,   22,  152,  178,  152,  158,  152,  158,  152,
       140409  + /*  1360 */   178,  159,  173,  174,  152,  159,  173,  174,  173,  174,
       140410  + /*  1370 */   173,  174,  173,  174,  173,  174,  173,  174,  173,  174,
       140411  + /*  1380 */   173,  174,  152,   63,  152,  173,  174,  107,  175,  175,
       140412  + /*  1390 */   175,  106,  183,  175,  178,  175,  177,  175,  175,  178,
       140413  + /*  1400 */    94,  107,  231,  173,  174,  173,  174,  183,  231,  125,
       140414  + /*  1410 */   216,  178,  159,  217,   22,  159,  226,  129,  137,  228,
       140415  + /*  1420 */   128,  217,  126,   25,  127,  162,  216,   26,  217,  161,
       140416  + /*  1430 */    13,  153,  153,  206,  205,    6,  251,  202,  204,  203,
       140417  + /*  1440 */   151,  216,  151,  217,  216,  171,  151,  165,  179,  179,
       140418  + /*  1450 */     4,    3,   22,  142,  171,  165,   15,  171,  171,   81,
       140419  + /*  1460 */    16,   23,   23,  120,  171,  131,  165,  111,  123,  171,
       140420  + /*  1470 */   171,  171,   20,  125,   16,    1,  123,  131,   53,   53,
       140421  + /*  1480 */    53,   53,  111,   96,   34,  122,  248,    1,  251,    5,
       140422  + /*  1490 */    22,  107,  140,   26,   74,   41,  122,  107,   67,   67,
       140423  + /*  1500 */    24,   20,   19,  112,  105,   23,   66,   22,   66,   22,
       140424  + /*  1510 */    22,   22,   37,   22,   22,   66,   23,   23,   28,   23,
       140425  + /*  1520 */    23,   26,   24,   23,   22,   24,  122,   23,   23,   96,
       140426  + /*  1530 */    22,  124,   26,   34,   23,   26,   23,   34,   23,   23,
       140427  + /*  1540 */    23,   34,   23,   22,   26,   11,   22,   22,   26,   23,
       140428  + /*  1550 */    23,   22,  116,   23,   22,   15,  122,  122,   23,  122,
       140429  + /*  1560 */     1,  252,  252,  252,  252,  122,  252,  252,  252,  252,
140366 140430    /*  1570 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140367 140431    /*  1580 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140368 140432    /*  1590 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140369 140433    /*  1600 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140370 140434    /*  1610 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140371 140435    /*  1620 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140372 140436    /*  1630 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140373 140437    /*  1640 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140374 140438    /*  1650 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140375 140439    /*  1660 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140376 140440    /*  1670 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
140377         - /*  1680 */   252,  252,  252,  252,
       140441  + /*  1680 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
       140442  + /*  1690 */   252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
       140443  + /*  1700 */   252,  252,  252,  252,  252,  252,  252,  252,  252,
140378 140444   };
140379         -#define YY_SHIFT_COUNT    (465)
       140445  +#define YY_SHIFT_COUNT    (471)
140380 140446   #define YY_SHIFT_MIN      (0)
140381         -#define YY_SHIFT_MAX      (1538)
       140447  +#define YY_SHIFT_MAX      (1559)
140382 140448   static const unsigned short int yy_shift_ofst[] = {
140383         - /*     0 */    39,  822,  955,  843,  997,  997,  997,  997,    0,    0,
140384         - /*    10 */   104,  630,  997,  997,  997,  997,  997,  997,  997, 1077,
140385         - /*    20 */  1077,  126,  161,  155,   52,  156,  208,  260,  312,  364,
140386         - /*    30 */   416,  468,  523,  578,  630,  630,  630,  630,  630,  630,
140387         - /*    40 */   630,  630,  630,  630,  630,  630,  630,  630,  630,  630,
140388         - /*    50 */   630,  682,  630,  733,  783,  783,  914,  997,  997,  997,
140389         - /*    60 */   997,  997,  997,  997,  997,  997,  997,  997,  997,  997,
140390         - /*    70 */   997,  997,  997,  997,  997,  997,  997,  997,  997,  997,
140391         - /*    80 */   997,  997,  997,  997,  997,  997,  997,  997, 1017,  997,
140392         - /*    90 */   997,  997,  997,  997,  997,  997,  997,  997,  997,  997,
140393         - /*   100 */   997,  997, 1070, 1054, 1054, 1054, 1054, 1054,   40,   25,
140394         - /*   110 */    72,  232,  788,  428,  248,  248,  232,  581,  367,  127,
140395         - /*   120 */   465,  138, 1541, 1541, 1541,  784,  784,  784,  522,  522,
140396         - /*   130 */   887,  887,  893,  406,  408,  232,  232,  232,  232,  232,
140397         - /*   140 */   232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
140398         - /*   150 */   232,  232,  232,  232,  232,  370,  340,  714,  698,  698,
140399         - /*   160 */   465,   89,   89,   89,   89,   89,   89, 1541, 1541, 1541,
140400         - /*   170 */   504,   85,   85,  884,   70,  280,  902,  440,  966,  924,
140401         - /*   180 */   232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
140402         - /*   190 */   232,  232,  232,  232,  232,  232, 1134, 1134, 1134,  232,
140403         - /*   200 */   232,  667,  232,  232,  232,  929,  232,  232,  885,  232,
140404         - /*   210 */   232,  232,  232,  232,  232,  232,  232,  232,  232,  418,
140405         - /*   220 */   678,  981,  981,  981,  981,  766,  271,  911,  510,  429,
140406         - /*   230 */   617,  786,  786,  830,  617,  830,    4,  730,  595,  768,
140407         - /*   240 */   786,  561,  768,  768,  732,  535,   55, 1165, 1105, 1105,
140408         - /*   250 */  1191, 1191, 1105, 1228, 1209, 1130, 1257, 1257, 1257, 1257,
140409         - /*   260 */  1105, 1280, 1130, 1228, 1209, 1209, 1130, 1105, 1280, 1198,
140410         - /*   270 */  1282, 1105, 1105, 1280, 1328, 1105, 1280, 1105, 1280, 1328,
140411         - /*   280 */  1244, 1244, 1244, 1308, 1328, 1244, 1267, 1244, 1308, 1244,
140412         - /*   290 */  1244, 1250, 1273, 1250, 1273, 1250, 1273, 1250, 1273, 1105,
140413         - /*   300 */  1360, 1105, 1260, 1328, 1306, 1306, 1328, 1274, 1276, 1277,
140414         - /*   310 */  1279, 1130, 1379, 1383, 1400, 1400, 1410, 1410, 1410, 1541,
140415         - /*   320 */  1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
140416         - /*   330 */  1541, 1541, 1541, 1541, 1541,   34,  407,  463,  511,  417,
140417         - /*   340 */   479, 1272,  778,  941,  785,  825,  831,  833,  872,  877,
140418         - /*   350 */   756,  793,  900,  804,  919, 1045,  969, 1049,  803,  909,
140419         - /*   360 */  1051,  983, 1059, 1428, 1434, 1416, 1300, 1429, 1362, 1430,
140420         - /*   370 */  1422, 1424, 1330, 1317, 1340, 1329, 1433, 1331, 1438, 1454,
140421         - /*   380 */  1334, 1327, 1406, 1407, 1408, 1409, 1352, 1368, 1431, 1344,
140422         - /*   390 */  1466, 1463, 1447, 1363, 1332, 1404, 1448, 1411, 1399, 1435,
140423         - /*   400 */  1370, 1451, 1459, 1461, 1369, 1377, 1462, 1417, 1464, 1465,
140424         - /*   410 */  1467, 1469, 1419, 1460, 1470, 1423, 1456, 1471, 1472, 1473,
140425         - /*   420 */  1474, 1381, 1476, 1478, 1477, 1479, 1380, 1480, 1481, 1412,
140426         - /*   430 */  1475, 1484, 1386, 1485, 1482, 1486, 1483, 1490, 1485, 1491,
140427         - /*   440 */  1492, 1495, 1493, 1497, 1499, 1496, 1500, 1502, 1498, 1501,
140428         - /*   450 */  1503, 1506, 1505, 1501, 1507, 1509, 1510, 1511, 1513, 1403,
140429         - /*   460 */  1414, 1415, 1418, 1515, 1517, 1538,
140430         -};
140431         -#define YY_REDUCE_COUNT (334)
140432         -#define YY_REDUCE_MIN   (-217)
140433         -#define YY_REDUCE_MAX   (1278)
       140449  + /*     0 */   182, 1090,  822,  822,  306,  957,  957,  957,  957,  210,
       140450  + /*    10 */     0,    0,  104,  630,  957,  957,  957,  957,  957,  957,
       140451  + /*    20 */   957, 1117, 1117,  126,  968,  306,  306,  306,  306,  306,
       140452  + /*    30 */   306,   52,  156,  208,  260,  312,  364,  416,  468,  523,
       140453  + /*    40 */   578,  630,  630,  630,  630,  630,  630,  630,  630,  630,
       140454  + /*    50 */   630,  630,  630,  630,  630,  630,  630,  630,  682,  630,
       140455  + /*    60 */   733,  783,  783,  877,  957,  957,  957,  957,  957,  957,
       140456  + /*    70 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
       140457  + /*    80 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
       140458  + /*    90 */   957,  957,  957,  957,  957,  978,  957,  957,  957,  957,
       140459  + /*   100 */   957,  957,  957,  957,  957,  957,  957,  957,  957, 1061,
       140460  + /*   110 */  1108, 1108, 1108, 1108, 1108,   40,  127,   20,  280,  843,
       140461  + /*   120 */  1032,  144,  144,  280,  310,  310,  310,  310,   59,  191,
       140462  + /*   130 */    69, 1566, 1566, 1566,  786,  786,  786,  522,  836,  522,
       140463  + /*   140 */   959,  959,  892,  155,  358,  280,  280,  280,  280,  280,
       140464  + /*   150 */   280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
       140465  + /*   160 */   280,  280,  280,  280,  280,  280,  371,  388,  645,  645,
       140466  + /*   170 */   531, 1566, 1566, 1566,  504,  189,  189,  909,   63,  176,
       140467  + /*   180 */   928,  440,  932,  973,  280,  280,  280,  280,  280,  314,
       140468  + /*   190 */   280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
       140469  + /*   200 */   280,  280, 1064, 1064, 1064,  280,  280,  280,  280,  667,
       140470  + /*   210 */   280,  280,  280,  825,  280,  280,  902,  280,  280,  280,
       140471  + /*   220 */   280,  280,  280,  280,  280,  383,  676,  325,  975,  975,
       140472  + /*   230 */   975,  975, 1010,  325,  325,  819,  349,  524,  569,  829,
       140473  + /*   240 */   829,  832,  569,  832,  686,   51,  656,  303,  303,  303,
       140474  + /*   250 */   829,  294,  520,  628,  474, 1174, 1115, 1115, 1208, 1208,
       140475  + /*   260 */  1115, 1231, 1217, 1131, 1246, 1246, 1246, 1246, 1115, 1276,
       140476  + /*   270 */  1131, 1231, 1217, 1217, 1131, 1115, 1276, 1184, 1277, 1115,
       140477  + /*   280 */  1276, 1330, 1115, 1276, 1115, 1276, 1330, 1280, 1280, 1280,
       140478  + /*   290 */  1320, 1330, 1280, 1285, 1280, 1320, 1280, 1280, 1330, 1306,
       140479  + /*   300 */  1306, 1330, 1284, 1294, 1284, 1294, 1284, 1294, 1284, 1294,
       140480  + /*   310 */  1115, 1392, 1115, 1281, 1288, 1296, 1292, 1297, 1131, 1398,
       140481  + /*   320 */  1401, 1417, 1417, 1429, 1429, 1429, 1566, 1566, 1566, 1566,
       140482  + /*   330 */  1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
       140483  + /*   340 */  1566, 1566,   34,  357,   38,  462,  514,  484, 1074,  727,
       140484  + /*   350 */   740,  734,  735,  777,  778,  784,  788,  803,  694,  845,
       140485  + /*   360 */   742,  796,  833,  837,  889,  860,  886, 1036,  806,  958,
       140486  + /*   370 */  1446, 1448, 1430, 1311, 1441, 1378, 1444, 1438, 1439, 1343,
       140487  + /*   380 */  1334, 1356, 1345, 1452, 1348, 1458, 1474, 1353, 1346, 1425,
       140488  + /*   390 */  1426, 1427, 1428, 1371, 1387, 1450, 1363, 1486, 1484, 1468,
       140489  + /*   400 */  1384, 1352, 1431, 1467, 1432, 1420, 1454, 1374, 1390, 1476,
       140490  + /*   410 */  1481, 1483, 1391, 1399, 1485, 1440, 1487, 1488, 1482, 1489,
       140491  + /*   420 */  1442, 1490, 1491, 1449, 1475, 1493, 1494, 1496, 1495, 1497,
       140492  + /*   430 */  1492, 1498, 1500, 1502, 1501, 1404, 1504, 1505, 1433, 1499,
       140493  + /*   440 */  1508, 1407, 1506, 1503, 1509, 1507, 1511, 1513, 1515, 1506,
       140494  + /*   450 */  1516, 1517, 1518, 1519, 1521, 1534, 1524, 1525, 1526, 1527,
       140495  + /*   460 */  1529, 1530, 1532, 1522, 1436, 1434, 1435, 1437, 1443, 1535,
       140496  + /*   470 */  1540, 1559,
       140497  +};
       140498  +#define YY_REDUCE_COUNT (341)
       140499  +#define YY_REDUCE_MIN   (-211)
       140500  +#define YY_REDUCE_MAX   (1301)
140434 140501   static const short yy_reduce_ofst[] = {
140435         - /*     0 */  -144, -139, -134, -136, -141,   64,  114,  116, -158, -148,
140436         - /*    10 */  -217,   96,  819,  871,  878,  219,  270,  886,  272, -110,
140437         - /*    20 */   413,  918,  972,  228, -214, -214, -214, -214, -214, -214,
140438         - /*    30 */  -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
140439         - /*    40 */  -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
140440         - /*    50 */  -214, -214, -214, -214, -214, -214,   62,  323,  377,  536,
140441         - /*    60 */   539,  834,  948, 1020, 1024, 1031, 1039, 1048, 1050, 1063,
140442         - /*    70 */  1065, 1068, 1074, 1080, 1083, 1088, 1091, 1094, 1097, 1099,
140443         - /*    80 */  1103, 1106, 1111, 1114, 1122, 1126, 1129, 1131, 1137, 1139,
140444         - /*    90 */  1141, 1145, 1149, 1154, 1156, 1164, 1168, 1173, 1180, 1184,
140445         - /*   100 */  1187, 1192, -214, -214, -214, -214, -214, -214, -214, -214,
140446         - /*   110 */  -214,  132,  -45,   97,    8,  164,  379,  175,  255, -214,
140447         - /*   120 */   178, -214, -214, -214, -214, -168, -168, -168,  124,  329,
140448         - /*   130 */   399,  401, -129,  347,  347,  331,  133,  451,  452,  498,
140449         - /*   140 */   500,  502,  503,  505,  487,  506,  488,  490,  507,  543,
140450         - /*   150 */   547, -126,  588,  290,   27,  572,  501,  597,  537,  582,
140451         - /*   160 */   183,  599,  600,  601,  649,  650,  653,  508,  538,  -29,
140452         - /*   170 */  -156, -152, -137,  -79,  135,   74,  130,  242,  338,  378,
140453         - /*   180 */   393,  397,  607,  648,  691,  700,  708,  709,  728,  757,
140454         - /*   190 */   763,  769,  796,  810,  818,  845,  202,  748,  792,  861,
140455         - /*   200 */   862,  815,  866,  903,  905,  850,  931,  932,  896,  937,
140456         - /*   210 */   939,  945,   74,  949,  951,  964,  965,  967,  968,  888,
140457         - /*   220 */   820,  923,  926,  959,  960,  815,  980,  908, 1009,  985,
140458         - /*   230 */   986,  970,  974,  942,  988,  947, 1018, 1011, 1022, 1025,
140459         - /*   240 */   991,  982, 1032, 1038, 1015, 1019, 1064,  984, 1071, 1072,
140460         - /*   250 */   992,  993, 1085, 1061, 1069, 1067, 1093, 1116, 1124, 1128,
140461         - /*   260 */  1133, 1132, 1138, 1086, 1136, 1143, 1146, 1175, 1166, 1108,
140462         - /*   270 */  1113, 1193, 1196, 1201, 1178, 1203, 1205, 1208, 1206, 1190,
140463         - /*   280 */  1195, 1197, 1199, 1194, 1200, 1204, 1207, 1210, 1211, 1212,
140464         - /*   290 */  1213, 1159, 1167, 1169, 1174, 1172, 1176, 1179, 1177, 1222,
140465         - /*   300 */  1170, 1232, 1171, 1221, 1181, 1182, 1223, 1202, 1214, 1216,
140466         - /*   310 */  1215, 1219, 1245, 1249, 1261, 1262, 1266, 1271, 1275, 1183,
140467         - /*   320 */  1185, 1189, 1258, 1253, 1254, 1256, 1259, 1263, 1252, 1255,
140468         - /*   330 */  1268, 1269, 1270, 1278, 1264,
       140502  + /*     0 */  -143,  789,  753, 1059, -137, -146, -144, -141, -136,  687,
       140503  + /*    10 */  -107,  101, -203,  -52,  830,  870,  890,  167,  953,  218,
       140504  + /*    20 */   220,  413,  646,  897,   73,  281,  283,  332,  496,  601,
       140505  + /*    30 */   650, -211, -211, -211, -211, -211, -211, -211, -211, -211,
       140506  + /*    40 */  -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
       140507  + /*    50 */  -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
       140508  + /*    60 */  -211, -211, -211,  374,  377,  537,  969,  983, 1006, 1008,
       140509  + /*    70 */  1015, 1055, 1067, 1069, 1071, 1084, 1096, 1100, 1104, 1111,
       140510  + /*    80 */  1113, 1116, 1119, 1123, 1127, 1130, 1136, 1143, 1146, 1150,
       140511  + /*    90 */  1153, 1155, 1159, 1161, 1163, 1166, 1170, 1189, 1193, 1195,
       140512  + /*   100 */  1197, 1199, 1201, 1203, 1205, 1207, 1212, 1230, 1232, -211,
       140513  + /*   110 */  -211, -211, -211, -211, -211, -211, -211, -211,  -30,  427,
       140514  + /*   120 */  -171, -145, -134,   22,  279,  287,  279,  287,   99, -211,
       140515  + /*   130 */  -211, -211, -211, -211, -165, -165, -165,  123,  135,  175,
       140516  + /*   140 */  -150,  396,  337,  291,  291, -147,  185,  391,  446,  444,
       140517  + /*   150 */   452,  500,  501,  502,   27, -152,  295,  438,  490,  503,
       140518  + /*   160 */   495,  506,  -73,  447,  451,  536,  570,  551,  540,  579,
       140519  + /*   170 */    30,  508,  535,   81,   14,   61,  115,  168,  142,  222,
       140520  + /*   180 */   275,  284,  397,  599,  607,  647,  654,  660,  709,  658,
       140521  + /*   190 */   714,  750,  754,  772,  787,  801,  817,  818,  850,  863,
       140522  + /*   200 */   867,  871,  466,  748,  799,  881,  888,  898,  913,  824,
       140523  + /*   210 */   930,  933,  934,  873,  942,  945,  849,  946,  222,  954,
       140524  + /*   220 */   971,  972,  976,  979,  980,  900,  874,  927,  950,  961,
       140525  + /*   230 */   962,  963,  824,  927,  927,  939,  970, 1018,  981,  988,
       140526  + /*   240 */   993,  936,  982,  937, 1009, 1000, 1031, 1011, 1014, 1040,
       140527  + /*   250 */  1003,  991,  990, 1026, 1072,  985, 1076, 1079,  997, 1005,
       140528  + /*   260 */  1091, 1037, 1082, 1060, 1083, 1087, 1088, 1098, 1124, 1141,
       140529  + /*   270 */  1106, 1092, 1122, 1135, 1128, 1147, 1173, 1110, 1105, 1187,
       140530  + /*   280 */  1192, 1176, 1202, 1198, 1206, 1200, 1182, 1213, 1214, 1215,
       140531  + /*   290 */  1209, 1216, 1218, 1219, 1220, 1224, 1222, 1223, 1221, 1171,
       140532  + /*   300 */  1177, 1233, 1196, 1194, 1204, 1210, 1211, 1225, 1226, 1228,
       140533  + /*   310 */  1253, 1190, 1256, 1191, 1227, 1229, 1234, 1236, 1235, 1263,
       140534  + /*   320 */  1268, 1278, 1279, 1289, 1291, 1295, 1185, 1237, 1238, 1282,
       140535  + /*   330 */  1274, 1283, 1286, 1287, 1290, 1269, 1270, 1293, 1298, 1299,
       140536  + /*   340 */  1300, 1301,
140469 140537   };
140470 140538   static const YYACTIONTYPE yy_default[] = {
140471         - /*     0 */  1286, 1276, 1276, 1276, 1209, 1209, 1209, 1209, 1133, 1133,
140472         - /*    10 */  1260, 1036, 1005, 1005, 1005, 1005, 1005, 1005, 1208, 1005,
140473         - /*    20 */  1005, 1005, 1005, 1108, 1139, 1005, 1005, 1005, 1005, 1210,
140474         - /*    30 */  1211, 1005, 1005, 1005, 1259, 1261, 1149, 1148, 1147, 1146,
140475         - /*    40 */  1242, 1120, 1144, 1137, 1141, 1210, 1204, 1205, 1203, 1207,
140476         - /*    50 */  1211, 1005, 1140, 1174, 1188, 1173, 1005, 1005, 1005, 1005,
140477         - /*    60 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140478         - /*    70 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140479         - /*    80 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140480         - /*    90 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140481         - /*   100 */  1005, 1005, 1182, 1187, 1194, 1186, 1183, 1176, 1175, 1177,
140482         - /*   110 */  1178, 1005, 1026, 1075, 1005, 1005, 1005, 1276, 1036, 1179,
140483         - /*   120 */  1005, 1180, 1191, 1190, 1189, 1267, 1294, 1293, 1005, 1005,
140484         - /*   130 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140485         - /*   140 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140486         - /*   150 */  1005, 1005, 1005, 1005, 1005, 1036, 1286, 1276, 1032, 1032,
140487         - /*   160 */  1005, 1276, 1276, 1276, 1276, 1276, 1276, 1272, 1108, 1099,
140488         - /*   170 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140489         - /*   180 */  1005, 1264, 1262, 1005, 1224, 1005, 1005, 1005, 1005, 1005,
140490         - /*   190 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140491         - /*   200 */  1005, 1005, 1005, 1005, 1005, 1104, 1005, 1005, 1005, 1005,
140492         - /*   210 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1288, 1005,
140493         - /*   220 */  1237, 1104, 1104, 1104, 1104, 1106, 1088, 1098, 1036, 1012,
140494         - /*   230 */  1143, 1122, 1122, 1327, 1143, 1327, 1050, 1308, 1047, 1133,
140495         - /*   240 */  1122, 1206, 1133, 1133, 1105, 1098, 1005, 1330, 1113, 1113,
140496         - /*   250 */  1329, 1329, 1113, 1154, 1078, 1143, 1084, 1084, 1084, 1084,
140497         - /*   260 */  1113, 1023, 1143, 1154, 1078, 1078, 1143, 1113, 1023, 1241,
140498         - /*   270 */  1324, 1113, 1113, 1023, 1217, 1113, 1023, 1113, 1023, 1217,
140499         - /*   280 */  1076, 1076, 1076, 1065, 1217, 1076, 1050, 1076, 1065, 1076,
140500         - /*   290 */  1076, 1126, 1121, 1126, 1121, 1126, 1121, 1126, 1121, 1113,
140501         - /*   300 */  1212, 1113, 1005, 1217, 1221, 1221, 1217, 1138, 1127, 1136,
140502         - /*   310 */  1134, 1143, 1029, 1068, 1291, 1291, 1287, 1287, 1287, 1335,
140503         - /*   320 */  1335, 1272, 1303, 1036, 1036, 1036, 1036, 1303, 1052, 1052,
140504         - /*   330 */  1036, 1036, 1036, 1036, 1303, 1005, 1005, 1005, 1005, 1005,
140505         - /*   340 */  1005, 1298, 1005, 1226, 1005, 1005, 1005, 1005, 1005, 1005,
140506         - /*   350 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140507         - /*   360 */  1005, 1005, 1159, 1005, 1008, 1269, 1005, 1005, 1268, 1005,
140508         - /*   370 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140509         - /*   380 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1326,
140510         - /*   390 */  1005, 1005, 1005, 1005, 1005, 1005, 1240, 1239, 1005, 1005,
140511         - /*   400 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140512         - /*   410 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140513         - /*   420 */  1005, 1090, 1005, 1005, 1005, 1312, 1005, 1005, 1005, 1005,
140514         - /*   430 */  1005, 1005, 1005, 1135, 1005, 1128, 1005, 1005, 1317, 1005,
140515         - /*   440 */  1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1278,
140516         - /*   450 */  1005, 1005, 1005, 1277, 1005, 1005, 1005, 1005, 1005, 1161,
140517         - /*   460 */  1005, 1160, 1164, 1005, 1017, 1005,
       140539  + /*     0 */  1297, 1349, 1221, 1014, 1119, 1221, 1221, 1221, 1221, 1014,
       140540  + /*    10 */  1145, 1145, 1272, 1045, 1014, 1014, 1014, 1014, 1014, 1220,
       140541  + /*    20 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140542  + /*    30 */  1014, 1151, 1014, 1014, 1014, 1014, 1222, 1223, 1014, 1014,
       140543  + /*    40 */  1014, 1271, 1273, 1161, 1160, 1159, 1158, 1254, 1132, 1156,
       140544  + /*    50 */  1149, 1153, 1216, 1217, 1215, 1219, 1222, 1223, 1014, 1152,
       140545  + /*    60 */  1186, 1200, 1185, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140546  + /*    70 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140547  + /*    80 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140548  + /*    90 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140549  + /*   100 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1194,
       140550  + /*   110 */  1199, 1206, 1198, 1195, 1188, 1187, 1189, 1190, 1014, 1035,
       140551  + /*   120 */  1084, 1014, 1014, 1014, 1289, 1288, 1014, 1014, 1045, 1191,
       140552  + /*   130 */  1192, 1203, 1202, 1201, 1279, 1305, 1304, 1014, 1014, 1014,
       140553  + /*   140 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140554  + /*   150 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140555  + /*   160 */  1014, 1014, 1014, 1014, 1014, 1014, 1045, 1297, 1041, 1041,
       140556  + /*   170 */  1014, 1284, 1119, 1110, 1014, 1014, 1014, 1014, 1014, 1014,
       140557  + /*   180 */  1014, 1014, 1014, 1014, 1014, 1276, 1274, 1014, 1236, 1014,
       140558  + /*   190 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140559  + /*   200 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140560  + /*   210 */  1014, 1014, 1014, 1115, 1014, 1014, 1014, 1014, 1014, 1014,
       140561  + /*   220 */  1014, 1014, 1014, 1014, 1299, 1014, 1249, 1098, 1115, 1115,
       140562  + /*   230 */  1115, 1115, 1117, 1099, 1097, 1109, 1045, 1021, 1155, 1134,
       140563  + /*   240 */  1134, 1338, 1155, 1338, 1059, 1319, 1056, 1145, 1145, 1145,
       140564  + /*   250 */  1134, 1218, 1116, 1109, 1014, 1341, 1124, 1124, 1340, 1340,
       140565  + /*   260 */  1124, 1166, 1087, 1155, 1093, 1093, 1093, 1093, 1124, 1032,
       140566  + /*   270 */  1155, 1166, 1087, 1087, 1155, 1124, 1032, 1253, 1335, 1124,
       140567  + /*   280 */  1032, 1229, 1124, 1032, 1124, 1032, 1229, 1085, 1085, 1085,
       140568  + /*   290 */  1074, 1229, 1085, 1059, 1085, 1074, 1085, 1085, 1229, 1233,
       140569  + /*   300 */  1233, 1229, 1138, 1133, 1138, 1133, 1138, 1133, 1138, 1133,
       140570  + /*   310 */  1124, 1224, 1124, 1014, 1150, 1139, 1148, 1146, 1155, 1038,
       140571  + /*   320 */  1077, 1302, 1302, 1298, 1298, 1298, 1346, 1346, 1284, 1314,
       140572  + /*   330 */  1045, 1045, 1045, 1045, 1314, 1061, 1061, 1045, 1045, 1045,
       140573  + /*   340 */  1045, 1314, 1014, 1014, 1014, 1014, 1014, 1014, 1309, 1014,
       140574  + /*   350 */  1238, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140575  + /*   360 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1171,
       140576  + /*   370 */  1014, 1017, 1281, 1014, 1014, 1280, 1014, 1014, 1014, 1014,
       140577  + /*   380 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140578  + /*   390 */  1014, 1014, 1014, 1014, 1014, 1014, 1337, 1014, 1014, 1014,
       140579  + /*   400 */  1014, 1014, 1014, 1252, 1251, 1014, 1014, 1126, 1014, 1014,
       140580  + /*   410 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140581  + /*   420 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140582  + /*   430 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140583  + /*   440 */  1014, 1014, 1147, 1014, 1140, 1014, 1014, 1014, 1014, 1328,
       140584  + /*   450 */  1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
       140585  + /*   460 */  1014, 1014, 1014, 1323, 1101, 1173, 1014, 1172, 1176, 1014,
       140586  + /*   470 */  1026, 1014,
140518 140587   };
140519 140588   /********** End of lemon-generated parsing tables *****************************/
140520 140589   
140521 140590   /* The next table maps tokens (terminal symbols) into fallback tokens.  
140522 140591   ** If a construct like the following:
140523 140592   ** 
140524 140593   **      %fallback ID X Y Z.
................................................................................
140896 140965     /*  190 */ "orconf",
140897 140966     /*  191 */ "resolvetype",
140898 140967     /*  192 */ "raisetype",
140899 140968     /*  193 */ "ifexists",
140900 140969     /*  194 */ "fullname",
140901 140970     /*  195 */ "selectnowith",
140902 140971     /*  196 */ "oneselect",
140903         -  /*  197 */ "with",
       140972  +  /*  197 */ "wqlist",
140904 140973     /*  198 */ "multiselect_op",
140905 140974     /*  199 */ "distinct",
140906 140975     /*  200 */ "selcollist",
140907 140976     /*  201 */ "from",
140908 140977     /*  202 */ "where_opt",
140909 140978     /*  203 */ "groupby_opt",
140910 140979     /*  204 */ "having_opt",
................................................................................
140918 140987     /*  212 */ "seltablist",
140919 140988     /*  213 */ "stl_prefix",
140920 140989     /*  214 */ "joinop",
140921 140990     /*  215 */ "indexed_opt",
140922 140991     /*  216 */ "on_opt",
140923 140992     /*  217 */ "using_opt",
140924 140993     /*  218 */ "idlist",
140925         -  /*  219 */ "setlist",
140926         -  /*  220 */ "insert_cmd",
140927         -  /*  221 */ "idlist_opt",
140928         -  /*  222 */ "likeop",
140929         -  /*  223 */ "between_op",
140930         -  /*  224 */ "in_op",
140931         -  /*  225 */ "paren_exprlist",
140932         -  /*  226 */ "case_operand",
140933         -  /*  227 */ "case_exprlist",
140934         -  /*  228 */ "case_else",
140935         -  /*  229 */ "uniqueflag",
140936         -  /*  230 */ "collate",
140937         -  /*  231 */ "nmnum",
140938         -  /*  232 */ "trigger_decl",
140939         -  /*  233 */ "trigger_cmd_list",
140940         -  /*  234 */ "trigger_time",
140941         -  /*  235 */ "trigger_event",
140942         -  /*  236 */ "foreach_clause",
140943         -  /*  237 */ "when_clause",
140944         -  /*  238 */ "trigger_cmd",
140945         -  /*  239 */ "trnm",
140946         -  /*  240 */ "tridxby",
140947         -  /*  241 */ "database_kw_opt",
140948         -  /*  242 */ "key_opt",
140949         -  /*  243 */ "add_column_fullname",
140950         -  /*  244 */ "kwcolumn_opt",
140951         -  /*  245 */ "create_vtab",
140952         -  /*  246 */ "vtabarglist",
140953         -  /*  247 */ "vtabarg",
140954         -  /*  248 */ "vtabargtoken",
140955         -  /*  249 */ "lp",
140956         -  /*  250 */ "anylist",
140957         -  /*  251 */ "wqlist",
       140994  +  /*  219 */ "with",
       140995  +  /*  220 */ "setlist",
       140996  +  /*  221 */ "insert_cmd",
       140997  +  /*  222 */ "idlist_opt",
       140998  +  /*  223 */ "likeop",
       140999  +  /*  224 */ "between_op",
       141000  +  /*  225 */ "in_op",
       141001  +  /*  226 */ "paren_exprlist",
       141002  +  /*  227 */ "case_operand",
       141003  +  /*  228 */ "case_exprlist",
       141004  +  /*  229 */ "case_else",
       141005  +  /*  230 */ "uniqueflag",
       141006  +  /*  231 */ "collate",
       141007  +  /*  232 */ "nmnum",
       141008  +  /*  233 */ "trigger_decl",
       141009  +  /*  234 */ "trigger_cmd_list",
       141010  +  /*  235 */ "trigger_time",
       141011  +  /*  236 */ "trigger_event",
       141012  +  /*  237 */ "foreach_clause",
       141013  +  /*  238 */ "when_clause",
       141014  +  /*  239 */ "trigger_cmd",
       141015  +  /*  240 */ "trnm",
       141016  +  /*  241 */ "tridxby",
       141017  +  /*  242 */ "database_kw_opt",
       141018  +  /*  243 */ "key_opt",
       141019  +  /*  244 */ "add_column_fullname",
       141020  +  /*  245 */ "kwcolumn_opt",
       141021  +  /*  246 */ "create_vtab",
       141022  +  /*  247 */ "vtabarglist",
       141023  +  /*  248 */ "vtabarg",
       141024  +  /*  249 */ "vtabargtoken",
       141025  +  /*  250 */ "lp",
       141026  +  /*  251 */ "anylist",
140958 141027   };
140959 141028   #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
140960 141029   
140961 141030   #ifndef NDEBUG
140962 141031   /* For tracing reduce actions, the names of all rules are required.
140963 141032   */
140964 141033   static const char *const yyRuleName[] = {
................................................................................
141038 141107    /*  73 */ "resolvetype ::= REPLACE",
141039 141108    /*  74 */ "cmd ::= DROP TABLE ifexists fullname",
141040 141109    /*  75 */ "ifexists ::= IF EXISTS",
141041 141110    /*  76 */ "ifexists ::=",
141042 141111    /*  77 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select",
141043 141112    /*  78 */ "cmd ::= DROP VIEW ifexists fullname",
141044 141113    /*  79 */ "cmd ::= select",
141045         - /*  80 */ "select ::= with selectnowith",
141046         - /*  81 */ "selectnowith ::= selectnowith multiselect_op oneselect",
141047         - /*  82 */ "multiselect_op ::= UNION",
141048         - /*  83 */ "multiselect_op ::= UNION ALL",
141049         - /*  84 */ "multiselect_op ::= EXCEPT|INTERSECT",
141050         - /*  85 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
141051         - /*  86 */ "values ::= VALUES LP nexprlist RP",
141052         - /*  87 */ "values ::= values COMMA LP exprlist RP",
141053         - /*  88 */ "distinct ::= DISTINCT",
141054         - /*  89 */ "distinct ::= ALL",
141055         - /*  90 */ "distinct ::=",
141056         - /*  91 */ "sclp ::=",
141057         - /*  92 */ "selcollist ::= sclp scanpt expr scanpt as",
141058         - /*  93 */ "selcollist ::= sclp scanpt STAR",
141059         - /*  94 */ "selcollist ::= sclp scanpt nm DOT STAR",
141060         - /*  95 */ "as ::= AS nm",
141061         - /*  96 */ "as ::=",
141062         - /*  97 */ "from ::=",
141063         - /*  98 */ "from ::= FROM seltablist",
141064         - /*  99 */ "stl_prefix ::= seltablist joinop",
141065         - /* 100 */ "stl_prefix ::=",
141066         - /* 101 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
141067         - /* 102 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
141068         - /* 103 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
141069         - /* 104 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
141070         - /* 105 */ "dbnm ::=",
141071         - /* 106 */ "dbnm ::= DOT nm",
141072         - /* 107 */ "fullname ::= nm dbnm",
141073         - /* 108 */ "joinop ::= COMMA|JOIN",
141074         - /* 109 */ "joinop ::= JOIN_KW JOIN",
141075         - /* 110 */ "joinop ::= JOIN_KW nm JOIN",
141076         - /* 111 */ "joinop ::= JOIN_KW nm nm JOIN",
141077         - /* 112 */ "on_opt ::= ON expr",
141078         - /* 113 */ "on_opt ::=",
141079         - /* 114 */ "indexed_opt ::=",
141080         - /* 115 */ "indexed_opt ::= INDEXED BY nm",
141081         - /* 116 */ "indexed_opt ::= NOT INDEXED",
141082         - /* 117 */ "using_opt ::= USING LP idlist RP",
141083         - /* 118 */ "using_opt ::=",
141084         - /* 119 */ "orderby_opt ::=",
141085         - /* 120 */ "orderby_opt ::= ORDER BY sortlist",
141086         - /* 121 */ "sortlist ::= sortlist COMMA expr sortorder",
141087         - /* 122 */ "sortlist ::= expr sortorder",
141088         - /* 123 */ "sortorder ::= ASC",
141089         - /* 124 */ "sortorder ::= DESC",
141090         - /* 125 */ "sortorder ::=",
141091         - /* 126 */ "groupby_opt ::=",
141092         - /* 127 */ "groupby_opt ::= GROUP BY nexprlist",
141093         - /* 128 */ "having_opt ::=",
141094         - /* 129 */ "having_opt ::= HAVING expr",
141095         - /* 130 */ "limit_opt ::=",
141096         - /* 131 */ "limit_opt ::= LIMIT expr",
141097         - /* 132 */ "limit_opt ::= LIMIT expr OFFSET expr",
141098         - /* 133 */ "limit_opt ::= LIMIT expr COMMA expr",
141099         - /* 134 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
141100         - /* 135 */ "where_opt ::=",
141101         - /* 136 */ "where_opt ::= WHERE expr",
141102         - /* 137 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
141103         - /* 138 */ "setlist ::= setlist COMMA nm EQ expr",
141104         - /* 139 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
141105         - /* 140 */ "setlist ::= nm EQ expr",
141106         - /* 141 */ "setlist ::= LP idlist RP EQ expr",
141107         - /* 142 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
141108         - /* 143 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
141109         - /* 144 */ "insert_cmd ::= INSERT orconf",
141110         - /* 145 */ "insert_cmd ::= REPLACE",
141111         - /* 146 */ "idlist_opt ::=",
141112         - /* 147 */ "idlist_opt ::= LP idlist RP",
141113         - /* 148 */ "idlist ::= idlist COMMA nm",
141114         - /* 149 */ "idlist ::= nm",
141115         - /* 150 */ "expr ::= LP expr RP",
141116         - /* 151 */ "expr ::= ID|INDEXED",
141117         - /* 152 */ "expr ::= JOIN_KW",
141118         - /* 153 */ "expr ::= nm DOT nm",
141119         - /* 154 */ "expr ::= nm DOT nm DOT nm",
141120         - /* 155 */ "term ::= NULL|FLOAT|BLOB",
141121         - /* 156 */ "term ::= STRING",
141122         - /* 157 */ "term ::= INTEGER",
141123         - /* 158 */ "expr ::= VARIABLE",
141124         - /* 159 */ "expr ::= expr COLLATE ID|STRING",
141125         - /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
141126         - /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
141127         - /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
141128         - /* 163 */ "term ::= CTIME_KW",
141129         - /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
141130         - /* 165 */ "expr ::= expr AND expr",
141131         - /* 166 */ "expr ::= expr OR expr",
141132         - /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
141133         - /* 168 */ "expr ::= expr EQ|NE expr",
141134         - /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
141135         - /* 170 */ "expr ::= expr PLUS|MINUS expr",
141136         - /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
141137         - /* 172 */ "expr ::= expr CONCAT expr",
141138         - /* 173 */ "likeop ::= NOT LIKE_KW|MATCH",
141139         - /* 174 */ "expr ::= expr likeop expr",
141140         - /* 175 */ "expr ::= expr likeop expr ESCAPE expr",
141141         - /* 176 */ "expr ::= expr ISNULL|NOTNULL",
141142         - /* 177 */ "expr ::= expr NOT NULL",
141143         - /* 178 */ "expr ::= expr IS expr",
141144         - /* 179 */ "expr ::= expr IS NOT expr",
141145         - /* 180 */ "expr ::= NOT expr",
141146         - /* 181 */ "expr ::= BITNOT expr",
141147         - /* 182 */ "expr ::= MINUS expr",
141148         - /* 183 */ "expr ::= PLUS expr",
141149         - /* 184 */ "between_op ::= BETWEEN",
141150         - /* 185 */ "between_op ::= NOT BETWEEN",
141151         - /* 186 */ "expr ::= expr between_op expr AND expr",
141152         - /* 187 */ "in_op ::= IN",
141153         - /* 188 */ "in_op ::= NOT IN",
141154         - /* 189 */ "expr ::= expr in_op LP exprlist RP",
141155         - /* 190 */ "expr ::= LP select RP",
141156         - /* 191 */ "expr ::= expr in_op LP select RP",
141157         - /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist",
141158         - /* 193 */ "expr ::= EXISTS LP select RP",
141159         - /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END",
141160         - /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
141161         - /* 196 */ "case_exprlist ::= WHEN expr THEN expr",
141162         - /* 197 */ "case_else ::= ELSE expr",
141163         - /* 198 */ "case_else ::=",
141164         - /* 199 */ "case_operand ::= expr",
141165         - /* 200 */ "case_operand ::=",
141166         - /* 201 */ "exprlist ::=",
141167         - /* 202 */ "nexprlist ::= nexprlist COMMA expr",
141168         - /* 203 */ "nexprlist ::= expr",
141169         - /* 204 */ "paren_exprlist ::=",
141170         - /* 205 */ "paren_exprlist ::= LP exprlist RP",
141171         - /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
141172         - /* 207 */ "uniqueflag ::= UNIQUE",
141173         - /* 208 */ "uniqueflag ::=",
141174         - /* 209 */ "eidlist_opt ::=",
141175         - /* 210 */ "eidlist_opt ::= LP eidlist RP",
141176         - /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder",
141177         - /* 212 */ "eidlist ::= nm collate sortorder",
141178         - /* 213 */ "collate ::=",
141179         - /* 214 */ "collate ::= COLLATE ID|STRING",
141180         - /* 215 */ "cmd ::= DROP INDEX ifexists fullname",
141181         - /* 216 */ "cmd ::= VACUUM",
141182         - /* 217 */ "cmd ::= VACUUM nm",
141183         - /* 218 */ "cmd ::= PRAGMA nm dbnm",
141184         - /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
141185         - /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
141186         - /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
141187         - /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
141188         - /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT",
141189         - /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT",
141190         - /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
141191         - /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
141192         - /* 227 */ "trigger_time ::= BEFORE|AFTER",
141193         - /* 228 */ "trigger_time ::= INSTEAD OF",
141194         - /* 229 */ "trigger_time ::=",
141195         - /* 230 */ "trigger_event ::= DELETE|INSERT",
141196         - /* 231 */ "trigger_event ::= UPDATE",
141197         - /* 232 */ "trigger_event ::= UPDATE OF idlist",
141198         - /* 233 */ "when_clause ::=",
141199         - /* 234 */ "when_clause ::= WHEN expr",
141200         - /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
141201         - /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI",
141202         - /* 237 */ "trnm ::= nm DOT nm",
141203         - /* 238 */ "tridxby ::= INDEXED BY nm",
141204         - /* 239 */ "tridxby ::= NOT INDEXED",
141205         - /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
141206         - /* 241 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
141207         - /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
141208         - /* 243 */ "trigger_cmd ::= scanpt select scanpt",
141209         - /* 244 */ "expr ::= RAISE LP IGNORE RP",
141210         - /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP",
141211         - /* 246 */ "raisetype ::= ROLLBACK",
141212         - /* 247 */ "raisetype ::= ABORT",
141213         - /* 248 */ "raisetype ::= FAIL",
141214         - /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname",
141215         - /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
141216         - /* 251 */ "cmd ::= DETACH database_kw_opt expr",
141217         - /* 252 */ "key_opt ::=",
141218         - /* 253 */ "key_opt ::= KEY expr",
141219         - /* 254 */ "cmd ::= REINDEX",
141220         - /* 255 */ "cmd ::= REINDEX nm dbnm",
141221         - /* 256 */ "cmd ::= ANALYZE",
141222         - /* 257 */ "cmd ::= ANALYZE nm dbnm",
141223         - /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
141224         - /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
141225         - /* 260 */ "add_column_fullname ::= fullname",
141226         - /* 261 */ "cmd ::= create_vtab",
141227         - /* 262 */ "cmd ::= create_vtab LP vtabarglist RP",
141228         - /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
141229         - /* 264 */ "vtabarg ::=",
141230         - /* 265 */ "vtabargtoken ::= ANY",
141231         - /* 266 */ "vtabargtoken ::= lp anylist RP",
141232         - /* 267 */ "lp ::= LP",
141233         - /* 268 */ "with ::=",
141234         - /* 269 */ "with ::= WITH wqlist",
141235         - /* 270 */ "with ::= WITH RECURSIVE wqlist",
141236         - /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP",
141237         - /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
141238         - /* 273 */ "input ::= cmdlist",
141239         - /* 274 */ "cmdlist ::= cmdlist ecmd",
141240         - /* 275 */ "cmdlist ::= ecmd",
141241         - /* 276 */ "ecmd ::= SEMI",
141242         - /* 277 */ "ecmd ::= explain cmdx SEMI",
141243         - /* 278 */ "explain ::=",
141244         - /* 279 */ "trans_opt ::=",
141245         - /* 280 */ "trans_opt ::= TRANSACTION",
141246         - /* 281 */ "trans_opt ::= TRANSACTION nm",
141247         - /* 282 */ "savepoint_opt ::= SAVEPOINT",
141248         - /* 283 */ "savepoint_opt ::=",
141249         - /* 284 */ "cmd ::= create_table create_table_args",
141250         - /* 285 */ "columnlist ::= columnlist COMMA columnname carglist",
141251         - /* 286 */ "columnlist ::= columnname carglist",
141252         - /* 287 */ "nm ::= ID|INDEXED",
141253         - /* 288 */ "nm ::= STRING",
141254         - /* 289 */ "nm ::= JOIN_KW",
141255         - /* 290 */ "typetoken ::= typename",
141256         - /* 291 */ "typename ::= ID|STRING",
141257         - /* 292 */ "signed ::= plus_num",
141258         - /* 293 */ "signed ::= minus_num",
141259         - /* 294 */ "carglist ::= carglist ccons",
141260         - /* 295 */ "carglist ::=",
141261         - /* 296 */ "ccons ::= NULL onconf",
141262         - /* 297 */ "conslist_opt ::= COMMA conslist",
141263         - /* 298 */ "conslist ::= conslist tconscomma tcons",
141264         - /* 299 */ "conslist ::= tcons",
141265         - /* 300 */ "tconscomma ::=",
141266         - /* 301 */ "defer_subclause_opt ::= defer_subclause",
141267         - /* 302 */ "resolvetype ::= raisetype",
141268         - /* 303 */ "selectnowith ::= oneselect",
141269         - /* 304 */ "oneselect ::= values",
141270         - /* 305 */ "sclp ::= selcollist COMMA",
141271         - /* 306 */ "as ::= ID|STRING",
141272         - /* 307 */ "expr ::= term",
141273         - /* 308 */ "likeop ::= LIKE_KW|MATCH",
141274         - /* 309 */ "exprlist ::= nexprlist",
141275         - /* 310 */ "nmnum ::= plus_num",
141276         - /* 311 */ "nmnum ::= nm",
141277         - /* 312 */ "nmnum ::= ON",
141278         - /* 313 */ "nmnum ::= DELETE",
141279         - /* 314 */ "nmnum ::= DEFAULT",
141280         - /* 315 */ "plus_num ::= INTEGER|FLOAT",
141281         - /* 316 */ "foreach_clause ::=",
141282         - /* 317 */ "foreach_clause ::= FOR EACH ROW",
141283         - /* 318 */ "trnm ::= nm",
141284         - /* 319 */ "tridxby ::=",
141285         - /* 320 */ "database_kw_opt ::= DATABASE",
141286         - /* 321 */ "database_kw_opt ::=",
141287         - /* 322 */ "kwcolumn_opt ::=",
141288         - /* 323 */ "kwcolumn_opt ::= COLUMNKW",
141289         - /* 324 */ "vtabarglist ::= vtabarg",
141290         - /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
141291         - /* 326 */ "vtabarg ::= vtabarg vtabargtoken",
141292         - /* 327 */ "anylist ::=",
141293         - /* 328 */ "anylist ::= anylist LP anylist RP",
141294         - /* 329 */ "anylist ::= anylist ANY",
       141114  + /*  80 */ "select ::= WITH wqlist selectnowith",
       141115  + /*  81 */ "select ::= WITH RECURSIVE wqlist selectnowith",
       141116  + /*  82 */ "select ::= selectnowith",
       141117  + /*  83 */ "selectnowith ::= selectnowith multiselect_op oneselect",
       141118  + /*  84 */ "multiselect_op ::= UNION",
       141119  + /*  85 */ "multiselect_op ::= UNION ALL",
       141120  + /*  86 */ "multiselect_op ::= EXCEPT|INTERSECT",
       141121  + /*  87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
       141122  + /*  88 */ "values ::= VALUES LP nexprlist RP",
       141123  + /*  89 */ "values ::= values COMMA LP exprlist RP",
       141124  + /*  90 */ "distinct ::= DISTINCT",
       141125  + /*  91 */ "distinct ::= ALL",
       141126  + /*  92 */ "distinct ::=",
       141127  + /*  93 */ "sclp ::=",
       141128  + /*  94 */ "selcollist ::= sclp scanpt expr scanpt as",
       141129  + /*  95 */ "selcollist ::= sclp scanpt STAR",
       141130  + /*  96 */ "selcollist ::= sclp scanpt nm DOT STAR",
       141131  + /*  97 */ "as ::= AS nm",
       141132  + /*  98 */ "as ::=",
       141133  + /*  99 */ "from ::=",
       141134  + /* 100 */ "from ::= FROM seltablist",
       141135  + /* 101 */ "stl_prefix ::= seltablist joinop",
       141136  + /* 102 */ "stl_prefix ::=",
       141137  + /* 103 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
       141138  + /* 104 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
       141139  + /* 105 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
       141140  + /* 106 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
       141141  + /* 107 */ "dbnm ::=",
       141142  + /* 108 */ "dbnm ::= DOT nm",
       141143  + /* 109 */ "fullname ::= nm",
       141144  + /* 110 */ "fullname ::= nm DOT nm",
       141145  + /* 111 */ "joinop ::= COMMA|JOIN",
       141146  + /* 112 */ "joinop ::= JOIN_KW JOIN",
       141147  + /* 113 */ "joinop ::= JOIN_KW nm JOIN",
       141148  + /* 114 */ "joinop ::= JOIN_KW nm nm JOIN",
       141149  + /* 115 */ "on_opt ::= ON expr",
       141150  + /* 116 */ "on_opt ::=",
       141151  + /* 117 */ "indexed_opt ::=",
       141152  + /* 118 */ "indexed_opt ::= INDEXED BY nm",
       141153  + /* 119 */ "indexed_opt ::= NOT INDEXED",
       141154  + /* 120 */ "using_opt ::= USING LP idlist RP",
       141155  + /* 121 */ "using_opt ::=",
       141156  + /* 122 */ "orderby_opt ::=",
       141157  + /* 123 */ "orderby_opt ::= ORDER BY sortlist",
       141158  + /* 124 */ "sortlist ::= sortlist COMMA expr sortorder",
       141159  + /* 125 */ "sortlist ::= expr sortorder",
       141160  + /* 126 */ "sortorder ::= ASC",
       141161  + /* 127 */ "sortorder ::= DESC",
       141162  + /* 128 */ "sortorder ::=",
       141163  + /* 129 */ "groupby_opt ::=",
       141164  + /* 130 */ "groupby_opt ::= GROUP BY nexprlist",
       141165  + /* 131 */ "having_opt ::=",
       141166  + /* 132 */ "having_opt ::= HAVING expr",
       141167  + /* 133 */ "limit_opt ::=",
       141168  + /* 134 */ "limit_opt ::= LIMIT expr",
       141169  + /* 135 */ "limit_opt ::= LIMIT expr OFFSET expr",
       141170  + /* 136 */ "limit_opt ::= LIMIT expr COMMA expr",
       141171  + /* 137 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
       141172  + /* 138 */ "where_opt ::=",
       141173  + /* 139 */ "where_opt ::= WHERE expr",
       141174  + /* 140 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
       141175  + /* 141 */ "setlist ::= setlist COMMA nm EQ expr",
       141176  + /* 142 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
       141177  + /* 143 */ "setlist ::= nm EQ expr",
       141178  + /* 144 */ "setlist ::= LP idlist RP EQ expr",
       141179  + /* 145 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
       141180  + /* 146 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
       141181  + /* 147 */ "insert_cmd ::= INSERT orconf",
       141182  + /* 148 */ "insert_cmd ::= REPLACE",
       141183  + /* 149 */ "idlist_opt ::=",
       141184  + /* 150 */ "idlist_opt ::= LP idlist RP",
       141185  + /* 151 */ "idlist ::= idlist COMMA nm",
       141186  + /* 152 */ "idlist ::= nm",
       141187  + /* 153 */ "expr ::= LP expr RP",
       141188  + /* 154 */ "expr ::= ID|INDEXED",
       141189  + /* 155 */ "expr ::= JOIN_KW",
       141190  + /* 156 */ "expr ::= nm DOT nm",
       141191  + /* 157 */ "expr ::= nm DOT nm DOT nm",
       141192  + /* 158 */ "term ::= NULL|FLOAT|BLOB",
       141193  + /* 159 */ "term ::= STRING",
       141194  + /* 160 */ "term ::= INTEGER",
       141195  + /* 161 */ "expr ::= VARIABLE",
       141196  + /* 162 */ "expr ::= expr COLLATE ID|STRING",
       141197  + /* 163 */ "expr ::= CAST LP expr AS typetoken RP",
       141198  + /* 164 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
       141199  + /* 165 */ "expr ::= ID|INDEXED LP STAR RP",
       141200  + /* 166 */ "term ::= CTIME_KW",
       141201  + /* 167 */ "expr ::= LP nexprlist COMMA expr RP",
       141202  + /* 168 */ "expr ::= expr AND expr",
       141203  + /* 169 */ "expr ::= expr OR expr",
       141204  + /* 170 */ "expr ::= expr LT|GT|GE|LE expr",
       141205  + /* 171 */ "expr ::= expr EQ|NE expr",
       141206  + /* 172 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
       141207  + /* 173 */ "expr ::= expr PLUS|MINUS expr",
       141208  + /* 174 */ "expr ::= expr STAR|SLASH|REM expr",
       141209  + /* 175 */ "expr ::= expr CONCAT expr",
       141210  + /* 176 */ "likeop ::= NOT LIKE_KW|MATCH",
       141211  + /* 177 */ "expr ::= expr likeop expr",
       141212  + /* 178 */ "expr ::= expr likeop expr ESCAPE expr",
       141213  + /* 179 */ "expr ::= expr ISNULL|NOTNULL",
       141214  + /* 180 */ "expr ::= expr NOT NULL",
       141215  + /* 181 */ "expr ::= expr IS expr",
       141216  + /* 182 */ "expr ::= expr IS NOT expr",
       141217  + /* 183 */ "expr ::= NOT expr",
       141218  + /* 184 */ "expr ::= BITNOT expr",
       141219  + /* 185 */ "expr ::= MINUS expr",
       141220  + /* 186 */ "expr ::= PLUS expr",
       141221  + /* 187 */ "between_op ::= BETWEEN",
       141222  + /* 188 */ "between_op ::= NOT BETWEEN",
       141223  + /* 189 */ "expr ::= expr between_op expr AND expr",
       141224  + /* 190 */ "in_op ::= IN",
       141225  + /* 191 */ "in_op ::= NOT IN",
       141226  + /* 192 */ "expr ::= expr in_op LP exprlist RP",
       141227  + /* 193 */ "expr ::= LP select RP",
       141228  + /* 194 */ "expr ::= expr in_op LP select RP",
       141229  + /* 195 */ "expr ::= expr in_op nm dbnm paren_exprlist",
       141230  + /* 196 */ "expr ::= EXISTS LP select RP",
       141231  + /* 197 */ "expr ::= CASE case_operand case_exprlist case_else END",
       141232  + /* 198 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
       141233  + /* 199 */ "case_exprlist ::= WHEN expr THEN expr",
       141234  + /* 200 */ "case_else ::= ELSE expr",
       141235  + /* 201 */ "case_else ::=",
       141236  + /* 202 */ "case_operand ::= expr",
       141237  + /* 203 */ "case_operand ::=",
       141238  + /* 204 */ "exprlist ::=",
       141239  + /* 205 */ "nexprlist ::= nexprlist COMMA expr",
       141240  + /* 206 */ "nexprlist ::= expr",
       141241  + /* 207 */ "paren_exprlist ::=",
       141242  + /* 208 */ "paren_exprlist ::= LP exprlist RP",
       141243  + /* 209 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
       141244  + /* 210 */ "uniqueflag ::= UNIQUE",
       141245  + /* 211 */ "uniqueflag ::=",
       141246  + /* 212 */ "eidlist_opt ::=",
       141247  + /* 213 */ "eidlist_opt ::= LP eidlist RP",
       141248  + /* 214 */ "eidlist ::= eidlist COMMA nm collate sortorder",
       141249  + /* 215 */ "eidlist ::= nm collate sortorder",
       141250  + /* 216 */ "collate ::=",
       141251  + /* 217 */ "collate ::= COLLATE ID|STRING",
       141252  + /* 218 */ "cmd ::= DROP INDEX ifexists fullname",
       141253  + /* 219 */ "cmd ::= VACUUM",
       141254  + /* 220 */ "cmd ::= VACUUM nm",
       141255  + /* 221 */ "cmd ::= PRAGMA nm dbnm",
       141256  + /* 222 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
       141257  + /* 223 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
       141258  + /* 224 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
       141259  + /* 225 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
       141260  + /* 226 */ "plus_num ::= PLUS INTEGER|FLOAT",
       141261  + /* 227 */ "minus_num ::= MINUS INTEGER|FLOAT",
       141262  + /* 228 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
       141263  + /* 229 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
       141264  + /* 230 */ "trigger_time ::= BEFORE|AFTER",
       141265  + /* 231 */ "trigger_time ::= INSTEAD OF",
       141266  + /* 232 */ "trigger_time ::=",
       141267  + /* 233 */ "trigger_event ::= DELETE|INSERT",
       141268  + /* 234 */ "trigger_event ::= UPDATE",
       141269  + /* 235 */ "trigger_event ::= UPDATE OF idlist",
       141270  + /* 236 */ "when_clause ::=",
       141271  + /* 237 */ "when_clause ::= WHEN expr",
       141272  + /* 238 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
       141273  + /* 239 */ "trigger_cmd_list ::= trigger_cmd SEMI",
       141274  + /* 240 */ "trnm ::= nm DOT nm",
       141275  + /* 241 */ "tridxby ::= INDEXED BY nm",
       141276  + /* 242 */ "tridxby ::= NOT INDEXED",
       141277  + /* 243 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
       141278  + /* 244 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
       141279  + /* 245 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
       141280  + /* 246 */ "trigger_cmd ::= scanpt select scanpt",
       141281  + /* 247 */ "expr ::= RAISE LP IGNORE RP",
       141282  + /* 248 */ "expr ::= RAISE LP raisetype COMMA nm RP",
       141283  + /* 249 */ "raisetype ::= ROLLBACK",
       141284  + /* 250 */ "raisetype ::= ABORT",
       141285  + /* 251 */ "raisetype ::= FAIL",
       141286  + /* 252 */ "cmd ::= DROP TRIGGER ifexists fullname",
       141287  + /* 253 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
       141288  + /* 254 */ "cmd ::= DETACH database_kw_opt expr",
       141289  + /* 255 */ "key_opt ::=",
       141290  + /* 256 */ "key_opt ::= KEY expr",
       141291  + /* 257 */ "cmd ::= REINDEX",
       141292  + /* 258 */ "cmd ::= REINDEX nm dbnm",
       141293  + /* 259 */ "cmd ::= ANALYZE",
       141294  + /* 260 */ "cmd ::= ANALYZE nm dbnm",
       141295  + /* 261 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
       141296  + /* 262 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
       141297  + /* 263 */ "add_column_fullname ::= fullname",
       141298  + /* 264 */ "cmd ::= create_vtab",
       141299  + /* 265 */ "cmd ::= create_vtab LP vtabarglist RP",
       141300  + /* 266 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
       141301  + /* 267 */ "vtabarg ::=",
       141302  + /* 268 */ "vtabargtoken ::= ANY",
       141303  + /* 269 */ "vtabargtoken ::= lp anylist RP",
       141304  + /* 270 */ "lp ::= LP",
       141305  + /* 271 */ "with ::= WITH wqlist",
       141306  + /* 272 */ "with ::= WITH RECURSIVE wqlist",
       141307  + /* 273 */ "wqlist ::= nm eidlist_opt AS LP select RP",
       141308  + /* 274 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
       141309  + /* 275 */ "input ::= cmdlist",
       141310  + /* 276 */ "cmdlist ::= cmdlist ecmd",
       141311  + /* 277 */ "cmdlist ::= ecmd",
       141312  + /* 278 */ "ecmd ::= SEMI",
       141313  + /* 279 */ "ecmd ::= explain cmdx SEMI",
       141314  + /* 280 */ "explain ::=",
       141315  + /* 281 */ "trans_opt ::=",
       141316  + /* 282 */ "trans_opt ::= TRANSACTION",
       141317  + /* 283 */ "trans_opt ::= TRANSACTION nm",
       141318  + /* 284 */ "savepoint_opt ::= SAVEPOINT",
       141319  + /* 285 */ "savepoint_opt ::=",
       141320  + /* 286 */ "cmd ::= create_table create_table_args",
       141321  + /* 287 */ "columnlist ::= columnlist COMMA columnname carglist",
       141322  + /* 288 */ "columnlist ::= columnname carglist",
       141323  + /* 289 */ "nm ::= ID|INDEXED",
       141324  + /* 290 */ "nm ::= STRING",
       141325  + /* 291 */ "nm ::= JOIN_KW",
       141326  + /* 292 */ "typetoken ::= typename",
       141327  + /* 293 */ "typename ::= ID|STRING",
       141328  + /* 294 */ "signed ::= plus_num",
       141329  + /* 295 */ "signed ::= minus_num",
       141330  + /* 296 */ "carglist ::= carglist ccons",
       141331  + /* 297 */ "carglist ::=",
       141332  + /* 298 */ "ccons ::= NULL onconf",
       141333  + /* 299 */ "conslist_opt ::= COMMA conslist",
       141334  + /* 300 */ "conslist ::= conslist tconscomma tcons",
       141335  + /* 301 */ "conslist ::= tcons",
       141336  + /* 302 */ "tconscomma ::=",
       141337  + /* 303 */ "defer_subclause_opt ::= defer_subclause",
       141338  + /* 304 */ "resolvetype ::= raisetype",
       141339  + /* 305 */ "selectnowith ::= oneselect",
       141340  + /* 306 */ "oneselect ::= values",
       141341  + /* 307 */ "sclp ::= selcollist COMMA",
       141342  + /* 308 */ "as ::= ID|STRING",
       141343  + /* 309 */ "expr ::= term",
       141344  + /* 310 */ "likeop ::= LIKE_KW|MATCH",
       141345  + /* 311 */ "exprlist ::= nexprlist",
       141346  + /* 312 */ "nmnum ::= plus_num",
       141347  + /* 313 */ "nmnum ::= nm",
       141348  + /* 314 */ "nmnum ::= ON",
       141349  + /* 315 */ "nmnum ::= DELETE",
       141350  + /* 316 */ "nmnum ::= DEFAULT",
       141351  + /* 317 */ "plus_num ::= INTEGER|FLOAT",
       141352  + /* 318 */ "foreach_clause ::=",
       141353  + /* 319 */ "foreach_clause ::= FOR EACH ROW",
       141354  + /* 320 */ "trnm ::= nm",
       141355  + /* 321 */ "tridxby ::=",
       141356  + /* 322 */ "database_kw_opt ::= DATABASE",
       141357  + /* 323 */ "database_kw_opt ::=",
       141358  + /* 324 */ "kwcolumn_opt ::=",
       141359  + /* 325 */ "kwcolumn_opt ::= COLUMNKW",
       141360  + /* 326 */ "vtabarglist ::= vtabarg",
       141361  + /* 327 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
       141362  + /* 328 */ "vtabarg ::= vtabarg vtabargtoken",
       141363  + /* 329 */ "anylist ::=",
       141364  + /* 330 */ "anylist ::= anylist LP anylist RP",
       141365  + /* 331 */ "anylist ::= anylist ANY",
       141366  + /* 332 */ "with ::=",
141295 141367   };
141296 141368   #endif /* NDEBUG */
141297 141369   
141298 141370   
141299 141371   #if YYSTACKDEPTH<=0
141300 141372   /*
141301 141373   ** Try to increase the size of the parser stack.  Return the number
................................................................................
141421 141493   }
141422 141494         break;
141423 141495       case 173: /* term */
141424 141496       case 174: /* expr */
141425 141497       case 202: /* where_opt */
141426 141498       case 204: /* having_opt */
141427 141499       case 216: /* on_opt */
141428         -    case 226: /* case_operand */
141429         -    case 228: /* case_else */
141430         -    case 237: /* when_clause */
141431         -    case 242: /* key_opt */
       141500  +    case 227: /* case_operand */
       141501  +    case 229: /* case_else */
       141502  +    case 238: /* when_clause */
       141503  +    case 243: /* key_opt */
141432 141504   {
141433 141505   sqlite3ExprDelete(pParse->db, (yypminor->yy314));
141434 141506   }
141435 141507         break;
141436 141508       case 178: /* eidlist_opt */
141437 141509       case 187: /* sortlist */
141438 141510       case 188: /* eidlist */
141439 141511       case 200: /* selcollist */
141440 141512       case 203: /* groupby_opt */
141441 141513       case 205: /* orderby_opt */
141442 141514       case 208: /* nexprlist */
141443 141515       case 209: /* exprlist */
141444 141516       case 210: /* sclp */
141445         -    case 219: /* setlist */
141446         -    case 225: /* paren_exprlist */
141447         -    case 227: /* case_exprlist */
       141517  +    case 220: /* setlist */
       141518  +    case 226: /* paren_exprlist */
       141519  +    case 228: /* case_exprlist */
141448 141520   {
141449 141521   sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
141450 141522   }
141451 141523         break;
141452 141524       case 194: /* fullname */
141453 141525       case 201: /* from */
141454 141526       case 212: /* seltablist */
141455 141527       case 213: /* stl_prefix */
141456 141528   {
141457 141529   sqlite3SrcListDelete(pParse->db, (yypminor->yy259));
141458 141530   }
141459 141531         break;
141460         -    case 197: /* with */
141461         -    case 251: /* wqlist */
       141532  +    case 197: /* wqlist */
141462 141533   {
141463 141534   sqlite3WithDelete(pParse->db, (yypminor->yy451));
141464 141535   }
141465 141536         break;
141466 141537       case 217: /* using_opt */
141467 141538       case 218: /* idlist */
141468         -    case 221: /* idlist_opt */
       141539  +    case 222: /* idlist_opt */
141469 141540   {
141470 141541   sqlite3IdListDelete(pParse->db, (yypminor->yy384));
141471 141542   }
141472 141543         break;
141473         -    case 233: /* trigger_cmd_list */
141474         -    case 238: /* trigger_cmd */
       141544  +    case 234: /* trigger_cmd_list */
       141545  +    case 239: /* trigger_cmd */
141475 141546   {
141476 141547   sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203));
141477 141548   }
141478 141549         break;
141479         -    case 235: /* trigger_event */
       141550  +    case 236: /* trigger_event */
141480 141551   {
141481 141552   sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
141482 141553   }
141483 141554         break;
141484 141555   /********* End destructor definitions *****************************************/
141485 141556       default:  break;   /* If no destructor action specified: do nothing */
141486 141557     }
................................................................................
141851 141922     {  191,   -1 }, /* (73) resolvetype ::= REPLACE */
141852 141923     {  149,   -4 }, /* (74) cmd ::= DROP TABLE ifexists fullname */
141853 141924     {  193,   -2 }, /* (75) ifexists ::= IF EXISTS */
141854 141925     {  193,    0 }, /* (76) ifexists ::= */
141855 141926     {  149,   -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
141856 141927     {  149,   -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
141857 141928     {  149,   -1 }, /* (79) cmd ::= select */
141858         -  {  163,   -2 }, /* (80) select ::= with selectnowith */
141859         -  {  195,   -3 }, /* (81) selectnowith ::= selectnowith multiselect_op oneselect */
141860         -  {  198,   -1 }, /* (82) multiselect_op ::= UNION */
141861         -  {  198,   -2 }, /* (83) multiselect_op ::= UNION ALL */
141862         -  {  198,   -1 }, /* (84) multiselect_op ::= EXCEPT|INTERSECT */
141863         -  {  196,   -9 }, /* (85) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
141864         -  {  207,   -4 }, /* (86) values ::= VALUES LP nexprlist RP */
141865         -  {  207,   -5 }, /* (87) values ::= values COMMA LP exprlist RP */
141866         -  {  199,   -1 }, /* (88) distinct ::= DISTINCT */
141867         -  {  199,   -1 }, /* (89) distinct ::= ALL */
141868         -  {  199,    0 }, /* (90) distinct ::= */
141869         -  {  210,    0 }, /* (91) sclp ::= */
141870         -  {  200,   -5 }, /* (92) selcollist ::= sclp scanpt expr scanpt as */
141871         -  {  200,   -3 }, /* (93) selcollist ::= sclp scanpt STAR */
141872         -  {  200,   -5 }, /* (94) selcollist ::= sclp scanpt nm DOT STAR */
141873         -  {  211,   -2 }, /* (95) as ::= AS nm */
141874         -  {  211,    0 }, /* (96) as ::= */
141875         -  {  201,    0 }, /* (97) from ::= */
141876         -  {  201,   -2 }, /* (98) from ::= FROM seltablist */
141877         -  {  213,   -2 }, /* (99) stl_prefix ::= seltablist joinop */
141878         -  {  213,    0 }, /* (100) stl_prefix ::= */
141879         -  {  212,   -7 }, /* (101) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
141880         -  {  212,   -9 }, /* (102) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
141881         -  {  212,   -7 }, /* (103) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
141882         -  {  212,   -7 }, /* (104) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
141883         -  {  159,    0 }, /* (105) dbnm ::= */
141884         -  {  159,   -2 }, /* (106) dbnm ::= DOT nm */
141885         -  {  194,   -2 }, /* (107) fullname ::= nm dbnm */
141886         -  {  214,   -1 }, /* (108) joinop ::= COMMA|JOIN */
141887         -  {  214,   -2 }, /* (109) joinop ::= JOIN_KW JOIN */
141888         -  {  214,   -3 }, /* (110) joinop ::= JOIN_KW nm JOIN */
141889         -  {  214,   -4 }, /* (111) joinop ::= JOIN_KW nm nm JOIN */
141890         -  {  216,   -2 }, /* (112) on_opt ::= ON expr */
141891         -  {  216,    0 }, /* (113) on_opt ::= */
141892         -  {  215,    0 }, /* (114) indexed_opt ::= */
141893         -  {  215,   -3 }, /* (115) indexed_opt ::= INDEXED BY nm */
141894         -  {  215,   -2 }, /* (116) indexed_opt ::= NOT INDEXED */
141895         -  {  217,   -4 }, /* (117) using_opt ::= USING LP idlist RP */
141896         -  {  217,    0 }, /* (118) using_opt ::= */
141897         -  {  205,    0 }, /* (119) orderby_opt ::= */
141898         -  {  205,   -3 }, /* (120) orderby_opt ::= ORDER BY sortlist */
141899         -  {  187,   -4 }, /* (121) sortlist ::= sortlist COMMA expr sortorder */
141900         -  {  187,   -2 }, /* (122) sortlist ::= expr sortorder */
141901         -  {  176,   -1 }, /* (123) sortorder ::= ASC */
141902         -  {  176,   -1 }, /* (124) sortorder ::= DESC */
141903         -  {  176,    0 }, /* (125) sortorder ::= */
141904         -  {  203,    0 }, /* (126) groupby_opt ::= */
141905         -  {  203,   -3 }, /* (127) groupby_opt ::= GROUP BY nexprlist */
141906         -  {  204,    0 }, /* (128) having_opt ::= */
141907         -  {  204,   -2 }, /* (129) having_opt ::= HAVING expr */
141908         -  {  206,    0 }, /* (130) limit_opt ::= */
141909         -  {  206,   -2 }, /* (131) limit_opt ::= LIMIT expr */
141910         -  {  206,   -4 }, /* (132) limit_opt ::= LIMIT expr OFFSET expr */
141911         -  {  206,   -4 }, /* (133) limit_opt ::= LIMIT expr COMMA expr */
141912         -  {  149,   -6 }, /* (134) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
141913         -  {  202,    0 }, /* (135) where_opt ::= */
141914         -  {  202,   -2 }, /* (136) where_opt ::= WHERE expr */
141915         -  {  149,   -8 }, /* (137) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
141916         -  {  219,   -5 }, /* (138) setlist ::= setlist COMMA nm EQ expr */
141917         -  {  219,   -7 }, /* (139) setlist ::= setlist COMMA LP idlist RP EQ expr */
141918         -  {  219,   -3 }, /* (140) setlist ::= nm EQ expr */
141919         -  {  219,   -5 }, /* (141) setlist ::= LP idlist RP EQ expr */
141920         -  {  149,   -6 }, /* (142) cmd ::= with insert_cmd INTO fullname idlist_opt select */
141921         -  {  149,   -7 }, /* (143) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
141922         -  {  220,   -2 }, /* (144) insert_cmd ::= INSERT orconf */
141923         -  {  220,   -1 }, /* (145) insert_cmd ::= REPLACE */
141924         -  {  221,    0 }, /* (146) idlist_opt ::= */
141925         -  {  221,   -3 }, /* (147) idlist_opt ::= LP idlist RP */
141926         -  {  218,   -3 }, /* (148) idlist ::= idlist COMMA nm */
141927         -  {  218,   -1 }, /* (149) idlist ::= nm */
141928         -  {  174,   -3 }, /* (150) expr ::= LP expr RP */
141929         -  {  174,   -1 }, /* (151) expr ::= ID|INDEXED */
141930         -  {  174,   -1 }, /* (152) expr ::= JOIN_KW */
141931         -  {  174,   -3 }, /* (153) expr ::= nm DOT nm */
141932         -  {  174,   -5 }, /* (154) expr ::= nm DOT nm DOT nm */
141933         -  {  173,   -1 }, /* (155) term ::= NULL|FLOAT|BLOB */
141934         -  {  173,   -1 }, /* (156) term ::= STRING */
141935         -  {  173,   -1 }, /* (157) term ::= INTEGER */
141936         -  {  174,   -1 }, /* (158) expr ::= VARIABLE */
141937         -  {  174,   -3 }, /* (159) expr ::= expr COLLATE ID|STRING */
141938         -  {  174,   -6 }, /* (160) expr ::= CAST LP expr AS typetoken RP */
141939         -  {  174,   -5 }, /* (161) expr ::= ID|INDEXED LP distinct exprlist RP */
141940         -  {  174,   -4 }, /* (162) expr ::= ID|INDEXED LP STAR RP */
141941         -  {  173,   -1 }, /* (163) term ::= CTIME_KW */
141942         -  {  174,   -5 }, /* (164) expr ::= LP nexprlist COMMA expr RP */
141943         -  {  174,   -3 }, /* (165) expr ::= expr AND expr */
141944         -  {  174,   -3 }, /* (166) expr ::= expr OR expr */
141945         -  {  174,   -3 }, /* (167) expr ::= expr LT|GT|GE|LE expr */
141946         -  {  174,   -3 }, /* (168) expr ::= expr EQ|NE expr */
141947         -  {  174,   -3 }, /* (169) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
141948         -  {  174,   -3 }, /* (170) expr ::= expr PLUS|MINUS expr */
141949         -  {  174,   -3 }, /* (171) expr ::= expr STAR|SLASH|REM expr */
141950         -  {  174,   -3 }, /* (172) expr ::= expr CONCAT expr */
141951         -  {  222,   -2 }, /* (173) likeop ::= NOT LIKE_KW|MATCH */
141952         -  {  174,   -3 }, /* (174) expr ::= expr likeop expr */
141953         -  {  174,   -5 }, /* (175) expr ::= expr likeop expr ESCAPE expr */
141954         -  {  174,   -2 }, /* (176) expr ::= expr ISNULL|NOTNULL */
141955         -  {  174,   -3 }, /* (177) expr ::= expr NOT NULL */
141956         -  {  174,   -3 }, /* (178) expr ::= expr IS expr */
141957         -  {  174,   -4 }, /* (179) expr ::= expr IS NOT expr */
141958         -  {  174,   -2 }, /* (180) expr ::= NOT expr */
141959         -  {  174,   -2 }, /* (181) expr ::= BITNOT expr */
141960         -  {  174,   -2 }, /* (182) expr ::= MINUS expr */
141961         -  {  174,   -2 }, /* (183) expr ::= PLUS expr */
141962         -  {  223,   -1 }, /* (184) between_op ::= BETWEEN */
141963         -  {  223,   -2 }, /* (185) between_op ::= NOT BETWEEN */
141964         -  {  174,   -5 }, /* (186) expr ::= expr between_op expr AND expr */
141965         -  {  224,   -1 }, /* (187) in_op ::= IN */
141966         -  {  224,   -2 }, /* (188) in_op ::= NOT IN */
141967         -  {  174,   -5 }, /* (189) expr ::= expr in_op LP exprlist RP */
141968         -  {  174,   -3 }, /* (190) expr ::= LP select RP */
141969         -  {  174,   -5 }, /* (191) expr ::= expr in_op LP select RP */
141970         -  {  174,   -5 }, /* (192) expr ::= expr in_op nm dbnm paren_exprlist */
141971         -  {  174,   -4 }, /* (193) expr ::= EXISTS LP select RP */
141972         -  {  174,   -5 }, /* (194) expr ::= CASE case_operand case_exprlist case_else END */
141973         -  {  227,   -5 }, /* (195) case_exprlist ::= case_exprlist WHEN expr THEN expr */
141974         -  {  227,   -4 }, /* (196) case_exprlist ::= WHEN expr THEN expr */
141975         -  {  228,   -2 }, /* (197) case_else ::= ELSE expr */
141976         -  {  228,    0 }, /* (198) case_else ::= */
141977         -  {  226,   -1 }, /* (199) case_operand ::= expr */
141978         -  {  226,    0 }, /* (200) case_operand ::= */
141979         -  {  209,    0 }, /* (201) exprlist ::= */
141980         -  {  208,   -3 }, /* (202) nexprlist ::= nexprlist COMMA expr */
141981         -  {  208,   -1 }, /* (203) nexprlist ::= expr */
141982         -  {  225,    0 }, /* (204) paren_exprlist ::= */
141983         -  {  225,   -3 }, /* (205) paren_exprlist ::= LP exprlist RP */
141984         -  {  149,  -12 }, /* (206) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
141985         -  {  229,   -1 }, /* (207) uniqueflag ::= UNIQUE */
141986         -  {  229,    0 }, /* (208) uniqueflag ::= */
141987         -  {  178,    0 }, /* (209) eidlist_opt ::= */
141988         -  {  178,   -3 }, /* (210) eidlist_opt ::= LP eidlist RP */
141989         -  {  188,   -5 }, /* (211) eidlist ::= eidlist COMMA nm collate sortorder */
141990         -  {  188,   -3 }, /* (212) eidlist ::= nm collate sortorder */
141991         -  {  230,    0 }, /* (213) collate ::= */
141992         -  {  230,   -2 }, /* (214) collate ::= COLLATE ID|STRING */
141993         -  {  149,   -4 }, /* (215) cmd ::= DROP INDEX ifexists fullname */
141994         -  {  149,   -1 }, /* (216) cmd ::= VACUUM */
141995         -  {  149,   -2 }, /* (217) cmd ::= VACUUM nm */
141996         -  {  149,   -3 }, /* (218) cmd ::= PRAGMA nm dbnm */
141997         -  {  149,   -5 }, /* (219) cmd ::= PRAGMA nm dbnm EQ nmnum */
141998         -  {  149,   -6 }, /* (220) cmd ::= PRAGMA nm dbnm LP nmnum RP */
141999         -  {  149,   -5 }, /* (221) cmd ::= PRAGMA nm dbnm EQ minus_num */
142000         -  {  149,   -6 }, /* (222) cmd ::= PRAGMA nm dbnm LP minus_num RP */
142001         -  {  169,   -2 }, /* (223) plus_num ::= PLUS INTEGER|FLOAT */
142002         -  {  170,   -2 }, /* (224) minus_num ::= MINUS INTEGER|FLOAT */
142003         -  {  149,   -5 }, /* (225) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
142004         -  {  232,  -11 }, /* (226) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
142005         -  {  234,   -1 }, /* (227) trigger_time ::= BEFORE|AFTER */
142006         -  {  234,   -2 }, /* (228) trigger_time ::= INSTEAD OF */
142007         -  {  234,    0 }, /* (229) trigger_time ::= */
142008         -  {  235,   -1 }, /* (230) trigger_event ::= DELETE|INSERT */
142009         -  {  235,   -1 }, /* (231) trigger_event ::= UPDATE */
142010         -  {  235,   -3 }, /* (232) trigger_event ::= UPDATE OF idlist */
142011         -  {  237,    0 }, /* (233) when_clause ::= */
142012         -  {  237,   -2 }, /* (234) when_clause ::= WHEN expr */
142013         -  {  233,   -3 }, /* (235) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
142014         -  {  233,   -2 }, /* (236) trigger_cmd_list ::= trigger_cmd SEMI */
142015         -  {  239,   -3 }, /* (237) trnm ::= nm DOT nm */
142016         -  {  240,   -3 }, /* (238) tridxby ::= INDEXED BY nm */
142017         -  {  240,   -2 }, /* (239) tridxby ::= NOT INDEXED */
142018         -  {  238,   -8 }, /* (240) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
142019         -  {  238,   -7 }, /* (241) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
142020         -  {  238,   -6 }, /* (242) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
142021         -  {  238,   -3 }, /* (243) trigger_cmd ::= scanpt select scanpt */
142022         -  {  174,   -4 }, /* (244) expr ::= RAISE LP IGNORE RP */
142023         -  {  174,   -6 }, /* (245) expr ::= RAISE LP raisetype COMMA nm RP */
142024         -  {  192,   -1 }, /* (246) raisetype ::= ROLLBACK */
142025         -  {  192,   -1 }, /* (247) raisetype ::= ABORT */
142026         -  {  192,   -1 }, /* (248) raisetype ::= FAIL */
142027         -  {  149,   -4 }, /* (249) cmd ::= DROP TRIGGER ifexists fullname */
142028         -  {  149,   -6 }, /* (250) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
142029         -  {  149,   -3 }, /* (251) cmd ::= DETACH database_kw_opt expr */
142030         -  {  242,    0 }, /* (252) key_opt ::= */
142031         -  {  242,   -2 }, /* (253) key_opt ::= KEY expr */
142032         -  {  149,   -1 }, /* (254) cmd ::= REINDEX */
142033         -  {  149,   -3 }, /* (255) cmd ::= REINDEX nm dbnm */
142034         -  {  149,   -1 }, /* (256) cmd ::= ANALYZE */
142035         -  {  149,   -3 }, /* (257) cmd ::= ANALYZE nm dbnm */
142036         -  {  149,   -6 }, /* (258) cmd ::= ALTER TABLE fullname RENAME TO nm */
142037         -  {  149,   -7 }, /* (259) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
142038         -  {  243,   -1 }, /* (260) add_column_fullname ::= fullname */
142039         -  {  149,   -1 }, /* (261) cmd ::= create_vtab */
142040         -  {  149,   -4 }, /* (262) cmd ::= create_vtab LP vtabarglist RP */
142041         -  {  245,   -8 }, /* (263) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
142042         -  {  247,    0 }, /* (264) vtabarg ::= */
142043         -  {  248,   -1 }, /* (265) vtabargtoken ::= ANY */
142044         -  {  248,   -3 }, /* (266) vtabargtoken ::= lp anylist RP */
142045         -  {  249,   -1 }, /* (267) lp ::= LP */
142046         -  {  197,    0 }, /* (268) with ::= */
142047         -  {  197,   -2 }, /* (269) with ::= WITH wqlist */
142048         -  {  197,   -3 }, /* (270) with ::= WITH RECURSIVE wqlist */
142049         -  {  251,   -6 }, /* (271) wqlist ::= nm eidlist_opt AS LP select RP */
142050         -  {  251,   -8 }, /* (272) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
142051         -  {  144,   -1 }, /* (273) input ::= cmdlist */
142052         -  {  145,   -2 }, /* (274) cmdlist ::= cmdlist ecmd */
142053         -  {  145,   -1 }, /* (275) cmdlist ::= ecmd */
142054         -  {  146,   -1 }, /* (276) ecmd ::= SEMI */
142055         -  {  146,   -3 }, /* (277) ecmd ::= explain cmdx SEMI */
142056         -  {  147,    0 }, /* (278) explain ::= */
142057         -  {  151,    0 }, /* (279) trans_opt ::= */
142058         -  {  151,   -1 }, /* (280) trans_opt ::= TRANSACTION */
142059         -  {  151,   -2 }, /* (281) trans_opt ::= TRANSACTION nm */
142060         -  {  153,   -1 }, /* (282) savepoint_opt ::= SAVEPOINT */
142061         -  {  153,    0 }, /* (283) savepoint_opt ::= */
142062         -  {  149,   -2 }, /* (284) cmd ::= create_table create_table_args */
142063         -  {  160,   -4 }, /* (285) columnlist ::= columnlist COMMA columnname carglist */
142064         -  {  160,   -2 }, /* (286) columnlist ::= columnname carglist */
142065         -  {  152,   -1 }, /* (287) nm ::= ID|INDEXED */
142066         -  {  152,   -1 }, /* (288) nm ::= STRING */
142067         -  {  152,   -1 }, /* (289) nm ::= JOIN_KW */
142068         -  {  166,   -1 }, /* (290) typetoken ::= typename */
142069         -  {  167,   -1 }, /* (291) typename ::= ID|STRING */
142070         -  {  168,   -1 }, /* (292) signed ::= plus_num */
142071         -  {  168,   -1 }, /* (293) signed ::= minus_num */
142072         -  {  165,   -2 }, /* (294) carglist ::= carglist ccons */
142073         -  {  165,    0 }, /* (295) carglist ::= */
142074         -  {  172,   -2 }, /* (296) ccons ::= NULL onconf */
142075         -  {  161,   -2 }, /* (297) conslist_opt ::= COMMA conslist */
142076         -  {  184,   -3 }, /* (298) conslist ::= conslist tconscomma tcons */
142077         -  {  184,   -1 }, /* (299) conslist ::= tcons */
142078         -  {  185,    0 }, /* (300) tconscomma ::= */
142079         -  {  189,   -1 }, /* (301) defer_subclause_opt ::= defer_subclause */
142080         -  {  191,   -1 }, /* (302) resolvetype ::= raisetype */
142081         -  {  195,   -1 }, /* (303) selectnowith ::= oneselect */
142082         -  {  196,   -1 }, /* (304) oneselect ::= values */
142083         -  {  210,   -2 }, /* (305) sclp ::= selcollist COMMA */
142084         -  {  211,   -1 }, /* (306) as ::= ID|STRING */
142085         -  {  174,   -1 }, /* (307) expr ::= term */
142086         -  {  222,   -1 }, /* (308) likeop ::= LIKE_KW|MATCH */
142087         -  {  209,   -1 }, /* (309) exprlist ::= nexprlist */
142088         -  {  231,   -1 }, /* (310) nmnum ::= plus_num */
142089         -  {  231,   -1 }, /* (311) nmnum ::= nm */
142090         -  {  231,   -1 }, /* (312) nmnum ::= ON */
142091         -  {  231,   -1 }, /* (313) nmnum ::= DELETE */
142092         -  {  231,   -1 }, /* (314) nmnum ::= DEFAULT */
142093         -  {  169,   -1 }, /* (315) plus_num ::= INTEGER|FLOAT */
142094         -  {  236,    0 }, /* (316) foreach_clause ::= */
142095         -  {  236,   -3 }, /* (317) foreach_clause ::= FOR EACH ROW */
142096         -  {  239,   -1 }, /* (318) trnm ::= nm */
142097         -  {  240,    0 }, /* (319) tridxby ::= */
142098         -  {  241,   -1 }, /* (320) database_kw_opt ::= DATABASE */
142099         -  {  241,    0 }, /* (321) database_kw_opt ::= */
142100         -  {  244,    0 }, /* (322) kwcolumn_opt ::= */
142101         -  {  244,   -1 }, /* (323) kwcolumn_opt ::= COLUMNKW */
142102         -  {  246,   -1 }, /* (324) vtabarglist ::= vtabarg */
142103         -  {  246,   -3 }, /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */
142104         -  {  247,   -2 }, /* (326) vtabarg ::= vtabarg vtabargtoken */
142105         -  {  250,    0 }, /* (327) anylist ::= */
142106         -  {  250,   -4 }, /* (328) anylist ::= anylist LP anylist RP */
142107         -  {  250,   -2 }, /* (329) anylist ::= anylist ANY */
       141929  +  {  163,   -3 }, /* (80) select ::= WITH wqlist selectnowith */
       141930  +  {  163,   -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
       141931  +  {  163,   -1 }, /* (82) select ::= selectnowith */
       141932  +  {  195,   -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
       141933  +  {  198,   -1 }, /* (84) multiselect_op ::= UNION */
       141934  +  {  198,   -2 }, /* (85) multiselect_op ::= UNION ALL */
       141935  +  {  198,   -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
       141936  +  {  196,   -9 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
       141937  +  {  207,   -4 }, /* (88) values ::= VALUES LP nexprlist RP */
       141938  +  {  207,   -5 }, /* (89) values ::= values COMMA LP exprlist RP */
       141939  +  {  199,   -1 }, /* (90) distinct ::= DISTINCT */
       141940  +  {  199,   -1 }, /* (91) distinct ::= ALL */
       141941  +  {  199,    0 }, /* (92) distinct ::= */
       141942  +  {  210,    0 }, /* (93) sclp ::= */
       141943  +  {  200,   -5 }, /* (94) selcollist ::= sclp scanpt expr scanpt as */
       141944  +  {  200,   -3 }, /* (95) selcollist ::= sclp scanpt STAR */
       141945  +  {  200,   -5 }, /* (96) selcollist ::= sclp scanpt nm DOT STAR */
       141946  +  {  211,   -2 }, /* (97) as ::= AS nm */
       141947  +  {  211,    0 }, /* (98) as ::= */
       141948  +  {  201,    0 }, /* (99) from ::= */
       141949  +  {  201,   -2 }, /* (100) from ::= FROM seltablist */
       141950  +  {  213,   -2 }, /* (101) stl_prefix ::= seltablist joinop */
       141951  +  {  213,    0 }, /* (102) stl_prefix ::= */
       141952  +  {  212,   -7 }, /* (103) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
       141953  +  {  212,   -9 }, /* (104) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
       141954  +  {  212,   -7 }, /* (105) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
       141955  +  {  212,   -7 }, /* (106) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
       141956  +  {  159,    0 }, /* (107) dbnm ::= */
       141957  +  {  159,   -2 }, /* (108) dbnm ::= DOT nm */
       141958  +  {  194,   -1 }, /* (109) fullname ::= nm */
       141959  +  {  194,   -3 }, /* (110) fullname ::= nm DOT nm */
       141960  +  {  214,   -1 }, /* (111) joinop ::= COMMA|JOIN */
       141961  +  {  214,   -2 }, /* (112) joinop ::= JOIN_KW JOIN */
       141962  +  {  214,   -3 }, /* (113) joinop ::= JOIN_KW nm JOIN */
       141963  +  {  214,   -4 }, /* (114) joinop ::= JOIN_KW nm nm JOIN */
       141964  +  {  216,   -2 }, /* (115) on_opt ::= ON expr */
       141965  +  {  216,    0 }, /* (116) on_opt ::= */
       141966  +  {  215,    0 }, /* (117) indexed_opt ::= */
       141967  +  {  215,   -3 }, /* (118) indexed_opt ::= INDEXED BY nm */
       141968  +  {  215,   -2 }, /* (119) indexed_opt ::= NOT INDEXED */
       141969  +  {  217,   -4 }, /* (120) using_opt ::= USING LP idlist RP */
       141970  +  {  217,    0 }, /* (121) using_opt ::= */
       141971  +  {  205,    0 }, /* (122) orderby_opt ::= */
       141972  +  {  205,   -3 }, /* (123) orderby_opt ::= ORDER BY sortlist */
       141973  +  {  187,   -4 }, /* (124) sortlist ::= sortlist COMMA expr sortorder */
       141974  +  {  187,   -2 }, /* (125) sortlist ::= expr sortorder */
       141975  +  {  176,   -1 }, /* (126) sortorder ::= ASC */
       141976  +  {  176,   -1 }, /* (127) sortorder ::= DESC */
       141977  +  {  176,    0 }, /* (128) sortorder ::= */
       141978  +  {  203,    0 }, /* (129) groupby_opt ::= */
       141979  +  {  203,   -3 }, /* (130) groupby_opt ::= GROUP BY nexprlist */
       141980  +  {  204,    0 }, /* (131) having_opt ::= */
       141981  +  {  204,   -2 }, /* (132) having_opt ::= HAVING expr */
       141982  +  {  206,    0 }, /* (133) limit_opt ::= */
       141983  +  {  206,   -2 }, /* (134) limit_opt ::= LIMIT expr */
       141984  +  {  206,   -4 }, /* (135) limit_opt ::= LIMIT expr OFFSET expr */
       141985  +  {  206,   -4 }, /* (136) limit_opt ::= LIMIT expr COMMA expr */
       141986  +  {  149,   -6 }, /* (137) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
       141987  +  {  202,    0 }, /* (138) where_opt ::= */
       141988  +  {  202,   -2 }, /* (139) where_opt ::= WHERE expr */
       141989  +  {  149,   -8 }, /* (140) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
       141990  +  {  220,   -5 }, /* (141) setlist ::= setlist COMMA nm EQ expr */
       141991  +  {  220,   -7 }, /* (142) setlist ::= setlist COMMA LP idlist RP EQ expr */
       141992  +  {  220,   -3 }, /* (143) setlist ::= nm EQ expr */
       141993  +  {  220,   -5 }, /* (144) setlist ::= LP idlist RP EQ expr */
       141994  +  {  149,   -6 }, /* (145) cmd ::= with insert_cmd INTO fullname idlist_opt select */
       141995  +  {  149,   -7 }, /* (146) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
       141996  +  {  221,   -2 }, /* (147) insert_cmd ::= INSERT orconf */
       141997  +  {  221,   -1 }, /* (148) insert_cmd ::= REPLACE */
       141998  +  {  222,    0 }, /* (149) idlist_opt ::= */
       141999  +  {  222,   -3 }, /* (150) idlist_opt ::= LP idlist RP */
       142000  +  {  218,   -3 }, /* (151) idlist ::= idlist COMMA nm */
       142001  +  {  218,   -1 }, /* (152) idlist ::= nm */
       142002  +  {  174,   -3 }, /* (153) expr ::= LP expr RP */
       142003  +  {  174,   -1 }, /* (154) expr ::= ID|INDEXED */
       142004  +  {  174,   -1 }, /* (155) expr ::= JOIN_KW */
       142005  +  {  174,   -3 }, /* (156) expr ::= nm DOT nm */
       142006  +  {  174,   -5 }, /* (157) expr ::= nm DOT nm DOT nm */
       142007  +  {  173,   -1 }, /* (158) term ::= NULL|FLOAT|BLOB */
       142008  +  {  173,   -1 }, /* (159) term ::= STRING */
       142009  +  {  173,   -1 }, /* (160) term ::= INTEGER */
       142010  +  {  174,   -1 }, /* (161) expr ::= VARIABLE */
       142011  +  {  174,   -3 }, /* (162) expr ::= expr COLLATE ID|STRING */
       142012  +  {  174,   -6 }, /* (163) expr ::= CAST LP expr AS typetoken RP */
       142013  +  {  174,   -5 }, /* (164) expr ::= ID|INDEXED LP distinct exprlist RP */
       142014  +  {  174,   -4 }, /* (165) expr ::= ID|INDEXED LP STAR RP */
       142015  +  {  173,   -1 }, /* (166) term ::= CTIME_KW */
       142016  +  {  174,   -5 }, /* (167) expr ::= LP nexprlist COMMA expr RP */
       142017  +  {  174,   -3 }, /* (168) expr ::= expr AND expr */
       142018  +  {  174,   -3 }, /* (169) expr ::= expr OR expr */
       142019  +  {  174,   -3 }, /* (170) expr ::= expr LT|GT|GE|LE expr */
       142020  +  {  174,   -3 }, /* (171) expr ::= expr EQ|NE expr */
       142021  +  {  174,   -3 }, /* (172) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
       142022  +  {  174,   -3 }, /* (173) expr ::= expr PLUS|MINUS expr */
       142023  +  {  174,   -3 }, /* (174) expr ::= expr STAR|SLASH|REM expr */
       142024  +  {  174,   -3 }, /* (175) expr ::= expr CONCAT expr */
       142025  +  {  223,   -2 }, /* (176) likeop ::= NOT LIKE_KW|MATCH */
       142026  +  {  174,   -3 }, /* (177) expr ::= expr likeop expr */
       142027  +  {  174,   -5 }, /* (178) expr ::= expr likeop expr ESCAPE expr */
       142028  +  {  174,   -2 }, /* (179) expr ::= expr ISNULL|NOTNULL */
       142029  +  {  174,   -3 }, /* (180) expr ::= expr NOT NULL */
       142030  +  {  174,   -3 }, /* (181) expr ::= expr IS expr */
       142031  +  {  174,   -4 }, /* (182) expr ::= expr IS NOT expr */
       142032  +  {  174,   -2 }, /* (183) expr ::= NOT expr */
       142033  +  {  174,   -2 }, /* (184) expr ::= BITNOT expr */
       142034  +  {  174,   -2 }, /* (185) expr ::= MINUS expr */
       142035  +  {  174,   -2 }, /* (186) expr ::= PLUS expr */
       142036  +  {  224,   -1 }, /* (187) between_op ::= BETWEEN */
       142037  +  {  224,   -2 }, /* (188) between_op ::= NOT BETWEEN */
       142038  +  {  174,   -5 }, /* (189) expr ::= expr between_op expr AND expr */
       142039  +  {  225,   -1 }, /* (190) in_op ::= IN */
       142040  +  {  225,   -2 }, /* (191) in_op ::= NOT IN */
       142041  +  {  174,   -5 }, /* (192) expr ::= expr in_op LP exprlist RP */
       142042  +  {  174,   -3 }, /* (193) expr ::= LP select RP */
       142043  +  {  174,   -5 }, /* (194) expr ::= expr in_op LP select RP */
       142044  +  {  174,   -5 }, /* (195) expr ::= expr in_op nm dbnm paren_exprlist */
       142045  +  {  174,   -4 }, /* (196) expr ::= EXISTS LP select RP */
       142046  +  {  174,   -5 }, /* (197) expr ::= CASE case_operand case_exprlist case_else END */
       142047  +  {  228,   -5 }, /* (198) case_exprlist ::= case_exprlist WHEN expr THEN expr */
       142048  +  {  228,   -4 }, /* (199) case_exprlist ::= WHEN expr THEN expr */
       142049  +  {  229,   -2 }, /* (200) case_else ::= ELSE expr */
       142050  +  {  229,    0 }, /* (201) case_else ::= */
       142051  +  {  227,   -1 }, /* (202) case_operand ::= expr */
       142052  +  {  227,    0 }, /* (203) case_operand ::= */
       142053  +  {  209,    0 }, /* (204) exprlist ::= */
       142054  +  {  208,   -3 }, /* (205) nexprlist ::= nexprlist COMMA expr */
       142055  +  {  208,   -1 }, /* (206) nexprlist ::= expr */
       142056  +  {  226,    0 }, /* (207) paren_exprlist ::= */
       142057  +  {  226,   -3 }, /* (208) paren_exprlist ::= LP exprlist RP */
       142058  +  {  149,  -12 }, /* (209) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
       142059  +  {  230,   -1 }, /* (210) uniqueflag ::= UNIQUE */
       142060  +  {  230,    0 }, /* (211) uniqueflag ::= */
       142061  +  {  178,    0 }, /* (212) eidlist_opt ::= */
       142062  +  {  178,   -3 }, /* (213) eidlist_opt ::= LP eidlist RP */
       142063  +  {  188,   -5 }, /* (214) eidlist ::= eidlist COMMA nm collate sortorder */
       142064  +  {  188,   -3 }, /* (215) eidlist ::= nm collate sortorder */
       142065  +  {  231,    0 }, /* (216) collate ::= */
       142066  +  {  231,   -2 }, /* (217) collate ::= COLLATE ID|STRING */
       142067  +  {  149,   -4 }, /* (218) cmd ::= DROP INDEX ifexists fullname */
       142068  +  {  149,   -1 }, /* (219) cmd ::= VACUUM */
       142069  +  {  149,   -2 }, /* (220) cmd ::= VACUUM nm */
       142070  +  {  149,   -3 }, /* (221) cmd ::= PRAGMA nm dbnm */
       142071  +  {  149,   -5 }, /* (222) cmd ::= PRAGMA nm dbnm EQ nmnum */
       142072  +  {  149,   -6 }, /* (223) cmd ::= PRAGMA nm dbnm LP nmnum RP */
       142073  +  {  149,   -5 }, /* (224) cmd ::= PRAGMA nm dbnm EQ minus_num */
       142074  +  {  149,   -6 }, /* (225) cmd ::= PRAGMA nm dbnm LP minus_num RP */
       142075  +  {  169,   -2 }, /* (226) plus_num ::= PLUS INTEGER|FLOAT */
       142076  +  {  170,   -2 }, /* (227) minus_num ::= MINUS INTEGER|FLOAT */
       142077  +  {  149,   -5 }, /* (228) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
       142078  +  {  233,  -11 }, /* (229) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
       142079  +  {  235,   -1 }, /* (230) trigger_time ::= BEFORE|AFTER */
       142080  +  {  235,   -2 }, /* (231) trigger_time ::= INSTEAD OF */
       142081  +  {  235,    0 }, /* (232) trigger_time ::= */
       142082  +  {  236,   -1 }, /* (233) trigger_event ::= DELETE|INSERT */
       142083  +  {  236,   -1 }, /* (234) trigger_event ::= UPDATE */
       142084  +  {  236,   -3 }, /* (235) trigger_event ::= UPDATE OF idlist */
       142085  +  {  238,    0 }, /* (236) when_clause ::= */
       142086  +  {  238,   -2 }, /* (237) when_clause ::= WHEN expr */
       142087  +  {  234,   -3 }, /* (238) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
       142088  +  {  234,   -2 }, /* (239) trigger_cmd_list ::= trigger_cmd SEMI */
       142089  +  {  240,   -3 }, /* (240) trnm ::= nm DOT nm */
       142090  +  {  241,   -3 }, /* (241) tridxby ::= INDEXED BY nm */
       142091  +  {  241,   -2 }, /* (242) tridxby ::= NOT INDEXED */
       142092  +  {  239,   -8 }, /* (243) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
       142093  +  {  239,   -7 }, /* (244) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
       142094  +  {  239,   -6 }, /* (245) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
       142095  +  {  239,   -3 }, /* (246) trigger_cmd ::= scanpt select scanpt */
       142096  +  {  174,   -4 }, /* (247) expr ::= RAISE LP IGNORE RP */
       142097  +  {  174,   -6 }, /* (248) expr ::= RAISE LP raisetype COMMA nm RP */
       142098  +  {  192,   -1 }, /* (249) raisetype ::= ROLLBACK */
       142099  +  {  192,   -1 }, /* (250) raisetype ::= ABORT */
       142100  +  {  192,   -1 }, /* (251) raisetype ::= FAIL */
       142101  +  {  149,   -4 }, /* (252) cmd ::= DROP TRIGGER ifexists fullname */
       142102  +  {  149,   -6 }, /* (253) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
       142103  +  {  149,   -3 }, /* (254) cmd ::= DETACH database_kw_opt expr */
       142104  +  {  243,    0 }, /* (255) key_opt ::= */
       142105  +  {  243,   -2 }, /* (256) key_opt ::= KEY expr */
       142106  +  {  149,   -1 }, /* (257) cmd ::= REINDEX */
       142107  +  {  149,   -3 }, /* (258) cmd ::= REINDEX nm dbnm */
       142108  +  {  149,   -1 }, /* (259) cmd ::= ANALYZE */
       142109  +  {  149,   -3 }, /* (260) cmd ::= ANALYZE nm dbnm */
       142110  +  {  149,   -6 }, /* (261) cmd ::= ALTER TABLE fullname RENAME TO nm */
       142111  +  {  149,   -7 }, /* (262) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
       142112  +  {  244,   -1 }, /* (263) add_column_fullname ::= fullname */
       142113  +  {  149,   -1 }, /* (264) cmd ::= create_vtab */
       142114  +  {  149,   -4 }, /* (265) cmd ::= create_vtab LP vtabarglist RP */
       142115  +  {  246,   -8 }, /* (266) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
       142116  +  {  248,    0 }, /* (267) vtabarg ::= */
       142117  +  {  249,   -1 }, /* (268) vtabargtoken ::= ANY */
       142118  +  {  249,   -3 }, /* (269) vtabargtoken ::= lp anylist RP */
       142119  +  {  250,   -1 }, /* (270) lp ::= LP */
       142120  +  {  219,   -2 }, /* (271) with ::= WITH wqlist */
       142121  +  {  219,   -3 }, /* (272) with ::= WITH RECURSIVE wqlist */
       142122  +  {  197,   -6 }, /* (273) wqlist ::= nm eidlist_opt AS LP select RP */
       142123  +  {  197,   -8 }, /* (274) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
       142124  +  {  144,   -1 }, /* (275) input ::= cmdlist */
       142125  +  {  145,   -2 }, /* (276) cmdlist ::= cmdlist ecmd */
       142126  +  {  145,   -1 }, /* (277) cmdlist ::= ecmd */
       142127  +  {  146,   -1 }, /* (278) ecmd ::= SEMI */
       142128  +  {  146,   -3 }, /* (279) ecmd ::= explain cmdx SEMI */
       142129  +  {  147,    0 }, /* (280) explain ::= */
       142130  +  {  151,    0 }, /* (281) trans_opt ::= */
       142131  +  {  151,   -1 }, /* (282) trans_opt ::= TRANSACTION */
       142132  +  {  151,   -2 }, /* (283) trans_opt ::= TRANSACTION nm */
       142133  +  {  153,   -1 }, /* (284) savepoint_opt ::= SAVEPOINT */
       142134  +  {  153,    0 }, /* (285) savepoint_opt ::= */
       142135  +  {  149,   -2 }, /* (286) cmd ::= create_table create_table_args */
       142136  +  {  160,   -4 }, /* (287) columnlist ::= columnlist COMMA columnname carglist */
       142137  +  {  160,   -2 }, /* (288) columnlist ::= columnname carglist */
       142138  +  {  152,   -1 }, /* (289) nm ::= ID|INDEXED */
       142139  +  {  152,   -1 }, /* (290) nm ::= STRING */
       142140  +  {  152,   -1 }, /* (291) nm ::= JOIN_KW */
       142141  +  {  166,   -1 }, /* (292) typetoken ::= typename */
       142142  +  {  167,   -1 }, /* (293) typename ::= ID|STRING */
       142143  +  {  168,   -1 }, /* (294) signed ::= plus_num */
       142144  +  {  168,   -1 }, /* (295) signed ::= minus_num */
       142145  +  {  165,   -2 }, /* (296) carglist ::= carglist ccons */
       142146  +  {  165,    0 }, /* (297) carglist ::= */
       142147  +  {  172,   -2 }, /* (298) ccons ::= NULL onconf */
       142148  +  {  161,   -2 }, /* (299) conslist_opt ::= COMMA conslist */
       142149  +  {  184,   -3 }, /* (300) conslist ::= conslist tconscomma tcons */
       142150  +  {  184,   -1 }, /* (301) conslist ::= tcons */
       142151  +  {  185,    0 }, /* (302) tconscomma ::= */
       142152  +  {  189,   -1 }, /* (303) defer_subclause_opt ::= defer_subclause */
       142153  +  {  191,   -1 }, /* (304) resolvetype ::= raisetype */
       142154  +  {  195,   -1 }, /* (305) selectnowith ::= oneselect */
       142155  +  {  196,   -1 }, /* (306) oneselect ::= values */
       142156  +  {  210,   -2 }, /* (307) sclp ::= selcollist COMMA */
       142157  +  {  211,   -1 }, /* (308) as ::= ID|STRING */
       142158  +  {  174,   -1 }, /* (309) expr ::= term */
       142159  +  {  223,   -1 }, /* (310) likeop ::= LIKE_KW|MATCH */
       142160  +  {  209,   -1 }, /* (311) exprlist ::= nexprlist */
       142161  +  {  232,   -1 }, /* (312) nmnum ::= plus_num */
       142162  +  {  232,   -1 }, /* (313) nmnum ::= nm */
       142163  +  {  232,   -1 }, /* (314) nmnum ::= ON */
       142164  +  {  232,   -1 }, /* (315) nmnum ::= DELETE */
       142165  +  {  232,   -1 }, /* (316) nmnum ::= DEFAULT */
       142166  +  {  169,   -1 }, /* (317) plus_num ::= INTEGER|FLOAT */
       142167  +  {  237,    0 }, /* (318) foreach_clause ::= */
       142168  +  {  237,   -3 }, /* (319) foreach_clause ::= FOR EACH ROW */
       142169  +  {  240,   -1 }, /* (320) trnm ::= nm */
       142170  +  {  241,    0 }, /* (321) tridxby ::= */
       142171  +  {  242,   -1 }, /* (322) database_kw_opt ::= DATABASE */
       142172  +  {  242,    0 }, /* (323) database_kw_opt ::= */
       142173  +  {  245,    0 }, /* (324) kwcolumn_opt ::= */
       142174  +  {  245,   -1 }, /* (325) kwcolumn_opt ::= COLUMNKW */
       142175  +  {  247,   -1 }, /* (326) vtabarglist ::= vtabarg */
       142176  +  {  247,   -3 }, /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */
       142177  +  {  248,   -2 }, /* (328) vtabarg ::= vtabarg vtabargtoken */
       142178  +  {  251,    0 }, /* (329) anylist ::= */
       142179  +  {  251,   -4 }, /* (330) anylist ::= anylist LP anylist RP */
       142180  +  {  251,   -2 }, /* (331) anylist ::= anylist ANY */
       142181  +  {  219,    0 }, /* (332) with ::= */
142108 142182   };
142109 142183   
142110 142184   static void yy_accept(yyParser*);  /* Forward Declaration */
142111 142185   
142112 142186   /*
142113 142187   ** Perform a reduce action and the shift that must immediately
142114 142188   ** follow the reduce.
................................................................................
142234 142308         case 15: /* ifnotexists ::= */
142235 142309         case 18: /* temp ::= */ yytestcase(yyruleno==18);
142236 142310         case 21: /* table_options ::= */ yytestcase(yyruleno==21);
142237 142311         case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
142238 142312         case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
142239 142313         case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
142240 142314         case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
142241         -      case 90: /* distinct ::= */ yytestcase(yyruleno==90);
142242         -      case 213: /* collate ::= */ yytestcase(yyruleno==213);
       142315  +      case 92: /* distinct ::= */ yytestcase(yyruleno==92);
       142316  +      case 216: /* collate ::= */ yytestcase(yyruleno==216);
142243 142317   {yymsp[1].minor.yy4 = 0;}
142244 142318           break;
142245 142319         case 16: /* ifnotexists ::= IF NOT EXISTS */
142246 142320   {yymsp[-2].minor.yy4 = 1;}
142247 142321           break;
142248 142322         case 17: /* temp ::= TEMP */
142249 142323         case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43);
................................................................................
142271 142345   }
142272 142346           break;
142273 142347         case 23: /* columnname ::= nm typetoken */
142274 142348   {sqlite3AddColumn(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
142275 142349           break;
142276 142350         case 24: /* typetoken ::= */
142277 142351         case 60: /* conslist_opt ::= */ yytestcase(yyruleno==60);
142278         -      case 96: /* as ::= */ yytestcase(yyruleno==96);
       142352  +      case 98: /* as ::= */ yytestcase(yyruleno==98);
142279 142353   {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;}
142280 142354           break;
142281 142355         case 25: /* typetoken ::= typename LP signed RP */
142282 142356   {
142283 142357     yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z);
142284 142358   }
142285 142359           break;
................................................................................
142382 142456   { yymsp[-1].minor.yy4 = OE_None;     /* EV: R-33326-45252 */}
142383 142457           break;
142384 142458         case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
142385 142459   {yymsp[-2].minor.yy4 = 0;}
142386 142460           break;
142387 142461         case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
142388 142462         case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
142389         -      case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
       142463  +      case 147: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==147);
142390 142464   {yymsp[-1].minor.yy4 = yymsp[0].minor.yy4;}
142391 142465           break;
142392 142466         case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
142393 142467         case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
142394         -      case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185);
142395         -      case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188);
142396         -      case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214);
       142468  +      case 188: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==188);
       142469  +      case 191: /* in_op ::= NOT IN */ yytestcase(yyruleno==191);
       142470  +      case 217: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==217);
142397 142471   {yymsp[-1].minor.yy4 = 1;}
142398 142472           break;
142399 142473         case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
142400 142474   {yymsp[-1].minor.yy4 = 0;}
142401 142475           break;
142402 142476         case 61: /* tconscomma ::= COMMA */
142403 142477   {pParse->constraintName.n = 0;}
................................................................................
142425 142499         case 69: /* onconf ::= ON CONFLICT resolvetype */
142426 142500   {yymsp[-2].minor.yy4 = yymsp[0].minor.yy4;}
142427 142501           break;
142428 142502         case 72: /* resolvetype ::= IGNORE */
142429 142503   {yymsp[0].minor.yy4 = OE_Ignore;}
142430 142504           break;
142431 142505         case 73: /* resolvetype ::= REPLACE */
142432         -      case 145: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==145);
       142506  +      case 148: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==148);
142433 142507   {yymsp[0].minor.yy4 = OE_Replace;}
142434 142508           break;
142435 142509         case 74: /* cmd ::= DROP TABLE ifexists fullname */
142436 142510   {
142437 142511     sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4);
142438 142512   }
142439 142513           break;
................................................................................
142450 142524         case 79: /* cmd ::= select */
142451 142525   {
142452 142526     SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
142453 142527     sqlite3Select(pParse, yymsp[0].minor.yy387, &dest);
142454 142528     sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
142455 142529   }
142456 142530           break;
142457         -      case 80: /* select ::= with selectnowith */
       142531  +      case 80: /* select ::= WITH wqlist selectnowith */
       142532  +{
       142533  +  Select *p = yymsp[0].minor.yy387;
       142534  +  if( p ){
       142535  +    p->pWith = yymsp[-1].minor.yy451;
       142536  +    parserDoubleLinkSelect(pParse, p);
       142537  +  }else{
       142538  +    sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
       142539  +  }
       142540  +  yymsp[-2].minor.yy387 = p;
       142541  +}
       142542  +        break;
       142543  +      case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
142458 142544   {
142459 142545     Select *p = yymsp[0].minor.yy387;
142460 142546     if( p ){
142461 142547       p->pWith = yymsp[-1].minor.yy451;
142462 142548       parserDoubleLinkSelect(pParse, p);
142463 142549     }else{
142464 142550       sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
142465 142551     }
142466         -  yymsp[-1].minor.yy387 = p; /*A-overwrites-W*/
       142552  +  yymsp[-3].minor.yy387 = p;
142467 142553   }
142468 142554           break;
142469         -      case 81: /* selectnowith ::= selectnowith multiselect_op oneselect */
       142555  +      case 82: /* select ::= selectnowith */
       142556  +{
       142557  +  Select *p = yymsp[0].minor.yy387;
       142558  +  if( p ){
       142559  +    parserDoubleLinkSelect(pParse, p);
       142560  +  }
       142561  +  yymsp[0].minor.yy387 = p; /*A-overwrites-X*/
       142562  +}
       142563  +        break;
       142564  +      case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
142470 142565   {
142471 142566     Select *pRhs = yymsp[0].minor.yy387;
142472 142567     Select *pLhs = yymsp[-2].minor.yy387;
142473 142568     if( pRhs && pRhs->pPrior ){
142474 142569       SrcList *pFrom;
142475 142570       Token x;
142476 142571       x.n = 0;
................................................................................
142486 142581       if( yymsp[-1].minor.yy4!=TK_ALL ) pParse->hasCompound = 1;
142487 142582     }else{
142488 142583       sqlite3SelectDelete(pParse->db, pLhs);
142489 142584     }
142490 142585     yymsp[-2].minor.yy387 = pRhs;
142491 142586   }
142492 142587           break;
142493         -      case 82: /* multiselect_op ::= UNION */
142494         -      case 84: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==84);
       142588  +      case 84: /* multiselect_op ::= UNION */
       142589  +      case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
142495 142590   {yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-OP*/}
142496 142591           break;
142497         -      case 83: /* multiselect_op ::= UNION ALL */
       142592  +      case 85: /* multiselect_op ::= UNION ALL */
142498 142593   {yymsp[-1].minor.yy4 = TK_ALL;}
142499 142594           break;
142500         -      case 85: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
       142595  +      case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
142501 142596   {
142502 142597   #if SELECTTRACE_ENABLED
142503 142598     Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
142504 142599   #endif
142505 142600     yymsp[-8].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yymsp[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy314);
142506 142601   #if SELECTTRACE_ENABLED
142507 142602     /* Populate the Select.zSelName[] string that is used to help with
................................................................................
142524 142619         for(i=0; sqlite3Isalnum(z[i]); i++){}
142525 142620         sqlite3_snprintf(sizeof(yymsp[-8].minor.yy387->zSelName), yymsp[-8].minor.yy387->zSelName, "%.*s", i, z);
142526 142621       }
142527 142622     }
142528 142623   #endif /* SELECTRACE_ENABLED */
142529 142624   }
142530 142625           break;
142531         -      case 86: /* values ::= VALUES LP nexprlist RP */
       142626  +      case 88: /* values ::= VALUES LP nexprlist RP */
142532 142627   {
142533 142628     yymsp[-3].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0);
142534 142629   }
142535 142630           break;
142536         -      case 87: /* values ::= values COMMA LP exprlist RP */
       142631  +      case 89: /* values ::= values COMMA LP exprlist RP */
142537 142632   {
142538 142633     Select *pRight, *pLeft = yymsp[-4].minor.yy387;
142539 142634     pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0);
142540 142635     if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
142541 142636     if( pRight ){
142542 142637       pRight->op = TK_ALL;
142543 142638       pRight->pPrior = pLeft;
142544 142639       yymsp[-4].minor.yy387 = pRight;
142545 142640     }else{
142546 142641       yymsp[-4].minor.yy387 = pLeft;
142547 142642     }
142548 142643   }
142549 142644           break;
142550         -      case 88: /* distinct ::= DISTINCT */
       142645  +      case 90: /* distinct ::= DISTINCT */
142551 142646   {yymsp[0].minor.yy4 = SF_Distinct;}
142552 142647           break;
142553         -      case 89: /* distinct ::= ALL */
       142648  +      case 91: /* distinct ::= ALL */
142554 142649   {yymsp[0].minor.yy4 = SF_All;}
142555 142650           break;
142556         -      case 91: /* sclp ::= */
142557         -      case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
142558         -      case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
142559         -      case 201: /* exprlist ::= */ yytestcase(yyruleno==201);
142560         -      case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204);
142561         -      case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209);
       142651  +      case 93: /* sclp ::= */
       142652  +      case 122: /* orderby_opt ::= */ yytestcase(yyruleno==122);
       142653  +      case 129: /* groupby_opt ::= */ yytestcase(yyruleno==129);
       142654  +      case 204: /* exprlist ::= */ yytestcase(yyruleno==204);
       142655  +      case 207: /* paren_exprlist ::= */ yytestcase(yyruleno==207);
       142656  +      case 212: /* eidlist_opt ::= */ yytestcase(yyruleno==212);
142562 142657   {yymsp[1].minor.yy322 = 0;}
142563 142658           break;
142564         -      case 92: /* selcollist ::= sclp scanpt expr scanpt as */
       142659  +      case 94: /* selcollist ::= sclp scanpt expr scanpt as */
142565 142660   {
142566 142661      yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
142567 142662      if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1);
142568 142663      sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy336,yymsp[-1].minor.yy336);
142569 142664   }
142570 142665           break;
142571         -      case 93: /* selcollist ::= sclp scanpt STAR */
       142666  +      case 95: /* selcollist ::= sclp scanpt STAR */
142572 142667   {
142573 142668     Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
142574 142669     yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p);
142575 142670   }
142576 142671           break;
142577         -      case 94: /* selcollist ::= sclp scanpt nm DOT STAR */
       142672  +      case 96: /* selcollist ::= sclp scanpt nm DOT STAR */
142578 142673   {
142579 142674     Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
142580 142675     Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142581 142676     Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
142582 142677     yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot);
142583 142678   }
142584 142679           break;
142585         -      case 95: /* as ::= AS nm */
142586         -      case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
142587         -      case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
142588         -      case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
       142680  +      case 97: /* as ::= AS nm */
       142681  +      case 108: /* dbnm ::= DOT nm */ yytestcase(yyruleno==108);
       142682  +      case 226: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==226);
       142683  +      case 227: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==227);
142589 142684   {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
142590 142685           break;
142591         -      case 97: /* from ::= */
       142686  +      case 99: /* from ::= */
142592 142687   {yymsp[1].minor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy259));}
142593 142688           break;
142594         -      case 98: /* from ::= FROM seltablist */
       142689  +      case 100: /* from ::= FROM seltablist */
142595 142690   {
142596 142691     yymsp[-1].minor.yy259 = yymsp[0].minor.yy259;
142597 142692     sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy259);
142598 142693   }
142599 142694           break;
142600         -      case 99: /* stl_prefix ::= seltablist joinop */
       142695  +      case 101: /* stl_prefix ::= seltablist joinop */
142601 142696   {
142602 142697      if( ALWAYS(yymsp[-1].minor.yy259 && yymsp[-1].minor.yy259->nSrc>0) ) yymsp[-1].minor.yy259->a[yymsp[-1].minor.yy259->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy4;
142603 142698   }
142604 142699           break;
142605         -      case 100: /* stl_prefix ::= */
       142700  +      case 102: /* stl_prefix ::= */
142606 142701   {yymsp[1].minor.yy259 = 0;}
142607 142702           break;
142608         -      case 101: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
       142703  +      case 103: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
142609 142704   {
142610 142705     yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142611 142706     sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy259, &yymsp[-2].minor.yy0);
142612 142707   }
142613 142708           break;
142614         -      case 102: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
       142709  +      case 104: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
142615 142710   {
142616 142711     yymsp[-8].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy259,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142617 142712     sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy259, yymsp[-4].minor.yy322);
142618 142713   }
142619 142714           break;
142620         -      case 103: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
       142715  +      case 105: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
142621 142716   {
142622 142717       yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142623 142718     }
142624 142719           break;
142625         -      case 104: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
       142720  +      case 106: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
142626 142721   {
142627 142722       if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){
142628 142723         yymsp[-6].minor.yy259 = yymsp[-4].minor.yy259;
142629 142724       }else if( yymsp[-4].minor.yy259->nSrc==1 ){
142630 142725         yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142631 142726         if( yymsp[-6].minor.yy259 ){
142632 142727           struct SrcList_item *pNew = &yymsp[-6].minor.yy259->a[yymsp[-6].minor.yy259->nSrc-1];
................................................................................
142642 142737         Select *pSubquery;
142643 142738         sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy259);
142644 142739         pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,SF_NestedFrom,0);
142645 142740         yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142646 142741       }
142647 142742     }
142648 142743           break;
142649         -      case 105: /* dbnm ::= */
142650         -      case 114: /* indexed_opt ::= */ yytestcase(yyruleno==114);
       142744  +      case 107: /* dbnm ::= */
       142745  +      case 117: /* indexed_opt ::= */ yytestcase(yyruleno==117);
142651 142746   {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
142652 142747           break;
142653         -      case 107: /* fullname ::= nm dbnm */
142654         -{yymsp[-1].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
       142748  +      case 109: /* fullname ::= nm */
       142749  +{yymsp[0].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
142655 142750           break;
142656         -      case 108: /* joinop ::= COMMA|JOIN */
       142751  +      case 110: /* fullname ::= nm DOT nm */
       142752  +{yymsp[-2].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
       142753  +        break;
       142754  +      case 111: /* joinop ::= COMMA|JOIN */
142657 142755   { yymsp[0].minor.yy4 = JT_INNER; }
142658 142756           break;
142659         -      case 109: /* joinop ::= JOIN_KW JOIN */
       142757  +      case 112: /* joinop ::= JOIN_KW JOIN */
142660 142758   {yymsp[-1].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0);  /*X-overwrites-A*/}
142661 142759           break;
142662         -      case 110: /* joinop ::= JOIN_KW nm JOIN */
       142760  +      case 113: /* joinop ::= JOIN_KW nm JOIN */
142663 142761   {yymsp[-2].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
142664 142762           break;
142665         -      case 111: /* joinop ::= JOIN_KW nm nm JOIN */
       142763  +      case 114: /* joinop ::= JOIN_KW nm nm JOIN */
142666 142764   {yymsp[-3].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
142667 142765           break;
142668         -      case 112: /* on_opt ::= ON expr */
142669         -      case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
142670         -      case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
142671         -      case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197);
       142766  +      case 115: /* on_opt ::= ON expr */
       142767  +      case 132: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==132);
       142768  +      case 139: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==139);
       142769  +      case 200: /* case_else ::= ELSE expr */ yytestcase(yyruleno==200);
142672 142770   {yymsp[-1].minor.yy314 = yymsp[0].minor.yy314;}
142673 142771           break;
142674         -      case 113: /* on_opt ::= */
142675         -      case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
142676         -      case 130: /* limit_opt ::= */ yytestcase(yyruleno==130);
142677         -      case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
142678         -      case 198: /* case_else ::= */ yytestcase(yyruleno==198);
142679         -      case 200: /* case_operand ::= */ yytestcase(yyruleno==200);
       142772  +      case 116: /* on_opt ::= */
       142773  +      case 131: /* having_opt ::= */ yytestcase(yyruleno==131);
       142774  +      case 133: /* limit_opt ::= */ yytestcase(yyruleno==133);
       142775  +      case 138: /* where_opt ::= */ yytestcase(yyruleno==138);
       142776  +      case 201: /* case_else ::= */ yytestcase(yyruleno==201);
       142777  +      case 203: /* case_operand ::= */ yytestcase(yyruleno==203);
142680 142778   {yymsp[1].minor.yy314 = 0;}
142681 142779           break;
142682         -      case 115: /* indexed_opt ::= INDEXED BY nm */
       142780  +      case 118: /* indexed_opt ::= INDEXED BY nm */
142683 142781   {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
142684 142782           break;
142685         -      case 116: /* indexed_opt ::= NOT INDEXED */
       142783  +      case 119: /* indexed_opt ::= NOT INDEXED */
142686 142784   {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
142687 142785           break;
142688         -      case 117: /* using_opt ::= USING LP idlist RP */
       142786  +      case 120: /* using_opt ::= USING LP idlist RP */
142689 142787   {yymsp[-3].minor.yy384 = yymsp[-1].minor.yy384;}
142690 142788           break;
142691         -      case 118: /* using_opt ::= */
142692         -      case 146: /* idlist_opt ::= */ yytestcase(yyruleno==146);
       142789  +      case 121: /* using_opt ::= */
       142790  +      case 149: /* idlist_opt ::= */ yytestcase(yyruleno==149);
142693 142791   {yymsp[1].minor.yy384 = 0;}
142694 142792           break;
142695         -      case 120: /* orderby_opt ::= ORDER BY sortlist */
142696         -      case 127: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==127);
       142793  +      case 123: /* orderby_opt ::= ORDER BY sortlist */
       142794  +      case 130: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==130);
142697 142795   {yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;}
142698 142796           break;
142699         -      case 121: /* sortlist ::= sortlist COMMA expr sortorder */
       142797  +      case 124: /* sortlist ::= sortlist COMMA expr sortorder */
142700 142798   {
142701 142799     yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314);
142702 142800     sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy322,yymsp[0].minor.yy4);
142703 142801   }
142704 142802           break;
142705         -      case 122: /* sortlist ::= expr sortorder */
       142803  +      case 125: /* sortlist ::= expr sortorder */
142706 142804   {
142707 142805     yymsp[-1].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); /*A-overwrites-Y*/
142708 142806     sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy322,yymsp[0].minor.yy4);
142709 142807   }
142710 142808           break;
142711         -      case 123: /* sortorder ::= ASC */
       142809  +      case 126: /* sortorder ::= ASC */
142712 142810   {yymsp[0].minor.yy4 = SQLITE_SO_ASC;}
142713 142811           break;
142714         -      case 124: /* sortorder ::= DESC */
       142812  +      case 127: /* sortorder ::= DESC */
142715 142813   {yymsp[0].minor.yy4 = SQLITE_SO_DESC;}
142716 142814           break;
142717         -      case 125: /* sortorder ::= */
       142815  +      case 128: /* sortorder ::= */
142718 142816   {yymsp[1].minor.yy4 = SQLITE_SO_UNDEFINED;}
142719 142817           break;
142720         -      case 131: /* limit_opt ::= LIMIT expr */
       142818  +      case 134: /* limit_opt ::= LIMIT expr */
142721 142819   {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,0);}
142722 142820           break;
142723         -      case 132: /* limit_opt ::= LIMIT expr OFFSET expr */
       142821  +      case 135: /* limit_opt ::= LIMIT expr OFFSET expr */
142724 142822   {yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142725 142823           break;
142726         -      case 133: /* limit_opt ::= LIMIT expr COMMA expr */
       142824  +      case 136: /* limit_opt ::= LIMIT expr COMMA expr */
142727 142825   {yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,yymsp[-2].minor.yy314);}
142728 142826           break;
142729         -      case 134: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
       142827  +      case 137: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
142730 142828   {
142731         -  sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
142732 142829     sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0);
142733 142830     sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314,0,0);
142734 142831   }
142735 142832           break;
142736         -      case 137: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
       142833  +      case 140: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
142737 142834   {
142738         -  sqlite3WithPush(pParse, yymsp[-7].minor.yy451, 1);
142739 142835     sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0);
142740 142836     sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list"); 
142741 142837     sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy4,0,0);
142742 142838   }
142743 142839           break;
142744         -      case 138: /* setlist ::= setlist COMMA nm EQ expr */
       142840  +      case 141: /* setlist ::= setlist COMMA nm EQ expr */
142745 142841   {
142746 142842     yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
142747 142843     sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1);
142748 142844   }
142749 142845           break;
142750         -      case 139: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
       142846  +      case 142: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
142751 142847   {
142752 142848     yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142753 142849   }
142754 142850           break;
142755         -      case 140: /* setlist ::= nm EQ expr */
       142851  +      case 143: /* setlist ::= nm EQ expr */
142756 142852   {
142757 142853     yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy314);
142758 142854     sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1);
142759 142855   }
142760 142856     yymsp[-2].minor.yy322 = yylhsminor.yy322;
142761 142857           break;
142762         -      case 141: /* setlist ::= LP idlist RP EQ expr */
       142858  +      case 144: /* setlist ::= LP idlist RP EQ expr */
142763 142859   {
142764 142860     yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142765 142861   }
142766 142862           break;
142767         -      case 142: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
       142863  +      case 145: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
142768 142864   {
142769         -  sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
142770 142865     sqlite3Insert(pParse, yymsp[-2].minor.yy259, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy4);
142771 142866   }
142772 142867           break;
142773         -      case 143: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
       142868  +      case 146: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
142774 142869   {
142775         -  sqlite3WithPush(pParse, yymsp[-6].minor.yy451, 1);
142776 142870     sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy4);
142777 142871   }
142778 142872           break;
142779         -      case 147: /* idlist_opt ::= LP idlist RP */
       142873  +      case 150: /* idlist_opt ::= LP idlist RP */
142780 142874   {yymsp[-2].minor.yy384 = yymsp[-1].minor.yy384;}
142781 142875           break;
142782         -      case 148: /* idlist ::= idlist COMMA nm */
       142876  +      case 151: /* idlist ::= idlist COMMA nm */
142783 142877   {yymsp[-2].minor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);}
142784 142878           break;
142785         -      case 149: /* idlist ::= nm */
       142879  +      case 152: /* idlist ::= nm */
142786 142880   {yymsp[0].minor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
142787 142881           break;
142788         -      case 150: /* expr ::= LP expr RP */
       142882  +      case 153: /* expr ::= LP expr RP */
142789 142883   {yymsp[-2].minor.yy314 = yymsp[-1].minor.yy314;}
142790 142884           break;
142791         -      case 151: /* expr ::= ID|INDEXED */
142792         -      case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152);
       142885  +      case 154: /* expr ::= ID|INDEXED */
       142886  +      case 155: /* expr ::= JOIN_KW */ yytestcase(yyruleno==155);
142793 142887   {yymsp[0].minor.yy314=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142794 142888           break;
142795         -      case 153: /* expr ::= nm DOT nm */
       142889  +      case 156: /* expr ::= nm DOT nm */
142796 142890   {
142797 142891     Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142798 142892     Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142799 142893     yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
142800 142894   }
142801 142895     yymsp[-2].minor.yy314 = yylhsminor.yy314;
142802 142896           break;
142803         -      case 154: /* expr ::= nm DOT nm DOT nm */
       142897  +      case 157: /* expr ::= nm DOT nm DOT nm */
142804 142898   {
142805 142899     Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
142806 142900     Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142807 142901     Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142808 142902     Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
142809 142903     yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
142810 142904   }
142811 142905     yymsp[-4].minor.yy314 = yylhsminor.yy314;
142812 142906           break;
142813         -      case 155: /* term ::= NULL|FLOAT|BLOB */
142814         -      case 156: /* term ::= STRING */ yytestcase(yyruleno==156);
       142907  +      case 158: /* term ::= NULL|FLOAT|BLOB */
       142908  +      case 159: /* term ::= STRING */ yytestcase(yyruleno==159);
142815 142909   {yymsp[0].minor.yy314=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142816 142910           break;
142817         -      case 157: /* term ::= INTEGER */
       142911  +      case 160: /* term ::= INTEGER */
142818 142912   {
142819 142913     yylhsminor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
142820 142914   }
142821 142915     yymsp[0].minor.yy314 = yylhsminor.yy314;
142822 142916           break;
142823         -      case 158: /* expr ::= VARIABLE */
       142917  +      case 161: /* expr ::= VARIABLE */
142824 142918   {
142825 142919     if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
142826 142920       u32 n = yymsp[0].minor.yy0.n;
142827 142921       yymsp[0].minor.yy314 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
142828 142922       sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy314, n);
142829 142923     }else{
142830 142924       /* When doing a nested parse, one can include terms in an expression
................................................................................
142838 142932       }else{
142839 142933         yymsp[0].minor.yy314 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
142840 142934         if( yymsp[0].minor.yy314 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy314->iTable);
142841 142935       }
142842 142936     }
142843 142937   }
142844 142938           break;
142845         -      case 159: /* expr ::= expr COLLATE ID|STRING */
       142939  +      case 162: /* expr ::= expr COLLATE ID|STRING */
142846 142940   {
142847 142941     yymsp[-2].minor.yy314 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy314, &yymsp[0].minor.yy0, 1);
142848 142942   }
142849 142943           break;
142850         -      case 160: /* expr ::= CAST LP expr AS typetoken RP */
       142944  +      case 163: /* expr ::= CAST LP expr AS typetoken RP */
142851 142945   {
142852 142946     yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
142853 142947     sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy314, yymsp[-3].minor.yy314, 0);
142854 142948   }
142855 142949           break;
142856         -      case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
       142950  +      case 164: /* expr ::= ID|INDEXED LP distinct exprlist RP */
142857 142951   {
142858 142952     if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
142859 142953       sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
142860 142954     }
142861 142955     yylhsminor.yy314 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0);
142862 142956     if( yymsp[-2].minor.yy4==SF_Distinct && yylhsminor.yy314 ){
142863 142957       yylhsminor.yy314->flags |= EP_Distinct;
142864 142958     }
142865 142959   }
142866 142960     yymsp[-4].minor.yy314 = yylhsminor.yy314;
142867 142961           break;
142868         -      case 162: /* expr ::= ID|INDEXED LP STAR RP */
       142962  +      case 165: /* expr ::= ID|INDEXED LP STAR RP */
142869 142963   {
142870 142964     yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
142871 142965   }
142872 142966     yymsp[-3].minor.yy314 = yylhsminor.yy314;
142873 142967           break;
142874         -      case 163: /* term ::= CTIME_KW */
       142968  +      case 166: /* term ::= CTIME_KW */
142875 142969   {
142876 142970     yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
142877 142971   }
142878 142972     yymsp[0].minor.yy314 = yylhsminor.yy314;
142879 142973           break;
142880         -      case 164: /* expr ::= LP nexprlist COMMA expr RP */
       142974  +      case 167: /* expr ::= LP nexprlist COMMA expr RP */
142881 142975   {
142882 142976     ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy314);
142883 142977     yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
142884 142978     if( yymsp[-4].minor.yy314 ){
142885 142979       yymsp[-4].minor.yy314->x.pList = pList;
142886 142980     }else{
142887 142981       sqlite3ExprListDelete(pParse->db, pList);
142888 142982     }
142889 142983   }
142890 142984           break;
142891         -      case 165: /* expr ::= expr AND expr */
142892         -      case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
142893         -      case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
142894         -      case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
142895         -      case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
142896         -      case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
142897         -      case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
142898         -      case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
       142985  +      case 168: /* expr ::= expr AND expr */
       142986  +      case 169: /* expr ::= expr OR expr */ yytestcase(yyruleno==169);
       142987  +      case 170: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==170);
       142988  +      case 171: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==171);
       142989  +      case 172: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==172);
       142990  +      case 173: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==173);
       142991  +      case 174: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==174);
       142992  +      case 175: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==175);
142899 142993   {yymsp[-2].minor.yy314=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142900 142994           break;
142901         -      case 173: /* likeop ::= NOT LIKE_KW|MATCH */
       142995  +      case 176: /* likeop ::= NOT LIKE_KW|MATCH */
142902 142996   {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
142903 142997           break;
142904         -      case 174: /* expr ::= expr likeop expr */
       142998  +      case 177: /* expr ::= expr likeop expr */
142905 142999   {
142906 143000     ExprList *pList;
142907 143001     int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
142908 143002     yymsp[-1].minor.yy0.n &= 0x7fffffff;
142909 143003     pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy314);
142910 143004     pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy314);
142911 143005     yymsp[-2].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
142912 143006     if( bNot ) yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy314, 0);
142913 143007     if( yymsp[-2].minor.yy314 ) yymsp[-2].minor.yy314->flags |= EP_InfixFunc;
142914 143008   }
142915 143009           break;
142916         -      case 175: /* expr ::= expr likeop expr ESCAPE expr */
       143010  +      case 178: /* expr ::= expr likeop expr ESCAPE expr */
142917 143011   {
142918 143012     ExprList *pList;
142919 143013     int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
142920 143014     yymsp[-3].minor.yy0.n &= 0x7fffffff;
142921 143015     pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
142922 143016     pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy314);
142923 143017     pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314);
142924 143018     yymsp[-4].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
142925 143019     if( bNot ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
142926 143020     if( yymsp[-4].minor.yy314 ) yymsp[-4].minor.yy314->flags |= EP_InfixFunc;
142927 143021   }
142928 143022           break;
142929         -      case 176: /* expr ::= expr ISNULL|NOTNULL */
       143023  +      case 179: /* expr ::= expr ISNULL|NOTNULL */
142930 143024   {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy314,0);}
142931 143025           break;
142932         -      case 177: /* expr ::= expr NOT NULL */
       143026  +      case 180: /* expr ::= expr NOT NULL */
142933 143027   {yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy314,0);}
142934 143028           break;
142935         -      case 178: /* expr ::= expr IS expr */
       143029  +      case 181: /* expr ::= expr IS expr */
142936 143030   {
142937 143031     yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);
142938 143032     binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-2].minor.yy314, TK_ISNULL);
142939 143033   }
142940 143034           break;
142941         -      case 179: /* expr ::= expr IS NOT expr */
       143035  +      case 182: /* expr ::= expr IS NOT expr */
142942 143036   {
142943 143037     yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy314,yymsp[0].minor.yy314);
142944 143038     binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-3].minor.yy314, TK_NOTNULL);
142945 143039   }
142946 143040           break;
142947         -      case 180: /* expr ::= NOT expr */
142948         -      case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181);
       143041  +      case 183: /* expr ::= NOT expr */
       143042  +      case 184: /* expr ::= BITNOT expr */ yytestcase(yyruleno==184);
142949 143043   {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy314, 0);/*A-overwrites-B*/}
142950 143044           break;
142951         -      case 182: /* expr ::= MINUS expr */
       143045  +      case 185: /* expr ::= MINUS expr */
142952 143046   {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy314, 0);}
142953 143047           break;
142954         -      case 183: /* expr ::= PLUS expr */
       143048  +      case 186: /* expr ::= PLUS expr */
142955 143049   {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy314, 0);}
142956 143050           break;
142957         -      case 184: /* between_op ::= BETWEEN */
142958         -      case 187: /* in_op ::= IN */ yytestcase(yyruleno==187);
       143051  +      case 187: /* between_op ::= BETWEEN */
       143052  +      case 190: /* in_op ::= IN */ yytestcase(yyruleno==190);
142959 143053   {yymsp[0].minor.yy4 = 0;}
142960 143054           break;
142961         -      case 186: /* expr ::= expr between_op expr AND expr */
       143055  +      case 189: /* expr ::= expr between_op expr AND expr */
142962 143056   {
142963 143057     ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
142964 143058     pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314);
142965 143059     yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy314, 0);
142966 143060     if( yymsp[-4].minor.yy314 ){
142967 143061       yymsp[-4].minor.yy314->x.pList = pList;
142968 143062     }else{
142969 143063       sqlite3ExprListDelete(pParse->db, pList);
142970 143064     } 
142971 143065     if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
142972 143066   }
142973 143067           break;
142974         -      case 189: /* expr ::= expr in_op LP exprlist RP */
       143068  +      case 192: /* expr ::= expr in_op LP exprlist RP */
142975 143069   {
142976 143070       if( yymsp[-1].minor.yy322==0 ){
142977 143071         /* Expressions of the form
142978 143072         **
142979 143073         **      expr1 IN ()
142980 143074         **      expr1 NOT IN ()
142981 143075         **
................................................................................
143019 143113         }else{
143020 143114           sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322);
143021 143115         }
143022 143116         if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143023 143117       }
143024 143118     }
143025 143119           break;
143026         -      case 190: /* expr ::= LP select RP */
       143120  +      case 193: /* expr ::= LP select RP */
143027 143121   {
143028 143122       yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
143029 143123       sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy314, yymsp[-1].minor.yy387);
143030 143124     }
143031 143125           break;
143032         -      case 191: /* expr ::= expr in_op LP select RP */
       143126  +      case 194: /* expr ::= expr in_op LP select RP */
143033 143127   {
143034 143128       yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143035 143129       sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, yymsp[-1].minor.yy387);
143036 143130       if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143037 143131     }
143038 143132           break;
143039         -      case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */
       143133  +      case 195: /* expr ::= expr in_op nm dbnm paren_exprlist */
143040 143134   {
143041 143135       SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
143042 143136       Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
143043 143137       if( yymsp[0].minor.yy322 )  sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322);
143044 143138       yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143045 143139       sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, pSelect);
143046 143140       if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143047 143141     }
143048 143142           break;
143049         -      case 193: /* expr ::= EXISTS LP select RP */
       143143  +      case 196: /* expr ::= EXISTS LP select RP */
143050 143144   {
143051 143145       Expr *p;
143052 143146       p = yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
143053 143147       sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy387);
143054 143148     }
143055 143149           break;
143056         -      case 194: /* expr ::= CASE case_operand case_exprlist case_else END */
       143150  +      case 197: /* expr ::= CASE case_operand case_exprlist case_else END */
143057 143151   {
143058 143152     yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, 0);
143059 143153     if( yymsp[-4].minor.yy314 ){
143060 143154       yymsp[-4].minor.yy314->x.pList = yymsp[-1].minor.yy314 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy314) : yymsp[-2].minor.yy322;
143061 143155       sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy314);
143062 143156     }else{
143063 143157       sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322);
143064 143158       sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy314);
143065 143159     }
143066 143160   }
143067 143161           break;
143068         -      case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
       143162  +      case 198: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
143069 143163   {
143070 143164     yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
143071 143165     yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
143072 143166   }
143073 143167           break;
143074         -      case 196: /* case_exprlist ::= WHEN expr THEN expr */
       143168  +      case 199: /* case_exprlist ::= WHEN expr THEN expr */
143075 143169   {
143076 143170     yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
143077 143171     yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy314);
143078 143172   }
143079 143173           break;
143080         -      case 199: /* case_operand ::= expr */
       143174  +      case 202: /* case_operand ::= expr */
143081 143175   {yymsp[0].minor.yy314 = yymsp[0].minor.yy314; /*A-overwrites-X*/}
143082 143176           break;
143083         -      case 202: /* nexprlist ::= nexprlist COMMA expr */
       143177  +      case 205: /* nexprlist ::= nexprlist COMMA expr */
143084 143178   {yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy314);}
143085 143179           break;
143086         -      case 203: /* nexprlist ::= expr */
       143180  +      case 206: /* nexprlist ::= expr */
143087 143181   {yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy314); /*A-overwrites-Y*/}
143088 143182           break;
143089         -      case 205: /* paren_exprlist ::= LP exprlist RP */
143090         -      case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210);
       143183  +      case 208: /* paren_exprlist ::= LP exprlist RP */
       143184  +      case 213: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==213);
143091 143185   {yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;}
143092 143186           break;
143093         -      case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
       143187  +      case 209: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
143094 143188   {
143095 143189     sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, 
143096 143190                        sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy4,
143097 143191                         &yymsp[-11].minor.yy0, yymsp[0].minor.yy314, SQLITE_SO_ASC, yymsp[-8].minor.yy4, SQLITE_IDXTYPE_APPDEF);
143098 143192   }
143099 143193           break;
143100         -      case 207: /* uniqueflag ::= UNIQUE */
143101         -      case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247);
       143194  +      case 210: /* uniqueflag ::= UNIQUE */
       143195  +      case 250: /* raisetype ::= ABORT */ yytestcase(yyruleno==250);
143102 143196   {yymsp[0].minor.yy4 = OE_Abort;}
143103 143197           break;
143104         -      case 208: /* uniqueflag ::= */
       143198  +      case 211: /* uniqueflag ::= */
143105 143199   {yymsp[1].minor.yy4 = OE_None;}
143106 143200           break;
143107         -      case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */
       143201  +      case 214: /* eidlist ::= eidlist COMMA nm collate sortorder */
143108 143202   {
143109 143203     yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4);
143110 143204   }
143111 143205           break;
143112         -      case 212: /* eidlist ::= nm collate sortorder */
       143206  +      case 215: /* eidlist ::= nm collate sortorder */
143113 143207   {
143114 143208     yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); /*A-overwrites-Y*/
143115 143209   }
143116 143210           break;
143117         -      case 215: /* cmd ::= DROP INDEX ifexists fullname */
       143211  +      case 218: /* cmd ::= DROP INDEX ifexists fullname */
143118 143212   {sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);}
143119 143213           break;
143120         -      case 216: /* cmd ::= VACUUM */
       143214  +      case 219: /* cmd ::= VACUUM */
143121 143215   {sqlite3Vacuum(pParse,0);}
143122 143216           break;
143123         -      case 217: /* cmd ::= VACUUM nm */
       143217  +      case 220: /* cmd ::= VACUUM nm */
143124 143218   {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
143125 143219           break;
143126         -      case 218: /* cmd ::= PRAGMA nm dbnm */
       143220  +      case 221: /* cmd ::= PRAGMA nm dbnm */
143127 143221   {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
143128 143222           break;
143129         -      case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
       143223  +      case 222: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
143130 143224   {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
143131 143225           break;
143132         -      case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
       143226  +      case 223: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
143133 143227   {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
143134 143228           break;
143135         -      case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
       143229  +      case 224: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
143136 143230   {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
143137 143231           break;
143138         -      case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
       143232  +      case 225: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
143139 143233   {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
143140 143234           break;
143141         -      case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
       143235  +      case 228: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
143142 143236   {
143143 143237     Token all;
143144 143238     all.z = yymsp[-3].minor.yy0.z;
143145 143239     all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
143146 143240     sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all);
143147 143241   }
143148 143242           break;
143149         -      case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
       143243  +      case 229: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
143150 143244   {
143151 143245     sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy4, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy259, yymsp[0].minor.yy314, yymsp[-10].minor.yy4, yymsp[-8].minor.yy4);
143152 143246     yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
143153 143247   }
143154 143248           break;
143155         -      case 227: /* trigger_time ::= BEFORE|AFTER */
       143249  +      case 230: /* trigger_time ::= BEFORE|AFTER */
143156 143250   { yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/ }
143157 143251           break;
143158         -      case 228: /* trigger_time ::= INSTEAD OF */
       143252  +      case 231: /* trigger_time ::= INSTEAD OF */
143159 143253   { yymsp[-1].minor.yy4 = TK_INSTEAD;}
143160 143254           break;
143161         -      case 229: /* trigger_time ::= */
       143255  +      case 232: /* trigger_time ::= */
143162 143256   { yymsp[1].minor.yy4 = TK_BEFORE; }
143163 143257           break;
143164         -      case 230: /* trigger_event ::= DELETE|INSERT */
143165         -      case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231);
       143258  +      case 233: /* trigger_event ::= DELETE|INSERT */
       143259  +      case 234: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==234);
143166 143260   {yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
143167 143261           break;
143168         -      case 232: /* trigger_event ::= UPDATE OF idlist */
       143262  +      case 235: /* trigger_event ::= UPDATE OF idlist */
143169 143263   {yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy384;}
143170 143264           break;
143171         -      case 233: /* when_clause ::= */
143172         -      case 252: /* key_opt ::= */ yytestcase(yyruleno==252);
       143265  +      case 236: /* when_clause ::= */
       143266  +      case 255: /* key_opt ::= */ yytestcase(yyruleno==255);
143173 143267   { yymsp[1].minor.yy314 = 0; }
143174 143268           break;
143175         -      case 234: /* when_clause ::= WHEN expr */
143176         -      case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253);
       143269  +      case 237: /* when_clause ::= WHEN expr */
       143270  +      case 256: /* key_opt ::= KEY expr */ yytestcase(yyruleno==256);
143177 143271   { yymsp[-1].minor.yy314 = yymsp[0].minor.yy314; }
143178 143272           break;
143179         -      case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
       143273  +      case 238: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
143180 143274   {
143181 143275     assert( yymsp[-2].minor.yy203!=0 );
143182 143276     yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203;
143183 143277     yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203;
143184 143278   }
143185 143279           break;
143186         -      case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */
       143280  +      case 239: /* trigger_cmd_list ::= trigger_cmd SEMI */
143187 143281   { 
143188 143282     assert( yymsp[-1].minor.yy203!=0 );
143189 143283     yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203;
143190 143284   }
143191 143285           break;
143192         -      case 237: /* trnm ::= nm DOT nm */
       143286  +      case 240: /* trnm ::= nm DOT nm */
143193 143287   {
143194 143288     yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
143195 143289     sqlite3ErrorMsg(pParse, 
143196 143290           "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
143197 143291           "statements within triggers");
143198 143292   }
143199 143293           break;
143200         -      case 238: /* tridxby ::= INDEXED BY nm */
       143294  +      case 241: /* tridxby ::= INDEXED BY nm */
143201 143295   {
143202 143296     sqlite3ErrorMsg(pParse,
143203 143297           "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
143204 143298           "within triggers");
143205 143299   }
143206 143300           break;
143207         -      case 239: /* tridxby ::= NOT INDEXED */
       143301  +      case 242: /* tridxby ::= NOT INDEXED */
143208 143302   {
143209 143303     sqlite3ErrorMsg(pParse,
143210 143304           "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
143211 143305           "within triggers");
143212 143306   }
143213 143307           break;
143214         -      case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
       143308  +      case 243: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
143215 143309   {yylhsminor.yy203 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy314, yymsp[-6].minor.yy4, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy336);}
143216 143310     yymsp[-7].minor.yy203 = yylhsminor.yy203;
143217 143311           break;
143218         -      case 241: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
       143312  +      case 244: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
143219 143313   {yylhsminor.yy203 = sqlite3TriggerInsertStep(pParse->db,&yymsp[-3].minor.yy0,yymsp[-2].minor.yy384,yymsp[-1].minor.yy387,yymsp[-5].minor.yy4,yymsp[-6].minor.yy336,yymsp[0].minor.yy336);/*yylhsminor.yy203-overwrites-yymsp[-5].minor.yy4*/}
143220 143314     yymsp[-6].minor.yy203 = yylhsminor.yy203;
143221 143315           break;
143222         -      case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
       143316  +      case 245: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
143223 143317   {yylhsminor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy314, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy336);}
143224 143318     yymsp[-5].minor.yy203 = yylhsminor.yy203;
143225 143319           break;
143226         -      case 243: /* trigger_cmd ::= scanpt select scanpt */
       143320  +      case 246: /* trigger_cmd ::= scanpt select scanpt */
143227 143321   {yylhsminor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy387, yymsp[-2].minor.yy336, yymsp[0].minor.yy336); /*yylhsminor.yy203-overwrites-yymsp[-1].minor.yy387*/}
143228 143322     yymsp[-2].minor.yy203 = yylhsminor.yy203;
143229 143323           break;
143230         -      case 244: /* expr ::= RAISE LP IGNORE RP */
       143324  +      case 247: /* expr ::= RAISE LP IGNORE RP */
143231 143325   {
143232 143326     yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); 
143233 143327     if( yymsp[-3].minor.yy314 ){
143234 143328       yymsp[-3].minor.yy314->affinity = OE_Ignore;
143235 143329     }
143236 143330   }
143237 143331           break;
143238         -      case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */
       143332  +      case 248: /* expr ::= RAISE LP raisetype COMMA nm RP */
143239 143333   {
143240 143334     yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); 
143241 143335     if( yymsp[-5].minor.yy314 ) {
143242 143336       yymsp[-5].minor.yy314->affinity = (char)yymsp[-3].minor.yy4;
143243 143337     }
143244 143338   }
143245 143339           break;
143246         -      case 246: /* raisetype ::= ROLLBACK */
       143340  +      case 249: /* raisetype ::= ROLLBACK */
143247 143341   {yymsp[0].minor.yy4 = OE_Rollback;}
143248 143342           break;
143249         -      case 248: /* raisetype ::= FAIL */
       143343  +      case 251: /* raisetype ::= FAIL */
143250 143344   {yymsp[0].minor.yy4 = OE_Fail;}
143251 143345           break;
143252         -      case 249: /* cmd ::= DROP TRIGGER ifexists fullname */
       143346  +      case 252: /* cmd ::= DROP TRIGGER ifexists fullname */
143253 143347   {
143254 143348     sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4);
143255 143349   }
143256 143350           break;
143257         -      case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
       143351  +      case 253: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
143258 143352   {
143259 143353     sqlite3Attach(pParse, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, yymsp[0].minor.yy314);
143260 143354   }
143261 143355           break;
143262         -      case 251: /* cmd ::= DETACH database_kw_opt expr */
       143356  +      case 254: /* cmd ::= DETACH database_kw_opt expr */
143263 143357   {
143264 143358     sqlite3Detach(pParse, yymsp[0].minor.yy314);
143265 143359   }
143266 143360           break;
143267         -      case 254: /* cmd ::= REINDEX */
       143361  +      case 257: /* cmd ::= REINDEX */
143268 143362   {sqlite3Reindex(pParse, 0, 0);}
143269 143363           break;
143270         -      case 255: /* cmd ::= REINDEX nm dbnm */
       143364  +      case 258: /* cmd ::= REINDEX nm dbnm */
143271 143365   {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143272 143366           break;
143273         -      case 256: /* cmd ::= ANALYZE */
       143367  +      case 259: /* cmd ::= ANALYZE */
143274 143368   {sqlite3Analyze(pParse, 0, 0);}
143275 143369           break;
143276         -      case 257: /* cmd ::= ANALYZE nm dbnm */
       143370  +      case 260: /* cmd ::= ANALYZE nm dbnm */
143277 143371   {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143278 143372           break;
143279         -      case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
       143373  +      case 261: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
143280 143374   {
143281 143375     sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0);
143282 143376   }
143283 143377           break;
143284         -      case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
       143378  +      case 262: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
143285 143379   {
143286 143380     yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
143287 143381     sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
143288 143382   }
143289 143383           break;
143290         -      case 260: /* add_column_fullname ::= fullname */
       143384  +      case 263: /* add_column_fullname ::= fullname */
143291 143385   {
143292 143386     disableLookaside(pParse);
143293 143387     sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259);
143294 143388   }
143295 143389           break;
143296         -      case 261: /* cmd ::= create_vtab */
       143390  +      case 264: /* cmd ::= create_vtab */
143297 143391   {sqlite3VtabFinishParse(pParse,0);}
143298 143392           break;
143299         -      case 262: /* cmd ::= create_vtab LP vtabarglist RP */
       143393  +      case 265: /* cmd ::= create_vtab LP vtabarglist RP */
143300 143394   {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
143301 143395           break;
143302         -      case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
       143396  +      case 266: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
143303 143397   {
143304 143398       sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy4);
143305 143399   }
143306 143400           break;
143307         -      case 264: /* vtabarg ::= */
       143401  +      case 267: /* vtabarg ::= */
143308 143402   {sqlite3VtabArgInit(pParse);}
143309 143403           break;
143310         -      case 265: /* vtabargtoken ::= ANY */
143311         -      case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266);
143312         -      case 267: /* lp ::= LP */ yytestcase(yyruleno==267);
       143404  +      case 268: /* vtabargtoken ::= ANY */
       143405  +      case 269: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==269);
       143406  +      case 270: /* lp ::= LP */ yytestcase(yyruleno==270);
143313 143407   {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
143314 143408           break;
143315         -      case 268: /* with ::= */
143316         -{yymsp[1].minor.yy451 = 0;}
       143409  +      case 271: /* with ::= WITH wqlist */
       143410  +      case 272: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==272);
       143411  +{ sqlite3WithPush(pParse, yymsp[0].minor.yy451, 1); }
143317 143412           break;
143318         -      case 269: /* with ::= WITH wqlist */
143319         -{ yymsp[-1].minor.yy451 = yymsp[0].minor.yy451; }
143320         -        break;
143321         -      case 270: /* with ::= WITH RECURSIVE wqlist */
143322         -{ yymsp[-2].minor.yy451 = yymsp[0].minor.yy451; }
143323         -        break;
143324         -      case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */
       143413  +      case 273: /* wqlist ::= nm eidlist_opt AS LP select RP */
143325 143414   {
143326 143415     yymsp[-5].minor.yy451 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); /*A-overwrites-X*/
143327 143416   }
143328 143417           break;
143329         -      case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
       143418  +      case 274: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
143330 143419   {
143331 143420     yymsp[-7].minor.yy451 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy451, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387);
143332 143421   }
143333 143422           break;
143334 143423         default:
143335         -      /* (273) input ::= cmdlist */ yytestcase(yyruleno==273);
143336         -      /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274);
143337         -      /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275);
143338         -      /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276);
143339         -      /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277);
143340         -      /* (278) explain ::= */ yytestcase(yyruleno==278);
143341         -      /* (279) trans_opt ::= */ yytestcase(yyruleno==279);
143342         -      /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280);
143343         -      /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281);
143344         -      /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282);
143345         -      /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283);
143346         -      /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284);
143347         -      /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285);
143348         -      /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286);
143349         -      /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287);
143350         -      /* (288) nm ::= STRING */ yytestcase(yyruleno==288);
143351         -      /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289);
143352         -      /* (290) typetoken ::= typename */ yytestcase(yyruleno==290);
143353         -      /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291);
143354         -      /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
143355         -      /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293);
143356         -      /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294);
143357         -      /* (295) carglist ::= */ yytestcase(yyruleno==295);
143358         -      /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296);
143359         -      /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297);
143360         -      /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298);
143361         -      /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299);
143362         -      /* (300) tconscomma ::= */ yytestcase(yyruleno==300);
143363         -      /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301);
143364         -      /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302);
143365         -      /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303);
143366         -      /* (304) oneselect ::= values */ yytestcase(yyruleno==304);
143367         -      /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305);
143368         -      /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306);
143369         -      /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307);
143370         -      /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308);
143371         -      /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309);
143372         -      /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310);
143373         -      /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311);
143374         -      /* (312) nmnum ::= ON */ yytestcase(yyruleno==312);
143375         -      /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313);
143376         -      /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314);
143377         -      /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315);
143378         -      /* (316) foreach_clause ::= */ yytestcase(yyruleno==316);
143379         -      /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317);
143380         -      /* (318) trnm ::= nm */ yytestcase(yyruleno==318);
143381         -      /* (319) tridxby ::= */ yytestcase(yyruleno==319);
143382         -      /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320);
143383         -      /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321);
143384         -      /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322);
143385         -      /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323);
143386         -      /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324);
143387         -      /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325);
143388         -      /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326);
143389         -      /* (327) anylist ::= */ yytestcase(yyruleno==327);
143390         -      /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328);
143391         -      /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329);
       143424  +      /* (275) input ::= cmdlist */ yytestcase(yyruleno==275);
       143425  +      /* (276) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==276);
       143426  +      /* (277) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=277);
       143427  +      /* (278) ecmd ::= SEMI */ yytestcase(yyruleno==278);
       143428  +      /* (279) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==279);
       143429  +      /* (280) explain ::= */ yytestcase(yyruleno==280);
       143430  +      /* (281) trans_opt ::= */ yytestcase(yyruleno==281);
       143431  +      /* (282) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==282);
       143432  +      /* (283) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==283);
       143433  +      /* (284) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==284);
       143434  +      /* (285) savepoint_opt ::= */ yytestcase(yyruleno==285);
       143435  +      /* (286) cmd ::= create_table create_table_args */ yytestcase(yyruleno==286);
       143436  +      /* (287) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==287);
       143437  +      /* (288) columnlist ::= columnname carglist */ yytestcase(yyruleno==288);
       143438  +      /* (289) nm ::= ID|INDEXED */ yytestcase(yyruleno==289);
       143439  +      /* (290) nm ::= STRING */ yytestcase(yyruleno==290);
       143440  +      /* (291) nm ::= JOIN_KW */ yytestcase(yyruleno==291);
       143441  +      /* (292) typetoken ::= typename */ yytestcase(yyruleno==292);
       143442  +      /* (293) typename ::= ID|STRING */ yytestcase(yyruleno==293);
       143443  +      /* (294) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=294);
       143444  +      /* (295) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
       143445  +      /* (296) carglist ::= carglist ccons */ yytestcase(yyruleno==296);
       143446  +      /* (297) carglist ::= */ yytestcase(yyruleno==297);
       143447  +      /* (298) ccons ::= NULL onconf */ yytestcase(yyruleno==298);
       143448  +      /* (299) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==299);
       143449  +      /* (300) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==300);
       143450  +      /* (301) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=301);
       143451  +      /* (302) tconscomma ::= */ yytestcase(yyruleno==302);
       143452  +      /* (303) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=303);
       143453  +      /* (304) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=304);
       143454  +      /* (305) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=305);
       143455  +      /* (306) oneselect ::= values */ yytestcase(yyruleno==306);
       143456  +      /* (307) sclp ::= selcollist COMMA */ yytestcase(yyruleno==307);
       143457  +      /* (308) as ::= ID|STRING */ yytestcase(yyruleno==308);
       143458  +      /* (309) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=309);
       143459  +      /* (310) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==310);
       143460  +      /* (311) exprlist ::= nexprlist */ yytestcase(yyruleno==311);
       143461  +      /* (312) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=312);
       143462  +      /* (313) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=313);
       143463  +      /* (314) nmnum ::= ON */ yytestcase(yyruleno==314);
       143464  +      /* (315) nmnum ::= DELETE */ yytestcase(yyruleno==315);
       143465  +      /* (316) nmnum ::= DEFAULT */ yytestcase(yyruleno==316);
       143466  +      /* (317) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==317);
       143467  +      /* (318) foreach_clause ::= */ yytestcase(yyruleno==318);
       143468  +      /* (319) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==319);
       143469  +      /* (320) trnm ::= nm */ yytestcase(yyruleno==320);
       143470  +      /* (321) tridxby ::= */ yytestcase(yyruleno==321);
       143471  +      /* (322) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==322);
       143472  +      /* (323) database_kw_opt ::= */ yytestcase(yyruleno==323);
       143473  +      /* (324) kwcolumn_opt ::= */ yytestcase(yyruleno==324);
       143474  +      /* (325) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==325);
       143475  +      /* (326) vtabarglist ::= vtabarg */ yytestcase(yyruleno==326);
       143476  +      /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==327);
       143477  +      /* (328) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==328);
       143478  +      /* (329) anylist ::= */ yytestcase(yyruleno==329);
       143479  +      /* (330) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==330);
       143480  +      /* (331) anylist ::= anylist ANY */ yytestcase(yyruleno==331);
       143481  +      /* (332) with ::= */ yytestcase(yyruleno==332);
143392 143482           break;
143393 143483   /********** End reduce actions ************************************************/
143394 143484     };
143395 143485     assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
143396 143486     yygoto = yyRuleInfo[yyruleno].lhs;
143397 143487     yysize = yyRuleInfo[yyruleno].nrhs;
143398 143488     yyact = yy_find_reduce_action(yymsp[yysize].stateno,(YYCODETYPE)yygoto);
................................................................................
180438 180528   /*
180439 180529   ** An object of this type is used internally as an abstraction for 
180440 180530   ** input data. Input data may be supplied either as a single large buffer
180441 180531   ** (e.g. sqlite3changeset_start()) or using a stream function (e.g.
180442 180532   **  sqlite3changeset_start_strm()).
180443 180533   */
180444 180534   struct SessionInput {
180445         -  int bNoDiscard;                 /* If true, discard no data */
       180535  +  int bNoDiscard;                 /* If true, do not discard in InputBuffer() */
180446 180536     int iCurrent;                   /* Offset in aData[] of current change */
180447 180537     int iNext;                      /* Offset in aData[] of next change */
180448 180538     u8 *aData;                      /* Pointer to buffer containing changeset */
180449 180539     int nData;                      /* Number of bytes in aData */
180450 180540   
180451 180541     SessionBuffer buf;              /* Current read buffer */
180452 180542     int (*xInput)(void*, void*, int*);        /* Input stream call (or NULL) */
................................................................................
182963 183053   }
182964 183054   
182965 183055   /*
182966 183056   ** If the SessionInput object passed as the only argument is a streaming
182967 183057   ** object and the buffer is full, discard some data to free up space.
182968 183058   */
182969 183059   static void sessionDiscardData(SessionInput *pIn){
182970         -  if( pIn->bEof && pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
       183060  +  if( pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
182971 183061       int nMove = pIn->buf.nBuf - pIn->iNext;
182972 183062       assert( nMove>=0 );
182973 183063       if( nMove>0 ){
182974 183064         memmove(pIn->buf.aBuf, &pIn->buf.aBuf[pIn->iNext], nMove);
182975 183065       }
182976 183066       pIn->buf.nBuf -= pIn->iNext;
182977 183067       pIn->iNext = 0;
................................................................................
184604 184694     ),
184605 184695     int(*xConflict)(
184606 184696       void *pCtx,                   /* Copy of fifth arg to _apply() */
184607 184697       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
184608 184698       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
184609 184699     ),
184610 184700     void *pCtx,                     /* First argument passed to xConflict */
184611         -  void **ppRebase, int *pnRebase  /* OUT: Rebase information */
       184701  +  void **ppRebase, int *pnRebase, /* OUT: Rebase information */
       184702  +  int flags                       /* SESSION_APPLY_XXX flags */
184612 184703   ){
184613 184704     int schemaMismatch = 0;
184614         -  int rc;                         /* Return code */
       184705  +  int rc = SQLITE_OK;             /* Return code */
184615 184706     const char *zTab = 0;           /* Name of current table */
184616 184707     int nTab = 0;                   /* Result of sqlite3Strlen30(zTab) */
184617 184708     SessionApplyCtx sApply;         /* changeset_apply() context object */
184618 184709     int bPatchset;
184619 184710   
184620 184711     assert( xConflict!=0 );
184621 184712   
184622 184713     pIter->in.bNoDiscard = 1;
184623 184714     memset(&sApply, 0, sizeof(sApply));
184624 184715     sqlite3_mutex_enter(sqlite3_db_mutex(db));
184625         -  rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
       184716  +  if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
       184717  +    rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
       184718  +  }
184626 184719     if( rc==SQLITE_OK ){
184627 184720       rc = sqlite3_exec(db, "PRAGMA defer_foreign_keys = 1", 0, 0, 0);
184628 184721     }
184629 184722     while( rc==SQLITE_OK && SQLITE_ROW==sqlite3changeset_next(pIter) ){
184630 184723       int nCol;
184631 184724       int op;
184632 184725       const char *zNew;
................................................................................
184756 184849         if( res!=SQLITE_CHANGESET_OMIT ){
184757 184850           rc = SQLITE_CONSTRAINT;
184758 184851         }
184759 184852       }
184760 184853     }
184761 184854     sqlite3_exec(db, "PRAGMA defer_foreign_keys = 0", 0, 0, 0);
184762 184855   
184763         -  if( rc==SQLITE_OK ){
184764         -    rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184765         -  }else{
184766         -    sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
184767         -    sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
       184856  +  if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
       184857  +    if( rc==SQLITE_OK ){
       184858  +      rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
       184859  +    }else{
       184860  +      sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
       184861  +      sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
       184862  +    }
184768 184863     }
184769 184864   
184770 184865     if( rc==SQLITE_OK && bPatchset==0 && ppRebase && pnRebase ){
184771 184866       *ppRebase = (void*)sApply.rebase.aBuf;
184772 184867       *pnRebase = sApply.rebase.nBuf;
184773 184868       sApply.rebase.aBuf = 0;
184774 184869     }
................................................................................
184797 184892     ),
184798 184893     int(*xConflict)(
184799 184894       void *pCtx,                   /* Copy of sixth arg to _apply() */
184800 184895       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
184801 184896       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
184802 184897     ),
184803 184898     void *pCtx,                     /* First argument passed to xConflict */
184804         -  void **ppRebase, int *pnRebase
       184899  +  void **ppRebase, int *pnRebase,
       184900  +  int flags
184805 184901   ){
184806 184902     sqlite3_changeset_iter *pIter;  /* Iterator to skip through changeset */  
184807 184903     int rc = sqlite3changeset_start(&pIter, nChangeset, pChangeset);
184808 184904     if( rc==SQLITE_OK ){
184809 184905       rc = sessionChangesetApply(
184810         -        db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
       184906  +        db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
184811 184907       );
184812 184908     }
184813 184909     return rc;
184814 184910   }
184815 184911   
184816 184912   /*
184817 184913   ** Apply the changeset passed via pChangeset/nChangeset to the main database
................................................................................
184830 184926       void *pCtx,                   /* Copy of fifth arg to _apply() */
184831 184927       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
184832 184928       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
184833 184929     ),
184834 184930     void *pCtx                      /* First argument passed to xConflict */
184835 184931   ){
184836 184932     return sqlite3changeset_apply_v2(
184837         -      db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0
       184933  +      db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0, 0
184838 184934     );
184839 184935   }
184840 184936   
184841 184937   /*
184842 184938   ** Apply the changeset passed via xInput/pIn to the main database
184843 184939   ** attached to handle "db". Invoke the supplied conflict handler callback
184844 184940   ** to resolve any conflicts encountered while applying the change.
................................................................................
184853 184949     ),
184854 184950     int(*xConflict)(
184855 184951       void *pCtx,                   /* Copy of sixth arg to _apply() */
184856 184952       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
184857 184953       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
184858 184954     ),
184859 184955     void *pCtx,                     /* First argument passed to xConflict */
184860         -  void **ppRebase, int *pnRebase
       184956  +  void **ppRebase, int *pnRebase,
       184957  +  int flags
184861 184958   ){
184862 184959     sqlite3_changeset_iter *pIter;  /* Iterator to skip through changeset */  
184863 184960     int rc = sqlite3changeset_start_strm(&pIter, xInput, pIn);
184864 184961     if( rc==SQLITE_OK ){
184865 184962       rc = sessionChangesetApply(
184866         -        db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
       184963  +        db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
184867 184964       );
184868 184965     }
184869 184966     return rc;
184870 184967   }
184871 184968   SQLITE_API int sqlite3changeset_apply_strm(
184872 184969     sqlite3 *db,                    /* Apply change to "main" db of this handle */
184873 184970     int (*xInput)(void *pIn, void *pData, int *pnData), /* Input function */
................................................................................
184880 184977       void *pCtx,                   /* Copy of sixth arg to _apply() */
184881 184978       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
184882 184979       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
184883 184980     ),
184884 184981     void *pCtx                      /* First argument passed to xConflict */
184885 184982   ){
184886 184983     return sqlite3changeset_apply_v2_strm(
184887         -      db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0
       184984  +      db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0, 0
184888 184985     );
184889 184986   }
184890 184987   
184891 184988   /*
184892 184989   ** sqlite3_changegroup handle.
184893 184990   */
184894 184991   struct sqlite3_changegroup {
................................................................................
203460 203557                                       FTS5_BI_ROWID_GE, 0, 0, -1},
203461 203558     };
203462 203559   
203463 203560     int aColMap[3];
203464 203561     aColMap[0] = -1;
203465 203562     aColMap[1] = nCol;
203466 203563     aColMap[2] = nCol+1;
       203564  +
       203565  +  assert( SQLITE_INDEX_CONSTRAINT_EQ<SQLITE_INDEX_CONSTRAINT_MATCH );
       203566  +  assert( SQLITE_INDEX_CONSTRAINT_GT<SQLITE_INDEX_CONSTRAINT_MATCH );
       203567  +  assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
       203568  +  assert( SQLITE_INDEX_CONSTRAINT_GE<SQLITE_INDEX_CONSTRAINT_MATCH );
       203569  +  assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
203467 203570   
203468 203571     /* Set idxFlags flags for all WHERE clause terms that will be used. */
203469 203572     for(i=0; i<pInfo->nConstraint; i++){
203470 203573       struct sqlite3_index_constraint *p = &pInfo->aConstraint[i];
203471 203574       int iCol = p->iColumn;
203472 203575   
203473 203576       if( (p->op==SQLITE_INDEX_CONSTRAINT_MATCH && iCol>=0 && iCol<=nCol)
................................................................................
203479 203582           aConstraint[0].iConsIndex = i;
203480 203583         }else{
203481 203584           /* As there exists an unusable MATCH constraint this is an 
203482 203585           ** unusable plan. Set a prohibitively high cost. */
203483 203586           pInfo->estimatedCost = 1e50;
203484 203587           return SQLITE_OK;
203485 203588         }
203486         -    }else{
       203589  +    }else if( p->op<=SQLITE_INDEX_CONSTRAINT_MATCH ){
203487 203590         int j;
203488 203591         for(j=1; j<ArraySize(aConstraint); j++){
203489 203592           struct Constraint *pC = &aConstraint[j];
203490         -        if( iCol==aColMap[pC->iCol] && p->op & pC->op && p->usable ){
       203593  +        if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){
203491 203594             pC->iConsIndex = i;
203492 203595             idxFlags |= pC->fts5op;
203493 203596           }
203494 203597         }
203495 203598       }
203496 203599     }
203497 203600   
................................................................................
205555 205658   static void fts5SourceIdFunc(
205556 205659     sqlite3_context *pCtx,          /* Function call context */
205557 205660     int nArg,                       /* Number of args */
205558 205661     sqlite3_value **apUnused        /* Function arguments */
205559 205662   ){
205560 205663     assert( nArg==0 );
205561 205664     UNUSED_PARAM2(nArg, apUnused);
205562         -  sqlite3_result_text(pCtx, "fts5: 2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2", -1, SQLITE_TRANSIENT);
       205665  +  sqlite3_result_text(pCtx, "fts5: 2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b", -1, SQLITE_TRANSIENT);
205563 205666   }
205564 205667   
205565 205668   static int fts5Init(sqlite3 *db){
205566 205669     static const sqlite3_module fts5Mod = {
205567 205670       /* iVersion      */ 2,
205568 205671       /* xCreate       */ fts5CreateMethod,
205569 205672       /* xConnect      */ fts5ConnectMethod,
................................................................................
209825 209928   #endif
209826 209929     return rc;
209827 209930   }
209828 209931   #endif /* SQLITE_CORE */
209829 209932   #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
209830 209933   
209831 209934   /************** End of stmt.c ************************************************/
209832         -#if __LINE__!=209832
       209935  +#if __LINE__!=209935
209833 209936   #undef SQLITE_SOURCE_ID
209834         -#define SQLITE_SOURCE_ID      "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98falt2"
       209937  +#define SQLITE_SOURCE_ID      "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd14alt2"
209835 209938   #endif
209836 209939   /* Return the source-id for this library */
209837 209940   SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
209838 209941   /************************** End of sqlite3.c ******************************/

Changes to sqlite3/src/main/jni/sqlite/sqlite3.h.

   119    119   ** been edited in any way since it was last checked in, then the last
   120    120   ** four hexadecimal digits of the hash may be modified.
   121    121   **
   122    122   ** See also: [sqlite3_libversion()],
   123    123   ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
   124    124   ** [sqlite_version()] and [sqlite_source_id()].
   125    125   */
   126         -#define SQLITE_VERSION        "3.23.0"
   127         -#define SQLITE_VERSION_NUMBER 3023000
   128         -#define SQLITE_SOURCE_ID      "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
          126  +#define SQLITE_VERSION        "3.23.1"
          127  +#define SQLITE_VERSION_NUMBER 3023001
          128  +#define SQLITE_SOURCE_ID      "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
   129    129   
   130    130   /*
   131    131   ** CAPI3REF: Run-Time Library Version Numbers
   132    132   ** KEYWORDS: sqlite3_version sqlite3_sourceid
   133    133   **
   134    134   ** These interfaces provide the same information as the [SQLITE_VERSION],
   135    135   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
 10102  10102   ** may set (*ppRebase) to point to a "rebase" that may be used with the 
 10103  10103   ** sqlite3_rebaser APIs buffer before returning. In this case (*pnRebase)
 10104  10104   ** is set to the size of the buffer in bytes. It is the responsibility of the
 10105  10105   ** caller to eventually free any such buffer using sqlite3_free(). The buffer
 10106  10106   ** is only allocated and populated if one or more conflicts were encountered
 10107  10107   ** while applying the patchset. See comments surrounding the sqlite3_rebaser
 10108  10108   ** APIs for further details.
        10109  +**
        10110  +** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
        10111  +** may be modified by passing a combination of
        10112  +** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
        10113  +**
        10114  +** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
        10115  +** and therefore subject to change.
 10109  10116   */
 10110  10117   SQLITE_API int sqlite3changeset_apply(
 10111  10118     sqlite3 *db,                    /* Apply change to "main" db of this handle */
 10112  10119     int nChangeset,                 /* Size of changeset in bytes */
 10113  10120     void *pChangeset,               /* Changeset blob */
 10114  10121     int(*xFilter)(
 10115  10122       void *pCtx,                   /* Copy of sixth arg to _apply() */
................................................................................
 10132  10139     ),
 10133  10140     int(*xConflict)(
 10134  10141       void *pCtx,                   /* Copy of sixth arg to _apply() */
 10135  10142       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
 10136  10143       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
 10137  10144     ),
 10138  10145     void *pCtx,                     /* First argument passed to xConflict */
 10139         -  void **ppRebase, int *pnRebase
        10146  +  void **ppRebase, int *pnRebase, /* OUT: Rebase data */
        10147  +  int flags                       /* Combination of SESSION_APPLY_* flags */
 10140  10148   );
 10141  10149   
        10150  +/*
        10151  +** CAPI3REF: Flags for sqlite3changeset_apply_v2
        10152  +**
        10153  +** The following flags may passed via the 9th parameter to
        10154  +** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
        10155  +**
        10156  +** <dl>
        10157  +** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
        10158  +**   Usually, the sessions module encloses all operations performed by
        10159  +**   a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
        10160  +**   SAVEPOINT is committed if the changeset or patchset is successfully
        10161  +**   applied, or rolled back if an error occurs. Specifying this flag
        10162  +**   causes the sessions module to omit this savepoint. In this case, if the
        10163  +**   caller has an open transaction or savepoint when apply_v2() is called, 
        10164  +**   it may revert the partially applied changeset by rolling it back.
        10165  +*/
        10166  +#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT   0x0001
        10167  +
 10142  10168   /* 
 10143  10169   ** CAPI3REF: Constants Passed To The Conflict Handler
 10144  10170   **
 10145  10171   ** Values that may be passed as the second argument to a conflict-handler.
 10146  10172   **
 10147  10173   ** <dl>
 10148  10174   ** <dt>SQLITE_CHANGESET_DATA<dd>
................................................................................
 10395  10421   **
 10396  10422   ** The six streaming API xxx_strm() functions serve similar purposes to the 
 10397  10423   ** corresponding non-streaming API functions:
 10398  10424   **
 10399  10425   ** <table border=1 style="margin-left:8ex;margin-right:8ex">
 10400  10426   **   <tr><th>Streaming function<th>Non-streaming equivalent</th>
 10401  10427   **   <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply] 
        10428  +**   <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2] 
 10402  10429   **   <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat] 
 10403  10430   **   <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert] 
 10404  10431   **   <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start] 
 10405  10432   **   <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset] 
 10406  10433   **   <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset] 
 10407  10434   ** </table>
 10408  10435   **
................................................................................
 10504  10531     ),
 10505  10532     int(*xConflict)(
 10506  10533       void *pCtx,                   /* Copy of sixth arg to _apply() */
 10507  10534       int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT */
 10508  10535       sqlite3_changeset_iter *p     /* Handle describing change and conflict */
 10509  10536     ),
 10510  10537     void *pCtx,                     /* First argument passed to xConflict */
 10511         -  void **ppRebase, int *pnRebase
        10538  +  void **ppRebase, int *pnRebase,
        10539  +  int flags
 10512  10540   );
 10513  10541   SQLITE_API int sqlite3changeset_concat_strm(
 10514  10542     int (*xInputA)(void *pIn, void *pData, int *pnData),
 10515  10543     void *pInA,
 10516  10544     int (*xInputB)(void *pIn, void *pData, int *pnData),
 10517  10545     void *pInB,
 10518  10546     int (*xOutput)(void *pOut, const void *pData, int nData),