Fossil SCM

Update the built-in SQLite to the latest 3.49.0 beta for testing.

drh 2025-02-02 10:32 trunk
Commit 88bc7cffc9e03ba69ff77545cf239ee7d4baf3fa62c5bb70c0f4c2cddcd4f711
--- extsrc/shell.c
+++ extsrc/shell.c
@@ -28889,10 +28889,13 @@
2888928889
if( c=='d' && n>=3 && cli_strncmp(azArg[0], "dbconfig", n)==0 ){
2889028890
static const struct DbConfigChoices {
2889128891
const char *zName;
2889228892
int op;
2889328893
} aDbConfig[] = {
28894
+ { "attach_create", SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE },
28895
+ { "attach_write", SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE },
28896
+ { "comments", SQLITE_DBCONFIG_ENABLE_COMMENTS },
2889428897
{ "defensive", SQLITE_DBCONFIG_DEFENSIVE },
2889528898
{ "dqs_ddl", SQLITE_DBCONFIG_DQS_DDL },
2889628899
{ "dqs_dml", SQLITE_DBCONFIG_DQS_DML },
2889728900
{ "enable_fkey", SQLITE_DBCONFIG_ENABLE_FKEY },
2889828901
{ "enable_qpsg", SQLITE_DBCONFIG_ENABLE_QPSG },
2889928902
--- extsrc/shell.c
+++ extsrc/shell.c
@@ -28889,10 +28889,13 @@
28889 if( c=='d' && n>=3 && cli_strncmp(azArg[0], "dbconfig", n)==0 ){
28890 static const struct DbConfigChoices {
28891 const char *zName;
28892 int op;
28893 } aDbConfig[] = {
 
 
 
28894 { "defensive", SQLITE_DBCONFIG_DEFENSIVE },
28895 { "dqs_ddl", SQLITE_DBCONFIG_DQS_DDL },
28896 { "dqs_dml", SQLITE_DBCONFIG_DQS_DML },
28897 { "enable_fkey", SQLITE_DBCONFIG_ENABLE_FKEY },
28898 { "enable_qpsg", SQLITE_DBCONFIG_ENABLE_QPSG },
28899
--- extsrc/shell.c
+++ extsrc/shell.c
@@ -28889,10 +28889,13 @@
28889 if( c=='d' && n>=3 && cli_strncmp(azArg[0], "dbconfig", n)==0 ){
28890 static const struct DbConfigChoices {
28891 const char *zName;
28892 int op;
28893 } aDbConfig[] = {
28894 { "attach_create", SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE },
28895 { "attach_write", SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE },
28896 { "comments", SQLITE_DBCONFIG_ENABLE_COMMENTS },
28897 { "defensive", SQLITE_DBCONFIG_DEFENSIVE },
28898 { "dqs_ddl", SQLITE_DBCONFIG_DQS_DDL },
28899 { "dqs_dml", SQLITE_DBCONFIG_DQS_DML },
28900 { "enable_fkey", SQLITE_DBCONFIG_ENABLE_FKEY },
28901 { "enable_qpsg", SQLITE_DBCONFIG_ENABLE_QPSG },
28902
+1709 -1592
--- extsrc/sqlite3.c
+++ extsrc/sqlite3.c
@@ -16,11 +16,11 @@
1616
** if you want a wrapper to interface SQLite with your choice of programming
1717
** language. The code for the "sqlite3" command-line shell is also in a
1818
** separate file. This file contains only code for the core SQLite library.
1919
**
2020
** The content in this amalgamation comes from Fossil check-in
21
-** d7c07581203a0a88456588e49e51b40a8341 with changes in files:
21
+** 4068f586ddadd3a818645574f7584fcee6d3 with changes in files:
2222
**
2323
**
2424
*/
2525
#ifndef SQLITE_AMALGAMATION
2626
#define SQLITE_CORE 1
@@ -465,11 +465,11 @@
465465
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
466466
** [sqlite_version()] and [sqlite_source_id()].
467467
*/
468468
#define SQLITE_VERSION "3.49.0"
469469
#define SQLITE_VERSION_NUMBER 3049000
470
-#define SQLITE_SOURCE_ID "2025-01-29 18:53:19 d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f"
470
+#define SQLITE_SOURCE_ID "2025-02-01 23:49:01 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a"
471471
472472
/*
473473
** CAPI3REF: Run-Time Library Version Numbers
474474
** KEYWORDS: sqlite3_version sqlite3_sourceid
475475
**
@@ -2540,12 +2540,16 @@
25402540
** is invoked.
25412541
**
25422542
** <dl>
25432543
** [[SQLITE_DBCONFIG_LOOKASIDE]]
25442544
** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2545
-** <dd> ^This option takes three additional arguments that determine the
2546
-** [lookaside memory allocator] configuration for the [database connection].
2545
+** <dd> The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the
2546
+** configuration of the lookaside memory allocator within a database
2547
+** connection.
2548
+** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are <i>not</i>
2549
+** in the [DBCONFIG arguments|usual format].
2550
+** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two.
25472551
** ^The first argument (the third parameter to [sqlite3_db_config()] is a
25482552
** pointer to a memory buffer to use for lookaside memory.
25492553
** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
25502554
** may be NULL in which case SQLite will allocate the
25512555
** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the
@@ -2564,11 +2568,12 @@
25642568
** [SQLITE_BUSY].)^</dd>
25652569
**
25662570
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
25672571
** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
25682572
** <dd> ^This option is used to enable or disable the enforcement of
2569
-** [foreign key constraints]. There should be two additional arguments.
2573
+** [foreign key constraints]. This is the same setting that is
2574
+** enabled or disabled by the [PRAGMA foreign_keys] statement.
25702575
** The first argument is an integer which is 0 to disable FK enforcement,
25712576
** positive to enable FK enforcement or negative to leave FK enforcement
25722577
** unchanged. The second parameter is a pointer to an integer into which
25732578
** is written 0 or 1 to indicate whether FK enforcement is off or on
25742579
** following this call. The second parameter may be a NULL pointer, in
@@ -2586,17 +2591,17 @@
25862591
** which case the trigger setting is not reported back.
25872592
**
25882593
** <p>Originally this option disabled all triggers. ^(However, since
25892594
** SQLite version 3.35.0, TEMP triggers are still allowed even if
25902595
** this option is off. So, in other words, this option now only disables
2591
-** triggers in the main database schema or in the schemas of ATTACH-ed
2596
+** triggers in the main database schema or in the schemas of [ATTACH]-ed
25922597
** databases.)^ </dd>
25932598
**
25942599
** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
25952600
** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
25962601
** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2597
-** There should be two additional arguments.
2602
+** There must be two additional arguments.
25982603
** The first argument is an integer which is 0 to disable views,
25992604
** positive to enable views or negative to leave the setting unchanged.
26002605
** The second parameter is a pointer to an integer into which
26012606
** is written 0 or 1 to indicate whether views are disabled or enabled
26022607
** following this call. The second parameter may be a NULL pointer, in
@@ -2611,11 +2616,11 @@
26112616
** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
26122617
** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
26132618
** <dd> ^This option is used to enable or disable the
26142619
** [fts3_tokenizer()] function which is part of the
26152620
** [FTS3] full-text search engine extension.
2616
-** There should be two additional arguments.
2621
+** There must be two additional arguments.
26172622
** The first argument is an integer which is 0 to disable fts3_tokenizer() or
26182623
** positive to enable fts3_tokenizer() or negative to leave the setting
26192624
** unchanged.
26202625
** The second parameter is a pointer to an integer into which
26212626
** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
@@ -2626,11 +2631,11 @@
26262631
** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
26272632
** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
26282633
** interface independently of the [load_extension()] SQL function.
26292634
** The [sqlite3_enable_load_extension()] API enables or disables both the
26302635
** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2631
-** There should be two additional arguments.
2636
+** There must be two additional arguments.
26322637
** When the first argument to this interface is 1, then only the C-API is
26332638
** enabled and the SQL function remains disabled. If the first argument to
26342639
** this interface is 0, then both the C-API and the SQL function are disabled.
26352640
** If the first argument is -1, then no changes are made to state of either the
26362641
** C-API or the SQL function.
@@ -2640,26 +2645,31 @@
26402645
** be a NULL pointer, in which case the new setting is not reported back.
26412646
** </dd>
26422647
**
26432648
** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
26442649
** <dd> ^This option is used to change the name of the "main" database
2645
-** schema. ^The sole argument is a pointer to a constant UTF8 string
2646
-** which will become the new schema name in place of "main". ^SQLite
2647
-** does not make a copy of the new main schema name string, so the application
2648
-** must ensure that the argument passed into this DBCONFIG option is unchanged
2650
+** schema. This option does not follow the
2651
+** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format].
2652
+** This option takes exactly one argument, which ust be a pointer
2653
+** to a constant UTF8 string which will become the new schema name
2654
+** in place of "main". ^SQLite does not make a copy of the new main
2655
+** schema name string, so the application must ensure that the argument
2656
+** passed into SQLITE_DBCONFIG MAINDBNAME is unchanged
26492657
** until after the database connection closes.
26502658
** </dd>
26512659
**
26522660
** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
26532661
** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2654
-** <dd> Usually, when a database in wal mode is closed or detached from a
2655
-** database handle, SQLite checks if this will mean that there are now no
2656
-** connections at all to the database. If so, it performs a checkpoint
2657
-** operation before closing the connection. This option may be used to
2658
-** override this behavior. The first parameter passed to this operation
2659
-** is an integer - positive to disable checkpoints-on-close, or zero (the
2660
-** default) to enable them, and negative to leave the setting unchanged.
2662
+** <dd> Usually, when a database in [WAL mode] is closed or detached from a
2663
+** database handle, SQLite checks if if there are other connections to the
2664
+** same database, and if there are no other database connection (if the
2665
+** connection being closed is the last open connection to the database),
2666
+** then SQLite performs a [checkpoint] before closing the connection and
2667
+** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can
2668
+** be used to override that behavior. The first parameter passed to this
2669
+** operation is an integer - positive to disable checkpoints-on-close, or
2670
+** zero (the default) to enable them, and negative to leave the setting unchanged.
26612671
** The second parameter is a pointer to an integer
26622672
** into which is written 0 or 1 to indicate whether checkpoints-on-close
26632673
** have been disabled - 0 if they are not disabled, 1 if they are.
26642674
** </dd>
26652675
**
@@ -2817,11 +2827,11 @@
28172827
** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
28182828
** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
28192829
** statistics. For statistics to be collected, the flag must be set on
28202830
** the database handle both when the SQL statement is prepared and when it
28212831
** is stepped. The flag is set (collection of statistics is enabled)
2822
-** by default. This option takes two arguments: an integer and a pointer to
2832
+** by default. <p>This option takes two arguments: an integer and a pointer to
28232833
** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
28242834
** leave unchanged the statement scanstatus option. If the second argument
28252835
** is not NULL, then the value of the statement scanstatus setting after
28262836
** processing the first argument is written into the integer that the second
28272837
** argument points to.
@@ -2831,20 +2841,87 @@
28312841
** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
28322842
** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
28332843
** in which tables and indexes are scanned so that the scans start at the end
28342844
** and work toward the beginning rather than starting at the beginning and
28352845
** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2836
-** same as setting [PRAGMA reverse_unordered_selects]. This option takes
2846
+** same as setting [PRAGMA reverse_unordered_selects]. <p>This option takes
28372847
** two arguments which are an integer and a pointer to an integer. The first
28382848
** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
28392849
** reverse scan order flag, respectively. If the second argument is not NULL,
28402850
** then 0 or 1 is written into the integer that the second argument points to
28412851
** depending on if the reverse scan order flag is set after processing the
28422852
** first argument.
28432853
** </dd>
28442854
**
2855
+** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]]
2856
+** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE</dt>
2857
+** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables
2858
+** the ability of the [ATTACH DATABASE] SQL command to create a new database
2859
+** file if the database filed named in the ATTACH command does not already
2860
+** exist. This ability of ATTACH to create a new database is enabled by
2861
+** default. Applications can disable or reenable the ability for ATTACH to
2862
+** create new database files using this DBCONFIG option.<p>
2863
+** This option takes two arguments which are an integer and a pointer
2864
+** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2865
+** leave unchanged the attach-create flag, respectively. If the second
2866
+** argument is not NULL, then 0 or 1 is written into the integer that the
2867
+** second argument points to depending on if the attach-create flag is set
2868
+** after processing the first argument.
2869
+** </dd>
2870
+**
2871
+** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]]
2872
+** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE</dt>
2873
+** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
2874
+** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
2875
+** This capability is enabled by default. Applications can disable or
2876
+** reenable this capability using the current DBCONFIG option. If the
2877
+** the this capability is disabled, the [ATTACH] command will still work,
2878
+** but the database will be opened read-only. If this option is disabled,
2879
+** then the ability to create a new database using [ATTACH] is also disabled,
2880
+** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
2881
+** option.<p>
2882
+** This option takes two arguments which are an integer and a pointer
2883
+** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2884
+** leave unchanged the ability to ATTACH another database for writing,
2885
+** respectively. If the second argument is not NULL, then 0 or 1 is written
2886
+** into the integer to which the second argument points, depending on whether
2887
+** the ability to ATTACH a read/write database is enabled or disabled
2888
+** after processing the first argument.
2889
+** </dd>
2890
+**
2891
+** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]]
2892
+** <dt>SQLITE_DBCONFIG_ENABLE_COMMENTS</dt>
2893
+** <dd>The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the
2894
+** ability to include comments in SQL text. Comments are enabled by default.
2895
+** An application can disable or reenable comments in SQL text using this
2896
+** DBCONFIG option.<p>
2897
+** This option takes two arguments which are an integer and a pointer
2898
+** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2899
+** leave unchanged the ability to use comments in SQL text,
2900
+** respectively. If the second argument is not NULL, then 0 or 1 is written
2901
+** into the integer that the second argument points to depending on if
2902
+** comments are allowed in SQL text after processing the first argument.
2903
+** </dd>
2904
+**
28452905
** </dl>
2906
+**
2907
+** [[DBCONFIG arguments]] <h3>Arguments To SQLITE_DBCONFIG Options</h3>
2908
+**
2909
+** <p>Most of the SQLITE_DBCONFIG options take two arguments: an integer
2910
+** and a pointer to an integer. If the first integer argument is 1, then
2911
+** the option becomes enabled. If the first integer argument is 0, then the
2912
+** option is disabled. If the first argument is -1, then the option setting
2913
+** is unchanged. The second argument, the pointer to an integer, may be NULL.
2914
+** If the second argument is not NULL, then a value of 0 or 1 is written into
2915
+** the integer to which the second argument points, depending on whether the
2916
+** setting is disabled or enabled after applying any changes specified by
2917
+** the first argument.
2918
+**
2919
+** <p>While most SQLITE_DBCONFIG options use the argument format
2920
+** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME]
2921
+** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the
2922
+** documentation of those exceptional options for details.
28462923
*/
28472924
#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
28482925
#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
28492926
#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
28502927
#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
@@ -2862,11 +2939,14 @@
28622939
#define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
28632940
#define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
28642941
#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
28652942
#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
28662943
#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2867
-#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
2944
+#define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */
2945
+#define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */
2946
+#define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */
2947
+#define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */
28682948
28692949
/*
28702950
** CAPI3REF: Enable Or Disable Extended Result Codes
28712951
** METHOD: sqlite3
28722952
**
@@ -14876,11 +14956,12 @@
1487614956
#define TK_ASTERISK 180
1487714957
#define TK_SPAN 181
1487814958
#define TK_ERROR 182
1487914959
#define TK_QNUMBER 183
1488014960
#define TK_SPACE 184
14881
-#define TK_ILLEGAL 185
14961
+#define TK_COMMENT 185
14962
+#define TK_ILLEGAL 186
1488214963
1488314964
/************** End of parse.h ***********************************************/
1488414965
/************** Continuing where we left off in sqliteInt.h ******************/
1488514966
#include <stdio.h>
1488614967
#include <stdlib.h>
@@ -16713,10 +16794,11 @@
1671316794
** A signature for a reusable subroutine that materializes the RHS of
1671416795
** an IN operator.
1671516796
*/
1671616797
struct SubrtnSig {
1671716798
int selId; /* SELECT-id for the SELECT statement on the RHS */
16799
+ u8 bComplete; /* True if fully coded and available for reusable */
1671816800
char *zAff; /* Affinity of the overall IN expression */
1671916801
int iTable; /* Ephemeral table generated by the subroutine */
1672016802
int iAddr; /* Subroutine entry address */
1672116803
int regReturn; /* Register used to hold return address */
1672216804
};
@@ -18043,10 +18125,13 @@
1804318125
/* DELETE, or UPDATE and return */
1804418126
/* the count using a callback. */
1804518127
#define SQLITE_CorruptRdOnly HI(0x00002) /* Prohibit writes due to error */
1804618128
#define SQLITE_ReadUncommit HI(0x00004) /* READ UNCOMMITTED in shared-cache */
1804718129
#define SQLITE_FkNoAction HI(0x00008) /* Treat all FK as NO ACTION */
18130
+#define SQLITE_AttachCreate HI(0x00010) /* ATTACH allowed to create new dbs */
18131
+#define SQLITE_AttachWrite HI(0x00020) /* ATTACH allowed to open for write */
18132
+#define SQLITE_Comments HI(0x00040) /* Enable SQL comments */
1804818133
1804918134
/* Flags used only if debugging */
1805018135
#ifdef SQLITE_DEBUG
1805118136
#define SQLITE_SqlTrace HI(0x0100000) /* Debug print SQL as it executes */
1805218137
#define SQLITE_VdbeListing HI(0x0200000) /* Debug listings of VDBE progs */
@@ -90623,11 +90708,10 @@
9062390708
*/
9062490709
static SQLITE_NOINLINE void invokeProfileCallback(sqlite3 *db, Vdbe *p){
9062590710
sqlite3_int64 iNow;
9062690711
sqlite3_int64 iElapse;
9062790712
assert( p->startTime>0 );
90628
- assert( (db->mTrace & (SQLITE_TRACE_PROFILE|SQLITE_TRACE_XPROFILE))!=0 );
9062990713
assert( db->init.busy==0 );
9063090714
assert( p->zSql!=0 );
9063190715
sqlite3OsCurrentTimeInt64(db->pVfs, &iNow);
9063290716
iElapse = (iNow - p->startTime)*1000000;
9063390717
#ifndef SQLITE_OMIT_DEPRECATED
@@ -112896,10 +112980,11 @@
112896112980
for(; pOp<pEnd; pOp++){
112897112981
if( pOp->p4type!=P4_SUBRTNSIG ) continue;
112898112982
assert( pOp->opcode==OP_BeginSubrtn );
112899112983
pSig = pOp->p4.pSubrtnSig;
112900112984
assert( pSig!=0 );
112985
+ if( !pSig->bComplete ) continue;
112901112986
if( pNewSig->selId!=pSig->selId ) continue;
112902112987
if( strcmp(pNewSig->zAff,pSig->zAff)!=0 ) continue;
112903112988
pExpr->y.sub.iAddr = pSig->iAddr;
112904112989
pExpr->y.sub.regReturn = pSig->regReturn;
112905112990
pExpr->iTable = pSig->iTable;
@@ -112942,10 +113027,11 @@
112942113027
int addr; /* Address of OP_OpenEphemeral instruction */
112943113028
Expr *pLeft; /* the LHS of the IN operator */
112944113029
KeyInfo *pKeyInfo = 0; /* Key information */
112945113030
int nVal; /* Size of vector pLeft */
112946113031
Vdbe *v; /* The prepared statement under construction */
113032
+ SubrtnSig *pSig = 0; /* Signature for this subroutine */
112947113033
112948113034
v = pParse->pVdbe;
112949113035
assert( v!=0 );
112950113036
112951113037
/* The evaluation of the IN must be repeated every time it
@@ -112962,11 +113048,10 @@
112962113048
/* Reuse of the RHS is allowed
112963113049
**
112964113050
** Compute a signature for the RHS of the IN operator to facility
112965113051
** finding and reusing prior instances of the same IN operator.
112966113052
*/
112967
- SubrtnSig *pSig = 0;
112968113053
assert( !ExprUseXSelect(pExpr) || pExpr->x.pSelect!=0 );
112969113054
if( ExprUseXSelect(pExpr) && (pExpr->x.pSelect->selFlags & SF_All)==0 ){
112970113055
pSig = sqlite3DbMallocRawNN(pParse->db, sizeof(pSig[0]));
112971113056
if( pSig ){
112972113057
pSig->selId = pExpr->x.pSelect->selId;
@@ -113005,10 +113090,11 @@
113005113090
assert( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) );
113006113091
pExpr->y.sub.regReturn = ++pParse->nMem;
113007113092
pExpr->y.sub.iAddr =
113008113093
sqlite3VdbeAddOp2(v, OP_BeginSubrtn, 0, pExpr->y.sub.regReturn) + 1;
113009113094
if( pSig ){
113095
+ pSig->bComplete = 0;
113010113096
pSig->iAddr = pExpr->y.sub.iAddr;
113011113097
pSig->regReturn = pExpr->y.sub.regReturn;
113012113098
pSig->iTable = iTab;
113013113099
pParse->mSubrtnSig = 1 << (pSig->selId&7);
113014113100
sqlite3VdbeChangeP4(v, -1, (const char*)pSig, P4_SUBRTNSIG);
@@ -113140,10 +113226,11 @@
113140113226
sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iTab, r2, r1, 1);
113141113227
}
113142113228
sqlite3ReleaseTempReg(pParse, r1);
113143113229
sqlite3ReleaseTempReg(pParse, r2);
113144113230
}
113231
+ if( pSig ) pSig->bComplete = 1;
113145113232
if( pKeyInfo ){
113146113233
sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO);
113147113234
}
113148113235
if( addrOnce ){
113149113236
sqlite3VdbeAddOp1(v, OP_NullRow, iTab);
@@ -121337,10 +121424,16 @@
121337121424
if( rc!=SQLITE_OK ){
121338121425
if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
121339121426
sqlite3_result_error(context, zErr, -1);
121340121427
sqlite3_free(zErr);
121341121428
return;
121429
+ }
121430
+ if( (db->flags & SQLITE_AttachWrite)==0 ){
121431
+ flags &= ~(SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE);
121432
+ flags |= SQLITE_OPEN_READONLY;
121433
+ }else if( (db->flags & SQLITE_AttachCreate)==0 ){
121434
+ flags &= ~SQLITE_OPEN_CREATE;
121342121435
}
121343121436
assert( pVfs );
121344121437
flags |= SQLITE_OPEN_MAIN_DB;
121345121438
rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags);
121346121439
db->nDb++;
@@ -157233,11 +157326,13 @@
157233157326
** sqlite3_declare_vtab() is being misused.
157234157327
*/
157235157328
z = (const unsigned char*)zCreateTable;
157236157329
for(i=0; aKeyword[i]; i++){
157237157330
int tokenType = 0;
157238
- do{ z += sqlite3GetToken(z, &tokenType); }while( tokenType==TK_SPACE );
157331
+ do{
157332
+ z += sqlite3GetToken(z, &tokenType);
157333
+ }while( tokenType==TK_SPACE || tokenType==TK_COMMENT );
157239157334
if( tokenType!=aKeyword[i] ){
157240157335
sqlite3ErrorWithMsg(db, SQLITE_ERROR, "syntax error");
157241157336
return SQLITE_ERROR;
157242157337
}
157243157338
}
@@ -161606,24 +161701,26 @@
161606161701
}else if( op==TK_STRING ){
161607161702
assert( !ExprHasProperty(pRight, EP_IntValue) );
161608161703
z = (u8*)pRight->u.zToken;
161609161704
}
161610161705
if( z ){
161611
- /* Count the number of prefix bytes prior to the first wildcard.
161612
- ** or U+fffd character. If the underlying database has a UTF16LE
161613
- ** encoding, then only consider ASCII characters. Note that the
161614
- ** encoding of z[] is UTF8 - we are dealing with only UTF8 here in
161615
- ** this code, but the database engine itself might be processing
161616
- ** content using a different encoding. */
161706
+ /* Count the number of prefix bytes prior to the first wildcard,
161707
+ ** U+fffd character, or malformed utf-8. If the underlying database
161708
+ ** has a UTF16LE encoding, then only consider ASCII characters. Note that
161709
+ ** the encoding of z[] is UTF8 - we are dealing with only UTF8 here in this
161710
+ ** code, but the database engine itself might be processing content using a
161711
+ ** different encoding. */
161617161712
cnt = 0;
161618161713
while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
161619161714
cnt++;
161620161715
if( c==wc[3] && z[cnt]>0 && z[cnt]<0x80 ){
161621161716
cnt++;
161622161717
}else if( c>=0x80 ){
161623161718
const u8 *z2 = z+cnt-1;
161624
- if( sqlite3Utf8Read(&z2)==0xfffd || ENC(db)==SQLITE_UTF16LE ){
161719
+ if( c==0xff || sqlite3Utf8Read(&z2)==0xfffd /* bad utf-8 */
161720
+ || ENC(db)==SQLITE_UTF16LE
161721
+ ){
161625161722
cnt--;
161626161723
break;
161627161724
}else{
161628161725
cnt = (int)(z2-z);
161629161726
}
@@ -162771,24 +162868,30 @@
162771162868
pStr2->u.zToken[i] = sqlite3Tolower(c);
162772162869
}
162773162870
}
162774162871
162775162872
if( !db->mallocFailed ){
162776
- u8 c, *pC; /* Last character before the first wildcard */
162873
+ u8 *pC; /* Last character before the first wildcard */
162777162874
pC = (u8*)&pStr2->u.zToken[sqlite3Strlen30(pStr2->u.zToken)-1];
162778
- c = *pC;
162779162875
if( noCase ){
162780162876
/* The point is to increment the last character before the first
162781162877
** wildcard. But if we increment '@', that will push it into the
162782162878
** alphabetic range where case conversions will mess up the
162783162879
** inequality. To avoid this, make sure to also run the full
162784162880
** LIKE on all candidate expressions by clearing the isComplete flag
162785162881
*/
162786
- if( c=='A'-1 ) isComplete = 0;
162787
- c = sqlite3UpperToLower[c];
162882
+ if( *pC=='A'-1 ) isComplete = 0;
162883
+ *pC = sqlite3UpperToLower[*pC];
162788162884
}
162789
- *pC = c + 1;
162885
+
162886
+ /* Increment the value of the last utf8 character in the prefix. */
162887
+ while( *pC==0xBF && pC>(u8*)pStr2->u.zToken ){
162888
+ *pC = 0x80;
162889
+ pC--;
162890
+ }
162891
+ assert( *pC!=0xFF ); /* isLikeOrGlob() guarantees this */
162892
+ (*pC)++;
162790162893
}
162791162894
zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY;
162792162895
pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
162793162896
pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
162794162897
sqlite3ExprAddCollateString(pParse,pNewExpr1,zCollSeqName),
@@ -174500,11 +174603,12 @@
174500174603
#define TK_ASTERISK 180
174501174604
#define TK_SPAN 181
174502174605
#define TK_ERROR 182
174503174606
#define TK_QNUMBER 183
174504174607
#define TK_SPACE 184
174505
-#define TK_ILLEGAL 185
174608
+#define TK_COMMENT 185
174609
+#define TK_ILLEGAL 186
174506174610
#endif
174507174611
/**************** End token definitions ***************************************/
174508174612
174509174613
/* The next sections is a series of control #defines.
174510174614
** various aspects of the generated parser.
@@ -174565,35 +174669,35 @@
174565174669
#ifndef INTERFACE
174566174670
# define INTERFACE 1
174567174671
#endif
174568174672
/************* Begin control #defines *****************************************/
174569174673
#define YYCODETYPE unsigned short int
174570
-#define YYNOCODE 322
174674
+#define YYNOCODE 323
174571174675
#define YYACTIONTYPE unsigned short int
174572174676
#define YYWILDCARD 102
174573174677
#define sqlite3ParserTOKENTYPE Token
174574174678
typedef union {
174575174679
int yyinit;
174576174680
sqlite3ParserTOKENTYPE yy0;
174577
- ExprList* yy14;
174578
- With* yy59;
174579
- Cte* yy67;
174580
- Upsert* yy122;
174581
- IdList* yy132;
174582
- int yy144;
174583
- const char* yy168;
174584
- SrcList* yy203;
174585
- Window* yy211;
174586
- OnOrUsing yy269;
174587
- struct TrigEvent yy286;
174588
- struct {int value; int mask;} yy383;
174589
- u32 yy391;
174590
- TriggerStep* yy427;
174591
- Expr* yy454;
174592
- u8 yy462;
174593
- struct FrameBound yy509;
174594
- Select* yy555;
174681
+ u32 yy9;
174682
+ struct TrigEvent yy28;
174683
+ With* yy125;
174684
+ IdList* yy204;
174685
+ struct FrameBound yy205;
174686
+ TriggerStep* yy319;
174687
+ const char* yy342;
174688
+ Cte* yy361;
174689
+ ExprList* yy402;
174690
+ Upsert* yy403;
174691
+ OnOrUsing yy421;
174692
+ u8 yy444;
174693
+ struct {int value; int mask;} yy481;
174694
+ Window* yy483;
174695
+ int yy502;
174696
+ SrcList* yy563;
174697
+ Expr* yy590;
174698
+ Select* yy637;
174595174699
} YYMINORTYPE;
174596174700
#ifndef YYSTACKDEPTH
174597174701
#define YYSTACKDEPTH 100
174598174702
#endif
174599174703
#define sqlite3ParserARG_SDECL
@@ -174611,21 +174715,21 @@
174611174715
#define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
174612174716
#define YYFALLBACK 1
174613174717
#define YYNSTATE 583
174614174718
#define YYNRULE 409
174615174719
#define YYNRULE_WITH_ACTION 344
174616
-#define YYNTOKEN 186
174720
+#define YYNTOKEN 187
174617174721
#define YY_MAX_SHIFT 582
174618174722
#define YY_MIN_SHIFTREDUCE 845
174619174723
#define YY_MAX_SHIFTREDUCE 1253
174620174724
#define YY_ERROR_ACTION 1254
174621174725
#define YY_ACCEPT_ACTION 1255
174622174726
#define YY_NO_ACTION 1256
174623174727
#define YY_MIN_REDUCE 1257
174624174728
#define YY_MAX_REDUCE 1665
174625
-#define YY_MIN_DSTRCTR 205
174626
-#define YY_MAX_DSTRCTR 319
174729
+#define YY_MIN_DSTRCTR 206
174730
+#define YY_MAX_DSTRCTR 320
174627174731
/************* End control #defines *******************************************/
174628174732
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
174629174733
174630174734
/* Define the yytestcase() macro to be a no-op if is not already defined
174631174735
** otherwise.
@@ -174717,573 +174821,573 @@
174717174821
/* 60 */ 288, 288, 182, 288, 288, 481, 536, 288, 288, 130,
174718174822
/* 70 */ 127, 234, 432, 573, 525, 562, 573, 557, 562, 1290,
174719174823
/* 80 */ 573, 421, 562, 137, 138, 91, 559, 1228, 1228, 1063,
174720174824
/* 90 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 296,
174721174825
/* 100 */ 460, 398, 1249, 134, 134, 134, 134, 133, 133, 132,
174722
- /* 110 */ 132, 132, 131, 128, 451, 44, 1050, 1050, 1064, 1067,
174826
+ /* 110 */ 132, 132, 131, 128, 451, 451, 1050, 1050, 1064, 1067,
174723174827
/* 120 */ 1255, 1, 1, 582, 2, 1259, 581, 1174, 1259, 1174,
174724
- /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 498, 1341,
174828
+ /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 481, 1341,
174725174829
/* 140 */ 456, 299, 1341, 134, 134, 134, 134, 133, 133, 132,
174726
- /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 1105, 1228,
174830
+ /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 498, 1228,
174727174831
/* 160 */ 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136,
174728
- /* 170 */ 136, 1204, 320, 567, 288, 288, 283, 288, 288, 523,
174729
- /* 180 */ 523, 1250, 139, 1541, 7, 214, 503, 573, 1169, 562,
174730
- /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 401, 547,
174731
- /* 200 */ 487, 1169, 245, 1568, 1169, 245, 133, 133, 132, 132,
174732
- /* 210 */ 132, 131, 128, 451, 261, 134, 134, 134, 134, 133,
174733
- /* 220 */ 133, 132, 132, 132, 131, 128, 451, 451, 1204, 1205,
174734
- /* 230 */ 1204, 130, 127, 234, 455, 413, 182, 455, 130, 127,
174832
+ /* 170 */ 136, 1204, 862, 1281, 288, 288, 283, 288, 288, 523,
174833
+ /* 180 */ 523, 1250, 139, 578, 7, 578, 1345, 573, 1169, 562,
174834
+ /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 573, 547,
174835
+ /* 200 */ 562, 1169, 245, 1541, 1169, 245, 133, 133, 132, 132,
174836
+ /* 210 */ 132, 131, 128, 451, 302, 134, 134, 134, 134, 133,
174837
+ /* 220 */ 133, 132, 132, 132, 131, 128, 451, 1575, 1204, 1205,
174838
+ /* 230 */ 1204, 7, 470, 550, 455, 413, 550, 455, 130, 127,
174735174839
/* 240 */ 234, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174736
- /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 576, 137,
174737
- /* 260 */ 138, 91, 261, 1228, 1228, 1063, 1066, 1053, 1053, 135,
174738
- /* 270 */ 135, 136, 136, 136, 136, 44, 472, 346, 1204, 472,
174739
- /* 280 */ 346, 51, 51, 418, 93, 157, 134, 134, 134, 134,
174740
- /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 166, 363,
174741
- /* 300 */ 298, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174742
- /* 310 */ 131, 128, 451, 1293, 461, 1570, 423, 377, 275, 134,
174840
+ /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 483, 137,
174841
+ /* 260 */ 138, 91, 1019, 1228, 1228, 1063, 1066, 1053, 1053, 135,
174842
+ /* 270 */ 135, 136, 136, 136, 136, 1085, 576, 1204, 132, 132,
174843
+ /* 280 */ 132, 131, 128, 451, 93, 214, 134, 134, 134, 134,
174844
+ /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 401, 19,
174845
+ /* 300 */ 19, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174846
+ /* 310 */ 131, 128, 451, 1498, 426, 267, 344, 467, 332, 134,
174743174847
/* 320 */ 134, 134, 134, 133, 133, 132, 132, 132, 131, 128,
174744
- /* 330 */ 451, 418, 320, 567, 1292, 1204, 1205, 1204, 257, 413,
174745
- /* 340 */ 483, 511, 508, 507, 94, 132, 132, 132, 131, 128,
174746
- /* 350 */ 451, 506, 1204, 548, 548, 388, 576, 384, 7, 413,
174747
- /* 360 */ 550, 229, 522, 137, 138, 91, 530, 1228, 1228, 1063,
174748
- /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 51,
174749
- /* 380 */ 51, 1582, 380, 137, 138, 91, 331, 1228, 1228, 1063,
174750
- /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 320,
174751
- /* 400 */ 567, 288, 288, 320, 567, 1602, 582, 2, 1259, 1204,
174752
- /* 410 */ 1205, 1204, 1628, 321, 573, 155, 562, 576, 1511, 264,
174753
- /* 420 */ 231, 520, 1341, 134, 134, 134, 134, 133, 133, 132,
174754
- /* 430 */ 132, 132, 131, 128, 451, 519, 1511, 1513, 1333, 1333,
174755
- /* 440 */ 82, 82, 498, 134, 134, 134, 134, 133, 133, 132,
174756
- /* 450 */ 132, 132, 131, 128, 451, 1435, 257, 288, 288, 511,
174757
- /* 460 */ 508, 507, 944, 1568, 413, 1019, 1204, 943, 360, 506,
174758
- /* 470 */ 573, 1598, 562, 44, 575, 551, 551, 557, 1107, 1582,
174759
- /* 480 */ 544, 576, 1107, 40, 417, 245, 531, 1505, 137, 138,
174848
+ /* 330 */ 451, 1281, 576, 6, 1204, 1205, 1204, 257, 576, 413,
174849
+ /* 340 */ 511, 508, 507, 1279, 94, 1019, 464, 1204, 551, 551,
174850
+ /* 350 */ 506, 1224, 1571, 44, 38, 51, 51, 411, 576, 413,
174851
+ /* 360 */ 45, 51, 51, 137, 138, 91, 530, 1228, 1228, 1063,
174852
+ /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 398,
174853
+ /* 380 */ 1148, 82, 82, 137, 138, 91, 39, 1228, 1228, 1063,
174854
+ /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 344,
174855
+ /* 400 */ 44, 288, 288, 375, 1204, 1205, 1204, 209, 1204, 1224,
174856
+ /* 410 */ 320, 567, 471, 576, 573, 576, 562, 576, 316, 264,
174857
+ /* 420 */ 231, 46, 160, 134, 134, 134, 134, 133, 133, 132,
174858
+ /* 430 */ 132, 132, 131, 128, 451, 303, 82, 82, 82, 82,
174859
+ /* 440 */ 82, 82, 442, 134, 134, 134, 134, 133, 133, 132,
174860
+ /* 450 */ 132, 132, 131, 128, 451, 1582, 544, 320, 567, 1250,
174861
+ /* 460 */ 874, 1582, 380, 382, 413, 1204, 1205, 1204, 360, 182,
174862
+ /* 470 */ 288, 288, 1576, 557, 1339, 557, 7, 557, 1277, 472,
174863
+ /* 480 */ 346, 526, 531, 573, 556, 562, 439, 1511, 137, 138,
174760174864
/* 490 */ 91, 219, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174761
- /* 500 */ 136, 136, 136, 136, 81, 81, 1281, 1204, 413, 553,
174762
- /* 510 */ 1511, 48, 512, 448, 447, 493, 578, 455, 578, 344,
174763
- /* 520 */ 45, 1204, 1233, 1204, 1205, 1204, 428, 1235, 158, 882,
174764
- /* 530 */ 320, 567, 137, 138, 91, 1234, 1228, 1228, 1063, 1066,
174865
+ /* 500 */ 136, 136, 136, 136, 465, 1511, 1513, 532, 413, 288,
174866
+ /* 510 */ 288, 423, 512, 288, 288, 411, 288, 288, 874, 130,
174867
+ /* 520 */ 127, 234, 573, 1107, 562, 1204, 573, 1107, 562, 573,
174868
+ /* 530 */ 560, 562, 137, 138, 91, 1293, 1228, 1228, 1063, 1066,
174765174869
/* 540 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 134, 134,
174766174870
/* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
174767
- /* 560 */ 1236, 576, 1236, 329, 1204, 1205, 1204, 387, 492, 403,
174768
- /* 570 */ 1040, 382, 489, 123, 568, 1569, 4, 377, 1204, 1205,
174769
- /* 580 */ 1204, 570, 570, 570, 82, 82, 882, 1029, 1331, 1331,
174770
- /* 590 */ 571, 1028, 134, 134, 134, 134, 133, 133, 132, 132,
174771
- /* 600 */ 132, 131, 128, 451, 288, 288, 1281, 1204, 576, 423,
174772
- /* 610 */ 576, 1568, 413, 423, 452, 378, 886, 573, 1279, 562,
174773
- /* 620 */ 46, 557, 532, 1028, 1028, 1030, 565, 130, 127, 234,
174774
- /* 630 */ 556, 82, 82, 82, 82, 479, 137, 138, 91, 462,
174871
+ /* 560 */ 493, 503, 1292, 1204, 257, 288, 288, 511, 508, 507,
174872
+ /* 570 */ 1204, 1628, 1169, 123, 568, 275, 4, 506, 573, 1511,
174873
+ /* 580 */ 562, 331, 1204, 1205, 1204, 1169, 548, 548, 1169, 261,
174874
+ /* 590 */ 571, 7, 134, 134, 134, 134, 133, 133, 132, 132,
174875
+ /* 600 */ 132, 131, 128, 451, 108, 533, 130, 127, 234, 1204,
174876
+ /* 610 */ 448, 447, 413, 1451, 452, 983, 886, 96, 1598, 1233,
174877
+ /* 620 */ 1204, 1205, 1204, 984, 1235, 1450, 565, 1204, 1205, 1204,
174878
+ /* 630 */ 229, 522, 1234, 534, 1333, 1333, 137, 138, 91, 1449,
174775174879
/* 640 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174776
- /* 650 */ 136, 136, 1188, 487, 1506, 1040, 413, 6, 1204, 50,
174777
- /* 660 */ 879, 121, 121, 948, 1204, 1205, 1204, 358, 557, 122,
174778
- /* 670 */ 316, 452, 577, 452, 535, 1204, 1028, 439, 303, 212,
174779
- /* 680 */ 137, 138, 91, 213, 1228, 1228, 1063, 1066, 1053, 1053,
174880
+ /* 650 */ 136, 136, 373, 1595, 971, 1040, 413, 1236, 418, 1236,
174881
+ /* 660 */ 879, 121, 121, 948, 373, 1595, 1204, 1205, 1204, 122,
174882
+ /* 670 */ 1204, 452, 577, 452, 363, 417, 1028, 882, 373, 1595,
174883
+ /* 680 */ 137, 138, 91, 462, 1228, 1228, 1063, 1066, 1053, 1053,
174780174884
/* 690 */ 135, 135, 136, 136, 136, 136, 134, 134, 134, 134,
174781174885
/* 700 */ 133, 133, 132, 132, 132, 131, 128, 451, 1028, 1028,
174782
- /* 710 */ 1030, 1031, 35, 288, 288, 1204, 1205, 1204, 1040, 1339,
174783
- /* 720 */ 533, 123, 568, 1569, 4, 377, 573, 1019, 562, 353,
174784
- /* 730 */ 1277, 356, 1204, 1205, 1204, 1029, 488, 1188, 571, 1028,
174886
+ /* 710 */ 1030, 1031, 35, 570, 570, 570, 197, 423, 1040, 198,
174887
+ /* 720 */ 1204, 123, 568, 1204, 4, 320, 567, 1204, 1205, 1204,
174888
+ /* 730 */ 40, 388, 576, 384, 882, 1029, 423, 1188, 571, 1028,
174785174889
/* 740 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174786
- /* 750 */ 128, 451, 576, 343, 288, 288, 449, 449, 449, 971,
174787
- /* 760 */ 413, 1627, 452, 911, 1187, 288, 288, 573, 464, 562,
174788
- /* 770 */ 238, 1028, 1028, 1030, 565, 82, 82, 498, 573, 411,
174789
- /* 780 */ 562, 344, 467, 332, 137, 138, 91, 197, 1228, 1228,
174890
+ /* 750 */ 128, 451, 529, 1568, 1204, 19, 19, 1204, 575, 492,
174891
+ /* 760 */ 413, 157, 452, 489, 1187, 1331, 1331, 5, 1204, 949,
174892
+ /* 770 */ 431, 1028, 1028, 1030, 565, 22, 22, 1204, 1205, 1204,
174893
+ /* 780 */ 1204, 1205, 1204, 477, 137, 138, 91, 212, 1228, 1228,
174790174894
/* 790 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174791
- /* 800 */ 1188, 528, 1169, 1040, 413, 1110, 1110, 495, 1041, 121,
174792
- /* 810 */ 121, 1204, 317, 540, 862, 1169, 1244, 122, 1169, 452,
174793
- /* 820 */ 577, 452, 1340, 198, 1028, 1204, 481, 526, 137, 138,
174794
- /* 830 */ 91, 560, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174895
+ /* 800 */ 1188, 48, 111, 1040, 413, 1204, 213, 970, 1041, 121,
174896
+ /* 810 */ 121, 1204, 1205, 1204, 1204, 1205, 1204, 122, 221, 452,
174897
+ /* 820 */ 577, 452, 44, 487, 1028, 1204, 1205, 1204, 137, 138,
174898
+ /* 830 */ 91, 378, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174795174899
/* 840 */ 136, 136, 136, 136, 134, 134, 134, 134, 133, 133,
174796174900
/* 850 */ 132, 132, 132, 131, 128, 451, 1028, 1028, 1030, 1031,
174797
- /* 860 */ 35, 1204, 288, 288, 1204, 477, 288, 288, 1204, 1205,
174798
- /* 870 */ 1204, 539, 481, 437, 470, 573, 1451, 562, 364, 573,
174799
- /* 880 */ 1153, 562, 1204, 1205, 1204, 1188, 5, 576, 134, 134,
174901
+ /* 860 */ 35, 461, 1204, 1205, 1204, 1569, 1040, 377, 214, 1149,
174902
+ /* 870 */ 1657, 535, 1657, 437, 902, 320, 567, 1568, 364, 320,
174903
+ /* 880 */ 567, 412, 329, 1029, 519, 1188, 3, 1028, 134, 134,
174800174904
/* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
174801
- /* 900 */ 221, 214, 302, 96, 1149, 1657, 232, 1657, 413, 392,
174802
- /* 910 */ 19, 19, 1024, 949, 406, 373, 1595, 1085, 1204, 1205,
174803
- /* 920 */ 1204, 1204, 1205, 1204, 1204, 426, 1149, 1658, 413, 1658,
174804
- /* 930 */ 1659, 399, 137, 138, 91, 3, 1228, 1228, 1063, 1066,
174805
- /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 304, 1311,
174806
- /* 950 */ 514, 1204, 137, 138, 91, 1498, 1228, 1228, 1063, 1066,
174807
- /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 131,
174808
- /* 970 */ 128, 451, 375, 1204, 274, 291, 372, 517, 367, 516,
174809
- /* 980 */ 262, 1204, 1205, 1204, 1147, 227, 363, 448, 447, 1435,
174810
- /* 990 */ 1568, 1310, 134, 134, 134, 134, 133, 133, 132, 132,
174811
- /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 487, 1204, 1205,
174812
- /* 1010 */ 1204, 442, 134, 134, 134, 134, 133, 133, 132, 132,
174813
- /* 1020 */ 132, 131, 128, 451, 386, 576, 485, 576, 19, 19,
174814
- /* 1030 */ 1204, 1205, 1204, 1345, 1236, 970, 1236, 574, 47, 936,
174815
- /* 1040 */ 936, 473, 413, 431, 1552, 573, 1125, 562, 19, 19,
174816
- /* 1050 */ 19, 19, 49, 336, 850, 851, 852, 111, 1368, 315,
174817
- /* 1060 */ 429, 576, 413, 433, 341, 306, 137, 138, 91, 115,
174905
+ /* 900 */ 1659, 399, 1169, 307, 893, 307, 515, 576, 413, 214,
174906
+ /* 910 */ 498, 944, 1024, 540, 903, 1169, 943, 392, 1169, 1028,
174907
+ /* 920 */ 1028, 1030, 406, 298, 1204, 50, 1149, 1658, 413, 1658,
174908
+ /* 930 */ 145, 145, 137, 138, 91, 293, 1228, 1228, 1063, 1066,
174909
+ /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 1188, 1147,
174910
+ /* 950 */ 514, 1568, 137, 138, 91, 1505, 1228, 1228, 1063, 1066,
174911
+ /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 323,
174912
+ /* 970 */ 435, 539, 111, 1506, 274, 291, 372, 517, 367, 516,
174913
+ /* 980 */ 262, 1204, 1205, 1204, 1574, 481, 363, 576, 7, 1569,
174914
+ /* 990 */ 1568, 377, 134, 134, 134, 134, 133, 133, 132, 132,
174915
+ /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 576, 232, 576,
174916
+ /* 1010 */ 19, 19, 134, 134, 134, 134, 133, 133, 132, 132,
174917
+ /* 1020 */ 132, 131, 128, 451, 1169, 433, 576, 1207, 19, 19,
174918
+ /* 1030 */ 19, 19, 19, 19, 1627, 576, 911, 1169, 47, 120,
174919
+ /* 1040 */ 1169, 117, 413, 306, 498, 438, 1125, 206, 336, 19,
174920
+ /* 1050 */ 19, 1435, 49, 449, 449, 449, 1368, 315, 81, 81,
174921
+ /* 1060 */ 576, 304, 413, 1570, 207, 377, 137, 138, 91, 115,
174818174922
/* 1070 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174819
- /* 1080 */ 136, 136, 576, 1309, 82, 82, 137, 138, 91, 529,
174923
+ /* 1080 */ 136, 136, 576, 82, 82, 1207, 137, 138, 91, 1340,
174820174924
/* 1090 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174821
- /* 1100 */ 136, 136, 1569, 222, 377, 19, 19, 305, 1126, 1169,
174822
- /* 1110 */ 398, 1148, 22, 22, 498, 333, 1569, 335, 377, 576,
174823
- /* 1120 */ 438, 445, 1169, 1127, 486, 1169, 134, 134, 134, 134,
174925
+ /* 1100 */ 136, 136, 1569, 386, 377, 82, 82, 463, 1126, 1552,
174926
+ /* 1110 */ 333, 463, 335, 131, 128, 451, 1569, 161, 377, 16,
174927
+ /* 1120 */ 317, 387, 428, 1127, 448, 447, 134, 134, 134, 134,
174824174928
/* 1130 */ 133, 133, 132, 132, 132, 131, 128, 451, 1128, 576,
174825
- /* 1140 */ 902, 576, 145, 145, 6, 576, 134, 134, 134, 134,
174826
- /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 214, 1336,
174827
- /* 1160 */ 922, 576, 19, 19, 19, 19, 1282, 419, 19, 19,
174828
- /* 1170 */ 923, 412, 515, 141, 576, 1169, 413, 206, 465, 207,
174829
- /* 1180 */ 903, 215, 1575, 552, 147, 147, 7, 227, 1169, 411,
174830
- /* 1190 */ 1250, 1169, 120, 307, 117, 307, 413, 66, 66, 334,
174929
+ /* 1140 */ 1105, 10, 445, 267, 576, 1554, 134, 134, 134, 134,
174930
+ /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 532, 576,
174931
+ /* 1160 */ 922, 576, 19, 19, 576, 1573, 576, 147, 147, 7,
174932
+ /* 1170 */ 923, 1236, 498, 1236, 576, 487, 413, 552, 285, 1224,
174933
+ /* 1180 */ 969, 215, 82, 82, 66, 66, 1435, 67, 67, 21,
174934
+ /* 1190 */ 21, 1110, 1110, 495, 334, 297, 413, 53, 53, 297,
174831174935
/* 1200 */ 137, 138, 91, 119, 1228, 1228, 1063, 1066, 1053, 1053,
174832
- /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 285, 209, 969,
174833
- /* 1220 */ 137, 138, 91, 471, 1228, 1228, 1063, 1066, 1053, 1053,
174834
- /* 1230 */ 135, 135, 136, 136, 136, 136, 435, 10, 1450, 267,
174835
- /* 1240 */ 137, 126, 91, 1435, 1228, 1228, 1063, 1066, 1053, 1053,
174836
- /* 1250 */ 135, 135, 136, 136, 136, 136, 1435, 1435, 410, 409,
174936
+ /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 1336, 1311, 446,
174937
+ /* 1220 */ 137, 138, 91, 227, 1228, 1228, 1063, 1066, 1053, 1053,
174938
+ /* 1230 */ 135, 135, 136, 136, 136, 136, 574, 1224, 936, 936,
174939
+ /* 1240 */ 137, 126, 91, 141, 1228, 1228, 1063, 1066, 1053, 1053,
174940
+ /* 1250 */ 135, 135, 136, 136, 136, 136, 533, 429, 472, 346,
174837174941
/* 1260 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174838
- /* 1270 */ 128, 451, 576, 969, 576, 1224, 498, 373, 1595, 1554,
174942
+ /* 1270 */ 128, 451, 576, 457, 233, 343, 1435, 403, 498, 1550,
174839174943
/* 1280 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174840
- /* 1290 */ 128, 451, 532, 457, 576, 82, 82, 82, 82, 111,
174944
+ /* 1290 */ 128, 451, 576, 324, 576, 82, 82, 487, 576, 969,
174841174945
/* 1300 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174842
- /* 1310 */ 128, 451, 109, 233, 430, 1576, 546, 67, 67, 7,
174843
- /* 1320 */ 413, 351, 550, 1550, 260, 259, 258, 494, 443, 569,
174844
- /* 1330 */ 419, 983, 446, 1224, 450, 545, 1207, 576, 969, 984,
174845
- /* 1340 */ 413, 475, 1449, 1574, 1180, 138, 91, 7, 1228, 1228,
174946
+ /* 1310 */ 128, 451, 288, 288, 546, 68, 68, 54, 54, 553,
174947
+ /* 1320 */ 413, 69, 69, 351, 6, 573, 944, 562, 410, 409,
174948
+ /* 1330 */ 1435, 943, 450, 545, 260, 259, 258, 576, 158, 576,
174949
+ /* 1340 */ 413, 222, 1180, 479, 969, 138, 91, 430, 1228, 1228,
174846174950
/* 1350 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174847
- /* 1360 */ 21, 21, 267, 576, 300, 1126, 91, 233, 1228, 1228,
174951
+ /* 1360 */ 70, 70, 71, 71, 576, 1126, 91, 576, 1228, 1228,
174848174952
/* 1370 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174849
- /* 1380 */ 1127, 373, 1595, 161, 1573, 16, 53, 53, 7, 108,
174850
- /* 1390 */ 533, 38, 969, 125, 1207, 1128, 1180, 576, 1224, 123,
174851
- /* 1400 */ 568, 893, 4, 324, 134, 134, 134, 134, 133, 133,
174852
- /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 576,
174853
- /* 1420 */ 68, 68, 576, 39, 134, 134, 134, 134, 133, 133,
174854
- /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 160, 1571, 1223,
174855
- /* 1440 */ 452, 576, 54, 54, 576, 69, 69, 576, 1366, 576,
174856
- /* 1450 */ 420, 184, 565, 463, 297, 576, 1224, 463, 297, 70,
174857
- /* 1460 */ 70, 576, 44, 474, 71, 71, 576, 72, 72, 576,
174858
- /* 1470 */ 73, 73, 55, 55, 411, 874, 242, 576, 56, 56,
174859
- /* 1480 */ 576, 1040, 576, 478, 57, 57, 576, 121, 121, 59,
174860
- /* 1490 */ 59, 23, 60, 60, 411, 122, 319, 452, 577, 452,
174861
- /* 1500 */ 74, 74, 1028, 75, 75, 76, 76, 411, 290, 20,
174862
- /* 1510 */ 20, 108, 287, 231, 553, 123, 568, 325, 4, 320,
174863
- /* 1520 */ 567, 97, 218, 944, 1144, 328, 400, 576, 943, 576,
174864
- /* 1530 */ 1380, 424, 571, 874, 1028, 1028, 1030, 1031, 35, 293,
174865
- /* 1540 */ 534, 576, 1104, 576, 1104, 9, 576, 342, 576, 111,
174866
- /* 1550 */ 77, 77, 143, 143, 576, 205, 452, 222, 1379, 889,
174867
- /* 1560 */ 576, 901, 900, 1188, 144, 144, 78, 78, 565, 62,
174868
- /* 1570 */ 62, 79, 79, 323, 1021, 576, 266, 63, 63, 908,
174869
- /* 1580 */ 909, 1589, 542, 80, 80, 576, 371, 541, 123, 568,
174870
- /* 1590 */ 480, 4, 266, 482, 244, 266, 370, 1040, 64, 64,
174871
- /* 1600 */ 576, 466, 576, 121, 121, 571, 1557, 576, 170, 170,
174872
- /* 1610 */ 576, 122, 576, 452, 577, 452, 576, 889, 1028, 576,
174873
- /* 1620 */ 165, 576, 111, 171, 171, 87, 87, 337, 1616, 452,
174874
- /* 1630 */ 65, 65, 1530, 83, 83, 146, 146, 986, 987, 84,
174875
- /* 1640 */ 84, 565, 168, 168, 148, 148, 1092, 347, 1032, 111,
174876
- /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 1103, 576, 1103, 576,
174877
- /* 1660 */ 543, 123, 568, 504, 4, 263, 576, 361, 1529, 111,
174878
- /* 1670 */ 1040, 1088, 576, 263, 576, 490, 121, 121, 571, 1188,
174879
- /* 1680 */ 142, 142, 169, 169, 122, 576, 452, 577, 452, 162,
174880
- /* 1690 */ 162, 1028, 576, 563, 576, 152, 152, 151, 151, 348,
174881
- /* 1700 */ 1376, 974, 452, 266, 1092, 942, 1032, 125, 149, 149,
174882
- /* 1710 */ 939, 576, 125, 576, 565, 150, 150, 86, 86, 872,
174883
- /* 1720 */ 352, 159, 576, 1028, 1028, 1030, 1031, 35, 542, 941,
174884
- /* 1730 */ 576, 125, 355, 541, 88, 88, 85, 85, 357, 359,
174885
- /* 1740 */ 1324, 1308, 366, 1040, 376, 52, 52, 499, 1389, 121,
174886
- /* 1750 */ 121, 1434, 1188, 58, 58, 1362, 1374, 122, 1439, 452,
174887
- /* 1760 */ 577, 452, 1289, 167, 1028, 1280, 280, 1268, 1267, 1269,
174888
- /* 1770 */ 1609, 1359, 312, 313, 12, 314, 397, 1421, 224, 1416,
174889
- /* 1780 */ 295, 237, 1409, 339, 340, 1426, 301, 345, 484, 228,
174890
- /* 1790 */ 1371, 1307, 1372, 1370, 1425, 404, 1028, 1028, 1030, 1031,
174891
- /* 1800 */ 35, 1601, 1192, 454, 509, 369, 292, 1502, 210, 1501,
174892
- /* 1810 */ 1369, 396, 396, 395, 277, 393, 211, 566, 859, 1612,
174893
- /* 1820 */ 1244, 123, 568, 391, 4, 1188, 223, 270, 1549, 1547,
174894
- /* 1830 */ 1241, 239, 186, 327, 422, 96, 195, 220, 571, 235,
174895
- /* 1840 */ 180, 326, 188, 468, 190, 1507, 191, 192, 92, 193,
174896
- /* 1850 */ 469, 95, 1422, 13, 502, 247, 1430, 109, 199, 402,
174897
- /* 1860 */ 476, 405, 452, 1496, 1428, 1427, 14, 491, 251, 102,
174898
- /* 1870 */ 497, 1518, 241, 281, 565, 253, 203, 354, 500, 254,
174899
- /* 1880 */ 175, 1270, 407, 43, 350, 518, 1327, 436, 255, 1326,
174900
- /* 1890 */ 1325, 1318, 104, 893, 1626, 229, 408, 440, 1625, 441,
174901
- /* 1900 */ 240, 310, 1296, 1040, 311, 1317, 527, 1594, 1297, 121,
174902
- /* 1910 */ 121, 368, 1295, 1624, 268, 269, 1580, 122, 1579, 452,
174903
- /* 1920 */ 577, 452, 374, 444, 1028, 1394, 1393, 140, 553, 90,
174904
- /* 1930 */ 568, 11, 4, 1483, 383, 414, 385, 110, 116, 216,
174905
- /* 1940 */ 320, 567, 1350, 555, 42, 318, 571, 537, 1349, 389,
174906
- /* 1950 */ 390, 579, 1198, 276, 279, 278, 1028, 1028, 1030, 1031,
174907
- /* 1960 */ 35, 580, 415, 1265, 458, 1260, 416, 185, 1534, 172,
174908
- /* 1970 */ 452, 1535, 173, 156, 308, 846, 1533, 1532, 453, 217,
174909
- /* 1980 */ 225, 89, 565, 174, 322, 1188, 226, 236, 1102, 154,
174910
- /* 1990 */ 1100, 330, 176, 187, 1223, 189, 925, 338, 243, 1116,
174911
- /* 2000 */ 246, 194, 177, 178, 425, 427, 98, 99, 196, 100,
174912
- /* 2010 */ 101, 1040, 179, 1119, 248, 1115, 249, 121, 121, 24,
174913
- /* 2020 */ 163, 250, 349, 1108, 266, 122, 1238, 452, 577, 452,
174914
- /* 2030 */ 1192, 454, 1028, 200, 292, 496, 252, 201, 861, 396,
174953
+ /* 1380 */ 1127, 166, 850, 851, 852, 1282, 419, 72, 72, 108,
174954
+ /* 1390 */ 73, 73, 1310, 358, 1180, 1128, 576, 305, 576, 123,
174955
+ /* 1400 */ 568, 494, 4, 488, 134, 134, 134, 134, 133, 133,
174956
+ /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 55,
174957
+ /* 1420 */ 55, 56, 56, 576, 134, 134, 134, 134, 133, 133,
174958
+ /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 1104, 233, 1104,
174959
+ /* 1440 */ 452, 1602, 582, 2, 1259, 576, 57, 57, 576, 321,
174960
+ /* 1450 */ 576, 155, 565, 1435, 485, 353, 576, 356, 1341, 59,
174961
+ /* 1460 */ 59, 576, 44, 969, 569, 419, 576, 238, 60, 60,
174962
+ /* 1470 */ 261, 74, 74, 75, 75, 287, 231, 576, 1366, 76,
174963
+ /* 1480 */ 76, 1040, 420, 184, 20, 20, 576, 121, 121, 77,
174964
+ /* 1490 */ 77, 97, 218, 288, 288, 122, 125, 452, 577, 452,
174965
+ /* 1500 */ 143, 143, 1028, 576, 520, 576, 573, 576, 562, 144,
174966
+ /* 1510 */ 144, 474, 227, 1244, 478, 123, 568, 576, 4, 320,
174967
+ /* 1520 */ 567, 245, 411, 576, 443, 411, 78, 78, 62, 62,
174968
+ /* 1530 */ 79, 79, 571, 319, 1028, 1028, 1030, 1031, 35, 418,
174969
+ /* 1540 */ 63, 63, 576, 290, 411, 9, 80, 80, 1144, 576,
174970
+ /* 1550 */ 400, 576, 486, 455, 576, 1223, 452, 576, 325, 342,
174971
+ /* 1560 */ 576, 111, 576, 1188, 242, 64, 64, 473, 565, 576,
174972
+ /* 1570 */ 23, 576, 170, 170, 171, 171, 576, 87, 87, 328,
174973
+ /* 1580 */ 65, 65, 542, 83, 83, 146, 146, 541, 123, 568,
174974
+ /* 1590 */ 341, 4, 84, 84, 168, 168, 576, 1040, 576, 148,
174975
+ /* 1600 */ 148, 576, 1380, 121, 121, 571, 1021, 576, 266, 576,
174976
+ /* 1610 */ 424, 122, 576, 452, 577, 452, 576, 553, 1028, 142,
174977
+ /* 1620 */ 142, 169, 169, 576, 162, 162, 528, 889, 371, 452,
174978
+ /* 1630 */ 152, 152, 151, 151, 1379, 149, 149, 109, 370, 150,
174979
+ /* 1640 */ 150, 565, 576, 480, 576, 266, 86, 86, 576, 1092,
174980
+ /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 482, 576, 266, 466,
174981
+ /* 1660 */ 543, 123, 568, 1616, 4, 88, 88, 85, 85, 475,
174982
+ /* 1670 */ 1040, 52, 52, 222, 901, 900, 121, 121, 571, 1188,
174983
+ /* 1680 */ 58, 58, 244, 1032, 122, 889, 452, 577, 452, 908,
174984
+ /* 1690 */ 909, 1028, 300, 347, 504, 111, 263, 361, 165, 111,
174985
+ /* 1700 */ 111, 1088, 452, 263, 974, 1153, 266, 1092, 986, 987,
174986
+ /* 1710 */ 942, 939, 125, 125, 565, 1103, 872, 1103, 159, 941,
174987
+ /* 1720 */ 1309, 125, 1557, 1028, 1028, 1030, 1031, 35, 542, 337,
174988
+ /* 1730 */ 1530, 205, 1529, 541, 499, 1589, 490, 348, 1376, 352,
174989
+ /* 1740 */ 355, 1032, 357, 1040, 359, 1324, 1308, 366, 563, 121,
174990
+ /* 1750 */ 121, 376, 1188, 1389, 1434, 1362, 280, 122, 1374, 452,
174991
+ /* 1760 */ 577, 452, 167, 1439, 1028, 1289, 1280, 1268, 1267, 1269,
174992
+ /* 1770 */ 1609, 1359, 312, 313, 314, 397, 12, 237, 224, 1421,
174993
+ /* 1780 */ 295, 1416, 1409, 1426, 339, 484, 340, 509, 1371, 1612,
174994
+ /* 1790 */ 1372, 1425, 1244, 404, 301, 228, 1028, 1028, 1030, 1031,
174995
+ /* 1800 */ 35, 1601, 1192, 454, 345, 1307, 292, 369, 1502, 1501,
174996
+ /* 1810 */ 270, 396, 396, 395, 277, 393, 1370, 1369, 859, 1549,
174997
+ /* 1820 */ 186, 123, 568, 235, 4, 1188, 391, 210, 211, 223,
174998
+ /* 1830 */ 1547, 239, 1241, 327, 422, 96, 220, 195, 571, 180,
174999
+ /* 1840 */ 188, 326, 468, 469, 190, 191, 502, 192, 193, 566,
175000
+ /* 1850 */ 247, 109, 1430, 491, 199, 251, 102, 281, 402, 476,
175001
+ /* 1860 */ 405, 1496, 452, 497, 253, 1422, 13, 1428, 14, 1427,
175002
+ /* 1870 */ 203, 1507, 241, 500, 565, 354, 407, 92, 95, 1270,
175003
+ /* 1880 */ 175, 254, 518, 43, 1327, 255, 1326, 1325, 436, 1518,
175004
+ /* 1890 */ 350, 1318, 104, 229, 893, 1626, 440, 441, 1625, 408,
175005
+ /* 1900 */ 240, 1296, 268, 1040, 310, 269, 1297, 527, 444, 121,
175006
+ /* 1910 */ 121, 368, 1295, 1594, 1624, 311, 1394, 122, 1317, 452,
175007
+ /* 1920 */ 577, 452, 374, 1580, 1028, 1393, 140, 553, 11, 90,
175008
+ /* 1930 */ 568, 385, 4, 116, 318, 414, 1579, 110, 1483, 537,
175009
+ /* 1940 */ 320, 567, 1350, 555, 42, 579, 571, 1349, 1198, 383,
175010
+ /* 1950 */ 276, 390, 216, 389, 278, 279, 1028, 1028, 1030, 1031,
175011
+ /* 1960 */ 35, 172, 580, 1265, 458, 1260, 415, 416, 185, 156,
175012
+ /* 1970 */ 452, 1534, 1535, 173, 1533, 1532, 89, 308, 225, 226,
175013
+ /* 1980 */ 846, 174, 565, 453, 217, 1188, 322, 236, 1102, 154,
175014
+ /* 1990 */ 1100, 330, 187, 176, 1223, 243, 189, 925, 338, 246,
175015
+ /* 2000 */ 1116, 194, 177, 425, 178, 427, 98, 196, 99, 100,
175016
+ /* 2010 */ 101, 1040, 179, 1119, 1115, 248, 249, 121, 121, 163,
175017
+ /* 2020 */ 24, 250, 349, 1238, 496, 122, 1108, 452, 577, 452,
175018
+ /* 2030 */ 1192, 454, 1028, 266, 292, 200, 252, 201, 861, 396,
174915175019
/* 2040 */ 396, 395, 277, 393, 15, 501, 859, 370, 292, 256,
174916175020
/* 2050 */ 202, 554, 505, 396, 396, 395, 277, 393, 103, 239,
174917175021
/* 2060 */ 859, 327, 25, 26, 1028, 1028, 1030, 1031, 35, 326,
174918175022
/* 2070 */ 362, 510, 891, 239, 365, 327, 513, 904, 105, 309,
174919175023
/* 2080 */ 164, 181, 27, 326, 106, 521, 107, 1185, 1069, 1155,
174920
- /* 2090 */ 17, 1154, 284, 1188, 286, 978, 265, 204, 125, 1171,
174921
- /* 2100 */ 241, 230, 972, 1175, 28, 1160, 29, 1179, 175, 1173,
174922
- /* 2110 */ 30, 43, 31, 1178, 241, 32, 41, 549, 8, 33,
174923
- /* 2120 */ 208, 111, 175, 1083, 1070, 43, 113, 1068, 240, 114,
174924
- /* 2130 */ 1072, 34, 1073, 561, 1124, 118, 271, 36, 18, 1194,
174925
- /* 2140 */ 1033, 873, 240, 935, 124, 37, 272, 273, 1617, 572,
174926
- /* 2150 */ 183, 153, 394, 1193, 1256, 1256, 1256, 1256, 1256, 1256,
175024
+ /* 2090 */ 17, 1154, 230, 1188, 284, 286, 265, 204, 125, 1171,
175025
+ /* 2100 */ 241, 28, 978, 972, 29, 41, 1175, 1179, 175, 1173,
175026
+ /* 2110 */ 30, 43, 31, 8, 241, 1178, 32, 1160, 208, 549,
175027
+ /* 2120 */ 33, 111, 175, 1083, 1070, 43, 1068, 1072, 240, 113,
175028
+ /* 2130 */ 114, 34, 561, 118, 1124, 271, 1073, 36, 18, 572,
175029
+ /* 2140 */ 1033, 873, 240, 124, 37, 935, 272, 273, 1617, 183,
175030
+ /* 2150 */ 153, 394, 1194, 1193, 1256, 1256, 1256, 1256, 1256, 1256,
174927175031
/* 2160 */ 1256, 1256, 1256, 414, 1256, 1256, 1256, 1256, 320, 567,
174928175032
/* 2170 */ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 414, 1256, 1256,
174929175033
/* 2180 */ 1256, 1256, 320, 567, 1256, 1256, 1256, 1256, 1256, 1256,
174930175034
/* 2190 */ 1256, 1256, 458, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
174931175035
/* 2200 */ 1256, 1256, 1256, 1256, 1256, 1256, 458,
174932175036
};
174933175037
static const YYCODETYPE yy_lookahead[] = {
174934
- /* 0 */ 276, 277, 278, 240, 241, 224, 194, 226, 194, 240,
174935
- /* 10 */ 241, 194, 216, 220, 194, 234, 253, 194, 255, 19,
174936
- /* 20 */ 224, 297, 253, 194, 255, 205, 212, 213, 205, 217,
174937
- /* 30 */ 218, 31, 205, 194, 217, 218, 194, 217, 218, 39,
174938
- /* 40 */ 217, 218, 312, 43, 44, 45, 316, 47, 48, 49,
175038
+ /* 0 */ 277, 278, 279, 241, 242, 225, 195, 227, 195, 241,
175039
+ /* 10 */ 242, 195, 217, 221, 195, 235, 254, 195, 256, 19,
175040
+ /* 20 */ 225, 298, 254, 195, 256, 206, 213, 214, 206, 218,
175041
+ /* 30 */ 219, 31, 206, 195, 218, 219, 195, 218, 219, 39,
175042
+ /* 40 */ 218, 219, 313, 43, 44, 45, 317, 47, 48, 49,
174939175043
/* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 19,
174940
- /* 60 */ 240, 241, 194, 240, 241, 194, 254, 240, 241, 276,
174941
- /* 70 */ 277, 278, 233, 253, 254, 255, 253, 254, 255, 217,
174942
- /* 80 */ 253, 239, 255, 43, 44, 45, 263, 47, 48, 49,
174943
- /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 270,
174944
- /* 100 */ 286, 22, 23, 103, 104, 105, 106, 107, 108, 109,
174945
- /* 110 */ 110, 111, 112, 113, 114, 82, 47, 48, 49, 50,
174946
- /* 120 */ 186, 187, 188, 189, 190, 191, 189, 87, 191, 89,
174947
- /* 130 */ 196, 19, 198, 196, 317, 198, 319, 25, 194, 205,
174948
- /* 140 */ 298, 270, 205, 103, 104, 105, 106, 107, 108, 109,
174949
- /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 11, 47,
175044
+ /* 60 */ 241, 242, 195, 241, 242, 195, 255, 241, 242, 277,
175045
+ /* 70 */ 278, 279, 234, 254, 255, 256, 254, 255, 256, 218,
175046
+ /* 80 */ 254, 240, 256, 43, 44, 45, 264, 47, 48, 49,
175047
+ /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 271,
175048
+ /* 100 */ 287, 22, 23, 103, 104, 105, 106, 107, 108, 109,
175049
+ /* 110 */ 110, 111, 112, 113, 114, 114, 47, 48, 49, 50,
175050
+ /* 120 */ 187, 188, 189, 190, 191, 192, 190, 87, 192, 89,
175051
+ /* 130 */ 197, 19, 199, 197, 318, 199, 320, 25, 195, 206,
175052
+ /* 140 */ 299, 271, 206, 103, 104, 105, 106, 107, 108, 109,
175053
+ /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 195, 47,
174950175054
/* 160 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
174951
- /* 170 */ 58, 60, 139, 140, 240, 241, 214, 240, 241, 311,
174952
- /* 180 */ 312, 102, 70, 239, 316, 194, 19, 253, 77, 255,
174953
- /* 190 */ 253, 122, 255, 55, 56, 57, 58, 59, 207, 88,
174954
- /* 200 */ 194, 90, 268, 194, 93, 268, 107, 108, 109, 110,
174955
- /* 210 */ 111, 112, 113, 114, 47, 103, 104, 105, 106, 107,
174956
- /* 220 */ 108, 109, 110, 111, 112, 113, 114, 114, 117, 118,
174957
- /* 230 */ 119, 276, 277, 278, 300, 19, 194, 300, 276, 277,
174958
- /* 240 */ 278, 103, 104, 105, 106, 107, 108, 109, 110, 111,
174959
- /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 194, 43,
174960
- /* 260 */ 44, 45, 47, 47, 48, 49, 50, 51, 52, 53,
174961
- /* 270 */ 54, 55, 56, 57, 58, 82, 129, 130, 60, 129,
174962
- /* 280 */ 130, 217, 218, 116, 68, 25, 103, 104, 105, 106,
174963
- /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 23, 132,
174964
- /* 300 */ 294, 103, 104, 105, 106, 107, 108, 109, 110, 111,
174965
- /* 310 */ 112, 113, 114, 217, 121, 306, 194, 308, 26, 103,
175055
+ /* 170 */ 58, 60, 21, 195, 241, 242, 215, 241, 242, 312,
175056
+ /* 180 */ 313, 102, 70, 205, 317, 207, 242, 254, 77, 256,
175057
+ /* 190 */ 254, 122, 256, 55, 56, 57, 58, 59, 254, 88,
175058
+ /* 200 */ 256, 90, 269, 240, 93, 269, 107, 108, 109, 110,
175059
+ /* 210 */ 111, 112, 113, 114, 271, 103, 104, 105, 106, 107,
175060
+ /* 220 */ 108, 109, 110, 111, 112, 113, 114, 313, 117, 118,
175061
+ /* 230 */ 119, 317, 81, 195, 301, 19, 195, 301, 277, 278,
175062
+ /* 240 */ 279, 103, 104, 105, 106, 107, 108, 109, 110, 111,
175063
+ /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 195, 43,
175064
+ /* 260 */ 44, 45, 74, 47, 48, 49, 50, 51, 52, 53,
175065
+ /* 270 */ 54, 55, 56, 57, 58, 124, 195, 60, 109, 110,
175066
+ /* 280 */ 111, 112, 113, 114, 68, 195, 103, 104, 105, 106,
175067
+ /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 208, 218,
175068
+ /* 300 */ 219, 103, 104, 105, 106, 107, 108, 109, 110, 111,
175069
+ /* 310 */ 112, 113, 114, 162, 233, 24, 128, 129, 130, 103,
174966175070
/* 320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
174967
- /* 330 */ 114, 116, 139, 140, 217, 117, 118, 119, 120, 19,
174968
- /* 340 */ 194, 123, 124, 125, 24, 109, 110, 111, 112, 113,
174969
- /* 350 */ 114, 133, 60, 311, 312, 250, 194, 252, 316, 19,
174970
- /* 360 */ 194, 166, 167, 43, 44, 45, 205, 47, 48, 49,
174971
- /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 217,
174972
- /* 380 */ 218, 317, 318, 43, 44, 45, 264, 47, 48, 49,
174973
- /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 139,
174974
- /* 400 */ 140, 240, 241, 139, 140, 188, 189, 190, 191, 117,
174975
- /* 410 */ 118, 119, 231, 196, 253, 198, 255, 194, 194, 258,
174976
- /* 420 */ 259, 146, 205, 103, 104, 105, 106, 107, 108, 109,
174977
- /* 430 */ 110, 111, 112, 113, 114, 109, 212, 213, 236, 237,
174978
- /* 440 */ 217, 218, 194, 103, 104, 105, 106, 107, 108, 109,
174979
- /* 450 */ 110, 111, 112, 113, 114, 194, 120, 240, 241, 123,
174980
- /* 460 */ 124, 125, 136, 194, 19, 74, 60, 141, 23, 133,
174981
- /* 470 */ 253, 194, 255, 82, 194, 309, 310, 254, 29, 317,
174982
- /* 480 */ 318, 194, 33, 22, 199, 268, 263, 239, 43, 44,
175071
+ /* 330 */ 114, 195, 195, 215, 117, 118, 119, 120, 195, 19,
175072
+ /* 340 */ 123, 124, 125, 207, 24, 74, 246, 60, 310, 311,
175073
+ /* 350 */ 133, 60, 311, 82, 22, 218, 219, 257, 195, 19,
175074
+ /* 360 */ 73, 218, 219, 43, 44, 45, 206, 47, 48, 49,
175075
+ /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 22,
175076
+ /* 380 */ 23, 218, 219, 43, 44, 45, 54, 47, 48, 49,
175077
+ /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 128,
175078
+ /* 400 */ 82, 241, 242, 195, 117, 118, 119, 289, 60, 118,
175079
+ /* 410 */ 139, 140, 294, 195, 254, 195, 256, 195, 255, 259,
175080
+ /* 420 */ 260, 73, 22, 103, 104, 105, 106, 107, 108, 109,
175081
+ /* 430 */ 110, 111, 112, 113, 114, 206, 218, 219, 218, 219,
175082
+ /* 440 */ 218, 219, 234, 103, 104, 105, 106, 107, 108, 109,
175083
+ /* 450 */ 110, 111, 112, 113, 114, 318, 319, 139, 140, 102,
175084
+ /* 460 */ 60, 318, 319, 221, 19, 117, 118, 119, 23, 195,
175085
+ /* 470 */ 241, 242, 313, 255, 206, 255, 317, 255, 206, 129,
175086
+ /* 480 */ 130, 206, 264, 254, 264, 256, 264, 195, 43, 44,
174983175087
/* 490 */ 45, 151, 47, 48, 49, 50, 51, 52, 53, 54,
174984
- /* 500 */ 55, 56, 57, 58, 217, 218, 194, 60, 19, 146,
174985
- /* 510 */ 286, 242, 23, 107, 108, 66, 204, 300, 206, 128,
174986
- /* 520 */ 73, 60, 116, 117, 118, 119, 265, 121, 165, 60,
174987
- /* 530 */ 139, 140, 43, 44, 45, 129, 47, 48, 49, 50,
175088
+ /* 500 */ 55, 56, 57, 58, 246, 213, 214, 19, 19, 241,
175089
+ /* 510 */ 242, 195, 23, 241, 242, 257, 241, 242, 118, 277,
175090
+ /* 520 */ 278, 279, 254, 29, 256, 60, 254, 33, 256, 254,
175091
+ /* 530 */ 206, 256, 43, 44, 45, 218, 47, 48, 49, 50,
174988175092
/* 540 */ 51, 52, 53, 54, 55, 56, 57, 58, 103, 104,
174989175093
/* 550 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
174990
- /* 560 */ 154, 194, 156, 194, 117, 118, 119, 280, 283, 205,
174991
- /* 570 */ 101, 220, 287, 19, 20, 306, 22, 308, 117, 118,
174992
- /* 580 */ 119, 211, 212, 213, 217, 218, 117, 118, 236, 237,
174993
- /* 590 */ 36, 122, 103, 104, 105, 106, 107, 108, 109, 110,
174994
- /* 600 */ 111, 112, 113, 114, 240, 241, 194, 60, 194, 194,
174995
- /* 610 */ 194, 194, 19, 194, 60, 194, 23, 253, 206, 255,
174996
- /* 620 */ 73, 254, 19, 154, 155, 156, 72, 276, 277, 278,
174997
- /* 630 */ 263, 217, 218, 217, 218, 271, 43, 44, 45, 271,
175094
+ /* 560 */ 66, 19, 218, 60, 120, 241, 242, 123, 124, 125,
175095
+ /* 570 */ 60, 232, 77, 19, 20, 26, 22, 133, 254, 287,
175096
+ /* 580 */ 256, 265, 117, 118, 119, 90, 312, 313, 93, 47,
175097
+ /* 590 */ 36, 317, 103, 104, 105, 106, 107, 108, 109, 110,
175098
+ /* 600 */ 111, 112, 113, 114, 116, 117, 277, 278, 279, 60,
175099
+ /* 610 */ 107, 108, 19, 276, 60, 31, 23, 152, 195, 116,
175100
+ /* 620 */ 117, 118, 119, 39, 121, 276, 72, 117, 118, 119,
175101
+ /* 630 */ 166, 167, 129, 145, 237, 238, 43, 44, 45, 276,
174998175102
/* 640 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
174999
- /* 650 */ 57, 58, 183, 194, 285, 101, 19, 214, 60, 242,
175000
- /* 660 */ 23, 107, 108, 109, 117, 118, 119, 16, 254, 115,
175001
- /* 670 */ 254, 117, 118, 119, 194, 60, 122, 263, 205, 264,
175002
- /* 680 */ 43, 44, 45, 264, 47, 48, 49, 50, 51, 52,
175103
+ /* 650 */ 57, 58, 315, 316, 144, 101, 19, 154, 116, 156,
175104
+ /* 660 */ 23, 107, 108, 109, 315, 316, 117, 118, 119, 115,
175105
+ /* 670 */ 60, 117, 118, 119, 132, 200, 122, 60, 315, 316,
175106
+ /* 680 */ 43, 44, 45, 272, 47, 48, 49, 50, 51, 52,
175003175107
/* 690 */ 53, 54, 55, 56, 57, 58, 103, 104, 105, 106,
175004175108
/* 700 */ 107, 108, 109, 110, 111, 112, 113, 114, 154, 155,
175005
- /* 710 */ 156, 157, 158, 240, 241, 117, 118, 119, 101, 205,
175006
- /* 720 */ 117, 19, 20, 306, 22, 308, 253, 74, 255, 78,
175007
- /* 730 */ 205, 80, 117, 118, 119, 118, 293, 183, 36, 122,
175109
+ /* 710 */ 156, 157, 158, 212, 213, 214, 22, 195, 101, 22,
175110
+ /* 720 */ 60, 19, 20, 60, 22, 139, 140, 117, 118, 119,
175111
+ /* 730 */ 22, 251, 195, 253, 117, 118, 195, 183, 36, 122,
175008175112
/* 740 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175009
- /* 750 */ 113, 114, 194, 294, 240, 241, 211, 212, 213, 144,
175010
- /* 760 */ 19, 23, 60, 25, 23, 240, 241, 253, 245, 255,
175011
- /* 770 */ 15, 154, 155, 156, 72, 217, 218, 194, 253, 256,
175012
- /* 780 */ 255, 128, 129, 130, 43, 44, 45, 22, 47, 48,
175113
+ /* 750 */ 113, 114, 195, 195, 60, 218, 219, 60, 195, 284,
175114
+ /* 760 */ 19, 25, 60, 288, 23, 237, 238, 22, 60, 109,
175115
+ /* 770 */ 233, 154, 155, 156, 72, 218, 219, 117, 118, 119,
175116
+ /* 780 */ 117, 118, 119, 116, 43, 44, 45, 265, 47, 48,
175013175117
/* 790 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175014
- /* 800 */ 183, 19, 77, 101, 19, 128, 129, 130, 23, 107,
175015
- /* 810 */ 108, 60, 254, 88, 21, 90, 61, 115, 93, 117,
175016
- /* 820 */ 118, 119, 239, 22, 122, 60, 194, 205, 43, 44,
175017
- /* 830 */ 45, 205, 47, 48, 49, 50, 51, 52, 53, 54,
175118
+ /* 800 */ 183, 243, 25, 101, 19, 60, 265, 144, 23, 107,
175119
+ /* 810 */ 108, 117, 118, 119, 117, 118, 119, 115, 151, 117,
175120
+ /* 820 */ 118, 119, 82, 195, 122, 117, 118, 119, 43, 44,
175121
+ /* 830 */ 45, 195, 47, 48, 49, 50, 51, 52, 53, 54,
175018175122
/* 840 */ 55, 56, 57, 58, 103, 104, 105, 106, 107, 108,
175019175123
/* 850 */ 109, 110, 111, 112, 113, 114, 154, 155, 156, 157,
175020
- /* 860 */ 158, 60, 240, 241, 60, 116, 240, 241, 117, 118,
175021
- /* 870 */ 119, 146, 194, 19, 81, 253, 275, 255, 24, 253,
175022
- /* 880 */ 98, 255, 117, 118, 119, 183, 22, 194, 103, 104,
175124
+ /* 860 */ 158, 121, 117, 118, 119, 307, 101, 309, 195, 22,
175125
+ /* 870 */ 23, 195, 25, 19, 35, 139, 140, 195, 24, 139,
175126
+ /* 880 */ 140, 208, 195, 118, 109, 183, 22, 122, 103, 104,
175023175127
/* 890 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
175024
- /* 900 */ 151, 194, 270, 152, 22, 23, 194, 25, 19, 202,
175025
- /* 910 */ 217, 218, 23, 109, 207, 314, 315, 124, 117, 118,
175026
- /* 920 */ 119, 117, 118, 119, 60, 232, 22, 23, 19, 25,
175027
- /* 930 */ 303, 304, 43, 44, 45, 22, 47, 48, 49, 50,
175028
- /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 270, 227,
175029
- /* 950 */ 96, 60, 43, 44, 45, 162, 47, 48, 49, 50,
175030
- /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 112,
175031
- /* 970 */ 113, 114, 194, 60, 120, 121, 122, 123, 124, 125,
175032
- /* 980 */ 126, 117, 118, 119, 102, 25, 132, 107, 108, 194,
175033
- /* 990 */ 194, 227, 103, 104, 105, 106, 107, 108, 109, 110,
175034
- /* 1000 */ 111, 112, 113, 114, 194, 194, 102, 194, 117, 118,
175035
- /* 1010 */ 119, 233, 103, 104, 105, 106, 107, 108, 109, 110,
175036
- /* 1020 */ 111, 112, 113, 114, 194, 194, 19, 194, 217, 218,
175037
- /* 1030 */ 117, 118, 119, 241, 154, 144, 156, 135, 242, 137,
175038
- /* 1040 */ 138, 130, 19, 232, 194, 253, 23, 255, 217, 218,
175039
- /* 1050 */ 217, 218, 242, 16, 7, 8, 9, 25, 261, 262,
175040
- /* 1060 */ 265, 194, 19, 232, 153, 232, 43, 44, 45, 160,
175128
+ /* 900 */ 304, 305, 77, 230, 127, 232, 67, 195, 19, 195,
175129
+ /* 910 */ 195, 136, 23, 88, 75, 90, 141, 203, 93, 154,
175130
+ /* 920 */ 155, 156, 208, 295, 60, 243, 22, 23, 19, 25,
175131
+ /* 930 */ 218, 219, 43, 44, 45, 100, 47, 48, 49, 50,
175132
+ /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 183, 102,
175133
+ /* 950 */ 96, 195, 43, 44, 45, 240, 47, 48, 49, 50,
175134
+ /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 134,
175135
+ /* 970 */ 131, 146, 25, 286, 120, 121, 122, 123, 124, 125,
175136
+ /* 980 */ 126, 117, 118, 119, 313, 195, 132, 195, 317, 307,
175137
+ /* 990 */ 195, 309, 103, 104, 105, 106, 107, 108, 109, 110,
175138
+ /* 1000 */ 111, 112, 113, 114, 195, 195, 102, 195, 195, 195,
175139
+ /* 1010 */ 218, 219, 103, 104, 105, 106, 107, 108, 109, 110,
175140
+ /* 1020 */ 111, 112, 113, 114, 77, 233, 195, 60, 218, 219,
175141
+ /* 1030 */ 218, 219, 218, 219, 23, 195, 25, 90, 243, 159,
175142
+ /* 1040 */ 93, 161, 19, 233, 195, 233, 23, 233, 16, 218,
175143
+ /* 1050 */ 219, 195, 243, 212, 213, 214, 262, 263, 218, 219,
175144
+ /* 1060 */ 195, 271, 19, 307, 233, 309, 43, 44, 45, 160,
175041175145
/* 1070 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175042
- /* 1080 */ 57, 58, 194, 227, 217, 218, 43, 44, 45, 194,
175146
+ /* 1080 */ 57, 58, 195, 218, 219, 118, 43, 44, 45, 240,
175043175147
/* 1090 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175044
- /* 1100 */ 57, 58, 306, 143, 308, 217, 218, 294, 12, 77,
175045
- /* 1110 */ 22, 23, 217, 218, 194, 78, 306, 80, 308, 194,
175046
- /* 1120 */ 232, 254, 90, 27, 117, 93, 103, 104, 105, 106,
175047
- /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 194,
175048
- /* 1140 */ 35, 194, 217, 218, 214, 194, 103, 104, 105, 106,
175049
- /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 194, 239,
175050
- /* 1160 */ 64, 194, 217, 218, 217, 218, 209, 210, 217, 218,
175051
- /* 1170 */ 74, 207, 67, 22, 194, 77, 19, 232, 245, 232,
175052
- /* 1180 */ 75, 24, 312, 232, 217, 218, 316, 25, 90, 256,
175053
- /* 1190 */ 102, 93, 159, 229, 161, 231, 19, 217, 218, 162,
175148
+ /* 1100 */ 57, 58, 307, 195, 309, 218, 219, 263, 12, 195,
175149
+ /* 1110 */ 78, 267, 80, 112, 113, 114, 307, 22, 309, 24,
175150
+ /* 1120 */ 255, 281, 266, 27, 107, 108, 103, 104, 105, 106,
175151
+ /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 195,
175152
+ /* 1140 */ 11, 22, 255, 24, 195, 195, 103, 104, 105, 106,
175153
+ /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 19, 195,
175154
+ /* 1160 */ 64, 195, 218, 219, 195, 313, 195, 218, 219, 317,
175155
+ /* 1170 */ 74, 154, 195, 156, 195, 195, 19, 233, 23, 60,
175156
+ /* 1180 */ 25, 24, 218, 219, 218, 219, 195, 218, 219, 218,
175157
+ /* 1190 */ 219, 128, 129, 130, 162, 263, 19, 218, 219, 267,
175054175158
/* 1200 */ 43, 44, 45, 160, 47, 48, 49, 50, 51, 52,
175055
- /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 23, 288, 25,
175056
- /* 1220 */ 43, 44, 45, 293, 47, 48, 49, 50, 51, 52,
175057
- /* 1230 */ 53, 54, 55, 56, 57, 58, 131, 22, 275, 24,
175058
- /* 1240 */ 43, 44, 45, 194, 47, 48, 49, 50, 51, 52,
175059
- /* 1250 */ 53, 54, 55, 56, 57, 58, 194, 194, 107, 108,
175159
+ /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 240, 228, 255,
175160
+ /* 1220 */ 43, 44, 45, 25, 47, 48, 49, 50, 51, 52,
175161
+ /* 1230 */ 53, 54, 55, 56, 57, 58, 135, 118, 137, 138,
175162
+ /* 1240 */ 43, 44, 45, 22, 47, 48, 49, 50, 51, 52,
175163
+ /* 1250 */ 53, 54, 55, 56, 57, 58, 117, 266, 129, 130,
175060175164
/* 1260 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175061
- /* 1270 */ 113, 114, 194, 25, 194, 60, 194, 314, 315, 194,
175165
+ /* 1270 */ 113, 114, 195, 195, 119, 295, 195, 206, 195, 195,
175062175166
/* 1280 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175063
- /* 1290 */ 113, 114, 19, 194, 194, 217, 218, 217, 218, 25,
175167
+ /* 1290 */ 113, 114, 195, 195, 195, 218, 219, 195, 195, 144,
175064175168
/* 1300 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175065
- /* 1310 */ 113, 114, 150, 119, 265, 312, 67, 217, 218, 316,
175066
- /* 1320 */ 19, 239, 194, 194, 128, 129, 130, 265, 265, 209,
175067
- /* 1330 */ 210, 31, 254, 118, 254, 86, 60, 194, 144, 39,
175068
- /* 1340 */ 19, 130, 275, 312, 95, 44, 45, 316, 47, 48,
175169
+ /* 1310 */ 113, 114, 241, 242, 67, 218, 219, 218, 219, 146,
175170
+ /* 1320 */ 19, 218, 219, 240, 215, 254, 136, 256, 107, 108,
175171
+ /* 1330 */ 195, 141, 255, 86, 128, 129, 130, 195, 165, 195,
175172
+ /* 1340 */ 19, 143, 95, 272, 25, 44, 45, 266, 47, 48,
175069175173
/* 1350 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175070
- /* 1360 */ 217, 218, 24, 194, 153, 12, 45, 119, 47, 48,
175174
+ /* 1360 */ 218, 219, 218, 219, 195, 12, 45, 195, 47, 48,
175071175175
/* 1370 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175072
- /* 1380 */ 27, 314, 315, 22, 312, 24, 217, 218, 316, 116,
175073
- /* 1390 */ 117, 22, 144, 25, 118, 42, 147, 194, 60, 19,
175074
- /* 1400 */ 20, 127, 22, 194, 103, 104, 105, 106, 107, 108,
175075
- /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 194,
175076
- /* 1420 */ 217, 218, 194, 54, 103, 104, 105, 106, 107, 108,
175077
- /* 1430 */ 109, 110, 111, 112, 113, 114, 194, 22, 310, 25,
175078
- /* 1440 */ 60, 194, 217, 218, 194, 217, 218, 194, 260, 194,
175079
- /* 1450 */ 301, 302, 72, 262, 262, 194, 118, 266, 266, 217,
175080
- /* 1460 */ 218, 194, 82, 245, 217, 218, 194, 217, 218, 194,
175081
- /* 1470 */ 217, 218, 217, 218, 256, 60, 24, 194, 217, 218,
175082
- /* 1480 */ 194, 101, 194, 245, 217, 218, 194, 107, 108, 217,
175083
- /* 1490 */ 218, 22, 217, 218, 256, 115, 245, 117, 118, 119,
175084
- /* 1500 */ 217, 218, 122, 217, 218, 217, 218, 256, 22, 217,
175085
- /* 1510 */ 218, 116, 258, 259, 146, 19, 20, 194, 22, 139,
175086
- /* 1520 */ 140, 150, 151, 136, 23, 194, 25, 194, 141, 194,
175087
- /* 1530 */ 194, 62, 36, 118, 154, 155, 156, 157, 158, 100,
175088
- /* 1540 */ 145, 194, 154, 194, 156, 49, 194, 23, 194, 25,
175089
- /* 1550 */ 217, 218, 217, 218, 194, 257, 60, 143, 194, 60,
175090
- /* 1560 */ 194, 121, 122, 183, 217, 218, 217, 218, 72, 217,
175091
- /* 1570 */ 218, 217, 218, 134, 23, 194, 25, 217, 218, 7,
175092
- /* 1580 */ 8, 321, 86, 217, 218, 194, 122, 91, 19, 20,
175093
- /* 1590 */ 23, 22, 25, 23, 142, 25, 132, 101, 217, 218,
175094
- /* 1600 */ 194, 194, 194, 107, 108, 36, 194, 194, 217, 218,
175095
- /* 1610 */ 194, 115, 194, 117, 118, 119, 194, 118, 122, 194,
175096
- /* 1620 */ 23, 194, 25, 217, 218, 217, 218, 194, 142, 60,
175097
- /* 1630 */ 217, 218, 194, 217, 218, 217, 218, 84, 85, 217,
175098
- /* 1640 */ 218, 72, 217, 218, 217, 218, 60, 23, 60, 25,
175099
- /* 1650 */ 154, 155, 156, 157, 158, 86, 154, 194, 156, 194,
175100
- /* 1660 */ 91, 19, 20, 23, 22, 25, 194, 23, 194, 25,
175101
- /* 1670 */ 101, 23, 194, 25, 194, 194, 107, 108, 36, 183,
175102
- /* 1680 */ 217, 218, 217, 218, 115, 194, 117, 118, 119, 217,
175103
- /* 1690 */ 218, 122, 194, 237, 194, 217, 218, 217, 218, 194,
175104
- /* 1700 */ 194, 23, 60, 25, 118, 23, 118, 25, 217, 218,
175105
- /* 1710 */ 23, 194, 25, 194, 72, 217, 218, 217, 218, 23,
175106
- /* 1720 */ 194, 25, 194, 154, 155, 156, 157, 158, 86, 23,
175107
- /* 1730 */ 194, 25, 194, 91, 217, 218, 217, 218, 194, 194,
175108
- /* 1740 */ 194, 194, 194, 101, 194, 217, 218, 290, 194, 107,
175109
- /* 1750 */ 108, 194, 183, 217, 218, 194, 194, 115, 194, 117,
175110
- /* 1760 */ 118, 119, 194, 243, 122, 194, 289, 194, 194, 194,
175111
- /* 1770 */ 194, 257, 257, 257, 244, 257, 192, 273, 215, 269,
175112
- /* 1780 */ 246, 299, 269, 295, 247, 273, 247, 246, 295, 230,
175113
- /* 1790 */ 261, 226, 261, 261, 273, 273, 154, 155, 156, 157,
175114
- /* 1800 */ 158, 0, 1, 2, 221, 220, 5, 220, 250, 220,
175115
- /* 1810 */ 261, 10, 11, 12, 13, 14, 250, 282, 17, 197,
175116
- /* 1820 */ 61, 19, 20, 246, 22, 183, 244, 142, 201, 201,
175117
- /* 1830 */ 38, 30, 299, 32, 201, 152, 22, 151, 36, 299,
175118
- /* 1840 */ 43, 40, 235, 18, 238, 285, 238, 238, 296, 238,
175119
- /* 1850 */ 201, 296, 274, 272, 18, 200, 235, 150, 235, 247,
175120
- /* 1860 */ 247, 247, 60, 247, 274, 274, 272, 201, 200, 159,
175121
- /* 1870 */ 63, 292, 71, 201, 72, 200, 22, 201, 222, 200,
175122
- /* 1880 */ 79, 201, 222, 82, 291, 116, 219, 65, 200, 219,
175123
- /* 1890 */ 219, 228, 22, 127, 225, 166, 222, 24, 225, 114,
175124
- /* 1900 */ 99, 284, 221, 101, 284, 228, 307, 315, 219, 107,
175125
- /* 1910 */ 108, 219, 219, 219, 201, 92, 320, 115, 320, 117,
175126
- /* 1920 */ 118, 119, 222, 83, 122, 267, 267, 149, 146, 19,
175127
- /* 1930 */ 20, 22, 22, 279, 250, 134, 201, 148, 159, 249,
175128
- /* 1940 */ 139, 140, 251, 141, 25, 281, 36, 147, 251, 248,
175129
- /* 1950 */ 247, 203, 13, 195, 6, 195, 154, 155, 156, 157,
175130
- /* 1960 */ 158, 193, 305, 193, 163, 193, 305, 302, 214, 208,
175131
- /* 1970 */ 60, 214, 208, 223, 223, 4, 214, 214, 3, 22,
175132
- /* 1980 */ 215, 214, 72, 208, 164, 183, 215, 15, 23, 16,
175133
- /* 1990 */ 23, 140, 131, 152, 25, 143, 20, 16, 24, 1,
175134
- /* 2000 */ 145, 143, 131, 131, 62, 37, 54, 54, 152, 54,
175135
- /* 2010 */ 54, 101, 131, 117, 34, 1, 142, 107, 108, 22,
175136
- /* 2020 */ 5, 116, 162, 69, 25, 115, 76, 117, 118, 119,
175137
- /* 2030 */ 1, 2, 122, 69, 5, 41, 142, 116, 20, 10,
175176
+ /* 1380 */ 27, 23, 7, 8, 9, 210, 211, 218, 219, 116,
175177
+ /* 1390 */ 218, 219, 228, 16, 147, 42, 195, 295, 195, 19,
175178
+ /* 1400 */ 20, 266, 22, 294, 103, 104, 105, 106, 107, 108,
175179
+ /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 218,
175180
+ /* 1420 */ 219, 218, 219, 195, 103, 104, 105, 106, 107, 108,
175181
+ /* 1430 */ 109, 110, 111, 112, 113, 114, 195, 154, 119, 156,
175182
+ /* 1440 */ 60, 189, 190, 191, 192, 195, 218, 219, 195, 197,
175183
+ /* 1450 */ 195, 199, 72, 195, 19, 78, 195, 80, 206, 218,
175184
+ /* 1460 */ 219, 195, 82, 144, 210, 211, 195, 15, 218, 219,
175185
+ /* 1470 */ 47, 218, 219, 218, 219, 259, 260, 195, 261, 218,
175186
+ /* 1480 */ 219, 101, 302, 303, 218, 219, 195, 107, 108, 218,
175187
+ /* 1490 */ 219, 150, 151, 241, 242, 115, 25, 117, 118, 119,
175188
+ /* 1500 */ 218, 219, 122, 195, 146, 195, 254, 195, 256, 218,
175189
+ /* 1510 */ 219, 246, 25, 61, 246, 19, 20, 195, 22, 139,
175190
+ /* 1520 */ 140, 269, 257, 195, 266, 257, 218, 219, 218, 219,
175191
+ /* 1530 */ 218, 219, 36, 246, 154, 155, 156, 157, 158, 116,
175192
+ /* 1540 */ 218, 219, 195, 22, 257, 49, 218, 219, 23, 195,
175193
+ /* 1550 */ 25, 195, 117, 301, 195, 25, 60, 195, 195, 23,
175194
+ /* 1560 */ 195, 25, 195, 183, 24, 218, 219, 130, 72, 195,
175195
+ /* 1570 */ 22, 195, 218, 219, 218, 219, 195, 218, 219, 195,
175196
+ /* 1580 */ 218, 219, 86, 218, 219, 218, 219, 91, 19, 20,
175197
+ /* 1590 */ 153, 22, 218, 219, 218, 219, 195, 101, 195, 218,
175198
+ /* 1600 */ 219, 195, 195, 107, 108, 36, 23, 195, 25, 195,
175199
+ /* 1610 */ 62, 115, 195, 117, 118, 119, 195, 146, 122, 218,
175200
+ /* 1620 */ 219, 218, 219, 195, 218, 219, 19, 60, 122, 60,
175201
+ /* 1630 */ 218, 219, 218, 219, 195, 218, 219, 150, 132, 218,
175202
+ /* 1640 */ 219, 72, 195, 23, 195, 25, 218, 219, 195, 60,
175203
+ /* 1650 */ 154, 155, 156, 157, 158, 86, 23, 195, 25, 195,
175204
+ /* 1660 */ 91, 19, 20, 142, 22, 218, 219, 218, 219, 130,
175205
+ /* 1670 */ 101, 218, 219, 143, 121, 122, 107, 108, 36, 183,
175206
+ /* 1680 */ 218, 219, 142, 60, 115, 118, 117, 118, 119, 7,
175207
+ /* 1690 */ 8, 122, 153, 23, 23, 25, 25, 23, 23, 25,
175208
+ /* 1700 */ 25, 23, 60, 25, 23, 98, 25, 118, 84, 85,
175209
+ /* 1710 */ 23, 23, 25, 25, 72, 154, 23, 156, 25, 23,
175210
+ /* 1720 */ 228, 25, 195, 154, 155, 156, 157, 158, 86, 195,
175211
+ /* 1730 */ 195, 258, 195, 91, 291, 322, 195, 195, 195, 195,
175212
+ /* 1740 */ 195, 118, 195, 101, 195, 195, 195, 195, 238, 107,
175213
+ /* 1750 */ 108, 195, 183, 195, 195, 195, 290, 115, 195, 117,
175214
+ /* 1760 */ 118, 119, 244, 195, 122, 195, 195, 195, 195, 195,
175215
+ /* 1770 */ 195, 258, 258, 258, 258, 193, 245, 300, 216, 274,
175216
+ /* 1780 */ 247, 270, 270, 274, 296, 296, 248, 222, 262, 198,
175217
+ /* 1790 */ 262, 274, 61, 274, 248, 231, 154, 155, 156, 157,
175218
+ /* 1800 */ 158, 0, 1, 2, 247, 227, 5, 221, 221, 221,
175219
+ /* 1810 */ 142, 10, 11, 12, 13, 14, 262, 262, 17, 202,
175220
+ /* 1820 */ 300, 19, 20, 300, 22, 183, 247, 251, 251, 245,
175221
+ /* 1830 */ 202, 30, 38, 32, 202, 152, 151, 22, 36, 43,
175222
+ /* 1840 */ 236, 40, 18, 202, 239, 239, 18, 239, 239, 283,
175223
+ /* 1850 */ 201, 150, 236, 202, 236, 201, 159, 202, 248, 248,
175224
+ /* 1860 */ 248, 248, 60, 63, 201, 275, 273, 275, 273, 275,
175225
+ /* 1870 */ 22, 286, 71, 223, 72, 202, 223, 297, 297, 202,
175226
+ /* 1880 */ 79, 201, 116, 82, 220, 201, 220, 220, 65, 293,
175227
+ /* 1890 */ 292, 229, 22, 166, 127, 226, 24, 114, 226, 223,
175228
+ /* 1900 */ 99, 222, 202, 101, 285, 92, 220, 308, 83, 107,
175229
+ /* 1910 */ 108, 220, 220, 316, 220, 285, 268, 115, 229, 117,
175230
+ /* 1920 */ 118, 119, 223, 321, 122, 268, 149, 146, 22, 19,
175231
+ /* 1930 */ 20, 202, 22, 159, 282, 134, 321, 148, 280, 147,
175232
+ /* 1940 */ 139, 140, 252, 141, 25, 204, 36, 252, 13, 251,
175233
+ /* 1950 */ 196, 248, 250, 249, 196, 6, 154, 155, 156, 157,
175234
+ /* 1960 */ 158, 209, 194, 194, 163, 194, 306, 306, 303, 224,
175235
+ /* 1970 */ 60, 215, 215, 209, 215, 215, 215, 224, 216, 216,
175236
+ /* 1980 */ 4, 209, 72, 3, 22, 183, 164, 15, 23, 16,
175237
+ /* 1990 */ 23, 140, 152, 131, 25, 24, 143, 20, 16, 145,
175238
+ /* 2000 */ 1, 143, 131, 62, 131, 37, 54, 152, 54, 54,
175239
+ /* 2010 */ 54, 101, 131, 117, 1, 34, 142, 107, 108, 5,
175240
+ /* 2020 */ 22, 116, 162, 76, 41, 115, 69, 117, 118, 119,
175241
+ /* 2030 */ 1, 2, 122, 25, 5, 69, 142, 116, 20, 10,
175138175242
/* 2040 */ 11, 12, 13, 14, 24, 19, 17, 132, 5, 126,
175139175243
/* 2050 */ 22, 141, 68, 10, 11, 12, 13, 14, 22, 30,
175140175244
/* 2060 */ 17, 32, 22, 22, 154, 155, 156, 157, 158, 40,
175141175245
/* 2070 */ 23, 68, 60, 30, 24, 32, 97, 28, 22, 68,
175142175246
/* 2080 */ 23, 37, 34, 40, 150, 22, 25, 23, 23, 23,
175143
- /* 2090 */ 22, 98, 23, 183, 23, 117, 34, 22, 25, 89,
175144
- /* 2100 */ 71, 142, 144, 76, 34, 23, 34, 76, 79, 87,
175145
- /* 2110 */ 34, 82, 34, 94, 71, 34, 22, 24, 44, 34,
175146
- /* 2120 */ 25, 25, 79, 23, 23, 82, 143, 23, 99, 143,
175147
- /* 2130 */ 23, 22, 11, 25, 23, 25, 22, 22, 22, 1,
175148
- /* 2140 */ 23, 23, 99, 136, 22, 22, 142, 142, 142, 25,
175149
- /* 2150 */ 25, 23, 15, 1, 322, 322, 322, 322, 322, 322,
175150
- /* 2160 */ 322, 322, 322, 134, 322, 322, 322, 322, 139, 140,
175151
- /* 2170 */ 322, 322, 322, 322, 322, 322, 322, 134, 322, 322,
175152
- /* 2180 */ 322, 322, 139, 140, 322, 322, 322, 322, 322, 322,
175153
- /* 2190 */ 322, 322, 163, 322, 322, 322, 322, 322, 322, 322,
175154
- /* 2200 */ 322, 322, 322, 322, 322, 322, 163, 322, 322, 322,
175155
- /* 2210 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175156
- /* 2220 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175157
- /* 2230 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175158
- /* 2240 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175159
- /* 2250 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175160
- /* 2260 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175161
- /* 2270 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175162
- /* 2280 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175163
- /* 2290 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175164
- /* 2300 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175165
- /* 2310 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175166
- /* 2320 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175167
- /* 2330 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175168
- /* 2340 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175169
- /* 2350 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175170
- /* 2360 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175171
- /* 2370 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175172
- /* 2380 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175173
- /* 2390 */ 186, 186, 186,
175247
+ /* 2090 */ 22, 98, 142, 183, 23, 23, 34, 22, 25, 89,
175248
+ /* 2100 */ 71, 34, 117, 144, 34, 22, 76, 76, 79, 87,
175249
+ /* 2110 */ 34, 82, 34, 44, 71, 94, 34, 23, 25, 24,
175250
+ /* 2120 */ 34, 25, 79, 23, 23, 82, 23, 23, 99, 143,
175251
+ /* 2130 */ 143, 22, 25, 25, 23, 22, 11, 22, 22, 25,
175252
+ /* 2140 */ 23, 23, 99, 22, 22, 136, 142, 142, 142, 25,
175253
+ /* 2150 */ 23, 15, 1, 1, 323, 323, 323, 323, 323, 323,
175254
+ /* 2160 */ 323, 323, 323, 134, 323, 323, 323, 323, 139, 140,
175255
+ /* 2170 */ 323, 323, 323, 323, 323, 323, 323, 134, 323, 323,
175256
+ /* 2180 */ 323, 323, 139, 140, 323, 323, 323, 323, 323, 323,
175257
+ /* 2190 */ 323, 323, 163, 323, 323, 323, 323, 323, 323, 323,
175258
+ /* 2200 */ 323, 323, 323, 323, 323, 323, 163, 323, 323, 323,
175259
+ /* 2210 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175260
+ /* 2220 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175261
+ /* 2230 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175262
+ /* 2240 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175263
+ /* 2250 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175264
+ /* 2260 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175265
+ /* 2270 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175266
+ /* 2280 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175267
+ /* 2290 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175268
+ /* 2300 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175269
+ /* 2310 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175270
+ /* 2320 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175271
+ /* 2330 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175272
+ /* 2340 */ 323, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175273
+ /* 2350 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175274
+ /* 2360 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175275
+ /* 2370 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175276
+ /* 2380 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175277
+ /* 2390 */ 187, 187, 187, 187,
175174175278
};
175175175279
#define YY_SHIFT_COUNT (582)
175176175280
#define YY_SHIFT_MIN (0)
175177175281
#define YY_SHIFT_MAX (2152)
175178175282
static const unsigned short int yy_shift_ofst[] = {
175179
- /* 0 */ 2029, 1801, 2043, 1380, 1380, 33, 391, 1496, 1569, 1642,
175180
- /* 10 */ 702, 702, 702, 193, 33, 33, 33, 33, 33, 0,
175283
+ /* 0 */ 2029, 1801, 2043, 1380, 1380, 318, 271, 1496, 1569, 1642,
175284
+ /* 10 */ 702, 702, 702, 740, 318, 318, 318, 318, 318, 0,
175181175285
/* 20 */ 0, 216, 1177, 702, 702, 702, 702, 702, 702, 702,
175182
- /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 406, 406,
175183
- /* 40 */ 111, 111, 218, 447, 547, 598, 598, 260, 260, 260,
175184
- /* 50 */ 260, 40, 112, 320, 340, 445, 489, 593, 637, 741,
175286
+ /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 503, 503,
175287
+ /* 40 */ 111, 111, 217, 287, 348, 610, 610, 736, 736, 736,
175288
+ /* 50 */ 736, 40, 112, 320, 340, 445, 489, 593, 637, 741,
175185175289
/* 60 */ 785, 889, 909, 1023, 1043, 1157, 1177, 1177, 1177, 1177,
175186175290
/* 70 */ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
175187175291
/* 80 */ 1177, 1177, 1177, 1177, 1197, 1177, 1301, 1321, 1321, 554,
175188175292
/* 90 */ 1802, 1910, 702, 702, 702, 702, 702, 702, 702, 702,
175189175293
/* 100 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175190175294
/* 110 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175191175295
/* 120 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175192175296
/* 130 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175193175297
/* 140 */ 702, 702, 138, 198, 198, 198, 198, 198, 198, 198,
175194
- /* 150 */ 183, 99, 236, 292, 598, 793, 167, 598, 598, 880,
175195
- /* 160 */ 880, 598, 857, 150, 195, 195, 195, 264, 113, 113,
175196
- /* 170 */ 2207, 2207, 854, 854, 854, 751, 765, 765, 765, 765,
175197
- /* 180 */ 1096, 1096, 725, 292, 882, 904, 598, 598, 598, 598,
175198
- /* 190 */ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
175199
- /* 200 */ 598, 598, 598, 598, 598, 1273, 1032, 1032, 598, 147,
175200
- /* 210 */ 1098, 1098, 603, 603, 1276, 1276, 363, 2207, 2207, 2207,
175201
- /* 220 */ 2207, 2207, 2207, 2207, 469, 617, 617, 801, 336, 461,
175202
- /* 230 */ 804, 864, 615, 891, 913, 598, 598, 598, 598, 598,
175203
- /* 240 */ 598, 598, 598, 598, 598, 653, 598, 598, 598, 598,
175204
- /* 250 */ 598, 598, 598, 598, 598, 598, 598, 598, 1105, 1105,
175205
- /* 260 */ 1105, 598, 598, 598, 1194, 598, 598, 598, 1215, 1249,
175206
- /* 270 */ 598, 1353, 598, 598, 598, 598, 598, 598, 598, 598,
175207
- /* 280 */ 677, 449, 902, 1338, 1338, 1338, 1338, 1248, 902, 902,
175208
- /* 290 */ 326, 1151, 1047, 755, 749, 1371, 960, 1371, 1007, 1162,
175209
- /* 300 */ 749, 749, 1162, 749, 960, 1007, 1274, 738, 215, 1300,
175210
- /* 310 */ 1300, 1300, 1395, 1395, 1395, 1395, 1368, 1368, 1033, 1414,
175211
- /* 320 */ 1387, 1361, 1759, 1759, 1685, 1685, 1792, 1792, 1685, 1683,
175212
- /* 330 */ 1686, 1814, 1797, 1825, 1825, 1825, 1825, 1685, 1836, 1707,
175213
- /* 340 */ 1686, 1686, 1707, 1814, 1797, 1707, 1797, 1707, 1685, 1836,
175214
- /* 350 */ 1710, 1807, 1685, 1836, 1854, 1685, 1836, 1685, 1836, 1854,
175215
- /* 360 */ 1769, 1769, 1769, 1822, 1870, 1870, 1854, 1769, 1766, 1769,
175216
- /* 370 */ 1822, 1769, 1769, 1729, 1873, 1785, 1785, 1854, 1685, 1823,
175217
- /* 380 */ 1823, 1840, 1840, 1778, 1782, 1909, 1685, 1779, 1778, 1789,
175218
- /* 390 */ 1800, 1707, 1919, 1939, 1939, 1948, 1948, 1948, 2207, 2207,
175298
+ /* 150 */ 183, 99, 169, 549, 610, 151, 542, 610, 610, 1017,
175299
+ /* 160 */ 1017, 610, 1001, 350, 464, 464, 464, 586, 1, 1,
175300
+ /* 170 */ 2207, 2207, 854, 854, 854, 465, 694, 694, 694, 694,
175301
+ /* 180 */ 1096, 1096, 825, 549, 847, 904, 610, 610, 610, 610,
175302
+ /* 190 */ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
175303
+ /* 200 */ 610, 610, 610, 610, 610, 488, 947, 947, 610, 1129,
175304
+ /* 210 */ 495, 495, 1139, 1139, 967, 967, 1173, 2207, 2207, 2207,
175305
+ /* 220 */ 2207, 2207, 2207, 2207, 617, 765, 765, 697, 444, 708,
175306
+ /* 230 */ 660, 745, 510, 663, 864, 610, 610, 610, 610, 610,
175307
+ /* 240 */ 610, 610, 610, 610, 610, 188, 610, 610, 610, 610,
175308
+ /* 250 */ 610, 610, 610, 610, 610, 610, 610, 610, 839, 839,
175309
+ /* 260 */ 839, 610, 610, 610, 1155, 610, 610, 610, 1119, 1247,
175310
+ /* 270 */ 610, 1353, 610, 610, 610, 610, 610, 610, 610, 610,
175311
+ /* 280 */ 1063, 494, 1101, 291, 291, 291, 291, 1319, 1101, 1101,
175312
+ /* 290 */ 775, 1221, 1375, 1452, 667, 1341, 1198, 1341, 1435, 1487,
175313
+ /* 300 */ 667, 667, 1487, 667, 1198, 1435, 777, 1011, 1423, 584,
175314
+ /* 310 */ 584, 584, 1273, 1273, 1273, 1273, 1471, 1471, 880, 1530,
175315
+ /* 320 */ 1190, 1095, 1731, 1731, 1668, 1668, 1794, 1794, 1668, 1683,
175316
+ /* 330 */ 1685, 1815, 1796, 1824, 1824, 1824, 1824, 1668, 1828, 1701,
175317
+ /* 340 */ 1685, 1685, 1701, 1815, 1796, 1701, 1796, 1701, 1668, 1828,
175318
+ /* 350 */ 1697, 1800, 1668, 1828, 1848, 1668, 1828, 1668, 1828, 1848,
175319
+ /* 360 */ 1766, 1766, 1766, 1823, 1870, 1870, 1848, 1766, 1767, 1766,
175320
+ /* 370 */ 1823, 1766, 1766, 1727, 1872, 1783, 1783, 1848, 1668, 1813,
175321
+ /* 380 */ 1813, 1825, 1825, 1777, 1781, 1906, 1668, 1774, 1777, 1789,
175322
+ /* 390 */ 1792, 1701, 1919, 1935, 1935, 1949, 1949, 1949, 2207, 2207,
175219175323
/* 400 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
175220
- /* 410 */ 2207, 2207, 2207, 69, 1037, 79, 1088, 651, 1196, 1415,
175221
- /* 420 */ 1501, 1439, 1369, 1452, 911, 1211, 1524, 1469, 1551, 1567,
175222
- /* 430 */ 1570, 1624, 1640, 1644, 1499, 1440, 1572, 1464, 1597, 275,
175223
- /* 440 */ 782, 1586, 1648, 1678, 1553, 1682, 1687, 1388, 1502, 1696,
175224
- /* 450 */ 1706, 1588, 1486, 1971, 1975, 1957, 1820, 1972, 1973, 1965,
175225
- /* 460 */ 1967, 1851, 1841, 1861, 1969, 1969, 1974, 1852, 1976, 1855,
175226
- /* 470 */ 1981, 1998, 1858, 1871, 1969, 1872, 1942, 1968, 1969, 1856,
175227
- /* 480 */ 1952, 1953, 1955, 1956, 1881, 1896, 1980, 1874, 2014, 2015,
175228
- /* 490 */ 1997, 1905, 1860, 1954, 1999, 1964, 1950, 1994, 1894, 1921,
175324
+ /* 410 */ 2207, 2207, 2207, 69, 1032, 79, 357, 1377, 1206, 400,
175325
+ /* 420 */ 1525, 835, 332, 1540, 1437, 1539, 1536, 1548, 1583, 1620,
175326
+ /* 430 */ 1633, 1670, 1671, 1674, 1567, 1553, 1682, 1506, 1675, 1358,
175327
+ /* 440 */ 1607, 1589, 1678, 1681, 1624, 1687, 1688, 1283, 1561, 1693,
175328
+ /* 450 */ 1696, 1623, 1521, 1976, 1980, 1962, 1822, 1972, 1973, 1965,
175329
+ /* 460 */ 1967, 1851, 1840, 1862, 1969, 1969, 1971, 1853, 1977, 1854,
175330
+ /* 470 */ 1982, 1999, 1858, 1871, 1969, 1873, 1941, 1968, 1969, 1855,
175331
+ /* 480 */ 1952, 1954, 1955, 1956, 1881, 1896, 1981, 1874, 2013, 2014,
175332
+ /* 490 */ 1998, 1905, 1860, 1957, 2008, 1966, 1947, 1983, 1894, 1921,
175229175333
/* 500 */ 2020, 2018, 2026, 1915, 1923, 2028, 1984, 2036, 2040, 2047,
175230175334
/* 510 */ 2041, 2003, 2012, 2050, 1979, 2049, 2056, 2011, 2044, 2057,
175231
- /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1959,
175232
- /* 530 */ 2069, 2071, 1978, 2062, 2075, 1958, 2073, 2070, 2072, 2076,
175233
- /* 540 */ 2078, 2010, 2027, 2022, 2074, 2031, 2019, 2081, 2082, 2094,
175234
- /* 550 */ 2093, 2095, 2096, 2085, 1983, 1986, 2100, 2073, 2101, 2104,
175235
- /* 560 */ 2107, 2109, 2108, 2110, 2111, 2114, 2121, 2115, 2116, 2117,
175236
- /* 570 */ 2118, 2122, 2123, 2124, 2007, 2004, 2005, 2006, 2125, 2128,
175237
- /* 580 */ 2137, 2138, 2152,
175335
+ /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1950,
175336
+ /* 530 */ 2071, 2072, 1985, 2062, 2075, 1959, 2073, 2067, 2070, 2076,
175337
+ /* 540 */ 2078, 2010, 2030, 2022, 2069, 2031, 2021, 2082, 2094, 2083,
175338
+ /* 550 */ 2095, 2093, 2096, 2086, 1986, 1987, 2100, 2073, 2101, 2103,
175339
+ /* 560 */ 2104, 2109, 2107, 2108, 2111, 2113, 2125, 2115, 2116, 2117,
175340
+ /* 570 */ 2118, 2121, 2122, 2114, 2009, 2004, 2005, 2006, 2124, 2127,
175341
+ /* 580 */ 2136, 2151, 2152,
175238175342
};
175239175343
#define YY_REDUCE_COUNT (412)
175240
-#define YY_REDUCE_MIN (-276)
175241
-#define YY_REDUCE_MAX (1775)
175344
+#define YY_REDUCE_MIN (-277)
175345
+#define YY_REDUCE_MAX (1772)
175242175346
static const short yy_reduce_ofst[] = {
175243
- /* 0 */ -66, 217, -63, -177, -180, 161, 364, 64, -183, 162,
175244
- /* 10 */ 223, 367, 414, -173, 473, 514, 525, 622, 626, -207,
175245
- /* 20 */ 351, -276, -38, 693, 811, 831, 833, 888, -188, 945,
175246
- /* 30 */ 947, 416, 558, 951, 867, 287, 1078, 1080, -186, 224,
175247
- /* 40 */ -132, 42, 964, 269, 417, 796, 810, -237, -231, -237,
175248
- /* 50 */ -231, -45, -45, -45, -45, -45, -45, -45, -45, -45,
175249
- /* 60 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
175250
- /* 70 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
175251
- /* 80 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, 895,
175252
- /* 90 */ 925, 967, 980, 1100, 1143, 1169, 1203, 1225, 1228, 1242,
175253
- /* 100 */ 1247, 1250, 1253, 1255, 1261, 1267, 1272, 1275, 1283, 1286,
175254
- /* 110 */ 1288, 1292, 1333, 1335, 1347, 1349, 1352, 1354, 1360, 1366,
175255
- /* 120 */ 1381, 1391, 1406, 1408, 1413, 1416, 1418, 1422, 1425, 1427,
175256
- /* 130 */ 1463, 1465, 1472, 1478, 1480, 1491, 1498, 1500, 1517, 1519,
175257
- /* 140 */ 1528, 1536, -45, -45, -45, -45, -45, -45, -45, -45,
175258
- /* 150 */ -45, -45, -45, 312, -158, 285, -219, 9, 166, 370,
175259
- /* 160 */ 545, 707, -45, 930, 601, 963, 1067, 792, -45, -45,
175260
- /* 170 */ -45, -45, -204, -204, -204, 369, -171, -129, 632, 678,
175261
- /* 180 */ 202, 352, -270, 412, 627, 627, -9, 122, 415, 419,
175262
- /* 190 */ -56, 248, 583, 920, 6, 261, 459, 795, 1049, 813,
175263
- /* 200 */ 1062, 1082, -161, 778, 1063, 797, 870, 1003, 1128, 443,
175264
- /* 210 */ 1031, 1072, 1191, 1192, 957, 1120, 105, 1149, 523, 933,
175265
- /* 220 */ 1218, 1238, 1254, 1251, -138, 96, 117, 146, 181, 277,
175266
- /* 230 */ 280, 421, 480, 712, 830, 850, 1085, 1099, 1129, 1209,
175267
- /* 240 */ 1323, 1331, 1336, 1364, 1407, 368, 1412, 1433, 1438, 1474,
175268
- /* 250 */ 1481, 1505, 1506, 1526, 1538, 1544, 1545, 1546, 722, 764,
175269
- /* 260 */ 856, 1547, 1548, 1550, 1188, 1554, 1557, 1561, 1298, 1260,
175270
- /* 270 */ 1562, 1456, 1564, 280, 1568, 1571, 1573, 1574, 1575, 1576,
175271
- /* 280 */ 1457, 1477, 1520, 1514, 1515, 1516, 1518, 1188, 1520, 1520,
175272
- /* 290 */ 1530, 1563, 1584, 1482, 1504, 1510, 1534, 1513, 1488, 1537,
175273
- /* 300 */ 1512, 1521, 1539, 1522, 1541, 1493, 1583, 1559, 1565, 1585,
175274
- /* 310 */ 1587, 1589, 1529, 1531, 1532, 1549, 1558, 1566, 1535, 1577,
175275
- /* 320 */ 1582, 1622, 1533, 1540, 1627, 1628, 1552, 1555, 1633, 1560,
175276
- /* 330 */ 1578, 1581, 1607, 1606, 1608, 1609, 1611, 1649, 1655, 1612,
175277
- /* 340 */ 1590, 1591, 1613, 1594, 1621, 1614, 1623, 1616, 1666, 1668,
175278
- /* 350 */ 1579, 1593, 1672, 1675, 1656, 1676, 1679, 1680, 1688, 1660,
175279
- /* 360 */ 1667, 1670, 1671, 1663, 1669, 1673, 1674, 1689, 1681, 1692,
175280
- /* 370 */ 1677, 1693, 1694, 1592, 1599, 1617, 1620, 1700, 1713, 1596,
175281
- /* 380 */ 1598, 1658, 1659, 1691, 1684, 1654, 1735, 1664, 1697, 1690,
175282
- /* 390 */ 1701, 1703, 1748, 1758, 1760, 1768, 1770, 1772, 1657, 1661,
175283
- /* 400 */ 1665, 1761, 1754, 1757, 1762, 1763, 1764, 1750, 1751, 1765,
175284
- /* 410 */ 1771, 1767, 1775,
175347
+ /* 0 */ -67, 1252, -64, -178, -181, 160, 1071, 143, -184, 137,
175348
+ /* 10 */ 218, 220, 222, -174, 229, 268, 272, 275, 324, -208,
175349
+ /* 20 */ 242, -277, -39, 81, 537, 792, 810, 812, -189, 814,
175350
+ /* 30 */ 831, 163, 865, 944, 887, 840, 964, 1077, -187, 292,
175351
+ /* 40 */ -133, 274, 673, 558, 682, 795, 809, -238, -232, -238,
175352
+ /* 50 */ -232, 329, 329, 329, 329, 329, 329, 329, 329, 329,
175353
+ /* 60 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
175354
+ /* 70 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
175355
+ /* 80 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 557,
175356
+ /* 90 */ 712, 949, 966, 969, 971, 979, 1097, 1099, 1103, 1142,
175357
+ /* 100 */ 1144, 1169, 1172, 1201, 1203, 1228, 1241, 1250, 1253, 1255,
175358
+ /* 110 */ 1261, 1266, 1271, 1282, 1291, 1308, 1310, 1312, 1322, 1328,
175359
+ /* 120 */ 1347, 1354, 1356, 1359, 1362, 1365, 1367, 1374, 1376, 1381,
175360
+ /* 130 */ 1401, 1403, 1406, 1412, 1414, 1417, 1421, 1428, 1447, 1449,
175361
+ /* 140 */ 1453, 1462, 329, 329, 329, 329, 329, 329, 329, 329,
175362
+ /* 150 */ 329, 329, 329, -22, -159, 475, -220, 756, 38, 501,
175363
+ /* 160 */ 841, 714, 329, 118, 337, 349, 363, -56, 329, 329,
175364
+ /* 170 */ 329, 329, -205, -205, -205, 687, -172, -130, -57, 790,
175365
+ /* 180 */ 397, 528, -271, 136, 596, 596, 90, 316, 522, 541,
175366
+ /* 190 */ -37, 715, 849, 977, 628, 856, 980, 991, 1081, 1102,
175367
+ /* 200 */ 1135, 1083, -162, 208, 1258, 794, -86, 159, 41, 1109,
175368
+ /* 210 */ 671, 852, 844, 932, 1175, 1254, 480, 1180, 100, 258,
175369
+ /* 220 */ 1265, 1268, 1216, 1287, -139, 317, 344, 63, 339, 423,
175370
+ /* 230 */ 563, 636, 676, 813, 908, 914, 950, 1078, 1084, 1098,
175371
+ /* 240 */ 1363, 1384, 1407, 1439, 1464, 411, 1527, 1534, 1535, 1537,
175372
+ /* 250 */ 1541, 1542, 1543, 1544, 1545, 1547, 1549, 1550, 990, 1164,
175373
+ /* 260 */ 1492, 1551, 1552, 1556, 1217, 1558, 1559, 1560, 1473, 1413,
175374
+ /* 270 */ 1563, 1510, 1568, 563, 1570, 1571, 1572, 1573, 1574, 1575,
175375
+ /* 280 */ 1443, 1466, 1518, 1513, 1514, 1515, 1516, 1217, 1518, 1518,
175376
+ /* 290 */ 1531, 1562, 1582, 1477, 1505, 1511, 1533, 1512, 1488, 1538,
175377
+ /* 300 */ 1509, 1517, 1546, 1519, 1557, 1489, 1565, 1564, 1578, 1586,
175378
+ /* 310 */ 1587, 1588, 1526, 1528, 1554, 1555, 1576, 1577, 1566, 1579,
175379
+ /* 320 */ 1584, 1591, 1520, 1523, 1617, 1628, 1580, 1581, 1632, 1585,
175380
+ /* 330 */ 1590, 1593, 1604, 1605, 1606, 1608, 1609, 1641, 1649, 1610,
175381
+ /* 340 */ 1592, 1594, 1611, 1595, 1616, 1612, 1618, 1613, 1651, 1654,
175382
+ /* 350 */ 1596, 1598, 1655, 1663, 1650, 1673, 1680, 1677, 1684, 1653,
175383
+ /* 360 */ 1664, 1666, 1667, 1662, 1669, 1672, 1676, 1686, 1679, 1691,
175384
+ /* 370 */ 1689, 1692, 1694, 1597, 1599, 1619, 1630, 1699, 1700, 1602,
175385
+ /* 380 */ 1615, 1648, 1657, 1690, 1698, 1658, 1729, 1652, 1695, 1702,
175386
+ /* 390 */ 1704, 1703, 1741, 1754, 1758, 1768, 1769, 1771, 1660, 1661,
175387
+ /* 400 */ 1665, 1752, 1756, 1757, 1759, 1760, 1764, 1745, 1753, 1762,
175388
+ /* 410 */ 1763, 1761, 1772,
175285175389
};
175286175390
static const YYACTIONTYPE yy_default[] = {
175287175391
/* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254,
175288175392
/* 10 */ 1491, 1491, 1491, 1254, 1254, 1254, 1254, 1254, 1254, 1397,
175289175393
/* 20 */ 1397, 1544, 1287, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
@@ -175545,10 +175649,11 @@
175545175649
0, /* ASTERISK => nothing */
175546175650
0, /* SPAN => nothing */
175547175651
0, /* ERROR => nothing */
175548175652
0, /* QNUMBER => nothing */
175549175653
0, /* SPACE => nothing */
175654
+ 0, /* COMMENT => nothing */
175550175655
0, /* ILLEGAL => nothing */
175551175656
};
175552175657
#endif /* YYFALLBACK */
175553175658
175554175659
/* The following structure represents a single element of the
@@ -175814,147 +175919,148 @@
175814175919
/* 180 */ "ASTERISK",
175815175920
/* 181 */ "SPAN",
175816175921
/* 182 */ "ERROR",
175817175922
/* 183 */ "QNUMBER",
175818175923
/* 184 */ "SPACE",
175819
- /* 185 */ "ILLEGAL",
175820
- /* 186 */ "input",
175821
- /* 187 */ "cmdlist",
175822
- /* 188 */ "ecmd",
175823
- /* 189 */ "cmdx",
175824
- /* 190 */ "explain",
175825
- /* 191 */ "cmd",
175826
- /* 192 */ "transtype",
175827
- /* 193 */ "trans_opt",
175828
- /* 194 */ "nm",
175829
- /* 195 */ "savepoint_opt",
175830
- /* 196 */ "create_table",
175831
- /* 197 */ "create_table_args",
175832
- /* 198 */ "createkw",
175833
- /* 199 */ "temp",
175834
- /* 200 */ "ifnotexists",
175835
- /* 201 */ "dbnm",
175836
- /* 202 */ "columnlist",
175837
- /* 203 */ "conslist_opt",
175838
- /* 204 */ "table_option_set",
175839
- /* 205 */ "select",
175840
- /* 206 */ "table_option",
175841
- /* 207 */ "columnname",
175842
- /* 208 */ "carglist",
175843
- /* 209 */ "typetoken",
175844
- /* 210 */ "typename",
175845
- /* 211 */ "signed",
175846
- /* 212 */ "plus_num",
175847
- /* 213 */ "minus_num",
175848
- /* 214 */ "scanpt",
175849
- /* 215 */ "scantok",
175850
- /* 216 */ "ccons",
175851
- /* 217 */ "term",
175852
- /* 218 */ "expr",
175853
- /* 219 */ "onconf",
175854
- /* 220 */ "sortorder",
175855
- /* 221 */ "autoinc",
175856
- /* 222 */ "eidlist_opt",
175857
- /* 223 */ "refargs",
175858
- /* 224 */ "defer_subclause",
175859
- /* 225 */ "generated",
175860
- /* 226 */ "refarg",
175861
- /* 227 */ "refact",
175862
- /* 228 */ "init_deferred_pred_opt",
175863
- /* 229 */ "conslist",
175864
- /* 230 */ "tconscomma",
175865
- /* 231 */ "tcons",
175866
- /* 232 */ "sortlist",
175867
- /* 233 */ "eidlist",
175868
- /* 234 */ "defer_subclause_opt",
175869
- /* 235 */ "orconf",
175870
- /* 236 */ "resolvetype",
175871
- /* 237 */ "raisetype",
175872
- /* 238 */ "ifexists",
175873
- /* 239 */ "fullname",
175874
- /* 240 */ "selectnowith",
175875
- /* 241 */ "oneselect",
175876
- /* 242 */ "wqlist",
175877
- /* 243 */ "multiselect_op",
175878
- /* 244 */ "distinct",
175879
- /* 245 */ "selcollist",
175880
- /* 246 */ "from",
175881
- /* 247 */ "where_opt",
175882
- /* 248 */ "groupby_opt",
175883
- /* 249 */ "having_opt",
175884
- /* 250 */ "orderby_opt",
175885
- /* 251 */ "limit_opt",
175886
- /* 252 */ "window_clause",
175887
- /* 253 */ "values",
175888
- /* 254 */ "nexprlist",
175889
- /* 255 */ "mvalues",
175890
- /* 256 */ "sclp",
175891
- /* 257 */ "as",
175892
- /* 258 */ "seltablist",
175893
- /* 259 */ "stl_prefix",
175894
- /* 260 */ "joinop",
175895
- /* 261 */ "on_using",
175896
- /* 262 */ "indexed_by",
175897
- /* 263 */ "exprlist",
175898
- /* 264 */ "xfullname",
175899
- /* 265 */ "idlist",
175900
- /* 266 */ "indexed_opt",
175901
- /* 267 */ "nulls",
175902
- /* 268 */ "with",
175903
- /* 269 */ "where_opt_ret",
175904
- /* 270 */ "setlist",
175905
- /* 271 */ "insert_cmd",
175906
- /* 272 */ "idlist_opt",
175907
- /* 273 */ "upsert",
175908
- /* 274 */ "returning",
175909
- /* 275 */ "filter_over",
175910
- /* 276 */ "likeop",
175911
- /* 277 */ "between_op",
175912
- /* 278 */ "in_op",
175913
- /* 279 */ "paren_exprlist",
175914
- /* 280 */ "case_operand",
175915
- /* 281 */ "case_exprlist",
175916
- /* 282 */ "case_else",
175917
- /* 283 */ "uniqueflag",
175918
- /* 284 */ "collate",
175919
- /* 285 */ "vinto",
175920
- /* 286 */ "nmnum",
175921
- /* 287 */ "trigger_decl",
175922
- /* 288 */ "trigger_cmd_list",
175923
- /* 289 */ "trigger_time",
175924
- /* 290 */ "trigger_event",
175925
- /* 291 */ "foreach_clause",
175926
- /* 292 */ "when_clause",
175927
- /* 293 */ "trigger_cmd",
175928
- /* 294 */ "trnm",
175929
- /* 295 */ "tridxby",
175930
- /* 296 */ "database_kw_opt",
175931
- /* 297 */ "key_opt",
175932
- /* 298 */ "add_column_fullname",
175933
- /* 299 */ "kwcolumn_opt",
175934
- /* 300 */ "create_vtab",
175935
- /* 301 */ "vtabarglist",
175936
- /* 302 */ "vtabarg",
175937
- /* 303 */ "vtabargtoken",
175938
- /* 304 */ "lp",
175939
- /* 305 */ "anylist",
175940
- /* 306 */ "wqitem",
175941
- /* 307 */ "wqas",
175942
- /* 308 */ "withnm",
175943
- /* 309 */ "windowdefn_list",
175944
- /* 310 */ "windowdefn",
175945
- /* 311 */ "window",
175946
- /* 312 */ "frame_opt",
175947
- /* 313 */ "part_opt",
175948
- /* 314 */ "filter_clause",
175949
- /* 315 */ "over_clause",
175950
- /* 316 */ "range_or_rows",
175951
- /* 317 */ "frame_bound",
175952
- /* 318 */ "frame_bound_s",
175953
- /* 319 */ "frame_bound_e",
175954
- /* 320 */ "frame_exclude_opt",
175955
- /* 321 */ "frame_exclude",
175924
+ /* 185 */ "COMMENT",
175925
+ /* 186 */ "ILLEGAL",
175926
+ /* 187 */ "input",
175927
+ /* 188 */ "cmdlist",
175928
+ /* 189 */ "ecmd",
175929
+ /* 190 */ "cmdx",
175930
+ /* 191 */ "explain",
175931
+ /* 192 */ "cmd",
175932
+ /* 193 */ "transtype",
175933
+ /* 194 */ "trans_opt",
175934
+ /* 195 */ "nm",
175935
+ /* 196 */ "savepoint_opt",
175936
+ /* 197 */ "create_table",
175937
+ /* 198 */ "create_table_args",
175938
+ /* 199 */ "createkw",
175939
+ /* 200 */ "temp",
175940
+ /* 201 */ "ifnotexists",
175941
+ /* 202 */ "dbnm",
175942
+ /* 203 */ "columnlist",
175943
+ /* 204 */ "conslist_opt",
175944
+ /* 205 */ "table_option_set",
175945
+ /* 206 */ "select",
175946
+ /* 207 */ "table_option",
175947
+ /* 208 */ "columnname",
175948
+ /* 209 */ "carglist",
175949
+ /* 210 */ "typetoken",
175950
+ /* 211 */ "typename",
175951
+ /* 212 */ "signed",
175952
+ /* 213 */ "plus_num",
175953
+ /* 214 */ "minus_num",
175954
+ /* 215 */ "scanpt",
175955
+ /* 216 */ "scantok",
175956
+ /* 217 */ "ccons",
175957
+ /* 218 */ "term",
175958
+ /* 219 */ "expr",
175959
+ /* 220 */ "onconf",
175960
+ /* 221 */ "sortorder",
175961
+ /* 222 */ "autoinc",
175962
+ /* 223 */ "eidlist_opt",
175963
+ /* 224 */ "refargs",
175964
+ /* 225 */ "defer_subclause",
175965
+ /* 226 */ "generated",
175966
+ /* 227 */ "refarg",
175967
+ /* 228 */ "refact",
175968
+ /* 229 */ "init_deferred_pred_opt",
175969
+ /* 230 */ "conslist",
175970
+ /* 231 */ "tconscomma",
175971
+ /* 232 */ "tcons",
175972
+ /* 233 */ "sortlist",
175973
+ /* 234 */ "eidlist",
175974
+ /* 235 */ "defer_subclause_opt",
175975
+ /* 236 */ "orconf",
175976
+ /* 237 */ "resolvetype",
175977
+ /* 238 */ "raisetype",
175978
+ /* 239 */ "ifexists",
175979
+ /* 240 */ "fullname",
175980
+ /* 241 */ "selectnowith",
175981
+ /* 242 */ "oneselect",
175982
+ /* 243 */ "wqlist",
175983
+ /* 244 */ "multiselect_op",
175984
+ /* 245 */ "distinct",
175985
+ /* 246 */ "selcollist",
175986
+ /* 247 */ "from",
175987
+ /* 248 */ "where_opt",
175988
+ /* 249 */ "groupby_opt",
175989
+ /* 250 */ "having_opt",
175990
+ /* 251 */ "orderby_opt",
175991
+ /* 252 */ "limit_opt",
175992
+ /* 253 */ "window_clause",
175993
+ /* 254 */ "values",
175994
+ /* 255 */ "nexprlist",
175995
+ /* 256 */ "mvalues",
175996
+ /* 257 */ "sclp",
175997
+ /* 258 */ "as",
175998
+ /* 259 */ "seltablist",
175999
+ /* 260 */ "stl_prefix",
176000
+ /* 261 */ "joinop",
176001
+ /* 262 */ "on_using",
176002
+ /* 263 */ "indexed_by",
176003
+ /* 264 */ "exprlist",
176004
+ /* 265 */ "xfullname",
176005
+ /* 266 */ "idlist",
176006
+ /* 267 */ "indexed_opt",
176007
+ /* 268 */ "nulls",
176008
+ /* 269 */ "with",
176009
+ /* 270 */ "where_opt_ret",
176010
+ /* 271 */ "setlist",
176011
+ /* 272 */ "insert_cmd",
176012
+ /* 273 */ "idlist_opt",
176013
+ /* 274 */ "upsert",
176014
+ /* 275 */ "returning",
176015
+ /* 276 */ "filter_over",
176016
+ /* 277 */ "likeop",
176017
+ /* 278 */ "between_op",
176018
+ /* 279 */ "in_op",
176019
+ /* 280 */ "paren_exprlist",
176020
+ /* 281 */ "case_operand",
176021
+ /* 282 */ "case_exprlist",
176022
+ /* 283 */ "case_else",
176023
+ /* 284 */ "uniqueflag",
176024
+ /* 285 */ "collate",
176025
+ /* 286 */ "vinto",
176026
+ /* 287 */ "nmnum",
176027
+ /* 288 */ "trigger_decl",
176028
+ /* 289 */ "trigger_cmd_list",
176029
+ /* 290 */ "trigger_time",
176030
+ /* 291 */ "trigger_event",
176031
+ /* 292 */ "foreach_clause",
176032
+ /* 293 */ "when_clause",
176033
+ /* 294 */ "trigger_cmd",
176034
+ /* 295 */ "trnm",
176035
+ /* 296 */ "tridxby",
176036
+ /* 297 */ "database_kw_opt",
176037
+ /* 298 */ "key_opt",
176038
+ /* 299 */ "add_column_fullname",
176039
+ /* 300 */ "kwcolumn_opt",
176040
+ /* 301 */ "create_vtab",
176041
+ /* 302 */ "vtabarglist",
176042
+ /* 303 */ "vtabarg",
176043
+ /* 304 */ "vtabargtoken",
176044
+ /* 305 */ "lp",
176045
+ /* 306 */ "anylist",
176046
+ /* 307 */ "wqitem",
176047
+ /* 308 */ "wqas",
176048
+ /* 309 */ "withnm",
176049
+ /* 310 */ "windowdefn_list",
176050
+ /* 311 */ "windowdefn",
176051
+ /* 312 */ "window",
176052
+ /* 313 */ "frame_opt",
176053
+ /* 314 */ "part_opt",
176054
+ /* 315 */ "filter_clause",
176055
+ /* 316 */ "over_clause",
176056
+ /* 317 */ "range_or_rows",
176057
+ /* 318 */ "frame_bound",
176058
+ /* 319 */ "frame_bound_s",
176059
+ /* 320 */ "frame_bound_e",
176060
+ /* 321 */ "frame_exclude_opt",
176061
+ /* 322 */ "frame_exclude",
175956176062
};
175957176063
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
175958176064
175959176065
#ifndef NDEBUG
175960176066
/* For tracing reduce actions, the names of all rules are required.
@@ -176490,102 +176596,102 @@
176490176596
** Note: during a reduce, the only symbols destroyed are those
176491176597
** which appear on the RHS of the rule, but which are *not* used
176492176598
** inside the C code.
176493176599
*/
176494176600
/********* Begin destructor definitions ***************************************/
176495
- case 205: /* select */
176496
- case 240: /* selectnowith */
176497
- case 241: /* oneselect */
176498
- case 253: /* values */
176499
- case 255: /* mvalues */
176500
-{
176501
-sqlite3SelectDelete(pParse->db, (yypminor->yy555));
176502
-}
176503
- break;
176504
- case 217: /* term */
176505
- case 218: /* expr */
176506
- case 247: /* where_opt */
176507
- case 249: /* having_opt */
176508
- case 269: /* where_opt_ret */
176509
- case 280: /* case_operand */
176510
- case 282: /* case_else */
176511
- case 285: /* vinto */
176512
- case 292: /* when_clause */
176513
- case 297: /* key_opt */
176514
- case 314: /* filter_clause */
176515
-{
176516
-sqlite3ExprDelete(pParse->db, (yypminor->yy454));
176517
-}
176518
- break;
176519
- case 222: /* eidlist_opt */
176520
- case 232: /* sortlist */
176521
- case 233: /* eidlist */
176522
- case 245: /* selcollist */
176523
- case 248: /* groupby_opt */
176524
- case 250: /* orderby_opt */
176525
- case 254: /* nexprlist */
176526
- case 256: /* sclp */
176527
- case 263: /* exprlist */
176528
- case 270: /* setlist */
176529
- case 279: /* paren_exprlist */
176530
- case 281: /* case_exprlist */
176531
- case 313: /* part_opt */
176532
-{
176533
-sqlite3ExprListDelete(pParse->db, (yypminor->yy14));
176534
-}
176535
- break;
176536
- case 239: /* fullname */
176537
- case 246: /* from */
176538
- case 258: /* seltablist */
176539
- case 259: /* stl_prefix */
176540
- case 264: /* xfullname */
176541
-{
176542
-sqlite3SrcListDelete(pParse->db, (yypminor->yy203));
176543
-}
176544
- break;
176545
- case 242: /* wqlist */
176546
-{
176547
-sqlite3WithDelete(pParse->db, (yypminor->yy59));
176548
-}
176549
- break;
176550
- case 252: /* window_clause */
176551
- case 309: /* windowdefn_list */
176552
-{
176553
-sqlite3WindowListDelete(pParse->db, (yypminor->yy211));
176554
-}
176555
- break;
176556
- case 265: /* idlist */
176557
- case 272: /* idlist_opt */
176558
-{
176559
-sqlite3IdListDelete(pParse->db, (yypminor->yy132));
176560
-}
176561
- break;
176562
- case 275: /* filter_over */
176563
- case 310: /* windowdefn */
176564
- case 311: /* window */
176565
- case 312: /* frame_opt */
176566
- case 315: /* over_clause */
176567
-{
176568
-sqlite3WindowDelete(pParse->db, (yypminor->yy211));
176569
-}
176570
- break;
176571
- case 288: /* trigger_cmd_list */
176572
- case 293: /* trigger_cmd */
176573
-{
176574
-sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy427));
176575
-}
176576
- break;
176577
- case 290: /* trigger_event */
176578
-{
176579
-sqlite3IdListDelete(pParse->db, (yypminor->yy286).b);
176580
-}
176581
- break;
176582
- case 317: /* frame_bound */
176583
- case 318: /* frame_bound_s */
176584
- case 319: /* frame_bound_e */
176585
-{
176586
-sqlite3ExprDelete(pParse->db, (yypminor->yy509).pExpr);
176601
+ case 206: /* select */
176602
+ case 241: /* selectnowith */
176603
+ case 242: /* oneselect */
176604
+ case 254: /* values */
176605
+ case 256: /* mvalues */
176606
+{
176607
+sqlite3SelectDelete(pParse->db, (yypminor->yy637));
176608
+}
176609
+ break;
176610
+ case 218: /* term */
176611
+ case 219: /* expr */
176612
+ case 248: /* where_opt */
176613
+ case 250: /* having_opt */
176614
+ case 270: /* where_opt_ret */
176615
+ case 281: /* case_operand */
176616
+ case 283: /* case_else */
176617
+ case 286: /* vinto */
176618
+ case 293: /* when_clause */
176619
+ case 298: /* key_opt */
176620
+ case 315: /* filter_clause */
176621
+{
176622
+sqlite3ExprDelete(pParse->db, (yypminor->yy590));
176623
+}
176624
+ break;
176625
+ case 223: /* eidlist_opt */
176626
+ case 233: /* sortlist */
176627
+ case 234: /* eidlist */
176628
+ case 246: /* selcollist */
176629
+ case 249: /* groupby_opt */
176630
+ case 251: /* orderby_opt */
176631
+ case 255: /* nexprlist */
176632
+ case 257: /* sclp */
176633
+ case 264: /* exprlist */
176634
+ case 271: /* setlist */
176635
+ case 280: /* paren_exprlist */
176636
+ case 282: /* case_exprlist */
176637
+ case 314: /* part_opt */
176638
+{
176639
+sqlite3ExprListDelete(pParse->db, (yypminor->yy402));
176640
+}
176641
+ break;
176642
+ case 240: /* fullname */
176643
+ case 247: /* from */
176644
+ case 259: /* seltablist */
176645
+ case 260: /* stl_prefix */
176646
+ case 265: /* xfullname */
176647
+{
176648
+sqlite3SrcListDelete(pParse->db, (yypminor->yy563));
176649
+}
176650
+ break;
176651
+ case 243: /* wqlist */
176652
+{
176653
+sqlite3WithDelete(pParse->db, (yypminor->yy125));
176654
+}
176655
+ break;
176656
+ case 253: /* window_clause */
176657
+ case 310: /* windowdefn_list */
176658
+{
176659
+sqlite3WindowListDelete(pParse->db, (yypminor->yy483));
176660
+}
176661
+ break;
176662
+ case 266: /* idlist */
176663
+ case 273: /* idlist_opt */
176664
+{
176665
+sqlite3IdListDelete(pParse->db, (yypminor->yy204));
176666
+}
176667
+ break;
176668
+ case 276: /* filter_over */
176669
+ case 311: /* windowdefn */
176670
+ case 312: /* window */
176671
+ case 313: /* frame_opt */
176672
+ case 316: /* over_clause */
176673
+{
176674
+sqlite3WindowDelete(pParse->db, (yypminor->yy483));
176675
+}
176676
+ break;
176677
+ case 289: /* trigger_cmd_list */
176678
+ case 294: /* trigger_cmd */
176679
+{
176680
+sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy319));
176681
+}
176682
+ break;
176683
+ case 291: /* trigger_event */
176684
+{
176685
+sqlite3IdListDelete(pParse->db, (yypminor->yy28).b);
176686
+}
176687
+ break;
176688
+ case 318: /* frame_bound */
176689
+ case 319: /* frame_bound_s */
176690
+ case 320: /* frame_bound_e */
176691
+{
176692
+sqlite3ExprDelete(pParse->db, (yypminor->yy205).pExpr);
176587176693
}
176588176694
break;
176589176695
/********* End destructor definitions *****************************************/
176590176696
default: break; /* If no destructor action specified: do nothing */
176591176697
}
@@ -176883,419 +176989,419 @@
176883176989
}
176884176990
176885176991
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
176886176992
** of that rule */
176887176993
static const YYCODETYPE yyRuleInfoLhs[] = {
176888
- 190, /* (0) explain ::= EXPLAIN */
176889
- 190, /* (1) explain ::= EXPLAIN QUERY PLAN */
176890
- 189, /* (2) cmdx ::= cmd */
176891
- 191, /* (3) cmd ::= BEGIN transtype trans_opt */
176892
- 192, /* (4) transtype ::= */
176893
- 192, /* (5) transtype ::= DEFERRED */
176894
- 192, /* (6) transtype ::= IMMEDIATE */
176895
- 192, /* (7) transtype ::= EXCLUSIVE */
176896
- 191, /* (8) cmd ::= COMMIT|END trans_opt */
176897
- 191, /* (9) cmd ::= ROLLBACK trans_opt */
176898
- 191, /* (10) cmd ::= SAVEPOINT nm */
176899
- 191, /* (11) cmd ::= RELEASE savepoint_opt nm */
176900
- 191, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
176901
- 196, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
176902
- 198, /* (14) createkw ::= CREATE */
176903
- 200, /* (15) ifnotexists ::= */
176904
- 200, /* (16) ifnotexists ::= IF NOT EXISTS */
176905
- 199, /* (17) temp ::= TEMP */
176906
- 199, /* (18) temp ::= */
176907
- 197, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */
176908
- 197, /* (20) create_table_args ::= AS select */
176909
- 204, /* (21) table_option_set ::= */
176910
- 204, /* (22) table_option_set ::= table_option_set COMMA table_option */
176911
- 206, /* (23) table_option ::= WITHOUT nm */
176912
- 206, /* (24) table_option ::= nm */
176913
- 207, /* (25) columnname ::= nm typetoken */
176914
- 209, /* (26) typetoken ::= */
176915
- 209, /* (27) typetoken ::= typename LP signed RP */
176916
- 209, /* (28) typetoken ::= typename LP signed COMMA signed RP */
176917
- 210, /* (29) typename ::= typename ID|STRING */
176918
- 214, /* (30) scanpt ::= */
176919
- 215, /* (31) scantok ::= */
176920
- 216, /* (32) ccons ::= CONSTRAINT nm */
176921
- 216, /* (33) ccons ::= DEFAULT scantok term */
176922
- 216, /* (34) ccons ::= DEFAULT LP expr RP */
176923
- 216, /* (35) ccons ::= DEFAULT PLUS scantok term */
176924
- 216, /* (36) ccons ::= DEFAULT MINUS scantok term */
176925
- 216, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */
176926
- 216, /* (38) ccons ::= NOT NULL onconf */
176927
- 216, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */
176928
- 216, /* (40) ccons ::= UNIQUE onconf */
176929
- 216, /* (41) ccons ::= CHECK LP expr RP */
176930
- 216, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */
176931
- 216, /* (43) ccons ::= defer_subclause */
176932
- 216, /* (44) ccons ::= COLLATE ID|STRING */
176933
- 225, /* (45) generated ::= LP expr RP */
176934
- 225, /* (46) generated ::= LP expr RP ID */
176935
- 221, /* (47) autoinc ::= */
176936
- 221, /* (48) autoinc ::= AUTOINCR */
176937
- 223, /* (49) refargs ::= */
176938
- 223, /* (50) refargs ::= refargs refarg */
176939
- 226, /* (51) refarg ::= MATCH nm */
176940
- 226, /* (52) refarg ::= ON INSERT refact */
176941
- 226, /* (53) refarg ::= ON DELETE refact */
176942
- 226, /* (54) refarg ::= ON UPDATE refact */
176943
- 227, /* (55) refact ::= SET NULL */
176944
- 227, /* (56) refact ::= SET DEFAULT */
176945
- 227, /* (57) refact ::= CASCADE */
176946
- 227, /* (58) refact ::= RESTRICT */
176947
- 227, /* (59) refact ::= NO ACTION */
176948
- 224, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
176949
- 224, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
176950
- 228, /* (62) init_deferred_pred_opt ::= */
176951
- 228, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */
176952
- 228, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
176953
- 203, /* (65) conslist_opt ::= */
176954
- 230, /* (66) tconscomma ::= COMMA */
176955
- 231, /* (67) tcons ::= CONSTRAINT nm */
176956
- 231, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
176957
- 231, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */
176958
- 231, /* (70) tcons ::= CHECK LP expr RP onconf */
176959
- 231, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
176960
- 234, /* (72) defer_subclause_opt ::= */
176961
- 219, /* (73) onconf ::= */
176962
- 219, /* (74) onconf ::= ON CONFLICT resolvetype */
176963
- 235, /* (75) orconf ::= */
176964
- 235, /* (76) orconf ::= OR resolvetype */
176965
- 236, /* (77) resolvetype ::= IGNORE */
176966
- 236, /* (78) resolvetype ::= REPLACE */
176967
- 191, /* (79) cmd ::= DROP TABLE ifexists fullname */
176968
- 238, /* (80) ifexists ::= IF EXISTS */
176969
- 238, /* (81) ifexists ::= */
176970
- 191, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
176971
- 191, /* (83) cmd ::= DROP VIEW ifexists fullname */
176972
- 191, /* (84) cmd ::= select */
176973
- 205, /* (85) select ::= WITH wqlist selectnowith */
176974
- 205, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */
176975
- 205, /* (87) select ::= selectnowith */
176976
- 240, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */
176977
- 243, /* (89) multiselect_op ::= UNION */
176978
- 243, /* (90) multiselect_op ::= UNION ALL */
176979
- 243, /* (91) multiselect_op ::= EXCEPT|INTERSECT */
176980
- 241, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
176981
- 241, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
176982
- 253, /* (94) values ::= VALUES LP nexprlist RP */
176983
- 241, /* (95) oneselect ::= mvalues */
176984
- 255, /* (96) mvalues ::= values COMMA LP nexprlist RP */
176985
- 255, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */
176986
- 244, /* (98) distinct ::= DISTINCT */
176987
- 244, /* (99) distinct ::= ALL */
176988
- 244, /* (100) distinct ::= */
176989
- 256, /* (101) sclp ::= */
176990
- 245, /* (102) selcollist ::= sclp scanpt expr scanpt as */
176991
- 245, /* (103) selcollist ::= sclp scanpt STAR */
176992
- 245, /* (104) selcollist ::= sclp scanpt nm DOT STAR */
176993
- 257, /* (105) as ::= AS nm */
176994
- 257, /* (106) as ::= */
176995
- 246, /* (107) from ::= */
176996
- 246, /* (108) from ::= FROM seltablist */
176997
- 259, /* (109) stl_prefix ::= seltablist joinop */
176998
- 259, /* (110) stl_prefix ::= */
176999
- 258, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */
177000
- 258, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
177001
- 258, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
177002
- 258, /* (114) seltablist ::= stl_prefix LP select RP as on_using */
177003
- 258, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */
177004
- 201, /* (116) dbnm ::= */
177005
- 201, /* (117) dbnm ::= DOT nm */
177006
- 239, /* (118) fullname ::= nm */
177007
- 239, /* (119) fullname ::= nm DOT nm */
177008
- 264, /* (120) xfullname ::= nm */
177009
- 264, /* (121) xfullname ::= nm DOT nm */
177010
- 264, /* (122) xfullname ::= nm DOT nm AS nm */
177011
- 264, /* (123) xfullname ::= nm AS nm */
177012
- 260, /* (124) joinop ::= COMMA|JOIN */
177013
- 260, /* (125) joinop ::= JOIN_KW JOIN */
177014
- 260, /* (126) joinop ::= JOIN_KW nm JOIN */
177015
- 260, /* (127) joinop ::= JOIN_KW nm nm JOIN */
177016
- 261, /* (128) on_using ::= ON expr */
177017
- 261, /* (129) on_using ::= USING LP idlist RP */
177018
- 261, /* (130) on_using ::= */
177019
- 266, /* (131) indexed_opt ::= */
177020
- 262, /* (132) indexed_by ::= INDEXED BY nm */
177021
- 262, /* (133) indexed_by ::= NOT INDEXED */
177022
- 250, /* (134) orderby_opt ::= */
177023
- 250, /* (135) orderby_opt ::= ORDER BY sortlist */
177024
- 232, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */
177025
- 232, /* (137) sortlist ::= expr sortorder nulls */
177026
- 220, /* (138) sortorder ::= ASC */
177027
- 220, /* (139) sortorder ::= DESC */
177028
- 220, /* (140) sortorder ::= */
177029
- 267, /* (141) nulls ::= NULLS FIRST */
177030
- 267, /* (142) nulls ::= NULLS LAST */
177031
- 267, /* (143) nulls ::= */
177032
- 248, /* (144) groupby_opt ::= */
177033
- 248, /* (145) groupby_opt ::= GROUP BY nexprlist */
177034
- 249, /* (146) having_opt ::= */
177035
- 249, /* (147) having_opt ::= HAVING expr */
177036
- 251, /* (148) limit_opt ::= */
177037
- 251, /* (149) limit_opt ::= LIMIT expr */
177038
- 251, /* (150) limit_opt ::= LIMIT expr OFFSET expr */
177039
- 251, /* (151) limit_opt ::= LIMIT expr COMMA expr */
177040
- 191, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
177041
- 247, /* (153) where_opt ::= */
177042
- 247, /* (154) where_opt ::= WHERE expr */
177043
- 269, /* (155) where_opt_ret ::= */
177044
- 269, /* (156) where_opt_ret ::= WHERE expr */
177045
- 269, /* (157) where_opt_ret ::= RETURNING selcollist */
177046
- 269, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */
177047
- 191, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
177048
- 270, /* (160) setlist ::= setlist COMMA nm EQ expr */
177049
- 270, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */
177050
- 270, /* (162) setlist ::= nm EQ expr */
177051
- 270, /* (163) setlist ::= LP idlist RP EQ expr */
177052
- 191, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
177053
- 191, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
177054
- 273, /* (166) upsert ::= */
177055
- 273, /* (167) upsert ::= RETURNING selcollist */
177056
- 273, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
177057
- 273, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
177058
- 273, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */
177059
- 273, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
177060
- 274, /* (172) returning ::= RETURNING selcollist */
177061
- 271, /* (173) insert_cmd ::= INSERT orconf */
177062
- 271, /* (174) insert_cmd ::= REPLACE */
177063
- 272, /* (175) idlist_opt ::= */
177064
- 272, /* (176) idlist_opt ::= LP idlist RP */
177065
- 265, /* (177) idlist ::= idlist COMMA nm */
177066
- 265, /* (178) idlist ::= nm */
177067
- 218, /* (179) expr ::= LP expr RP */
177068
- 218, /* (180) expr ::= ID|INDEXED|JOIN_KW */
177069
- 218, /* (181) expr ::= nm DOT nm */
177070
- 218, /* (182) expr ::= nm DOT nm DOT nm */
177071
- 217, /* (183) term ::= NULL|FLOAT|BLOB */
177072
- 217, /* (184) term ::= STRING */
177073
- 217, /* (185) term ::= INTEGER */
177074
- 218, /* (186) expr ::= VARIABLE */
177075
- 218, /* (187) expr ::= expr COLLATE ID|STRING */
177076
- 218, /* (188) expr ::= CAST LP expr AS typetoken RP */
177077
- 218, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
177078
- 218, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
177079
- 218, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
177080
- 218, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
177081
- 218, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
177082
- 218, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
177083
- 217, /* (195) term ::= CTIME_KW */
177084
- 218, /* (196) expr ::= LP nexprlist COMMA expr RP */
177085
- 218, /* (197) expr ::= expr AND expr */
177086
- 218, /* (198) expr ::= expr OR expr */
177087
- 218, /* (199) expr ::= expr LT|GT|GE|LE expr */
177088
- 218, /* (200) expr ::= expr EQ|NE expr */
177089
- 218, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
177090
- 218, /* (202) expr ::= expr PLUS|MINUS expr */
177091
- 218, /* (203) expr ::= expr STAR|SLASH|REM expr */
177092
- 218, /* (204) expr ::= expr CONCAT expr */
177093
- 276, /* (205) likeop ::= NOT LIKE_KW|MATCH */
177094
- 218, /* (206) expr ::= expr likeop expr */
177095
- 218, /* (207) expr ::= expr likeop expr ESCAPE expr */
177096
- 218, /* (208) expr ::= expr ISNULL|NOTNULL */
177097
- 218, /* (209) expr ::= expr NOT NULL */
177098
- 218, /* (210) expr ::= expr IS expr */
177099
- 218, /* (211) expr ::= expr IS NOT expr */
177100
- 218, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */
177101
- 218, /* (213) expr ::= expr IS DISTINCT FROM expr */
177102
- 218, /* (214) expr ::= NOT expr */
177103
- 218, /* (215) expr ::= BITNOT expr */
177104
- 218, /* (216) expr ::= PLUS|MINUS expr */
177105
- 218, /* (217) expr ::= expr PTR expr */
177106
- 277, /* (218) between_op ::= BETWEEN */
177107
- 277, /* (219) between_op ::= NOT BETWEEN */
177108
- 218, /* (220) expr ::= expr between_op expr AND expr */
177109
- 278, /* (221) in_op ::= IN */
177110
- 278, /* (222) in_op ::= NOT IN */
177111
- 218, /* (223) expr ::= expr in_op LP exprlist RP */
177112
- 218, /* (224) expr ::= LP select RP */
177113
- 218, /* (225) expr ::= expr in_op LP select RP */
177114
- 218, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */
177115
- 218, /* (227) expr ::= EXISTS LP select RP */
177116
- 218, /* (228) expr ::= CASE case_operand case_exprlist case_else END */
177117
- 281, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */
177118
- 281, /* (230) case_exprlist ::= WHEN expr THEN expr */
177119
- 282, /* (231) case_else ::= ELSE expr */
177120
- 282, /* (232) case_else ::= */
177121
- 280, /* (233) case_operand ::= */
177122
- 263, /* (234) exprlist ::= */
177123
- 254, /* (235) nexprlist ::= nexprlist COMMA expr */
177124
- 254, /* (236) nexprlist ::= expr */
177125
- 279, /* (237) paren_exprlist ::= */
177126
- 279, /* (238) paren_exprlist ::= LP exprlist RP */
177127
- 191, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
177128
- 283, /* (240) uniqueflag ::= UNIQUE */
177129
- 283, /* (241) uniqueflag ::= */
177130
- 222, /* (242) eidlist_opt ::= */
177131
- 222, /* (243) eidlist_opt ::= LP eidlist RP */
177132
- 233, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */
177133
- 233, /* (245) eidlist ::= nm collate sortorder */
177134
- 284, /* (246) collate ::= */
177135
- 284, /* (247) collate ::= COLLATE ID|STRING */
177136
- 191, /* (248) cmd ::= DROP INDEX ifexists fullname */
177137
- 191, /* (249) cmd ::= VACUUM vinto */
177138
- 191, /* (250) cmd ::= VACUUM nm vinto */
177139
- 285, /* (251) vinto ::= INTO expr */
177140
- 285, /* (252) vinto ::= */
177141
- 191, /* (253) cmd ::= PRAGMA nm dbnm */
177142
- 191, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */
177143
- 191, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */
177144
- 191, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */
177145
- 191, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */
177146
- 212, /* (258) plus_num ::= PLUS INTEGER|FLOAT */
177147
- 213, /* (259) minus_num ::= MINUS INTEGER|FLOAT */
177148
- 191, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
177149
- 287, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
177150
- 289, /* (262) trigger_time ::= BEFORE|AFTER */
177151
- 289, /* (263) trigger_time ::= INSTEAD OF */
177152
- 289, /* (264) trigger_time ::= */
177153
- 290, /* (265) trigger_event ::= DELETE|INSERT */
177154
- 290, /* (266) trigger_event ::= UPDATE */
177155
- 290, /* (267) trigger_event ::= UPDATE OF idlist */
177156
- 292, /* (268) when_clause ::= */
177157
- 292, /* (269) when_clause ::= WHEN expr */
177158
- 288, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
177159
- 288, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */
177160
- 294, /* (272) trnm ::= nm DOT nm */
177161
- 295, /* (273) tridxby ::= INDEXED BY nm */
177162
- 295, /* (274) tridxby ::= NOT INDEXED */
177163
- 293, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
177164
- 293, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
177165
- 293, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
177166
- 293, /* (278) trigger_cmd ::= scanpt select scanpt */
177167
- 218, /* (279) expr ::= RAISE LP IGNORE RP */
177168
- 218, /* (280) expr ::= RAISE LP raisetype COMMA expr RP */
177169
- 237, /* (281) raisetype ::= ROLLBACK */
177170
- 237, /* (282) raisetype ::= ABORT */
177171
- 237, /* (283) raisetype ::= FAIL */
177172
- 191, /* (284) cmd ::= DROP TRIGGER ifexists fullname */
177173
- 191, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
177174
- 191, /* (286) cmd ::= DETACH database_kw_opt expr */
177175
- 297, /* (287) key_opt ::= */
177176
- 297, /* (288) key_opt ::= KEY expr */
177177
- 191, /* (289) cmd ::= REINDEX */
177178
- 191, /* (290) cmd ::= REINDEX nm dbnm */
177179
- 191, /* (291) cmd ::= ANALYZE */
177180
- 191, /* (292) cmd ::= ANALYZE nm dbnm */
177181
- 191, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */
177182
- 191, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
177183
- 191, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
177184
- 298, /* (296) add_column_fullname ::= fullname */
177185
- 191, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
177186
- 191, /* (298) cmd ::= create_vtab */
177187
- 191, /* (299) cmd ::= create_vtab LP vtabarglist RP */
177188
- 300, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
177189
- 302, /* (301) vtabarg ::= */
177190
- 303, /* (302) vtabargtoken ::= ANY */
177191
- 303, /* (303) vtabargtoken ::= lp anylist RP */
177192
- 304, /* (304) lp ::= LP */
177193
- 268, /* (305) with ::= WITH wqlist */
177194
- 268, /* (306) with ::= WITH RECURSIVE wqlist */
177195
- 307, /* (307) wqas ::= AS */
177196
- 307, /* (308) wqas ::= AS MATERIALIZED */
177197
- 307, /* (309) wqas ::= AS NOT MATERIALIZED */
177198
- 306, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */
177199
- 308, /* (311) withnm ::= nm */
177200
- 242, /* (312) wqlist ::= wqitem */
177201
- 242, /* (313) wqlist ::= wqlist COMMA wqitem */
177202
- 309, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */
177203
- 310, /* (315) windowdefn ::= nm AS LP window RP */
177204
- 311, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
177205
- 311, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
177206
- 311, /* (318) window ::= ORDER BY sortlist frame_opt */
177207
- 311, /* (319) window ::= nm ORDER BY sortlist frame_opt */
177208
- 311, /* (320) window ::= nm frame_opt */
177209
- 312, /* (321) frame_opt ::= */
177210
- 312, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
177211
- 312, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
177212
- 316, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */
177213
- 318, /* (325) frame_bound_s ::= frame_bound */
177214
- 318, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */
177215
- 319, /* (327) frame_bound_e ::= frame_bound */
177216
- 319, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */
177217
- 317, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */
177218
- 317, /* (330) frame_bound ::= CURRENT ROW */
177219
- 320, /* (331) frame_exclude_opt ::= */
177220
- 320, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */
177221
- 321, /* (333) frame_exclude ::= NO OTHERS */
177222
- 321, /* (334) frame_exclude ::= CURRENT ROW */
177223
- 321, /* (335) frame_exclude ::= GROUP|TIES */
177224
- 252, /* (336) window_clause ::= WINDOW windowdefn_list */
177225
- 275, /* (337) filter_over ::= filter_clause over_clause */
177226
- 275, /* (338) filter_over ::= over_clause */
177227
- 275, /* (339) filter_over ::= filter_clause */
177228
- 315, /* (340) over_clause ::= OVER LP window RP */
177229
- 315, /* (341) over_clause ::= OVER nm */
177230
- 314, /* (342) filter_clause ::= FILTER LP WHERE expr RP */
177231
- 217, /* (343) term ::= QNUMBER */
177232
- 186, /* (344) input ::= cmdlist */
177233
- 187, /* (345) cmdlist ::= cmdlist ecmd */
177234
- 187, /* (346) cmdlist ::= ecmd */
177235
- 188, /* (347) ecmd ::= SEMI */
177236
- 188, /* (348) ecmd ::= cmdx SEMI */
177237
- 188, /* (349) ecmd ::= explain cmdx SEMI */
177238
- 193, /* (350) trans_opt ::= */
177239
- 193, /* (351) trans_opt ::= TRANSACTION */
177240
- 193, /* (352) trans_opt ::= TRANSACTION nm */
177241
- 195, /* (353) savepoint_opt ::= SAVEPOINT */
177242
- 195, /* (354) savepoint_opt ::= */
177243
- 191, /* (355) cmd ::= create_table create_table_args */
177244
- 204, /* (356) table_option_set ::= table_option */
177245
- 202, /* (357) columnlist ::= columnlist COMMA columnname carglist */
177246
- 202, /* (358) columnlist ::= columnname carglist */
177247
- 194, /* (359) nm ::= ID|INDEXED|JOIN_KW */
177248
- 194, /* (360) nm ::= STRING */
177249
- 209, /* (361) typetoken ::= typename */
177250
- 210, /* (362) typename ::= ID|STRING */
177251
- 211, /* (363) signed ::= plus_num */
177252
- 211, /* (364) signed ::= minus_num */
177253
- 208, /* (365) carglist ::= carglist ccons */
177254
- 208, /* (366) carglist ::= */
177255
- 216, /* (367) ccons ::= NULL onconf */
177256
- 216, /* (368) ccons ::= GENERATED ALWAYS AS generated */
177257
- 216, /* (369) ccons ::= AS generated */
177258
- 203, /* (370) conslist_opt ::= COMMA conslist */
177259
- 229, /* (371) conslist ::= conslist tconscomma tcons */
177260
- 229, /* (372) conslist ::= tcons */
177261
- 230, /* (373) tconscomma ::= */
177262
- 234, /* (374) defer_subclause_opt ::= defer_subclause */
177263
- 236, /* (375) resolvetype ::= raisetype */
177264
- 240, /* (376) selectnowith ::= oneselect */
177265
- 241, /* (377) oneselect ::= values */
177266
- 256, /* (378) sclp ::= selcollist COMMA */
177267
- 257, /* (379) as ::= ID|STRING */
177268
- 266, /* (380) indexed_opt ::= indexed_by */
177269
- 274, /* (381) returning ::= */
177270
- 218, /* (382) expr ::= term */
177271
- 276, /* (383) likeop ::= LIKE_KW|MATCH */
177272
- 280, /* (384) case_operand ::= expr */
177273
- 263, /* (385) exprlist ::= nexprlist */
177274
- 286, /* (386) nmnum ::= plus_num */
177275
- 286, /* (387) nmnum ::= nm */
177276
- 286, /* (388) nmnum ::= ON */
177277
- 286, /* (389) nmnum ::= DELETE */
177278
- 286, /* (390) nmnum ::= DEFAULT */
177279
- 212, /* (391) plus_num ::= INTEGER|FLOAT */
177280
- 291, /* (392) foreach_clause ::= */
177281
- 291, /* (393) foreach_clause ::= FOR EACH ROW */
177282
- 294, /* (394) trnm ::= nm */
177283
- 295, /* (395) tridxby ::= */
177284
- 296, /* (396) database_kw_opt ::= DATABASE */
177285
- 296, /* (397) database_kw_opt ::= */
177286
- 299, /* (398) kwcolumn_opt ::= */
177287
- 299, /* (399) kwcolumn_opt ::= COLUMNKW */
177288
- 301, /* (400) vtabarglist ::= vtabarg */
177289
- 301, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */
177290
- 302, /* (402) vtabarg ::= vtabarg vtabargtoken */
177291
- 305, /* (403) anylist ::= */
177292
- 305, /* (404) anylist ::= anylist LP anylist RP */
177293
- 305, /* (405) anylist ::= anylist ANY */
177294
- 268, /* (406) with ::= */
177295
- 309, /* (407) windowdefn_list ::= windowdefn */
177296
- 311, /* (408) window ::= frame_opt */
176994
+ 191, /* (0) explain ::= EXPLAIN */
176995
+ 191, /* (1) explain ::= EXPLAIN QUERY PLAN */
176996
+ 190, /* (2) cmdx ::= cmd */
176997
+ 192, /* (3) cmd ::= BEGIN transtype trans_opt */
176998
+ 193, /* (4) transtype ::= */
176999
+ 193, /* (5) transtype ::= DEFERRED */
177000
+ 193, /* (6) transtype ::= IMMEDIATE */
177001
+ 193, /* (7) transtype ::= EXCLUSIVE */
177002
+ 192, /* (8) cmd ::= COMMIT|END trans_opt */
177003
+ 192, /* (9) cmd ::= ROLLBACK trans_opt */
177004
+ 192, /* (10) cmd ::= SAVEPOINT nm */
177005
+ 192, /* (11) cmd ::= RELEASE savepoint_opt nm */
177006
+ 192, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
177007
+ 197, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
177008
+ 199, /* (14) createkw ::= CREATE */
177009
+ 201, /* (15) ifnotexists ::= */
177010
+ 201, /* (16) ifnotexists ::= IF NOT EXISTS */
177011
+ 200, /* (17) temp ::= TEMP */
177012
+ 200, /* (18) temp ::= */
177013
+ 198, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */
177014
+ 198, /* (20) create_table_args ::= AS select */
177015
+ 205, /* (21) table_option_set ::= */
177016
+ 205, /* (22) table_option_set ::= table_option_set COMMA table_option */
177017
+ 207, /* (23) table_option ::= WITHOUT nm */
177018
+ 207, /* (24) table_option ::= nm */
177019
+ 208, /* (25) columnname ::= nm typetoken */
177020
+ 210, /* (26) typetoken ::= */
177021
+ 210, /* (27) typetoken ::= typename LP signed RP */
177022
+ 210, /* (28) typetoken ::= typename LP signed COMMA signed RP */
177023
+ 211, /* (29) typename ::= typename ID|STRING */
177024
+ 215, /* (30) scanpt ::= */
177025
+ 216, /* (31) scantok ::= */
177026
+ 217, /* (32) ccons ::= CONSTRAINT nm */
177027
+ 217, /* (33) ccons ::= DEFAULT scantok term */
177028
+ 217, /* (34) ccons ::= DEFAULT LP expr RP */
177029
+ 217, /* (35) ccons ::= DEFAULT PLUS scantok term */
177030
+ 217, /* (36) ccons ::= DEFAULT MINUS scantok term */
177031
+ 217, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */
177032
+ 217, /* (38) ccons ::= NOT NULL onconf */
177033
+ 217, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */
177034
+ 217, /* (40) ccons ::= UNIQUE onconf */
177035
+ 217, /* (41) ccons ::= CHECK LP expr RP */
177036
+ 217, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */
177037
+ 217, /* (43) ccons ::= defer_subclause */
177038
+ 217, /* (44) ccons ::= COLLATE ID|STRING */
177039
+ 226, /* (45) generated ::= LP expr RP */
177040
+ 226, /* (46) generated ::= LP expr RP ID */
177041
+ 222, /* (47) autoinc ::= */
177042
+ 222, /* (48) autoinc ::= AUTOINCR */
177043
+ 224, /* (49) refargs ::= */
177044
+ 224, /* (50) refargs ::= refargs refarg */
177045
+ 227, /* (51) refarg ::= MATCH nm */
177046
+ 227, /* (52) refarg ::= ON INSERT refact */
177047
+ 227, /* (53) refarg ::= ON DELETE refact */
177048
+ 227, /* (54) refarg ::= ON UPDATE refact */
177049
+ 228, /* (55) refact ::= SET NULL */
177050
+ 228, /* (56) refact ::= SET DEFAULT */
177051
+ 228, /* (57) refact ::= CASCADE */
177052
+ 228, /* (58) refact ::= RESTRICT */
177053
+ 228, /* (59) refact ::= NO ACTION */
177054
+ 225, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
177055
+ 225, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
177056
+ 229, /* (62) init_deferred_pred_opt ::= */
177057
+ 229, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */
177058
+ 229, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
177059
+ 204, /* (65) conslist_opt ::= */
177060
+ 231, /* (66) tconscomma ::= COMMA */
177061
+ 232, /* (67) tcons ::= CONSTRAINT nm */
177062
+ 232, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
177063
+ 232, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */
177064
+ 232, /* (70) tcons ::= CHECK LP expr RP onconf */
177065
+ 232, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
177066
+ 235, /* (72) defer_subclause_opt ::= */
177067
+ 220, /* (73) onconf ::= */
177068
+ 220, /* (74) onconf ::= ON CONFLICT resolvetype */
177069
+ 236, /* (75) orconf ::= */
177070
+ 236, /* (76) orconf ::= OR resolvetype */
177071
+ 237, /* (77) resolvetype ::= IGNORE */
177072
+ 237, /* (78) resolvetype ::= REPLACE */
177073
+ 192, /* (79) cmd ::= DROP TABLE ifexists fullname */
177074
+ 239, /* (80) ifexists ::= IF EXISTS */
177075
+ 239, /* (81) ifexists ::= */
177076
+ 192, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
177077
+ 192, /* (83) cmd ::= DROP VIEW ifexists fullname */
177078
+ 192, /* (84) cmd ::= select */
177079
+ 206, /* (85) select ::= WITH wqlist selectnowith */
177080
+ 206, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */
177081
+ 206, /* (87) select ::= selectnowith */
177082
+ 241, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */
177083
+ 244, /* (89) multiselect_op ::= UNION */
177084
+ 244, /* (90) multiselect_op ::= UNION ALL */
177085
+ 244, /* (91) multiselect_op ::= EXCEPT|INTERSECT */
177086
+ 242, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
177087
+ 242, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
177088
+ 254, /* (94) values ::= VALUES LP nexprlist RP */
177089
+ 242, /* (95) oneselect ::= mvalues */
177090
+ 256, /* (96) mvalues ::= values COMMA LP nexprlist RP */
177091
+ 256, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */
177092
+ 245, /* (98) distinct ::= DISTINCT */
177093
+ 245, /* (99) distinct ::= ALL */
177094
+ 245, /* (100) distinct ::= */
177095
+ 257, /* (101) sclp ::= */
177096
+ 246, /* (102) selcollist ::= sclp scanpt expr scanpt as */
177097
+ 246, /* (103) selcollist ::= sclp scanpt STAR */
177098
+ 246, /* (104) selcollist ::= sclp scanpt nm DOT STAR */
177099
+ 258, /* (105) as ::= AS nm */
177100
+ 258, /* (106) as ::= */
177101
+ 247, /* (107) from ::= */
177102
+ 247, /* (108) from ::= FROM seltablist */
177103
+ 260, /* (109) stl_prefix ::= seltablist joinop */
177104
+ 260, /* (110) stl_prefix ::= */
177105
+ 259, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */
177106
+ 259, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
177107
+ 259, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
177108
+ 259, /* (114) seltablist ::= stl_prefix LP select RP as on_using */
177109
+ 259, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */
177110
+ 202, /* (116) dbnm ::= */
177111
+ 202, /* (117) dbnm ::= DOT nm */
177112
+ 240, /* (118) fullname ::= nm */
177113
+ 240, /* (119) fullname ::= nm DOT nm */
177114
+ 265, /* (120) xfullname ::= nm */
177115
+ 265, /* (121) xfullname ::= nm DOT nm */
177116
+ 265, /* (122) xfullname ::= nm DOT nm AS nm */
177117
+ 265, /* (123) xfullname ::= nm AS nm */
177118
+ 261, /* (124) joinop ::= COMMA|JOIN */
177119
+ 261, /* (125) joinop ::= JOIN_KW JOIN */
177120
+ 261, /* (126) joinop ::= JOIN_KW nm JOIN */
177121
+ 261, /* (127) joinop ::= JOIN_KW nm nm JOIN */
177122
+ 262, /* (128) on_using ::= ON expr */
177123
+ 262, /* (129) on_using ::= USING LP idlist RP */
177124
+ 262, /* (130) on_using ::= */
177125
+ 267, /* (131) indexed_opt ::= */
177126
+ 263, /* (132) indexed_by ::= INDEXED BY nm */
177127
+ 263, /* (133) indexed_by ::= NOT INDEXED */
177128
+ 251, /* (134) orderby_opt ::= */
177129
+ 251, /* (135) orderby_opt ::= ORDER BY sortlist */
177130
+ 233, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */
177131
+ 233, /* (137) sortlist ::= expr sortorder nulls */
177132
+ 221, /* (138) sortorder ::= ASC */
177133
+ 221, /* (139) sortorder ::= DESC */
177134
+ 221, /* (140) sortorder ::= */
177135
+ 268, /* (141) nulls ::= NULLS FIRST */
177136
+ 268, /* (142) nulls ::= NULLS LAST */
177137
+ 268, /* (143) nulls ::= */
177138
+ 249, /* (144) groupby_opt ::= */
177139
+ 249, /* (145) groupby_opt ::= GROUP BY nexprlist */
177140
+ 250, /* (146) having_opt ::= */
177141
+ 250, /* (147) having_opt ::= HAVING expr */
177142
+ 252, /* (148) limit_opt ::= */
177143
+ 252, /* (149) limit_opt ::= LIMIT expr */
177144
+ 252, /* (150) limit_opt ::= LIMIT expr OFFSET expr */
177145
+ 252, /* (151) limit_opt ::= LIMIT expr COMMA expr */
177146
+ 192, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
177147
+ 248, /* (153) where_opt ::= */
177148
+ 248, /* (154) where_opt ::= WHERE expr */
177149
+ 270, /* (155) where_opt_ret ::= */
177150
+ 270, /* (156) where_opt_ret ::= WHERE expr */
177151
+ 270, /* (157) where_opt_ret ::= RETURNING selcollist */
177152
+ 270, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */
177153
+ 192, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
177154
+ 271, /* (160) setlist ::= setlist COMMA nm EQ expr */
177155
+ 271, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */
177156
+ 271, /* (162) setlist ::= nm EQ expr */
177157
+ 271, /* (163) setlist ::= LP idlist RP EQ expr */
177158
+ 192, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
177159
+ 192, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
177160
+ 274, /* (166) upsert ::= */
177161
+ 274, /* (167) upsert ::= RETURNING selcollist */
177162
+ 274, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
177163
+ 274, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
177164
+ 274, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */
177165
+ 274, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
177166
+ 275, /* (172) returning ::= RETURNING selcollist */
177167
+ 272, /* (173) insert_cmd ::= INSERT orconf */
177168
+ 272, /* (174) insert_cmd ::= REPLACE */
177169
+ 273, /* (175) idlist_opt ::= */
177170
+ 273, /* (176) idlist_opt ::= LP idlist RP */
177171
+ 266, /* (177) idlist ::= idlist COMMA nm */
177172
+ 266, /* (178) idlist ::= nm */
177173
+ 219, /* (179) expr ::= LP expr RP */
177174
+ 219, /* (180) expr ::= ID|INDEXED|JOIN_KW */
177175
+ 219, /* (181) expr ::= nm DOT nm */
177176
+ 219, /* (182) expr ::= nm DOT nm DOT nm */
177177
+ 218, /* (183) term ::= NULL|FLOAT|BLOB */
177178
+ 218, /* (184) term ::= STRING */
177179
+ 218, /* (185) term ::= INTEGER */
177180
+ 219, /* (186) expr ::= VARIABLE */
177181
+ 219, /* (187) expr ::= expr COLLATE ID|STRING */
177182
+ 219, /* (188) expr ::= CAST LP expr AS typetoken RP */
177183
+ 219, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
177184
+ 219, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
177185
+ 219, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
177186
+ 219, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
177187
+ 219, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
177188
+ 219, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
177189
+ 218, /* (195) term ::= CTIME_KW */
177190
+ 219, /* (196) expr ::= LP nexprlist COMMA expr RP */
177191
+ 219, /* (197) expr ::= expr AND expr */
177192
+ 219, /* (198) expr ::= expr OR expr */
177193
+ 219, /* (199) expr ::= expr LT|GT|GE|LE expr */
177194
+ 219, /* (200) expr ::= expr EQ|NE expr */
177195
+ 219, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
177196
+ 219, /* (202) expr ::= expr PLUS|MINUS expr */
177197
+ 219, /* (203) expr ::= expr STAR|SLASH|REM expr */
177198
+ 219, /* (204) expr ::= expr CONCAT expr */
177199
+ 277, /* (205) likeop ::= NOT LIKE_KW|MATCH */
177200
+ 219, /* (206) expr ::= expr likeop expr */
177201
+ 219, /* (207) expr ::= expr likeop expr ESCAPE expr */
177202
+ 219, /* (208) expr ::= expr ISNULL|NOTNULL */
177203
+ 219, /* (209) expr ::= expr NOT NULL */
177204
+ 219, /* (210) expr ::= expr IS expr */
177205
+ 219, /* (211) expr ::= expr IS NOT expr */
177206
+ 219, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */
177207
+ 219, /* (213) expr ::= expr IS DISTINCT FROM expr */
177208
+ 219, /* (214) expr ::= NOT expr */
177209
+ 219, /* (215) expr ::= BITNOT expr */
177210
+ 219, /* (216) expr ::= PLUS|MINUS expr */
177211
+ 219, /* (217) expr ::= expr PTR expr */
177212
+ 278, /* (218) between_op ::= BETWEEN */
177213
+ 278, /* (219) between_op ::= NOT BETWEEN */
177214
+ 219, /* (220) expr ::= expr between_op expr AND expr */
177215
+ 279, /* (221) in_op ::= IN */
177216
+ 279, /* (222) in_op ::= NOT IN */
177217
+ 219, /* (223) expr ::= expr in_op LP exprlist RP */
177218
+ 219, /* (224) expr ::= LP select RP */
177219
+ 219, /* (225) expr ::= expr in_op LP select RP */
177220
+ 219, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */
177221
+ 219, /* (227) expr ::= EXISTS LP select RP */
177222
+ 219, /* (228) expr ::= CASE case_operand case_exprlist case_else END */
177223
+ 282, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */
177224
+ 282, /* (230) case_exprlist ::= WHEN expr THEN expr */
177225
+ 283, /* (231) case_else ::= ELSE expr */
177226
+ 283, /* (232) case_else ::= */
177227
+ 281, /* (233) case_operand ::= */
177228
+ 264, /* (234) exprlist ::= */
177229
+ 255, /* (235) nexprlist ::= nexprlist COMMA expr */
177230
+ 255, /* (236) nexprlist ::= expr */
177231
+ 280, /* (237) paren_exprlist ::= */
177232
+ 280, /* (238) paren_exprlist ::= LP exprlist RP */
177233
+ 192, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
177234
+ 284, /* (240) uniqueflag ::= UNIQUE */
177235
+ 284, /* (241) uniqueflag ::= */
177236
+ 223, /* (242) eidlist_opt ::= */
177237
+ 223, /* (243) eidlist_opt ::= LP eidlist RP */
177238
+ 234, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */
177239
+ 234, /* (245) eidlist ::= nm collate sortorder */
177240
+ 285, /* (246) collate ::= */
177241
+ 285, /* (247) collate ::= COLLATE ID|STRING */
177242
+ 192, /* (248) cmd ::= DROP INDEX ifexists fullname */
177243
+ 192, /* (249) cmd ::= VACUUM vinto */
177244
+ 192, /* (250) cmd ::= VACUUM nm vinto */
177245
+ 286, /* (251) vinto ::= INTO expr */
177246
+ 286, /* (252) vinto ::= */
177247
+ 192, /* (253) cmd ::= PRAGMA nm dbnm */
177248
+ 192, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */
177249
+ 192, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */
177250
+ 192, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */
177251
+ 192, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */
177252
+ 213, /* (258) plus_num ::= PLUS INTEGER|FLOAT */
177253
+ 214, /* (259) minus_num ::= MINUS INTEGER|FLOAT */
177254
+ 192, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
177255
+ 288, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
177256
+ 290, /* (262) trigger_time ::= BEFORE|AFTER */
177257
+ 290, /* (263) trigger_time ::= INSTEAD OF */
177258
+ 290, /* (264) trigger_time ::= */
177259
+ 291, /* (265) trigger_event ::= DELETE|INSERT */
177260
+ 291, /* (266) trigger_event ::= UPDATE */
177261
+ 291, /* (267) trigger_event ::= UPDATE OF idlist */
177262
+ 293, /* (268) when_clause ::= */
177263
+ 293, /* (269) when_clause ::= WHEN expr */
177264
+ 289, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
177265
+ 289, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */
177266
+ 295, /* (272) trnm ::= nm DOT nm */
177267
+ 296, /* (273) tridxby ::= INDEXED BY nm */
177268
+ 296, /* (274) tridxby ::= NOT INDEXED */
177269
+ 294, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
177270
+ 294, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
177271
+ 294, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
177272
+ 294, /* (278) trigger_cmd ::= scanpt select scanpt */
177273
+ 219, /* (279) expr ::= RAISE LP IGNORE RP */
177274
+ 219, /* (280) expr ::= RAISE LP raisetype COMMA expr RP */
177275
+ 238, /* (281) raisetype ::= ROLLBACK */
177276
+ 238, /* (282) raisetype ::= ABORT */
177277
+ 238, /* (283) raisetype ::= FAIL */
177278
+ 192, /* (284) cmd ::= DROP TRIGGER ifexists fullname */
177279
+ 192, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
177280
+ 192, /* (286) cmd ::= DETACH database_kw_opt expr */
177281
+ 298, /* (287) key_opt ::= */
177282
+ 298, /* (288) key_opt ::= KEY expr */
177283
+ 192, /* (289) cmd ::= REINDEX */
177284
+ 192, /* (290) cmd ::= REINDEX nm dbnm */
177285
+ 192, /* (291) cmd ::= ANALYZE */
177286
+ 192, /* (292) cmd ::= ANALYZE nm dbnm */
177287
+ 192, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */
177288
+ 192, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
177289
+ 192, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
177290
+ 299, /* (296) add_column_fullname ::= fullname */
177291
+ 192, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
177292
+ 192, /* (298) cmd ::= create_vtab */
177293
+ 192, /* (299) cmd ::= create_vtab LP vtabarglist RP */
177294
+ 301, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
177295
+ 303, /* (301) vtabarg ::= */
177296
+ 304, /* (302) vtabargtoken ::= ANY */
177297
+ 304, /* (303) vtabargtoken ::= lp anylist RP */
177298
+ 305, /* (304) lp ::= LP */
177299
+ 269, /* (305) with ::= WITH wqlist */
177300
+ 269, /* (306) with ::= WITH RECURSIVE wqlist */
177301
+ 308, /* (307) wqas ::= AS */
177302
+ 308, /* (308) wqas ::= AS MATERIALIZED */
177303
+ 308, /* (309) wqas ::= AS NOT MATERIALIZED */
177304
+ 307, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */
177305
+ 309, /* (311) withnm ::= nm */
177306
+ 243, /* (312) wqlist ::= wqitem */
177307
+ 243, /* (313) wqlist ::= wqlist COMMA wqitem */
177308
+ 310, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */
177309
+ 311, /* (315) windowdefn ::= nm AS LP window RP */
177310
+ 312, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
177311
+ 312, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
177312
+ 312, /* (318) window ::= ORDER BY sortlist frame_opt */
177313
+ 312, /* (319) window ::= nm ORDER BY sortlist frame_opt */
177314
+ 312, /* (320) window ::= nm frame_opt */
177315
+ 313, /* (321) frame_opt ::= */
177316
+ 313, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
177317
+ 313, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
177318
+ 317, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */
177319
+ 319, /* (325) frame_bound_s ::= frame_bound */
177320
+ 319, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */
177321
+ 320, /* (327) frame_bound_e ::= frame_bound */
177322
+ 320, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */
177323
+ 318, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */
177324
+ 318, /* (330) frame_bound ::= CURRENT ROW */
177325
+ 321, /* (331) frame_exclude_opt ::= */
177326
+ 321, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */
177327
+ 322, /* (333) frame_exclude ::= NO OTHERS */
177328
+ 322, /* (334) frame_exclude ::= CURRENT ROW */
177329
+ 322, /* (335) frame_exclude ::= GROUP|TIES */
177330
+ 253, /* (336) window_clause ::= WINDOW windowdefn_list */
177331
+ 276, /* (337) filter_over ::= filter_clause over_clause */
177332
+ 276, /* (338) filter_over ::= over_clause */
177333
+ 276, /* (339) filter_over ::= filter_clause */
177334
+ 316, /* (340) over_clause ::= OVER LP window RP */
177335
+ 316, /* (341) over_clause ::= OVER nm */
177336
+ 315, /* (342) filter_clause ::= FILTER LP WHERE expr RP */
177337
+ 218, /* (343) term ::= QNUMBER */
177338
+ 187, /* (344) input ::= cmdlist */
177339
+ 188, /* (345) cmdlist ::= cmdlist ecmd */
177340
+ 188, /* (346) cmdlist ::= ecmd */
177341
+ 189, /* (347) ecmd ::= SEMI */
177342
+ 189, /* (348) ecmd ::= cmdx SEMI */
177343
+ 189, /* (349) ecmd ::= explain cmdx SEMI */
177344
+ 194, /* (350) trans_opt ::= */
177345
+ 194, /* (351) trans_opt ::= TRANSACTION */
177346
+ 194, /* (352) trans_opt ::= TRANSACTION nm */
177347
+ 196, /* (353) savepoint_opt ::= SAVEPOINT */
177348
+ 196, /* (354) savepoint_opt ::= */
177349
+ 192, /* (355) cmd ::= create_table create_table_args */
177350
+ 205, /* (356) table_option_set ::= table_option */
177351
+ 203, /* (357) columnlist ::= columnlist COMMA columnname carglist */
177352
+ 203, /* (358) columnlist ::= columnname carglist */
177353
+ 195, /* (359) nm ::= ID|INDEXED|JOIN_KW */
177354
+ 195, /* (360) nm ::= STRING */
177355
+ 210, /* (361) typetoken ::= typename */
177356
+ 211, /* (362) typename ::= ID|STRING */
177357
+ 212, /* (363) signed ::= plus_num */
177358
+ 212, /* (364) signed ::= minus_num */
177359
+ 209, /* (365) carglist ::= carglist ccons */
177360
+ 209, /* (366) carglist ::= */
177361
+ 217, /* (367) ccons ::= NULL onconf */
177362
+ 217, /* (368) ccons ::= GENERATED ALWAYS AS generated */
177363
+ 217, /* (369) ccons ::= AS generated */
177364
+ 204, /* (370) conslist_opt ::= COMMA conslist */
177365
+ 230, /* (371) conslist ::= conslist tconscomma tcons */
177366
+ 230, /* (372) conslist ::= tcons */
177367
+ 231, /* (373) tconscomma ::= */
177368
+ 235, /* (374) defer_subclause_opt ::= defer_subclause */
177369
+ 237, /* (375) resolvetype ::= raisetype */
177370
+ 241, /* (376) selectnowith ::= oneselect */
177371
+ 242, /* (377) oneselect ::= values */
177372
+ 257, /* (378) sclp ::= selcollist COMMA */
177373
+ 258, /* (379) as ::= ID|STRING */
177374
+ 267, /* (380) indexed_opt ::= indexed_by */
177375
+ 275, /* (381) returning ::= */
177376
+ 219, /* (382) expr ::= term */
177377
+ 277, /* (383) likeop ::= LIKE_KW|MATCH */
177378
+ 281, /* (384) case_operand ::= expr */
177379
+ 264, /* (385) exprlist ::= nexprlist */
177380
+ 287, /* (386) nmnum ::= plus_num */
177381
+ 287, /* (387) nmnum ::= nm */
177382
+ 287, /* (388) nmnum ::= ON */
177383
+ 287, /* (389) nmnum ::= DELETE */
177384
+ 287, /* (390) nmnum ::= DEFAULT */
177385
+ 213, /* (391) plus_num ::= INTEGER|FLOAT */
177386
+ 292, /* (392) foreach_clause ::= */
177387
+ 292, /* (393) foreach_clause ::= FOR EACH ROW */
177388
+ 295, /* (394) trnm ::= nm */
177389
+ 296, /* (395) tridxby ::= */
177390
+ 297, /* (396) database_kw_opt ::= DATABASE */
177391
+ 297, /* (397) database_kw_opt ::= */
177392
+ 300, /* (398) kwcolumn_opt ::= */
177393
+ 300, /* (399) kwcolumn_opt ::= COLUMNKW */
177394
+ 302, /* (400) vtabarglist ::= vtabarg */
177395
+ 302, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */
177396
+ 303, /* (402) vtabarg ::= vtabarg vtabargtoken */
177397
+ 306, /* (403) anylist ::= */
177398
+ 306, /* (404) anylist ::= anylist LP anylist RP */
177399
+ 306, /* (405) anylist ::= anylist ANY */
177400
+ 269, /* (406) with ::= */
177401
+ 310, /* (407) windowdefn_list ::= windowdefn */
177402
+ 312, /* (408) window ::= frame_opt */
177297177403
};
177298177404
177299177405
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
177300177406
** of symbols on the right-hand side of that rule. */
177301177407
static const signed char yyRuleInfoNRhs[] = {
@@ -177757,20 +177863,20 @@
177757177863
break;
177758177864
case 2: /* cmdx ::= cmd */
177759177865
{ sqlite3FinishCoding(pParse); }
177760177866
break;
177761177867
case 3: /* cmd ::= BEGIN transtype trans_opt */
177762
-{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy144);}
177868
+{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy502);}
177763177869
break;
177764177870
case 4: /* transtype ::= */
177765
-{yymsp[1].minor.yy144 = TK_DEFERRED;}
177871
+{yymsp[1].minor.yy502 = TK_DEFERRED;}
177766177872
break;
177767177873
case 5: /* transtype ::= DEFERRED */
177768177874
case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
177769177875
case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
177770177876
case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324);
177771
-{yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/}
177877
+{yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/}
177772177878
break;
177773177879
case 8: /* cmd ::= COMMIT|END trans_opt */
177774177880
case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
177775177881
{sqlite3EndTransaction(pParse,yymsp[-1].major);}
177776177882
break;
@@ -177789,11 +177895,11 @@
177789177895
sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
177790177896
}
177791177897
break;
177792177898
case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
177793177899
{
177794
- sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy144,0,0,yymsp[-2].minor.yy144);
177900
+ sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy502,0,0,yymsp[-2].minor.yy502);
177795177901
}
177796177902
break;
177797177903
case 14: /* createkw ::= CREATE */
177798177904
{disableLookaside(pParse);}
177799177905
break;
@@ -177803,56 +177909,56 @@
177803177909
case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62);
177804177910
case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72);
177805177911
case 81: /* ifexists ::= */ yytestcase(yyruleno==81);
177806177912
case 100: /* distinct ::= */ yytestcase(yyruleno==100);
177807177913
case 246: /* collate ::= */ yytestcase(yyruleno==246);
177808
-{yymsp[1].minor.yy144 = 0;}
177914
+{yymsp[1].minor.yy502 = 0;}
177809177915
break;
177810177916
case 16: /* ifnotexists ::= IF NOT EXISTS */
177811
-{yymsp[-2].minor.yy144 = 1;}
177917
+{yymsp[-2].minor.yy502 = 1;}
177812177918
break;
177813177919
case 17: /* temp ::= TEMP */
177814
-{yymsp[0].minor.yy144 = pParse->db->init.busy==0;}
177920
+{yymsp[0].minor.yy502 = pParse->db->init.busy==0;}
177815177921
break;
177816177922
case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */
177817177923
{
177818
- sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy391,0);
177924
+ sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy9,0);
177819177925
}
177820177926
break;
177821177927
case 20: /* create_table_args ::= AS select */
177822177928
{
177823
- sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy555);
177824
- sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555);
177929
+ sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy637);
177930
+ sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy637);
177825177931
}
177826177932
break;
177827177933
case 21: /* table_option_set ::= */
177828
-{yymsp[1].minor.yy391 = 0;}
177934
+{yymsp[1].minor.yy9 = 0;}
177829177935
break;
177830177936
case 22: /* table_option_set ::= table_option_set COMMA table_option */
177831
-{yylhsminor.yy391 = yymsp[-2].minor.yy391|yymsp[0].minor.yy391;}
177832
- yymsp[-2].minor.yy391 = yylhsminor.yy391;
177937
+{yylhsminor.yy9 = yymsp[-2].minor.yy9|yymsp[0].minor.yy9;}
177938
+ yymsp[-2].minor.yy9 = yylhsminor.yy9;
177833177939
break;
177834177940
case 23: /* table_option ::= WITHOUT nm */
177835177941
{
177836177942
if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
177837
- yymsp[-1].minor.yy391 = TF_WithoutRowid | TF_NoVisibleRowid;
177943
+ yymsp[-1].minor.yy9 = TF_WithoutRowid | TF_NoVisibleRowid;
177838177944
}else{
177839
- yymsp[-1].minor.yy391 = 0;
177945
+ yymsp[-1].minor.yy9 = 0;
177840177946
sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
177841177947
}
177842177948
}
177843177949
break;
177844177950
case 24: /* table_option ::= nm */
177845177951
{
177846177952
if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){
177847
- yylhsminor.yy391 = TF_Strict;
177953
+ yylhsminor.yy9 = TF_Strict;
177848177954
}else{
177849
- yylhsminor.yy391 = 0;
177955
+ yylhsminor.yy9 = 0;
177850177956
sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
177851177957
}
177852177958
}
177853
- yymsp[0].minor.yy391 = yylhsminor.yy391;
177959
+ yymsp[0].minor.yy9 = yylhsminor.yy9;
177854177960
break;
177855177961
case 25: /* columnname ::= nm typetoken */
177856177962
{sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);}
177857177963
break;
177858177964
case 26: /* typetoken ::= */
@@ -177874,11 +177980,11 @@
177874177980
{yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
177875177981
break;
177876177982
case 30: /* scanpt ::= */
177877177983
{
177878177984
assert( yyLookahead!=YYNOCODE );
177879
- yymsp[1].minor.yy168 = yyLookaheadToken.z;
177985
+ yymsp[1].minor.yy342 = yyLookaheadToken.z;
177880177986
}
177881177987
break;
177882177988
case 31: /* scantok ::= */
177883177989
{
177884177990
assert( yyLookahead!=YYNOCODE );
@@ -177888,21 +177994,21 @@
177888177994
case 32: /* ccons ::= CONSTRAINT nm */
177889177995
case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67);
177890177996
{pParse->constraintName = yymsp[0].minor.yy0;}
177891177997
break;
177892177998
case 33: /* ccons ::= DEFAULT scantok term */
177893
-{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
177999
+{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy590,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
177894178000
break;
177895178001
case 34: /* ccons ::= DEFAULT LP expr RP */
177896
-{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
178002
+{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy590,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
177897178003
break;
177898178004
case 35: /* ccons ::= DEFAULT PLUS scantok term */
177899
-{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
178005
+{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy590,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
177900178006
break;
177901178007
case 36: /* ccons ::= DEFAULT MINUS scantok term */
177902178008
{
177903
- Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy454, 0);
178009
+ Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy590, 0);
177904178010
sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);
177905178011
}
177906178012
break;
177907178013
case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */
177908178014
{
@@ -177913,262 +178019,262 @@
177913178019
}
177914178020
sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
177915178021
}
177916178022
break;
177917178023
case 38: /* ccons ::= NOT NULL onconf */
177918
-{sqlite3AddNotNull(pParse, yymsp[0].minor.yy144);}
178024
+{sqlite3AddNotNull(pParse, yymsp[0].minor.yy502);}
177919178025
break;
177920178026
case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
177921
-{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy144,yymsp[0].minor.yy144,yymsp[-2].minor.yy144);}
178027
+{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy502,yymsp[0].minor.yy502,yymsp[-2].minor.yy502);}
177922178028
break;
177923178029
case 40: /* ccons ::= UNIQUE onconf */
177924
-{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy144,0,0,0,0,
178030
+{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy502,0,0,0,0,
177925178031
SQLITE_IDXTYPE_UNIQUE);}
177926178032
break;
177927178033
case 41: /* ccons ::= CHECK LP expr RP */
177928
-{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);}
178034
+{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy590,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);}
177929178035
break;
177930178036
case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */
177931
-{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yymsp[0].minor.yy144);}
178037
+{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy402,yymsp[0].minor.yy502);}
177932178038
break;
177933178039
case 43: /* ccons ::= defer_subclause */
177934
-{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy144);}
178040
+{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy502);}
177935178041
break;
177936178042
case 44: /* ccons ::= COLLATE ID|STRING */
177937178043
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
177938178044
break;
177939178045
case 45: /* generated ::= LP expr RP */
177940
-{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy454,0);}
178046
+{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy590,0);}
177941178047
break;
177942178048
case 46: /* generated ::= LP expr RP ID */
177943
-{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy454,&yymsp[0].minor.yy0);}
178049
+{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy590,&yymsp[0].minor.yy0);}
177944178050
break;
177945178051
case 48: /* autoinc ::= AUTOINCR */
177946
-{yymsp[0].minor.yy144 = 1;}
178052
+{yymsp[0].minor.yy502 = 1;}
177947178053
break;
177948178054
case 49: /* refargs ::= */
177949
-{ yymsp[1].minor.yy144 = OE_None*0x0101; /* EV: R-19803-45884 */}
178055
+{ yymsp[1].minor.yy502 = OE_None*0x0101; /* EV: R-19803-45884 */}
177950178056
break;
177951178057
case 50: /* refargs ::= refargs refarg */
177952
-{ yymsp[-1].minor.yy144 = (yymsp[-1].minor.yy144 & ~yymsp[0].minor.yy383.mask) | yymsp[0].minor.yy383.value; }
178058
+{ yymsp[-1].minor.yy502 = (yymsp[-1].minor.yy502 & ~yymsp[0].minor.yy481.mask) | yymsp[0].minor.yy481.value; }
177953178059
break;
177954178060
case 51: /* refarg ::= MATCH nm */
177955
-{ yymsp[-1].minor.yy383.value = 0; yymsp[-1].minor.yy383.mask = 0x000000; }
178061
+{ yymsp[-1].minor.yy481.value = 0; yymsp[-1].minor.yy481.mask = 0x000000; }
177956178062
break;
177957178063
case 52: /* refarg ::= ON INSERT refact */
177958
-{ yymsp[-2].minor.yy383.value = 0; yymsp[-2].minor.yy383.mask = 0x000000; }
178064
+{ yymsp[-2].minor.yy481.value = 0; yymsp[-2].minor.yy481.mask = 0x000000; }
177959178065
break;
177960178066
case 53: /* refarg ::= ON DELETE refact */
177961
-{ yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144; yymsp[-2].minor.yy383.mask = 0x0000ff; }
178067
+{ yymsp[-2].minor.yy481.value = yymsp[0].minor.yy502; yymsp[-2].minor.yy481.mask = 0x0000ff; }
177962178068
break;
177963178069
case 54: /* refarg ::= ON UPDATE refact */
177964
-{ yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144<<8; yymsp[-2].minor.yy383.mask = 0x00ff00; }
178070
+{ yymsp[-2].minor.yy481.value = yymsp[0].minor.yy502<<8; yymsp[-2].minor.yy481.mask = 0x00ff00; }
177965178071
break;
177966178072
case 55: /* refact ::= SET NULL */
177967
-{ yymsp[-1].minor.yy144 = OE_SetNull; /* EV: R-33326-45252 */}
178073
+{ yymsp[-1].minor.yy502 = OE_SetNull; /* EV: R-33326-45252 */}
177968178074
break;
177969178075
case 56: /* refact ::= SET DEFAULT */
177970
-{ yymsp[-1].minor.yy144 = OE_SetDflt; /* EV: R-33326-45252 */}
178076
+{ yymsp[-1].minor.yy502 = OE_SetDflt; /* EV: R-33326-45252 */}
177971178077
break;
177972178078
case 57: /* refact ::= CASCADE */
177973
-{ yymsp[0].minor.yy144 = OE_Cascade; /* EV: R-33326-45252 */}
178079
+{ yymsp[0].minor.yy502 = OE_Cascade; /* EV: R-33326-45252 */}
177974178080
break;
177975178081
case 58: /* refact ::= RESTRICT */
177976
-{ yymsp[0].minor.yy144 = OE_Restrict; /* EV: R-33326-45252 */}
178082
+{ yymsp[0].minor.yy502 = OE_Restrict; /* EV: R-33326-45252 */}
177977178083
break;
177978178084
case 59: /* refact ::= NO ACTION */
177979
-{ yymsp[-1].minor.yy144 = OE_None; /* EV: R-33326-45252 */}
178085
+{ yymsp[-1].minor.yy502 = OE_None; /* EV: R-33326-45252 */}
177980178086
break;
177981178087
case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
177982
-{yymsp[-2].minor.yy144 = 0;}
178088
+{yymsp[-2].minor.yy502 = 0;}
177983178089
break;
177984178090
case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
177985178091
case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76);
177986178092
case 173: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==173);
177987
-{yymsp[-1].minor.yy144 = yymsp[0].minor.yy144;}
178093
+{yymsp[-1].minor.yy502 = yymsp[0].minor.yy502;}
177988178094
break;
177989178095
case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
177990178096
case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80);
177991178097
case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219);
177992178098
case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222);
177993178099
case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247);
177994
-{yymsp[-1].minor.yy144 = 1;}
178100
+{yymsp[-1].minor.yy502 = 1;}
177995178101
break;
177996178102
case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
177997
-{yymsp[-1].minor.yy144 = 0;}
178103
+{yymsp[-1].minor.yy502 = 0;}
177998178104
break;
177999178105
case 66: /* tconscomma ::= COMMA */
178000178106
{pParse->constraintName.n = 0;}
178001178107
break;
178002178108
case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
178003
-{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy144,yymsp[-2].minor.yy144,0);}
178109
+{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy402,yymsp[0].minor.yy502,yymsp[-2].minor.yy502,0);}
178004178110
break;
178005178111
case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */
178006
-{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy144,0,0,0,0,
178112
+{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy402,yymsp[0].minor.yy502,0,0,0,0,
178007178113
SQLITE_IDXTYPE_UNIQUE);}
178008178114
break;
178009178115
case 70: /* tcons ::= CHECK LP expr RP onconf */
178010
-{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy454,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);}
178116
+{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy590,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);}
178011178117
break;
178012178118
case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
178013178119
{
178014
- sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy144);
178015
- sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy144);
178120
+ sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy402, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy402, yymsp[-1].minor.yy502);
178121
+ sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy502);
178016178122
}
178017178123
break;
178018178124
case 73: /* onconf ::= */
178019178125
case 75: /* orconf ::= */ yytestcase(yyruleno==75);
178020
-{yymsp[1].minor.yy144 = OE_Default;}
178126
+{yymsp[1].minor.yy502 = OE_Default;}
178021178127
break;
178022178128
case 74: /* onconf ::= ON CONFLICT resolvetype */
178023
-{yymsp[-2].minor.yy144 = yymsp[0].minor.yy144;}
178129
+{yymsp[-2].minor.yy502 = yymsp[0].minor.yy502;}
178024178130
break;
178025178131
case 77: /* resolvetype ::= IGNORE */
178026
-{yymsp[0].minor.yy144 = OE_Ignore;}
178132
+{yymsp[0].minor.yy502 = OE_Ignore;}
178027178133
break;
178028178134
case 78: /* resolvetype ::= REPLACE */
178029178135
case 174: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==174);
178030
-{yymsp[0].minor.yy144 = OE_Replace;}
178136
+{yymsp[0].minor.yy502 = OE_Replace;}
178031178137
break;
178032178138
case 79: /* cmd ::= DROP TABLE ifexists fullname */
178033178139
{
178034
- sqlite3DropTable(pParse, yymsp[0].minor.yy203, 0, yymsp[-1].minor.yy144);
178140
+ sqlite3DropTable(pParse, yymsp[0].minor.yy563, 0, yymsp[-1].minor.yy502);
178035178141
}
178036178142
break;
178037178143
case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
178038178144
{
178039
- sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[0].minor.yy555, yymsp[-7].minor.yy144, yymsp[-5].minor.yy144);
178145
+ sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy402, yymsp[0].minor.yy637, yymsp[-7].minor.yy502, yymsp[-5].minor.yy502);
178040178146
}
178041178147
break;
178042178148
case 83: /* cmd ::= DROP VIEW ifexists fullname */
178043178149
{
178044
- sqlite3DropTable(pParse, yymsp[0].minor.yy203, 1, yymsp[-1].minor.yy144);
178150
+ sqlite3DropTable(pParse, yymsp[0].minor.yy563, 1, yymsp[-1].minor.yy502);
178045178151
}
178046178152
break;
178047178153
case 84: /* cmd ::= select */
178048178154
{
178049178155
SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0};
178050178156
if( (pParse->db->mDbFlags & DBFLAG_EncodingFixed)!=0
178051178157
|| sqlite3ReadSchema(pParse)==SQLITE_OK
178052178158
){
178053
- sqlite3Select(pParse, yymsp[0].minor.yy555, &dest);
178159
+ sqlite3Select(pParse, yymsp[0].minor.yy637, &dest);
178054178160
}
178055
- sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555);
178161
+ sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy637);
178056178162
}
178057178163
break;
178058178164
case 85: /* select ::= WITH wqlist selectnowith */
178059
-{yymsp[-2].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);}
178165
+{yymsp[-2].minor.yy637 = attachWithToSelect(pParse,yymsp[0].minor.yy637,yymsp[-1].minor.yy125);}
178060178166
break;
178061178167
case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */
178062
-{yymsp[-3].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);}
178168
+{yymsp[-3].minor.yy637 = attachWithToSelect(pParse,yymsp[0].minor.yy637,yymsp[-1].minor.yy125);}
178063178169
break;
178064178170
case 87: /* select ::= selectnowith */
178065178171
{
178066
- Select *p = yymsp[0].minor.yy555;
178172
+ Select *p = yymsp[0].minor.yy637;
178067178173
if( p ){
178068178174
parserDoubleLinkSelect(pParse, p);
178069178175
}
178070178176
}
178071178177
break;
178072178178
case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */
178073178179
{
178074
- Select *pRhs = yymsp[0].minor.yy555;
178075
- Select *pLhs = yymsp[-2].minor.yy555;
178180
+ Select *pRhs = yymsp[0].minor.yy637;
178181
+ Select *pLhs = yymsp[-2].minor.yy637;
178076178182
if( pRhs && pRhs->pPrior ){
178077178183
SrcList *pFrom;
178078178184
Token x;
178079178185
x.n = 0;
178080178186
parserDoubleLinkSelect(pParse, pRhs);
178081178187
pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0);
178082178188
pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
178083178189
}
178084178190
if( pRhs ){
178085
- pRhs->op = (u8)yymsp[-1].minor.yy144;
178191
+ pRhs->op = (u8)yymsp[-1].minor.yy502;
178086178192
pRhs->pPrior = pLhs;
178087178193
if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
178088178194
pRhs->selFlags &= ~SF_MultiValue;
178089
- if( yymsp[-1].minor.yy144!=TK_ALL ) pParse->hasCompound = 1;
178195
+ if( yymsp[-1].minor.yy502!=TK_ALL ) pParse->hasCompound = 1;
178090178196
}else{
178091178197
sqlite3SelectDelete(pParse->db, pLhs);
178092178198
}
178093
- yymsp[-2].minor.yy555 = pRhs;
178199
+ yymsp[-2].minor.yy637 = pRhs;
178094178200
}
178095178201
break;
178096178202
case 89: /* multiselect_op ::= UNION */
178097178203
case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91);
178098
-{yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-OP*/}
178204
+{yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-OP*/}
178099178205
break;
178100178206
case 90: /* multiselect_op ::= UNION ALL */
178101
-{yymsp[-1].minor.yy144 = TK_ALL;}
178207
+{yymsp[-1].minor.yy502 = TK_ALL;}
178102178208
break;
178103178209
case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
178104178210
{
178105
- yymsp[-8].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy14,yymsp[-5].minor.yy203,yymsp[-4].minor.yy454,yymsp[-3].minor.yy14,yymsp[-2].minor.yy454,yymsp[-1].minor.yy14,yymsp[-7].minor.yy144,yymsp[0].minor.yy454);
178211
+ yymsp[-8].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy402,yymsp[-5].minor.yy563,yymsp[-4].minor.yy590,yymsp[-3].minor.yy402,yymsp[-2].minor.yy590,yymsp[-1].minor.yy402,yymsp[-7].minor.yy502,yymsp[0].minor.yy590);
178106178212
}
178107178213
break;
178108178214
case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
178109178215
{
178110
- yymsp[-9].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy14,yymsp[-6].minor.yy203,yymsp[-5].minor.yy454,yymsp[-4].minor.yy14,yymsp[-3].minor.yy454,yymsp[-1].minor.yy14,yymsp[-8].minor.yy144,yymsp[0].minor.yy454);
178111
- if( yymsp[-9].minor.yy555 ){
178112
- yymsp[-9].minor.yy555->pWinDefn = yymsp[-2].minor.yy211;
178216
+ yymsp[-9].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy402,yymsp[-6].minor.yy563,yymsp[-5].minor.yy590,yymsp[-4].minor.yy402,yymsp[-3].minor.yy590,yymsp[-1].minor.yy402,yymsp[-8].minor.yy502,yymsp[0].minor.yy590);
178217
+ if( yymsp[-9].minor.yy637 ){
178218
+ yymsp[-9].minor.yy637->pWinDefn = yymsp[-2].minor.yy483;
178113178219
}else{
178114
- sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy211);
178220
+ sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy483);
178115178221
}
178116178222
}
178117178223
break;
178118178224
case 94: /* values ::= VALUES LP nexprlist RP */
178119178225
{
178120
- yymsp[-3].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy14,0,0,0,0,0,SF_Values,0);
178226
+ yymsp[-3].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy402,0,0,0,0,0,SF_Values,0);
178121178227
}
178122178228
break;
178123178229
case 95: /* oneselect ::= mvalues */
178124178230
{
178125
- sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy555);
178231
+ sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy637);
178126178232
}
178127178233
break;
178128178234
case 96: /* mvalues ::= values COMMA LP nexprlist RP */
178129178235
case 97: /* mvalues ::= mvalues COMMA LP nexprlist RP */ yytestcase(yyruleno==97);
178130178236
{
178131
- yymsp[-4].minor.yy555 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy555, yymsp[-1].minor.yy14);
178237
+ yymsp[-4].minor.yy637 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy637, yymsp[-1].minor.yy402);
178132178238
}
178133178239
break;
178134178240
case 98: /* distinct ::= DISTINCT */
178135
-{yymsp[0].minor.yy144 = SF_Distinct;}
178241
+{yymsp[0].minor.yy502 = SF_Distinct;}
178136178242
break;
178137178243
case 99: /* distinct ::= ALL */
178138
-{yymsp[0].minor.yy144 = SF_All;}
178244
+{yymsp[0].minor.yy502 = SF_All;}
178139178245
break;
178140178246
case 101: /* sclp ::= */
178141178247
case 134: /* orderby_opt ::= */ yytestcase(yyruleno==134);
178142178248
case 144: /* groupby_opt ::= */ yytestcase(yyruleno==144);
178143178249
case 234: /* exprlist ::= */ yytestcase(yyruleno==234);
178144178250
case 237: /* paren_exprlist ::= */ yytestcase(yyruleno==237);
178145178251
case 242: /* eidlist_opt ::= */ yytestcase(yyruleno==242);
178146
-{yymsp[1].minor.yy14 = 0;}
178252
+{yymsp[1].minor.yy402 = 0;}
178147178253
break;
178148178254
case 102: /* selcollist ::= sclp scanpt expr scanpt as */
178149178255
{
178150
- yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[-2].minor.yy454);
178151
- if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[0].minor.yy0, 1);
178152
- sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy14,yymsp[-3].minor.yy168,yymsp[-1].minor.yy168);
178256
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy402, yymsp[-2].minor.yy590);
178257
+ if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy402, &yymsp[0].minor.yy0, 1);
178258
+ sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy402,yymsp[-3].minor.yy342,yymsp[-1].minor.yy342);
178153178259
}
178154178260
break;
178155178261
case 103: /* selcollist ::= sclp scanpt STAR */
178156178262
{
178157178263
Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
178158178264
sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail));
178159
- yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy14, p);
178265
+ yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy402, p);
178160178266
}
178161178267
break;
178162178268
case 104: /* selcollist ::= sclp scanpt nm DOT STAR */
178163178269
{
178164178270
Expr *pRight, *pLeft, *pDot;
178165178271
pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
178166178272
sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail));
178167178273
pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0);
178168178274
pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
178169
- yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, pDot);
178275
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, pDot);
178170178276
}
178171178277
break;
178172178278
case 105: /* as ::= AS nm */
178173178279
case 117: /* dbnm ::= DOT nm */ yytestcase(yyruleno==117);
178174178280
case 258: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==258);
@@ -178175,54 +178281,54 @@
178175178281
case 259: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==259);
178176178282
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
178177178283
break;
178178178284
case 107: /* from ::= */
178179178285
case 110: /* stl_prefix ::= */ yytestcase(yyruleno==110);
178180
-{yymsp[1].minor.yy203 = 0;}
178286
+{yymsp[1].minor.yy563 = 0;}
178181178287
break;
178182178288
case 108: /* from ::= FROM seltablist */
178183178289
{
178184
- yymsp[-1].minor.yy203 = yymsp[0].minor.yy203;
178185
- sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy203);
178290
+ yymsp[-1].minor.yy563 = yymsp[0].minor.yy563;
178291
+ sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy563);
178186178292
}
178187178293
break;
178188178294
case 109: /* stl_prefix ::= seltablist joinop */
178189178295
{
178190
- if( ALWAYS(yymsp[-1].minor.yy203 && yymsp[-1].minor.yy203->nSrc>0) ) yymsp[-1].minor.yy203->a[yymsp[-1].minor.yy203->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy144;
178296
+ if( ALWAYS(yymsp[-1].minor.yy563 && yymsp[-1].minor.yy563->nSrc>0) ) yymsp[-1].minor.yy563->a[yymsp[-1].minor.yy563->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy502;
178191178297
}
178192178298
break;
178193178299
case 111: /* seltablist ::= stl_prefix nm dbnm as on_using */
178194178300
{
178195
- yymsp[-4].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy203,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269);
178301
+ yymsp[-4].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy563,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421);
178196178302
}
178197178303
break;
178198178304
case 112: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
178199178305
{
178200
- yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy269);
178201
- sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-1].minor.yy0);
178306
+ yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy421);
178307
+ sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy563, &yymsp[-1].minor.yy0);
178202178308
}
178203178309
break;
178204178310
case 113: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
178205178311
{
178206
- yymsp[-7].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy203,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269);
178207
- sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy203, yymsp[-3].minor.yy14);
178312
+ yymsp[-7].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy563,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421);
178313
+ sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy563, yymsp[-3].minor.yy402);
178208178314
}
178209178315
break;
178210178316
case 114: /* seltablist ::= stl_prefix LP select RP as on_using */
178211178317
{
178212
- yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy555,&yymsp[0].minor.yy269);
178318
+ yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy637,&yymsp[0].minor.yy421);
178213178319
}
178214178320
break;
178215178321
case 115: /* seltablist ::= stl_prefix LP seltablist RP as on_using */
178216178322
{
178217
- if( yymsp[-5].minor.yy203==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy269.pOn==0 && yymsp[0].minor.yy269.pUsing==0 ){
178218
- yymsp[-5].minor.yy203 = yymsp[-3].minor.yy203;
178219
- }else if( ALWAYS(yymsp[-3].minor.yy203!=0) && yymsp[-3].minor.yy203->nSrc==1 ){
178220
- yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269);
178221
- if( yymsp[-5].minor.yy203 ){
178222
- SrcItem *pNew = &yymsp[-5].minor.yy203->a[yymsp[-5].minor.yy203->nSrc-1];
178223
- SrcItem *pOld = yymsp[-3].minor.yy203->a;
178323
+ if( yymsp[-5].minor.yy563==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy421.pOn==0 && yymsp[0].minor.yy421.pUsing==0 ){
178324
+ yymsp[-5].minor.yy563 = yymsp[-3].minor.yy563;
178325
+ }else if( ALWAYS(yymsp[-3].minor.yy563!=0) && yymsp[-3].minor.yy563->nSrc==1 ){
178326
+ yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421);
178327
+ if( yymsp[-5].minor.yy563 ){
178328
+ SrcItem *pNew = &yymsp[-5].minor.yy563->a[yymsp[-5].minor.yy563->nSrc-1];
178329
+ SrcItem *pOld = yymsp[-3].minor.yy563->a;
178224178330
assert( pOld->fg.fixedSchema==0 );
178225178331
pNew->zName = pOld->zName;
178226178332
assert( pOld->fg.fixedSchema==0 );
178227178333
if( pOld->fg.isSubquery ){
178228178334
pNew->fg.isSubquery = 1;
@@ -178243,249 +178349,249 @@
178243178349
pOld->fg.isTabFunc = 0;
178244178350
pNew->fg.isTabFunc = 1;
178245178351
}
178246178352
pOld->zName = 0;
178247178353
}
178248
- sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy203);
178354
+ sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy563);
178249178355
}else{
178250178356
Select *pSubquery;
178251
- sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy203);
178252
- pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy203,0,0,0,0,SF_NestedFrom,0);
178253
- yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy269);
178357
+ sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy563);
178358
+ pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy563,0,0,0,0,SF_NestedFrom,0);
178359
+ yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy421);
178254178360
}
178255178361
}
178256178362
break;
178257178363
case 116: /* dbnm ::= */
178258178364
case 131: /* indexed_opt ::= */ yytestcase(yyruleno==131);
178259178365
{yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
178260178366
break;
178261178367
case 118: /* fullname ::= nm */
178262178368
{
178263
- yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
178264
- if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0);
178369
+ yylhsminor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
178370
+ if( IN_RENAME_OBJECT && yylhsminor.yy563 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy563->a[0].zName, &yymsp[0].minor.yy0);
178265178371
}
178266
- yymsp[0].minor.yy203 = yylhsminor.yy203;
178372
+ yymsp[0].minor.yy563 = yylhsminor.yy563;
178267178373
break;
178268178374
case 119: /* fullname ::= nm DOT nm */
178269178375
{
178270
- yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
178271
- if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0);
178376
+ yylhsminor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
178377
+ if( IN_RENAME_OBJECT && yylhsminor.yy563 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy563->a[0].zName, &yymsp[0].minor.yy0);
178272178378
}
178273
- yymsp[-2].minor.yy203 = yylhsminor.yy203;
178379
+ yymsp[-2].minor.yy563 = yylhsminor.yy563;
178274178380
break;
178275178381
case 120: /* xfullname ::= nm */
178276
-{yymsp[0].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
178382
+{yymsp[0].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
178277178383
break;
178278178384
case 121: /* xfullname ::= nm DOT nm */
178279
-{yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
178385
+{yymsp[-2].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
178280178386
break;
178281178387
case 122: /* xfullname ::= nm DOT nm AS nm */
178282178388
{
178283
- yymsp[-4].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
178284
- if( yymsp[-4].minor.yy203 ) yymsp[-4].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178389
+ yymsp[-4].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
178390
+ if( yymsp[-4].minor.yy563 ) yymsp[-4].minor.yy563->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178285178391
}
178286178392
break;
178287178393
case 123: /* xfullname ::= nm AS nm */
178288178394
{
178289
- yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
178290
- if( yymsp[-2].minor.yy203 ) yymsp[-2].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178395
+ yymsp[-2].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
178396
+ if( yymsp[-2].minor.yy563 ) yymsp[-2].minor.yy563->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178291178397
}
178292178398
break;
178293178399
case 124: /* joinop ::= COMMA|JOIN */
178294
-{ yymsp[0].minor.yy144 = JT_INNER; }
178400
+{ yymsp[0].minor.yy502 = JT_INNER; }
178295178401
break;
178296178402
case 125: /* joinop ::= JOIN_KW JOIN */
178297
-{yymsp[-1].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
178403
+{yymsp[-1].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
178298178404
break;
178299178405
case 126: /* joinop ::= JOIN_KW nm JOIN */
178300
-{yymsp[-2].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
178406
+{yymsp[-2].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
178301178407
break;
178302178408
case 127: /* joinop ::= JOIN_KW nm nm JOIN */
178303
-{yymsp[-3].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
178409
+{yymsp[-3].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
178304178410
break;
178305178411
case 128: /* on_using ::= ON expr */
178306
-{yymsp[-1].minor.yy269.pOn = yymsp[0].minor.yy454; yymsp[-1].minor.yy269.pUsing = 0;}
178412
+{yymsp[-1].minor.yy421.pOn = yymsp[0].minor.yy590; yymsp[-1].minor.yy421.pUsing = 0;}
178307178413
break;
178308178414
case 129: /* on_using ::= USING LP idlist RP */
178309
-{yymsp[-3].minor.yy269.pOn = 0; yymsp[-3].minor.yy269.pUsing = yymsp[-1].minor.yy132;}
178415
+{yymsp[-3].minor.yy421.pOn = 0; yymsp[-3].minor.yy421.pUsing = yymsp[-1].minor.yy204;}
178310178416
break;
178311178417
case 130: /* on_using ::= */
178312
-{yymsp[1].minor.yy269.pOn = 0; yymsp[1].minor.yy269.pUsing = 0;}
178418
+{yymsp[1].minor.yy421.pOn = 0; yymsp[1].minor.yy421.pUsing = 0;}
178313178419
break;
178314178420
case 132: /* indexed_by ::= INDEXED BY nm */
178315178421
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
178316178422
break;
178317178423
case 133: /* indexed_by ::= NOT INDEXED */
178318178424
{yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
178319178425
break;
178320178426
case 135: /* orderby_opt ::= ORDER BY sortlist */
178321178427
case 145: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==145);
178322
-{yymsp[-2].minor.yy14 = yymsp[0].minor.yy14;}
178428
+{yymsp[-2].minor.yy402 = yymsp[0].minor.yy402;}
178323178429
break;
178324178430
case 136: /* sortlist ::= sortlist COMMA expr sortorder nulls */
178325178431
{
178326
- yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14,yymsp[-2].minor.yy454);
178327
- sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144);
178432
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402,yymsp[-2].minor.yy590);
178433
+ sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy402,yymsp[-1].minor.yy502,yymsp[0].minor.yy502);
178328178434
}
178329178435
break;
178330178436
case 137: /* sortlist ::= expr sortorder nulls */
178331178437
{
178332
- yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy454); /*A-overwrites-Y*/
178333
- sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144);
178438
+ yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy590); /*A-overwrites-Y*/
178439
+ sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy402,yymsp[-1].minor.yy502,yymsp[0].minor.yy502);
178334178440
}
178335178441
break;
178336178442
case 138: /* sortorder ::= ASC */
178337
-{yymsp[0].minor.yy144 = SQLITE_SO_ASC;}
178443
+{yymsp[0].minor.yy502 = SQLITE_SO_ASC;}
178338178444
break;
178339178445
case 139: /* sortorder ::= DESC */
178340
-{yymsp[0].minor.yy144 = SQLITE_SO_DESC;}
178446
+{yymsp[0].minor.yy502 = SQLITE_SO_DESC;}
178341178447
break;
178342178448
case 140: /* sortorder ::= */
178343178449
case 143: /* nulls ::= */ yytestcase(yyruleno==143);
178344
-{yymsp[1].minor.yy144 = SQLITE_SO_UNDEFINED;}
178450
+{yymsp[1].minor.yy502 = SQLITE_SO_UNDEFINED;}
178345178451
break;
178346178452
case 141: /* nulls ::= NULLS FIRST */
178347
-{yymsp[-1].minor.yy144 = SQLITE_SO_ASC;}
178453
+{yymsp[-1].minor.yy502 = SQLITE_SO_ASC;}
178348178454
break;
178349178455
case 142: /* nulls ::= NULLS LAST */
178350
-{yymsp[-1].minor.yy144 = SQLITE_SO_DESC;}
178456
+{yymsp[-1].minor.yy502 = SQLITE_SO_DESC;}
178351178457
break;
178352178458
case 146: /* having_opt ::= */
178353178459
case 148: /* limit_opt ::= */ yytestcase(yyruleno==148);
178354178460
case 153: /* where_opt ::= */ yytestcase(yyruleno==153);
178355178461
case 155: /* where_opt_ret ::= */ yytestcase(yyruleno==155);
178356178462
case 232: /* case_else ::= */ yytestcase(yyruleno==232);
178357178463
case 233: /* case_operand ::= */ yytestcase(yyruleno==233);
178358178464
case 252: /* vinto ::= */ yytestcase(yyruleno==252);
178359
-{yymsp[1].minor.yy454 = 0;}
178465
+{yymsp[1].minor.yy590 = 0;}
178360178466
break;
178361178467
case 147: /* having_opt ::= HAVING expr */
178362178468
case 154: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==154);
178363178469
case 156: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==156);
178364178470
case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231);
178365178471
case 251: /* vinto ::= INTO expr */ yytestcase(yyruleno==251);
178366
-{yymsp[-1].minor.yy454 = yymsp[0].minor.yy454;}
178472
+{yymsp[-1].minor.yy590 = yymsp[0].minor.yy590;}
178367178473
break;
178368178474
case 149: /* limit_opt ::= LIMIT expr */
178369
-{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,0);}
178475
+{yymsp[-1].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy590,0);}
178370178476
break;
178371178477
case 150: /* limit_opt ::= LIMIT expr OFFSET expr */
178372
-{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);}
178478
+{yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);}
178373178479
break;
178374178480
case 151: /* limit_opt ::= LIMIT expr COMMA expr */
178375
-{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,yymsp[-2].minor.yy454);}
178481
+{yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy590,yymsp[-2].minor.yy590);}
178376178482
break;
178377178483
case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
178378178484
{
178379
- sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy203, &yymsp[-1].minor.yy0);
178380
- sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy203,yymsp[0].minor.yy454,0,0);
178485
+ sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy563, &yymsp[-1].minor.yy0);
178486
+ sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy563,yymsp[0].minor.yy590,0,0);
178381178487
}
178382178488
break;
178383178489
case 157: /* where_opt_ret ::= RETURNING selcollist */
178384
-{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-1].minor.yy454 = 0;}
178490
+{sqlite3AddReturning(pParse,yymsp[0].minor.yy402); yymsp[-1].minor.yy590 = 0;}
178385178491
break;
178386178492
case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */
178387
-{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-3].minor.yy454 = yymsp[-2].minor.yy454;}
178493
+{sqlite3AddReturning(pParse,yymsp[0].minor.yy402); yymsp[-3].minor.yy590 = yymsp[-2].minor.yy590;}
178388178494
break;
178389178495
case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
178390178496
{
178391
- sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-4].minor.yy0);
178392
- sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy14,"set list");
178393
- if( yymsp[-1].minor.yy203 ){
178394
- SrcList *pFromClause = yymsp[-1].minor.yy203;
178497
+ sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy563, &yymsp[-4].minor.yy0);
178498
+ sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy402,"set list");
178499
+ if( yymsp[-1].minor.yy563 ){
178500
+ SrcList *pFromClause = yymsp[-1].minor.yy563;
178395178501
if( pFromClause->nSrc>1 ){
178396178502
Select *pSubquery;
178397178503
Token as;
178398178504
pSubquery = sqlite3SelectNew(pParse,0,pFromClause,0,0,0,0,SF_NestedFrom,0);
178399178505
as.n = 0;
178400178506
as.z = 0;
178401178507
pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0);
178402178508
}
178403
- yymsp[-5].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy203, pFromClause);
178509
+ yymsp[-5].minor.yy563 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy563, pFromClause);
178404178510
}
178405
- sqlite3Update(pParse,yymsp[-5].minor.yy203,yymsp[-2].minor.yy14,yymsp[0].minor.yy454,yymsp[-6].minor.yy144,0,0,0);
178511
+ sqlite3Update(pParse,yymsp[-5].minor.yy563,yymsp[-2].minor.yy402,yymsp[0].minor.yy590,yymsp[-6].minor.yy502,0,0,0);
178406178512
}
178407178513
break;
178408178514
case 160: /* setlist ::= setlist COMMA nm EQ expr */
178409178515
{
178410
- yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0].minor.yy454);
178411
- sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, 1);
178516
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy402, yymsp[0].minor.yy590);
178517
+ sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy402, &yymsp[-2].minor.yy0, 1);
178412178518
}
178413178519
break;
178414178520
case 161: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
178415178521
{
178416
- yymsp[-6].minor.yy14 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy14, yymsp[-3].minor.yy132, yymsp[0].minor.yy454);
178522
+ yymsp[-6].minor.yy402 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy402, yymsp[-3].minor.yy204, yymsp[0].minor.yy590);
178417178523
}
178418178524
break;
178419178525
case 162: /* setlist ::= nm EQ expr */
178420178526
{
178421
- yylhsminor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy454);
178422
- sqlite3ExprListSetName(pParse, yylhsminor.yy14, &yymsp[-2].minor.yy0, 1);
178527
+ yylhsminor.yy402 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy590);
178528
+ sqlite3ExprListSetName(pParse, yylhsminor.yy402, &yymsp[-2].minor.yy0, 1);
178423178529
}
178424
- yymsp[-2].minor.yy14 = yylhsminor.yy14;
178530
+ yymsp[-2].minor.yy402 = yylhsminor.yy402;
178425178531
break;
178426178532
case 163: /* setlist ::= LP idlist RP EQ expr */
178427178533
{
178428
- yymsp[-4].minor.yy14 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy132, yymsp[0].minor.yy454);
178534
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy204, yymsp[0].minor.yy590);
178429178535
}
178430178536
break;
178431178537
case 164: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
178432178538
{
178433
- sqlite3Insert(pParse, yymsp[-3].minor.yy203, yymsp[-1].minor.yy555, yymsp[-2].minor.yy132, yymsp[-5].minor.yy144, yymsp[0].minor.yy122);
178539
+ sqlite3Insert(pParse, yymsp[-3].minor.yy563, yymsp[-1].minor.yy637, yymsp[-2].minor.yy204, yymsp[-5].minor.yy502, yymsp[0].minor.yy403);
178434178540
}
178435178541
break;
178436178542
case 165: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
178437178543
{
178438
- sqlite3Insert(pParse, yymsp[-4].minor.yy203, 0, yymsp[-3].minor.yy132, yymsp[-6].minor.yy144, 0);
178544
+ sqlite3Insert(pParse, yymsp[-4].minor.yy563, 0, yymsp[-3].minor.yy204, yymsp[-6].minor.yy502, 0);
178439178545
}
178440178546
break;
178441178547
case 166: /* upsert ::= */
178442
-{ yymsp[1].minor.yy122 = 0; }
178548
+{ yymsp[1].minor.yy403 = 0; }
178443178549
break;
178444178550
case 167: /* upsert ::= RETURNING selcollist */
178445
-{ yymsp[-1].minor.yy122 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy14); }
178551
+{ yymsp[-1].minor.yy403 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy402); }
178446178552
break;
178447178553
case 168: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
178448
-{ yymsp[-11].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy14,yymsp[-6].minor.yy454,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,yymsp[0].minor.yy122);}
178554
+{ yymsp[-11].minor.yy403 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy402,yymsp[-6].minor.yy590,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590,yymsp[0].minor.yy403);}
178449178555
break;
178450178556
case 169: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
178451
-{ yymsp[-8].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy14,yymsp[-3].minor.yy454,0,0,yymsp[0].minor.yy122); }
178557
+{ yymsp[-8].minor.yy403 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy402,yymsp[-3].minor.yy590,0,0,yymsp[0].minor.yy403); }
178452178558
break;
178453178559
case 170: /* upsert ::= ON CONFLICT DO NOTHING returning */
178454
-{ yymsp[-4].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); }
178560
+{ yymsp[-4].minor.yy403 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); }
178455178561
break;
178456178562
case 171: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
178457
-{ yymsp[-7].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,0);}
178563
+{ yymsp[-7].minor.yy403 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590,0);}
178458178564
break;
178459178565
case 172: /* returning ::= RETURNING selcollist */
178460
-{sqlite3AddReturning(pParse,yymsp[0].minor.yy14);}
178566
+{sqlite3AddReturning(pParse,yymsp[0].minor.yy402);}
178461178567
break;
178462178568
case 175: /* idlist_opt ::= */
178463
-{yymsp[1].minor.yy132 = 0;}
178569
+{yymsp[1].minor.yy204 = 0;}
178464178570
break;
178465178571
case 176: /* idlist_opt ::= LP idlist RP */
178466
-{yymsp[-2].minor.yy132 = yymsp[-1].minor.yy132;}
178572
+{yymsp[-2].minor.yy204 = yymsp[-1].minor.yy204;}
178467178573
break;
178468178574
case 177: /* idlist ::= idlist COMMA nm */
178469
-{yymsp[-2].minor.yy132 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy132,&yymsp[0].minor.yy0);}
178575
+{yymsp[-2].minor.yy204 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy204,&yymsp[0].minor.yy0);}
178470178576
break;
178471178577
case 178: /* idlist ::= nm */
178472
-{yymsp[0].minor.yy132 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
178578
+{yymsp[0].minor.yy204 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
178473178579
break;
178474178580
case 179: /* expr ::= LP expr RP */
178475
-{yymsp[-2].minor.yy454 = yymsp[-1].minor.yy454;}
178581
+{yymsp[-2].minor.yy590 = yymsp[-1].minor.yy590;}
178476178582
break;
178477178583
case 180: /* expr ::= ID|INDEXED|JOIN_KW */
178478
-{yymsp[0].minor.yy454=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178584
+{yymsp[0].minor.yy590=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178479178585
break;
178480178586
case 181: /* expr ::= nm DOT nm */
178481178587
{
178482178588
Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0);
178483178589
Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0);
178484
- yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
178590
+ yylhsminor.yy590 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
178485178591
}
178486
- yymsp[-2].minor.yy454 = yylhsminor.yy454;
178592
+ yymsp[-2].minor.yy590 = yylhsminor.yy590;
178487178593
break;
178488178594
case 182: /* expr ::= nm DOT nm DOT nm */
178489178595
{
178490178596
Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-4].minor.yy0);
178491178597
Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0);
@@ -178492,378 +178598,378 @@
178492178598
Expr *temp3 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0);
178493178599
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
178494178600
if( IN_RENAME_OBJECT ){
178495178601
sqlite3RenameTokenRemap(pParse, 0, temp1);
178496178602
}
178497
- yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
178603
+ yylhsminor.yy590 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
178498178604
}
178499
- yymsp[-4].minor.yy454 = yylhsminor.yy454;
178605
+ yymsp[-4].minor.yy590 = yylhsminor.yy590;
178500178606
break;
178501178607
case 183: /* term ::= NULL|FLOAT|BLOB */
178502178608
case 184: /* term ::= STRING */ yytestcase(yyruleno==184);
178503
-{yymsp[0].minor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178609
+{yymsp[0].minor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178504178610
break;
178505178611
case 185: /* term ::= INTEGER */
178506178612
{
178507
- yylhsminor.yy454 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
178508
- if( yylhsminor.yy454 ) yylhsminor.yy454->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail);
178613
+ yylhsminor.yy590 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
178614
+ if( yylhsminor.yy590 ) yylhsminor.yy590->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail);
178509178615
}
178510
- yymsp[0].minor.yy454 = yylhsminor.yy454;
178616
+ yymsp[0].minor.yy590 = yylhsminor.yy590;
178511178617
break;
178512178618
case 186: /* expr ::= VARIABLE */
178513178619
{
178514178620
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
178515178621
u32 n = yymsp[0].minor.yy0.n;
178516
- yymsp[0].minor.yy454 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
178517
- sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy454, n);
178622
+ yymsp[0].minor.yy590 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
178623
+ sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy590, n);
178518178624
}else{
178519178625
/* When doing a nested parse, one can include terms in an expression
178520178626
** that look like this: #1 #2 ... These terms refer to registers
178521178627
** in the virtual machine. #N is the N-th register. */
178522178628
Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
178523178629
assert( t.n>=2 );
178524178630
if( pParse->nested==0 ){
178525178631
parserSyntaxError(pParse, &t);
178526
- yymsp[0].minor.yy454 = 0;
178632
+ yymsp[0].minor.yy590 = 0;
178527178633
}else{
178528
- yymsp[0].minor.yy454 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
178529
- if( yymsp[0].minor.yy454 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy454->iTable);
178634
+ yymsp[0].minor.yy590 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
178635
+ if( yymsp[0].minor.yy590 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy590->iTable);
178530178636
}
178531178637
}
178532178638
}
178533178639
break;
178534178640
case 187: /* expr ::= expr COLLATE ID|STRING */
178535178641
{
178536
- yymsp[-2].minor.yy454 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy454, &yymsp[0].minor.yy0, 1);
178642
+ yymsp[-2].minor.yy590 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy590, &yymsp[0].minor.yy0, 1);
178537178643
}
178538178644
break;
178539178645
case 188: /* expr ::= CAST LP expr AS typetoken RP */
178540178646
{
178541
- yymsp[-5].minor.yy454 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
178542
- sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy454, yymsp[-3].minor.yy454, 0);
178647
+ yymsp[-5].minor.yy590 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
178648
+ sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy590, yymsp[-3].minor.yy590, 0);
178543178649
}
178544178650
break;
178545178651
case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
178546178652
{
178547
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy144);
178653
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy502);
178548178654
}
178549
- yymsp[-4].minor.yy454 = yylhsminor.yy454;
178655
+ yymsp[-4].minor.yy590 = yylhsminor.yy590;
178550178656
break;
178551178657
case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
178552178658
{
178553
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy14, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy144);
178554
- sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-1].minor.yy14);
178659
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy402, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy502);
178660
+ sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy590, yymsp[-1].minor.yy402);
178555178661
}
178556
- yymsp[-7].minor.yy454 = yylhsminor.yy454;
178662
+ yymsp[-7].minor.yy590 = yylhsminor.yy590;
178557178663
break;
178558178664
case 191: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
178559178665
{
178560
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
178666
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
178561178667
}
178562
- yymsp[-3].minor.yy454 = yylhsminor.yy454;
178668
+ yymsp[-3].minor.yy590 = yylhsminor.yy590;
178563178669
break;
178564178670
case 192: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
178565178671
{
178566
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy14, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy144);
178567
- sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211);
178672
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy402, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy502);
178673
+ sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483);
178568178674
}
178569
- yymsp[-5].minor.yy454 = yylhsminor.yy454;
178675
+ yymsp[-5].minor.yy590 = yylhsminor.yy590;
178570178676
break;
178571178677
case 193: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
178572178678
{
178573
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy14, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy144);
178574
- sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211);
178575
- sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-2].minor.yy14);
178679
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy402, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy502);
178680
+ sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483);
178681
+ sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy590, yymsp[-2].minor.yy402);
178576178682
}
178577
- yymsp[-8].minor.yy454 = yylhsminor.yy454;
178683
+ yymsp[-8].minor.yy590 = yylhsminor.yy590;
178578178684
break;
178579178685
case 194: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
178580178686
{
178581
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
178582
- sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211);
178687
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
178688
+ sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483);
178583178689
}
178584
- yymsp[-4].minor.yy454 = yylhsminor.yy454;
178690
+ yymsp[-4].minor.yy590 = yylhsminor.yy590;
178585178691
break;
178586178692
case 195: /* term ::= CTIME_KW */
178587178693
{
178588
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
178694
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
178589178695
}
178590
- yymsp[0].minor.yy454 = yylhsminor.yy454;
178696
+ yymsp[0].minor.yy590 = yylhsminor.yy590;
178591178697
break;
178592178698
case 196: /* expr ::= LP nexprlist COMMA expr RP */
178593178699
{
178594
- ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454);
178595
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
178596
- if( yymsp[-4].minor.yy454 ){
178597
- yymsp[-4].minor.yy454->x.pList = pList;
178700
+ ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy402, yymsp[-1].minor.yy590);
178701
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
178702
+ if( yymsp[-4].minor.yy590 ){
178703
+ yymsp[-4].minor.yy590->x.pList = pList;
178598178704
if( ALWAYS(pList->nExpr) ){
178599
- yymsp[-4].minor.yy454->flags |= pList->a[0].pExpr->flags & EP_Propagate;
178705
+ yymsp[-4].minor.yy590->flags |= pList->a[0].pExpr->flags & EP_Propagate;
178600178706
}
178601178707
}else{
178602178708
sqlite3ExprListDelete(pParse->db, pList);
178603178709
}
178604178710
}
178605178711
break;
178606178712
case 197: /* expr ::= expr AND expr */
178607
-{yymsp[-2].minor.yy454=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);}
178713
+{yymsp[-2].minor.yy590=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);}
178608178714
break;
178609178715
case 198: /* expr ::= expr OR expr */
178610178716
case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199);
178611178717
case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200);
178612178718
case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201);
178613178719
case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202);
178614178720
case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203);
178615178721
case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204);
178616
-{yymsp[-2].minor.yy454=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);}
178722
+{yymsp[-2].minor.yy590=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);}
178617178723
break;
178618178724
case 205: /* likeop ::= NOT LIKE_KW|MATCH */
178619178725
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
178620178726
break;
178621178727
case 206: /* expr ::= expr likeop expr */
178622178728
{
178623178729
ExprList *pList;
178624178730
int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
178625178731
yymsp[-1].minor.yy0.n &= 0x7fffffff;
178626
- pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy454);
178627
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy454);
178628
- yymsp[-2].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178629
- if( bNot ) yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy454, 0);
178630
- if( yymsp[-2].minor.yy454 ) yymsp[-2].minor.yy454->flags |= EP_InfixFunc;
178732
+ pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy590);
178733
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy590);
178734
+ yymsp[-2].minor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178735
+ if( bNot ) yymsp[-2].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy590, 0);
178736
+ if( yymsp[-2].minor.yy590 ) yymsp[-2].minor.yy590->flags |= EP_InfixFunc;
178631178737
}
178632178738
break;
178633178739
case 207: /* expr ::= expr likeop expr ESCAPE expr */
178634178740
{
178635178741
ExprList *pList;
178636178742
int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
178637178743
yymsp[-3].minor.yy0.n &= 0x7fffffff;
178638
- pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454);
178639
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy454);
178640
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454);
178641
- yymsp[-4].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
178642
- if( bNot ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178643
- if( yymsp[-4].minor.yy454 ) yymsp[-4].minor.yy454->flags |= EP_InfixFunc;
178744
+ pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590);
178745
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy590);
178746
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy590);
178747
+ yymsp[-4].minor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
178748
+ if( bNot ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178749
+ if( yymsp[-4].minor.yy590 ) yymsp[-4].minor.yy590->flags |= EP_InfixFunc;
178644178750
}
178645178751
break;
178646178752
case 208: /* expr ::= expr ISNULL|NOTNULL */
178647
-{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy454,0);}
178753
+{yymsp[-1].minor.yy590 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy590,0);}
178648178754
break;
178649178755
case 209: /* expr ::= expr NOT NULL */
178650
-{yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy454,0);}
178756
+{yymsp[-2].minor.yy590 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy590,0);}
178651178757
break;
178652178758
case 210: /* expr ::= expr IS expr */
178653178759
{
178654
- yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);
178655
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-2].minor.yy454, TK_ISNULL);
178760
+ yymsp[-2].minor.yy590 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);
178761
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-2].minor.yy590, TK_ISNULL);
178656178762
}
178657178763
break;
178658178764
case 211: /* expr ::= expr IS NOT expr */
178659178765
{
178660
- yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy454,yymsp[0].minor.yy454);
178661
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-3].minor.yy454, TK_NOTNULL);
178766
+ yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy590,yymsp[0].minor.yy590);
178767
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-3].minor.yy590, TK_NOTNULL);
178662178768
}
178663178769
break;
178664178770
case 212: /* expr ::= expr IS NOT DISTINCT FROM expr */
178665178771
{
178666
- yymsp[-5].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy454,yymsp[0].minor.yy454);
178667
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-5].minor.yy454, TK_ISNULL);
178772
+ yymsp[-5].minor.yy590 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy590,yymsp[0].minor.yy590);
178773
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-5].minor.yy590, TK_ISNULL);
178668178774
}
178669178775
break;
178670178776
case 213: /* expr ::= expr IS DISTINCT FROM expr */
178671178777
{
178672
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy454,yymsp[0].minor.yy454);
178673
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-4].minor.yy454, TK_NOTNULL);
178778
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy590,yymsp[0].minor.yy590);
178779
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-4].minor.yy590, TK_NOTNULL);
178674178780
}
178675178781
break;
178676178782
case 214: /* expr ::= NOT expr */
178677178783
case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215);
178678
-{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy454, 0);/*A-overwrites-B*/}
178784
+{yymsp[-1].minor.yy590 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy590, 0);/*A-overwrites-B*/}
178679178785
break;
178680178786
case 216: /* expr ::= PLUS|MINUS expr */
178681178787
{
178682
- Expr *p = yymsp[0].minor.yy454;
178788
+ Expr *p = yymsp[0].minor.yy590;
178683178789
u8 op = yymsp[-1].major + (TK_UPLUS-TK_PLUS);
178684178790
assert( TK_UPLUS>TK_PLUS );
178685178791
assert( TK_UMINUS == TK_MINUS + (TK_UPLUS - TK_PLUS) );
178686178792
if( p && p->op==TK_UPLUS ){
178687178793
p->op = op;
178688
- yymsp[-1].minor.yy454 = p;
178794
+ yymsp[-1].minor.yy590 = p;
178689178795
}else{
178690
- yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, op, p, 0);
178796
+ yymsp[-1].minor.yy590 = sqlite3PExpr(pParse, op, p, 0);
178691178797
/*A-overwrites-B*/
178692178798
}
178693178799
}
178694178800
break;
178695178801
case 217: /* expr ::= expr PTR expr */
178696178802
{
178697
- ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy454);
178698
- pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy454);
178699
- yylhsminor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178803
+ ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy590);
178804
+ pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy590);
178805
+ yylhsminor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178700178806
}
178701
- yymsp[-2].minor.yy454 = yylhsminor.yy454;
178807
+ yymsp[-2].minor.yy590 = yylhsminor.yy590;
178702178808
break;
178703178809
case 218: /* between_op ::= BETWEEN */
178704178810
case 221: /* in_op ::= IN */ yytestcase(yyruleno==221);
178705
-{yymsp[0].minor.yy144 = 0;}
178811
+{yymsp[0].minor.yy502 = 0;}
178706178812
break;
178707178813
case 220: /* expr ::= expr between_op expr AND expr */
178708178814
{
178709
- ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454);
178710
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454);
178711
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy454, 0);
178712
- if( yymsp[-4].minor.yy454 ){
178713
- yymsp[-4].minor.yy454->x.pList = pList;
178815
+ ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590);
178816
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy590);
178817
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy590, 0);
178818
+ if( yymsp[-4].minor.yy590 ){
178819
+ yymsp[-4].minor.yy590->x.pList = pList;
178714178820
}else{
178715178821
sqlite3ExprListDelete(pParse->db, pList);
178716178822
}
178717
- if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178823
+ if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178718178824
}
178719178825
break;
178720178826
case 223: /* expr ::= expr in_op LP exprlist RP */
178721178827
{
178722
- if( yymsp[-1].minor.yy14==0 ){
178828
+ if( yymsp[-1].minor.yy402==0 ){
178723178829
/* Expressions of the form
178724178830
**
178725178831
** expr1 IN ()
178726178832
** expr1 NOT IN ()
178727178833
**
178728178834
** simplify to constants 0 (false) and 1 (true), respectively,
178729178835
** regardless of the value of expr1.
178730178836
*/
178731
- sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy454);
178732
- yymsp[-4].minor.yy454 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy144 ? "true" : "false");
178733
- if( yymsp[-4].minor.yy454 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy454);
178837
+ sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy590);
178838
+ yymsp[-4].minor.yy590 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy502 ? "true" : "false");
178839
+ if( yymsp[-4].minor.yy590 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy590);
178734178840
}else{
178735
- Expr *pRHS = yymsp[-1].minor.yy14->a[0].pExpr;
178736
- if( yymsp[-1].minor.yy14->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy454->op!=TK_VECTOR ){
178737
- yymsp[-1].minor.yy14->a[0].pExpr = 0;
178738
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14);
178841
+ Expr *pRHS = yymsp[-1].minor.yy402->a[0].pExpr;
178842
+ if( yymsp[-1].minor.yy402->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy590->op!=TK_VECTOR ){
178843
+ yymsp[-1].minor.yy402->a[0].pExpr = 0;
178844
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402);
178739178845
pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0);
178740
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy454, pRHS);
178741
- }else if( yymsp[-1].minor.yy14->nExpr==1 && pRHS->op==TK_SELECT ){
178742
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178743
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pRHS->x.pSelect);
178846
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy590, pRHS);
178847
+ }else if( yymsp[-1].minor.yy402->nExpr==1 && pRHS->op==TK_SELECT ){
178848
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178849
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pRHS->x.pSelect);
178744178850
pRHS->x.pSelect = 0;
178745
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14);
178851
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402);
178746178852
}else{
178747
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178748
- if( yymsp[-4].minor.yy454==0 ){
178749
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14);
178750
- }else if( yymsp[-4].minor.yy454->pLeft->op==TK_VECTOR ){
178751
- int nExpr = yymsp[-4].minor.yy454->pLeft->x.pList->nExpr;
178752
- Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy14);
178853
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178854
+ if( yymsp[-4].minor.yy590==0 ){
178855
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402);
178856
+ }else if( yymsp[-4].minor.yy590->pLeft->op==TK_VECTOR ){
178857
+ int nExpr = yymsp[-4].minor.yy590->pLeft->x.pList->nExpr;
178858
+ Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy402);
178753178859
if( pSelectRHS ){
178754178860
parserDoubleLinkSelect(pParse, pSelectRHS);
178755
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelectRHS);
178861
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pSelectRHS);
178756178862
}
178757178863
}else{
178758
- yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy14;
178759
- sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454);
178864
+ yymsp[-4].minor.yy590->x.pList = yymsp[-1].minor.yy402;
178865
+ sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy590);
178760178866
}
178761178867
}
178762
- if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178868
+ if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178763178869
}
178764178870
}
178765178871
break;
178766178872
case 224: /* expr ::= LP select RP */
178767178873
{
178768
- yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
178769
- sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy454, yymsp[-1].minor.yy555);
178874
+ yymsp[-2].minor.yy590 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
178875
+ sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy590, yymsp[-1].minor.yy637);
178770178876
}
178771178877
break;
178772178878
case 225: /* expr ::= expr in_op LP select RP */
178773178879
{
178774
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178775
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, yymsp[-1].minor.yy555);
178776
- if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178880
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178881
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, yymsp[-1].minor.yy637);
178882
+ if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178777178883
}
178778178884
break;
178779178885
case 226: /* expr ::= expr in_op nm dbnm paren_exprlist */
178780178886
{
178781178887
SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
178782178888
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
178783
- if( yymsp[0].minor.yy14 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy14);
178784
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178785
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelect);
178786
- if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178889
+ if( yymsp[0].minor.yy402 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy402);
178890
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178891
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pSelect);
178892
+ if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178787178893
}
178788178894
break;
178789178895
case 227: /* expr ::= EXISTS LP select RP */
178790178896
{
178791178897
Expr *p;
178792
- p = yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
178793
- sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy555);
178898
+ p = yymsp[-3].minor.yy590 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
178899
+ sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy637);
178794178900
}
178795178901
break;
178796178902
case 228: /* expr ::= CASE case_operand case_exprlist case_else END */
178797178903
{
178798
- yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy454, 0);
178799
- if( yymsp[-4].minor.yy454 ){
178800
- yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy454 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454) : yymsp[-2].minor.yy14;
178801
- sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454);
178904
+ yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy590, 0);
178905
+ if( yymsp[-4].minor.yy590 ){
178906
+ yymsp[-4].minor.yy590->x.pList = yymsp[-1].minor.yy590 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590) : yymsp[-2].minor.yy402;
178907
+ sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy590);
178802178908
}else{
178803
- sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy14);
178804
- sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454);
178909
+ sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy402);
178910
+ sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590);
178805178911
}
178806178912
}
178807178913
break;
178808178914
case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
178809178915
{
178810
- yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2].minor.yy454);
178811
- yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[0].minor.yy454);
178916
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, yymsp[-2].minor.yy590);
178917
+ yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, yymsp[0].minor.yy590);
178812178918
}
178813178919
break;
178814178920
case 230: /* case_exprlist ::= WHEN expr THEN expr */
178815178921
{
178816
- yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454);
178817
- yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14, yymsp[0].minor.yy454);
178922
+ yymsp[-3].minor.yy402 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590);
178923
+ yymsp[-3].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy402, yymsp[0].minor.yy590);
178818178924
}
178819178925
break;
178820178926
case 235: /* nexprlist ::= nexprlist COMMA expr */
178821
-{yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].minor.yy454);}
178927
+{yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy402,yymsp[0].minor.yy590);}
178822178928
break;
178823178929
case 236: /* nexprlist ::= expr */
178824
-{yymsp[0].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy454); /*A-overwrites-Y*/}
178930
+{yymsp[0].minor.yy402 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy590); /*A-overwrites-Y*/}
178825178931
break;
178826178932
case 238: /* paren_exprlist ::= LP exprlist RP */
178827178933
case 243: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==243);
178828
-{yymsp[-2].minor.yy14 = yymsp[-1].minor.yy14;}
178934
+{yymsp[-2].minor.yy402 = yymsp[-1].minor.yy402;}
178829178935
break;
178830178936
case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
178831178937
{
178832178938
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
178833
- sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy14, yymsp[-10].minor.yy144,
178834
- &yymsp[-11].minor.yy0, yymsp[0].minor.yy454, SQLITE_SO_ASC, yymsp[-8].minor.yy144, SQLITE_IDXTYPE_APPDEF);
178939
+ sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy402, yymsp[-10].minor.yy502,
178940
+ &yymsp[-11].minor.yy0, yymsp[0].minor.yy590, SQLITE_SO_ASC, yymsp[-8].minor.yy502, SQLITE_IDXTYPE_APPDEF);
178835178941
if( IN_RENAME_OBJECT && pParse->pNewIndex ){
178836178942
sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0);
178837178943
}
178838178944
}
178839178945
break;
178840178946
case 240: /* uniqueflag ::= UNIQUE */
178841178947
case 282: /* raisetype ::= ABORT */ yytestcase(yyruleno==282);
178842
-{yymsp[0].minor.yy144 = OE_Abort;}
178948
+{yymsp[0].minor.yy502 = OE_Abort;}
178843178949
break;
178844178950
case 241: /* uniqueflag ::= */
178845
-{yymsp[1].minor.yy144 = OE_None;}
178951
+{yymsp[1].minor.yy502 = OE_None;}
178846178952
break;
178847178953
case 244: /* eidlist ::= eidlist COMMA nm collate sortorder */
178848178954
{
178849
- yymsp[-4].minor.yy14 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144);
178955
+ yymsp[-4].minor.yy402 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy402, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502);
178850178956
}
178851178957
break;
178852178958
case 245: /* eidlist ::= nm collate sortorder */
178853178959
{
178854
- yymsp[-2].minor.yy14 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); /*A-overwrites-Y*/
178960
+ yymsp[-2].minor.yy402 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502); /*A-overwrites-Y*/
178855178961
}
178856178962
break;
178857178963
case 248: /* cmd ::= DROP INDEX ifexists fullname */
178858
-{sqlite3DropIndex(pParse, yymsp[0].minor.yy203, yymsp[-1].minor.yy144);}
178964
+{sqlite3DropIndex(pParse, yymsp[0].minor.yy563, yymsp[-1].minor.yy502);}
178859178965
break;
178860178966
case 249: /* cmd ::= VACUUM vinto */
178861
-{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy454);}
178967
+{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy590);}
178862178968
break;
178863178969
case 250: /* cmd ::= VACUUM nm vinto */
178864
-{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy454);}
178970
+{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy590);}
178865178971
break;
178866178972
case 253: /* cmd ::= PRAGMA nm dbnm */
178867178973
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
178868178974
break;
178869178975
case 254: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
@@ -178881,54 +178987,54 @@
178881178987
case 260: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
178882178988
{
178883178989
Token all;
178884178990
all.z = yymsp[-3].minor.yy0.z;
178885178991
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
178886
- sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy427, &all);
178992
+ sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy319, &all);
178887178993
}
178888178994
break;
178889178995
case 261: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
178890178996
{
178891
- sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy144, yymsp[-4].minor.yy286.a, yymsp[-4].minor.yy286.b, yymsp[-2].minor.yy203, yymsp[0].minor.yy454, yymsp[-10].minor.yy144, yymsp[-8].minor.yy144);
178997
+ sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy502, yymsp[-4].minor.yy28.a, yymsp[-4].minor.yy28.b, yymsp[-2].minor.yy563, yymsp[0].minor.yy590, yymsp[-10].minor.yy502, yymsp[-8].minor.yy502);
178892178998
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
178893178999
}
178894179000
break;
178895179001
case 262: /* trigger_time ::= BEFORE|AFTER */
178896
-{ yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/ }
179002
+{ yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/ }
178897179003
break;
178898179004
case 263: /* trigger_time ::= INSTEAD OF */
178899
-{ yymsp[-1].minor.yy144 = TK_INSTEAD;}
179005
+{ yymsp[-1].minor.yy502 = TK_INSTEAD;}
178900179006
break;
178901179007
case 264: /* trigger_time ::= */
178902
-{ yymsp[1].minor.yy144 = TK_BEFORE; }
179008
+{ yymsp[1].minor.yy502 = TK_BEFORE; }
178903179009
break;
178904179010
case 265: /* trigger_event ::= DELETE|INSERT */
178905179011
case 266: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==266);
178906
-{yymsp[0].minor.yy286.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy286.b = 0;}
179012
+{yymsp[0].minor.yy28.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy28.b = 0;}
178907179013
break;
178908179014
case 267: /* trigger_event ::= UPDATE OF idlist */
178909
-{yymsp[-2].minor.yy286.a = TK_UPDATE; yymsp[-2].minor.yy286.b = yymsp[0].minor.yy132;}
179015
+{yymsp[-2].minor.yy28.a = TK_UPDATE; yymsp[-2].minor.yy28.b = yymsp[0].minor.yy204;}
178910179016
break;
178911179017
case 268: /* when_clause ::= */
178912179018
case 287: /* key_opt ::= */ yytestcase(yyruleno==287);
178913
-{ yymsp[1].minor.yy454 = 0; }
179019
+{ yymsp[1].minor.yy590 = 0; }
178914179020
break;
178915179021
case 269: /* when_clause ::= WHEN expr */
178916179022
case 288: /* key_opt ::= KEY expr */ yytestcase(yyruleno==288);
178917
-{ yymsp[-1].minor.yy454 = yymsp[0].minor.yy454; }
179023
+{ yymsp[-1].minor.yy590 = yymsp[0].minor.yy590; }
178918179024
break;
178919179025
case 270: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
178920179026
{
178921
- assert( yymsp[-2].minor.yy427!=0 );
178922
- yymsp[-2].minor.yy427->pLast->pNext = yymsp[-1].minor.yy427;
178923
- yymsp[-2].minor.yy427->pLast = yymsp[-1].minor.yy427;
179027
+ assert( yymsp[-2].minor.yy319!=0 );
179028
+ yymsp[-2].minor.yy319->pLast->pNext = yymsp[-1].minor.yy319;
179029
+ yymsp[-2].minor.yy319->pLast = yymsp[-1].minor.yy319;
178924179030
}
178925179031
break;
178926179032
case 271: /* trigger_cmd_list ::= trigger_cmd SEMI */
178927179033
{
178928
- assert( yymsp[-1].minor.yy427!=0 );
178929
- yymsp[-1].minor.yy427->pLast = yymsp[-1].minor.yy427;
179034
+ assert( yymsp[-1].minor.yy319!=0 );
179035
+ yymsp[-1].minor.yy319->pLast = yymsp[-1].minor.yy319;
178930179036
}
178931179037
break;
178932179038
case 272: /* trnm ::= nm DOT nm */
178933179039
{
178934179040
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
@@ -178950,62 +179056,62 @@
178950179056
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
178951179057
"within triggers");
178952179058
}
178953179059
break;
178954179060
case 275: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
178955
-{yylhsminor.yy427 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy203, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454, yymsp[-7].minor.yy144, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy168);}
178956
- yymsp[-8].minor.yy427 = yylhsminor.yy427;
179061
+{yylhsminor.yy319 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy563, yymsp[-3].minor.yy402, yymsp[-1].minor.yy590, yymsp[-7].minor.yy502, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy342);}
179062
+ yymsp[-8].minor.yy319 = yylhsminor.yy319;
178957179063
break;
178958179064
case 276: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
178959179065
{
178960
- yylhsminor.yy427 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy132,yymsp[-2].minor.yy555,yymsp[-6].minor.yy144,yymsp[-1].minor.yy122,yymsp[-7].minor.yy168,yymsp[0].minor.yy168);/*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/
179066
+ yylhsminor.yy319 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy204,yymsp[-2].minor.yy637,yymsp[-6].minor.yy502,yymsp[-1].minor.yy403,yymsp[-7].minor.yy342,yymsp[0].minor.yy342);/*yylhsminor.yy319-overwrites-yymsp[-6].minor.yy502*/
178961179067
}
178962
- yymsp[-7].minor.yy427 = yylhsminor.yy427;
179068
+ yymsp[-7].minor.yy319 = yylhsminor.yy319;
178963179069
break;
178964179070
case 277: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
178965
-{yylhsminor.yy427 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy454, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy168);}
178966
- yymsp[-5].minor.yy427 = yylhsminor.yy427;
179071
+{yylhsminor.yy319 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy590, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy342);}
179072
+ yymsp[-5].minor.yy319 = yylhsminor.yy319;
178967179073
break;
178968179074
case 278: /* trigger_cmd ::= scanpt select scanpt */
178969
-{yylhsminor.yy427 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy555, yymsp[-2].minor.yy168, yymsp[0].minor.yy168); /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/}
178970
- yymsp[-2].minor.yy427 = yylhsminor.yy427;
179075
+{yylhsminor.yy319 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy637, yymsp[-2].minor.yy342, yymsp[0].minor.yy342); /*yylhsminor.yy319-overwrites-yymsp[-1].minor.yy637*/}
179076
+ yymsp[-2].minor.yy319 = yylhsminor.yy319;
178971179077
break;
178972179078
case 279: /* expr ::= RAISE LP IGNORE RP */
178973179079
{
178974
- yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
178975
- if( yymsp[-3].minor.yy454 ){
178976
- yymsp[-3].minor.yy454->affExpr = OE_Ignore;
179080
+ yymsp[-3].minor.yy590 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
179081
+ if( yymsp[-3].minor.yy590 ){
179082
+ yymsp[-3].minor.yy590->affExpr = OE_Ignore;
178977179083
}
178978179084
}
178979179085
break;
178980179086
case 280: /* expr ::= RAISE LP raisetype COMMA expr RP */
178981179087
{
178982
- yymsp[-5].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy454, 0);
178983
- if( yymsp[-5].minor.yy454 ) {
178984
- yymsp[-5].minor.yy454->affExpr = (char)yymsp[-3].minor.yy144;
179088
+ yymsp[-5].minor.yy590 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy590, 0);
179089
+ if( yymsp[-5].minor.yy590 ) {
179090
+ yymsp[-5].minor.yy590->affExpr = (char)yymsp[-3].minor.yy502;
178985179091
}
178986179092
}
178987179093
break;
178988179094
case 281: /* raisetype ::= ROLLBACK */
178989
-{yymsp[0].minor.yy144 = OE_Rollback;}
179095
+{yymsp[0].minor.yy502 = OE_Rollback;}
178990179096
break;
178991179097
case 283: /* raisetype ::= FAIL */
178992
-{yymsp[0].minor.yy144 = OE_Fail;}
179098
+{yymsp[0].minor.yy502 = OE_Fail;}
178993179099
break;
178994179100
case 284: /* cmd ::= DROP TRIGGER ifexists fullname */
178995179101
{
178996
- sqlite3DropTrigger(pParse,yymsp[0].minor.yy203,yymsp[-1].minor.yy144);
179102
+ sqlite3DropTrigger(pParse,yymsp[0].minor.yy563,yymsp[-1].minor.yy502);
178997179103
}
178998179104
break;
178999179105
case 285: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
179000179106
{
179001
- sqlite3Attach(pParse, yymsp[-3].minor.yy454, yymsp[-1].minor.yy454, yymsp[0].minor.yy454);
179107
+ sqlite3Attach(pParse, yymsp[-3].minor.yy590, yymsp[-1].minor.yy590, yymsp[0].minor.yy590);
179002179108
}
179003179109
break;
179004179110
case 286: /* cmd ::= DETACH database_kw_opt expr */
179005179111
{
179006
- sqlite3Detach(pParse, yymsp[0].minor.yy454);
179112
+ sqlite3Detach(pParse, yymsp[0].minor.yy590);
179007179113
}
179008179114
break;
179009179115
case 289: /* cmd ::= REINDEX */
179010179116
{sqlite3Reindex(pParse, 0, 0);}
179011179117
break;
@@ -179018,11 +179124,11 @@
179018179124
case 292: /* cmd ::= ANALYZE nm dbnm */
179019179125
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
179020179126
break;
179021179127
case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
179022179128
{
179023
- sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy203,&yymsp[0].minor.yy0);
179129
+ sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy563,&yymsp[0].minor.yy0);
179024179130
}
179025179131
break;
179026179132
case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
179027179133
{
179028179134
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
@@ -179029,22 +179135,22 @@
179029179135
sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
179030179136
}
179031179137
break;
179032179138
case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
179033179139
{
179034
- sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy203, &yymsp[0].minor.yy0);
179140
+ sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy563, &yymsp[0].minor.yy0);
179035179141
}
179036179142
break;
179037179143
case 296: /* add_column_fullname ::= fullname */
179038179144
{
179039179145
disableLookaside(pParse);
179040
- sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy203);
179146
+ sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy563);
179041179147
}
179042179148
break;
179043179149
case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
179044179150
{
179045
- sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy203, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
179151
+ sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy563, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
179046179152
}
179047179153
break;
179048179154
case 298: /* cmd ::= create_vtab */
179049179155
{sqlite3VtabFinishParse(pParse,0);}
179050179156
break;
@@ -179051,11 +179157,11 @@
179051179157
case 299: /* cmd ::= create_vtab LP vtabarglist RP */
179052179158
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
179053179159
break;
179054179160
case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
179055179161
{
179056
- sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy144);
179162
+ sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy502);
179057179163
}
179058179164
break;
179059179165
case 301: /* vtabarg ::= */
179060179166
{sqlite3VtabArgInit(pParse);}
179061179167
break;
@@ -179064,185 +179170,185 @@
179064179170
case 304: /* lp ::= LP */ yytestcase(yyruleno==304);
179065179171
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
179066179172
break;
179067179173
case 305: /* with ::= WITH wqlist */
179068179174
case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306);
179069
-{ sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); }
179175
+{ sqlite3WithPush(pParse, yymsp[0].minor.yy125, 1); }
179070179176
break;
179071179177
case 307: /* wqas ::= AS */
179072
-{yymsp[0].minor.yy462 = M10d_Any;}
179178
+{yymsp[0].minor.yy444 = M10d_Any;}
179073179179
break;
179074179180
case 308: /* wqas ::= AS MATERIALIZED */
179075
-{yymsp[-1].minor.yy462 = M10d_Yes;}
179181
+{yymsp[-1].minor.yy444 = M10d_Yes;}
179076179182
break;
179077179183
case 309: /* wqas ::= AS NOT MATERIALIZED */
179078
-{yymsp[-2].minor.yy462 = M10d_No;}
179184
+{yymsp[-2].minor.yy444 = M10d_No;}
179079179185
break;
179080179186
case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */
179081179187
{
179082
- yymsp[-5].minor.yy67 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy555, yymsp[-3].minor.yy462); /*A-overwrites-X*/
179188
+ yymsp[-5].minor.yy361 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy402, yymsp[-1].minor.yy637, yymsp[-3].minor.yy444); /*A-overwrites-X*/
179083179189
}
179084179190
break;
179085179191
case 311: /* withnm ::= nm */
179086179192
{pParse->bHasWith = 1;}
179087179193
break;
179088179194
case 312: /* wqlist ::= wqitem */
179089179195
{
179090
- yymsp[0].minor.yy59 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy67); /*A-overwrites-X*/
179196
+ yymsp[0].minor.yy125 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy361); /*A-overwrites-X*/
179091179197
}
179092179198
break;
179093179199
case 313: /* wqlist ::= wqlist COMMA wqitem */
179094179200
{
179095
- yymsp[-2].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy59, yymsp[0].minor.yy67);
179201
+ yymsp[-2].minor.yy125 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy125, yymsp[0].minor.yy361);
179096179202
}
179097179203
break;
179098179204
case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
179099179205
{
179100
- assert( yymsp[0].minor.yy211!=0 );
179101
- sqlite3WindowChain(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy211);
179102
- yymsp[0].minor.yy211->pNextWin = yymsp[-2].minor.yy211;
179103
- yylhsminor.yy211 = yymsp[0].minor.yy211;
179206
+ assert( yymsp[0].minor.yy483!=0 );
179207
+ sqlite3WindowChain(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy483);
179208
+ yymsp[0].minor.yy483->pNextWin = yymsp[-2].minor.yy483;
179209
+ yylhsminor.yy483 = yymsp[0].minor.yy483;
179104179210
}
179105
- yymsp[-2].minor.yy211 = yylhsminor.yy211;
179211
+ yymsp[-2].minor.yy483 = yylhsminor.yy483;
179106179212
break;
179107179213
case 315: /* windowdefn ::= nm AS LP window RP */
179108179214
{
179109
- if( ALWAYS(yymsp[-1].minor.yy211) ){
179110
- yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
179215
+ if( ALWAYS(yymsp[-1].minor.yy483) ){
179216
+ yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
179111179217
}
179112
- yylhsminor.yy211 = yymsp[-1].minor.yy211;
179218
+ yylhsminor.yy483 = yymsp[-1].minor.yy483;
179113179219
}
179114
- yymsp[-4].minor.yy211 = yylhsminor.yy211;
179220
+ yymsp[-4].minor.yy483 = yylhsminor.yy483;
179115179221
break;
179116179222
case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */
179117179223
{
179118
- yymsp[-4].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, 0);
179224
+ yymsp[-4].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, 0);
179119179225
}
179120179226
break;
179121179227
case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
179122179228
{
179123
- yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, &yymsp[-5].minor.yy0);
179229
+ yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, &yymsp[-5].minor.yy0);
179124179230
}
179125
- yymsp[-5].minor.yy211 = yylhsminor.yy211;
179231
+ yymsp[-5].minor.yy483 = yylhsminor.yy483;
179126179232
break;
179127179233
case 318: /* window ::= ORDER BY sortlist frame_opt */
179128179234
{
179129
- yymsp[-3].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, 0);
179235
+ yymsp[-3].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, 0);
179130179236
}
179131179237
break;
179132179238
case 319: /* window ::= nm ORDER BY sortlist frame_opt */
179133179239
{
179134
- yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0);
179240
+ yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0);
179135179241
}
179136
- yymsp[-4].minor.yy211 = yylhsminor.yy211;
179242
+ yymsp[-4].minor.yy483 = yylhsminor.yy483;
179137179243
break;
179138179244
case 320: /* window ::= nm frame_opt */
179139179245
{
179140
- yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, 0, &yymsp[-1].minor.yy0);
179246
+ yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, 0, &yymsp[-1].minor.yy0);
179141179247
}
179142
- yymsp[-1].minor.yy211 = yylhsminor.yy211;
179248
+ yymsp[-1].minor.yy483 = yylhsminor.yy483;
179143179249
break;
179144179250
case 321: /* frame_opt ::= */
179145179251
{
179146
- yymsp[1].minor.yy211 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
179252
+ yymsp[1].minor.yy483 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
179147179253
}
179148179254
break;
179149179255
case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
179150179256
{
179151
- yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy144, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy462);
179257
+ yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy502, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy444);
179152179258
}
179153
- yymsp[-2].minor.yy211 = yylhsminor.yy211;
179259
+ yymsp[-2].minor.yy483 = yylhsminor.yy483;
179154179260
break;
179155179261
case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
179156179262
{
179157
- yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy144, yymsp[-3].minor.yy509.eType, yymsp[-3].minor.yy509.pExpr, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, yymsp[0].minor.yy462);
179263
+ yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy502, yymsp[-3].minor.yy205.eType, yymsp[-3].minor.yy205.pExpr, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, yymsp[0].minor.yy444);
179158179264
}
179159
- yymsp[-5].minor.yy211 = yylhsminor.yy211;
179265
+ yymsp[-5].minor.yy483 = yylhsminor.yy483;
179160179266
break;
179161179267
case 325: /* frame_bound_s ::= frame_bound */
179162179268
case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327);
179163
-{yylhsminor.yy509 = yymsp[0].minor.yy509;}
179164
- yymsp[0].minor.yy509 = yylhsminor.yy509;
179269
+{yylhsminor.yy205 = yymsp[0].minor.yy205;}
179270
+ yymsp[0].minor.yy205 = yylhsminor.yy205;
179165179271
break;
179166179272
case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */
179167179273
case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328);
179168179274
case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330);
179169
-{yylhsminor.yy509.eType = yymsp[-1].major; yylhsminor.yy509.pExpr = 0;}
179170
- yymsp[-1].minor.yy509 = yylhsminor.yy509;
179275
+{yylhsminor.yy205.eType = yymsp[-1].major; yylhsminor.yy205.pExpr = 0;}
179276
+ yymsp[-1].minor.yy205 = yylhsminor.yy205;
179171179277
break;
179172179278
case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */
179173
-{yylhsminor.yy509.eType = yymsp[0].major; yylhsminor.yy509.pExpr = yymsp[-1].minor.yy454;}
179174
- yymsp[-1].minor.yy509 = yylhsminor.yy509;
179279
+{yylhsminor.yy205.eType = yymsp[0].major; yylhsminor.yy205.pExpr = yymsp[-1].minor.yy590;}
179280
+ yymsp[-1].minor.yy205 = yylhsminor.yy205;
179175179281
break;
179176179282
case 331: /* frame_exclude_opt ::= */
179177
-{yymsp[1].minor.yy462 = 0;}
179283
+{yymsp[1].minor.yy444 = 0;}
179178179284
break;
179179179285
case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */
179180
-{yymsp[-1].minor.yy462 = yymsp[0].minor.yy462;}
179286
+{yymsp[-1].minor.yy444 = yymsp[0].minor.yy444;}
179181179287
break;
179182179288
case 333: /* frame_exclude ::= NO OTHERS */
179183179289
case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334);
179184
-{yymsp[-1].minor.yy462 = yymsp[-1].major; /*A-overwrites-X*/}
179290
+{yymsp[-1].minor.yy444 = yymsp[-1].major; /*A-overwrites-X*/}
179185179291
break;
179186179292
case 335: /* frame_exclude ::= GROUP|TIES */
179187
-{yymsp[0].minor.yy462 = yymsp[0].major; /*A-overwrites-X*/}
179293
+{yymsp[0].minor.yy444 = yymsp[0].major; /*A-overwrites-X*/}
179188179294
break;
179189179295
case 336: /* window_clause ::= WINDOW windowdefn_list */
179190
-{ yymsp[-1].minor.yy211 = yymsp[0].minor.yy211; }
179296
+{ yymsp[-1].minor.yy483 = yymsp[0].minor.yy483; }
179191179297
break;
179192179298
case 337: /* filter_over ::= filter_clause over_clause */
179193179299
{
179194
- if( yymsp[0].minor.yy211 ){
179195
- yymsp[0].minor.yy211->pFilter = yymsp[-1].minor.yy454;
179300
+ if( yymsp[0].minor.yy483 ){
179301
+ yymsp[0].minor.yy483->pFilter = yymsp[-1].minor.yy590;
179196179302
}else{
179197
- sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454);
179303
+ sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590);
179198179304
}
179199
- yylhsminor.yy211 = yymsp[0].minor.yy211;
179305
+ yylhsminor.yy483 = yymsp[0].minor.yy483;
179200179306
}
179201
- yymsp[-1].minor.yy211 = yylhsminor.yy211;
179307
+ yymsp[-1].minor.yy483 = yylhsminor.yy483;
179202179308
break;
179203179309
case 338: /* filter_over ::= over_clause */
179204179310
{
179205
- yylhsminor.yy211 = yymsp[0].minor.yy211;
179311
+ yylhsminor.yy483 = yymsp[0].minor.yy483;
179206179312
}
179207
- yymsp[0].minor.yy211 = yylhsminor.yy211;
179313
+ yymsp[0].minor.yy483 = yylhsminor.yy483;
179208179314
break;
179209179315
case 339: /* filter_over ::= filter_clause */
179210179316
{
179211
- yylhsminor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179212
- if( yylhsminor.yy211 ){
179213
- yylhsminor.yy211->eFrmType = TK_FILTER;
179214
- yylhsminor.yy211->pFilter = yymsp[0].minor.yy454;
179317
+ yylhsminor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179318
+ if( yylhsminor.yy483 ){
179319
+ yylhsminor.yy483->eFrmType = TK_FILTER;
179320
+ yylhsminor.yy483->pFilter = yymsp[0].minor.yy590;
179215179321
}else{
179216
- sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy454);
179322
+ sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy590);
179217179323
}
179218179324
}
179219
- yymsp[0].minor.yy211 = yylhsminor.yy211;
179325
+ yymsp[0].minor.yy483 = yylhsminor.yy483;
179220179326
break;
179221179327
case 340: /* over_clause ::= OVER LP window RP */
179222179328
{
179223
- yymsp[-3].minor.yy211 = yymsp[-1].minor.yy211;
179224
- assert( yymsp[-3].minor.yy211!=0 );
179329
+ yymsp[-3].minor.yy483 = yymsp[-1].minor.yy483;
179330
+ assert( yymsp[-3].minor.yy483!=0 );
179225179331
}
179226179332
break;
179227179333
case 341: /* over_clause ::= OVER nm */
179228179334
{
179229
- yymsp[-1].minor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179230
- if( yymsp[-1].minor.yy211 ){
179231
- yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
179335
+ yymsp[-1].minor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179336
+ if( yymsp[-1].minor.yy483 ){
179337
+ yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
179232179338
}
179233179339
}
179234179340
break;
179235179341
case 342: /* filter_clause ::= FILTER LP WHERE expr RP */
179236
-{ yymsp[-4].minor.yy454 = yymsp[-1].minor.yy454; }
179342
+{ yymsp[-4].minor.yy590 = yymsp[-1].minor.yy590; }
179237179343
break;
179238179344
case 343: /* term ::= QNUMBER */
179239179345
{
179240
- yylhsminor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0);
179241
- sqlite3DequoteNumber(pParse, yylhsminor.yy454);
179346
+ yylhsminor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0);
179347
+ sqlite3DequoteNumber(pParse, yylhsminor.yy590);
179242179348
}
179243
- yymsp[0].minor.yy454 = yylhsminor.yy454;
179349
+ yymsp[0].minor.yy590 = yylhsminor.yy590;
179244179350
break;
179245179351
default:
179246179352
/* (344) input ::= cmdlist */ yytestcase(yyruleno==344);
179247179353
/* (345) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==345);
179248179354
/* (346) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=346);
@@ -180419,11 +180525,11 @@
180419180525
return i;
180420180526
}
180421180527
case CC_MINUS: {
180422180528
if( z[1]=='-' ){
180423180529
for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
180424
- *tokenType = TK_SPACE; /* IMP: R-22934-25134 */
180530
+ *tokenType = TK_COMMENT;
180425180531
return i;
180426180532
}else if( z[1]=='>' ){
180427180533
*tokenType = TK_PTR;
180428180534
return 2 + (z[2]=='>');
180429180535
}
@@ -180455,11 +180561,11 @@
180455180561
*tokenType = TK_SLASH;
180456180562
return 1;
180457180563
}
180458180564
for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
180459180565
if( c ) i++;
180460
- *tokenType = TK_SPACE; /* IMP: R-22934-25134 */
180566
+ *tokenType = TK_COMMENT;
180461180567
return i;
180462180568
}
180463180569
case CC_PERCENT: {
180464180570
*tokenType = TK_REM;
180465180571
return 1;
@@ -180784,16 +180890,16 @@
180784180890
}
180785180891
#ifndef SQLITE_OMIT_WINDOWFUNC
180786180892
if( tokenType>=TK_WINDOW ){
180787180893
assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER
180788180894
|| tokenType==TK_ILLEGAL || tokenType==TK_WINDOW
180789
- || tokenType==TK_QNUMBER
180895
+ || tokenType==TK_QNUMBER || tokenType==TK_COMMENT
180790180896
);
180791180897
#else
180792180898
if( tokenType>=TK_SPACE ){
180793180899
assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL
180794
- || tokenType==TK_QNUMBER
180900
+ || tokenType==TK_QNUMBER || tokenType==TK_COMMENT
180795180901
);
180796180902
#endif /* SQLITE_OMIT_WINDOWFUNC */
180797180903
if( AtomicLoad(&db->u1.isInterrupted) ){
180798180904
pParse->rc = SQLITE_INTERRUPT;
180799180905
pParse->nErr++;
@@ -180823,10 +180929,13 @@
180823180929
tokenType = analyzeOverKeyword((const u8*)&zSql[4], lastTokenParsed);
180824180930
}else if( tokenType==TK_FILTER ){
180825180931
assert( n==6 );
180826180932
tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed);
180827180933
#endif /* SQLITE_OMIT_WINDOWFUNC */
180934
+ }else if( tokenType==TK_COMMENT && (db->flags & SQLITE_Comments)!=0 ){
180935
+ zSql += n;
180936
+ continue;
180828180937
}else if( tokenType!=TK_QNUMBER ){
180829180938
Token x;
180830180939
x.z = zSql;
180831180940
x.n = n;
180832180941
sqlite3ErrorMsg(pParse, "unrecognized token: \"%T\"", &x);
@@ -180929,10 +181038,11 @@
180929181038
prevType = tokenType;
180930181039
}
180931181040
n = sqlite3GetToken((unsigned char*)zSql+i, &tokenType);
180932181041
if( NEVER(n<=0) ) break;
180933181042
switch( tokenType ){
181043
+ case TK_COMMENT:
180934181044
case TK_SPACE: {
180935181045
break;
180936181046
}
180937181047
case TK_NULL: {
180938181048
if( prevType==TK_IS || prevType==TK_NOT ){
@@ -182370,11 +182480,11 @@
182370182480
break;
182371182481
}
182372182482
default: {
182373182483
static const struct {
182374182484
int op; /* The opcode */
182375
- u32 mask; /* Mask of the bit in sqlite3.flags to set/clear */
182485
+ u64 mask; /* Mask of the bit in sqlite3.flags to set/clear */
182376182486
} aFlagOp[] = {
182377182487
{ SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
182378182488
{ SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
182379182489
{ SQLITE_DBCONFIG_ENABLE_VIEW, SQLITE_EnableView },
182380182490
{ SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, SQLITE_Fts3Tokenizer },
@@ -182391,10 +182501,13 @@
182391182501
{ SQLITE_DBCONFIG_DQS_DML, SQLITE_DqsDML },
182392182502
{ SQLITE_DBCONFIG_LEGACY_FILE_FORMAT, SQLITE_LegacyFileFmt },
182393182503
{ SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_TrustedSchema },
182394182504
{ SQLITE_DBCONFIG_STMT_SCANSTATUS, SQLITE_StmtScanStatus },
182395182505
{ SQLITE_DBCONFIG_REVERSE_SCANORDER, SQLITE_ReverseOrder },
182506
+ { SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE, SQLITE_AttachCreate },
182507
+ { SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE, SQLITE_AttachWrite },
182508
+ { SQLITE_DBCONFIG_ENABLE_COMMENTS, SQLITE_Comments },
182396182509
};
182397182510
unsigned int i;
182398182511
rc = SQLITE_ERROR; /* IMP: R-42790-23372 */
182399182512
for(i=0; i<ArraySize(aFlagOp); i++){
182400182513
if( aFlagOp[i].op==op ){
@@ -184732,10 +184845,13 @@
184732184845
#endif
184733184846
db->flags |= SQLITE_ShortColNames
184734184847
| SQLITE_EnableTrigger
184735184848
| SQLITE_EnableView
184736184849
| SQLITE_CacheSpill
184850
+ | SQLITE_AttachCreate
184851
+ | SQLITE_AttachWrite
184852
+ | SQLITE_Comments
184737184853
#if !defined(SQLITE_TRUSTED_SCHEMA) || SQLITE_TRUSTED_SCHEMA+0!=0
184738184854
| SQLITE_TrustedSchema
184739184855
#endif
184740184856
/* The SQLITE_DQS compile-time option determines the default settings
184741184857
** for SQLITE_DBCONFIG_DQS_DDL and SQLITE_DBCONFIG_DQS_DML.
@@ -226528,10 +226644,11 @@
226528226644
}
226529226645
sqlite3PagerUnref(pDbPage);
226530226646
return rc;
226531226647
226532226648
update_fail:
226649
+ pTab->pgnoTrunc = 0;
226533226650
sqlite3_free(pVtab->zErrMsg);
226534226651
pVtab->zErrMsg = sqlite3_mprintf("%s", zErr);
226535226652
return SQLITE_ERROR;
226536226653
}
226537226654
@@ -255689,11 +255806,11 @@
255689255806
int nArg, /* Number of args */
255690255807
sqlite3_value **apUnused /* Function arguments */
255691255808
){
255692255809
assert( nArg==0 );
255693255810
UNUSED_PARAM2(nArg, apUnused);
255694
- sqlite3_result_text(pCtx, "fts5: 2025-01-29 18:53:19 d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f", -1, SQLITE_TRANSIENT);
255811
+ sqlite3_result_text(pCtx, "fts5: 2025-02-01 23:49:01 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a", -1, SQLITE_TRANSIENT);
255695255812
}
255696255813
255697255814
/*
255698255815
** Implementation of fts5_locale(LOCALE, TEXT) function.
255699255816
**
255700255817
--- extsrc/sqlite3.c
+++ extsrc/sqlite3.c
@@ -16,11 +16,11 @@
16 ** if you want a wrapper to interface SQLite with your choice of programming
17 ** language. The code for the "sqlite3" command-line shell is also in a
18 ** separate file. This file contains only code for the core SQLite library.
19 **
20 ** The content in this amalgamation comes from Fossil check-in
21 ** d7c07581203a0a88456588e49e51b40a8341 with changes in files:
22 **
23 **
24 */
25 #ifndef SQLITE_AMALGAMATION
26 #define SQLITE_CORE 1
@@ -465,11 +465,11 @@
465 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
466 ** [sqlite_version()] and [sqlite_source_id()].
467 */
468 #define SQLITE_VERSION "3.49.0"
469 #define SQLITE_VERSION_NUMBER 3049000
470 #define SQLITE_SOURCE_ID "2025-01-29 18:53:19 d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f"
471
472 /*
473 ** CAPI3REF: Run-Time Library Version Numbers
474 ** KEYWORDS: sqlite3_version sqlite3_sourceid
475 **
@@ -2540,12 +2540,16 @@
2540 ** is invoked.
2541 **
2542 ** <dl>
2543 ** [[SQLITE_DBCONFIG_LOOKASIDE]]
2544 ** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2545 ** <dd> ^This option takes three additional arguments that determine the
2546 ** [lookaside memory allocator] configuration for the [database connection].
 
 
 
 
2547 ** ^The first argument (the third parameter to [sqlite3_db_config()] is a
2548 ** pointer to a memory buffer to use for lookaside memory.
2549 ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
2550 ** may be NULL in which case SQLite will allocate the
2551 ** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the
@@ -2564,11 +2568,12 @@
2564 ** [SQLITE_BUSY].)^</dd>
2565 **
2566 ** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
2567 ** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
2568 ** <dd> ^This option is used to enable or disable the enforcement of
2569 ** [foreign key constraints]. There should be two additional arguments.
 
2570 ** The first argument is an integer which is 0 to disable FK enforcement,
2571 ** positive to enable FK enforcement or negative to leave FK enforcement
2572 ** unchanged. The second parameter is a pointer to an integer into which
2573 ** is written 0 or 1 to indicate whether FK enforcement is off or on
2574 ** following this call. The second parameter may be a NULL pointer, in
@@ -2586,17 +2591,17 @@
2586 ** which case the trigger setting is not reported back.
2587 **
2588 ** <p>Originally this option disabled all triggers. ^(However, since
2589 ** SQLite version 3.35.0, TEMP triggers are still allowed even if
2590 ** this option is off. So, in other words, this option now only disables
2591 ** triggers in the main database schema or in the schemas of ATTACH-ed
2592 ** databases.)^ </dd>
2593 **
2594 ** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
2595 ** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
2596 ** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2597 ** There should be two additional arguments.
2598 ** The first argument is an integer which is 0 to disable views,
2599 ** positive to enable views or negative to leave the setting unchanged.
2600 ** The second parameter is a pointer to an integer into which
2601 ** is written 0 or 1 to indicate whether views are disabled or enabled
2602 ** following this call. The second parameter may be a NULL pointer, in
@@ -2611,11 +2616,11 @@
2611 ** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
2612 ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
2613 ** <dd> ^This option is used to enable or disable the
2614 ** [fts3_tokenizer()] function which is part of the
2615 ** [FTS3] full-text search engine extension.
2616 ** There should be two additional arguments.
2617 ** The first argument is an integer which is 0 to disable fts3_tokenizer() or
2618 ** positive to enable fts3_tokenizer() or negative to leave the setting
2619 ** unchanged.
2620 ** The second parameter is a pointer to an integer into which
2621 ** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
@@ -2626,11 +2631,11 @@
2626 ** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
2627 ** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
2628 ** interface independently of the [load_extension()] SQL function.
2629 ** The [sqlite3_enable_load_extension()] API enables or disables both the
2630 ** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2631 ** There should be two additional arguments.
2632 ** When the first argument to this interface is 1, then only the C-API is
2633 ** enabled and the SQL function remains disabled. If the first argument to
2634 ** this interface is 0, then both the C-API and the SQL function are disabled.
2635 ** If the first argument is -1, then no changes are made to state of either the
2636 ** C-API or the SQL function.
@@ -2640,26 +2645,31 @@
2640 ** be a NULL pointer, in which case the new setting is not reported back.
2641 ** </dd>
2642 **
2643 ** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
2644 ** <dd> ^This option is used to change the name of the "main" database
2645 ** schema. ^The sole argument is a pointer to a constant UTF8 string
2646 ** which will become the new schema name in place of "main". ^SQLite
2647 ** does not make a copy of the new main schema name string, so the application
2648 ** must ensure that the argument passed into this DBCONFIG option is unchanged
 
 
 
2649 ** until after the database connection closes.
2650 ** </dd>
2651 **
2652 ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
2653 ** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2654 ** <dd> Usually, when a database in wal mode is closed or detached from a
2655 ** database handle, SQLite checks if this will mean that there are now no
2656 ** connections at all to the database. If so, it performs a checkpoint
2657 ** operation before closing the connection. This option may be used to
2658 ** override this behavior. The first parameter passed to this operation
2659 ** is an integer - positive to disable checkpoints-on-close, or zero (the
2660 ** default) to enable them, and negative to leave the setting unchanged.
 
 
2661 ** The second parameter is a pointer to an integer
2662 ** into which is written 0 or 1 to indicate whether checkpoints-on-close
2663 ** have been disabled - 0 if they are not disabled, 1 if they are.
2664 ** </dd>
2665 **
@@ -2817,11 +2827,11 @@
2817 ** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
2818 ** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
2819 ** statistics. For statistics to be collected, the flag must be set on
2820 ** the database handle both when the SQL statement is prepared and when it
2821 ** is stepped. The flag is set (collection of statistics is enabled)
2822 ** by default. This option takes two arguments: an integer and a pointer to
2823 ** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
2824 ** leave unchanged the statement scanstatus option. If the second argument
2825 ** is not NULL, then the value of the statement scanstatus setting after
2826 ** processing the first argument is written into the integer that the second
2827 ** argument points to.
@@ -2831,20 +2841,87 @@
2831 ** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
2832 ** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
2833 ** in which tables and indexes are scanned so that the scans start at the end
2834 ** and work toward the beginning rather than starting at the beginning and
2835 ** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2836 ** same as setting [PRAGMA reverse_unordered_selects]. This option takes
2837 ** two arguments which are an integer and a pointer to an integer. The first
2838 ** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
2839 ** reverse scan order flag, respectively. If the second argument is not NULL,
2840 ** then 0 or 1 is written into the integer that the second argument points to
2841 ** depending on if the reverse scan order flag is set after processing the
2842 ** first argument.
2843 ** </dd>
2844 **
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2845 ** </dl>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2846 */
2847 #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
2848 #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
2849 #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
2850 #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
@@ -2862,11 +2939,14 @@
2862 #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
2863 #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
2864 #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
2865 #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
2866 #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2867 #define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
 
 
 
2868
2869 /*
2870 ** CAPI3REF: Enable Or Disable Extended Result Codes
2871 ** METHOD: sqlite3
2872 **
@@ -14876,11 +14956,12 @@
14876 #define TK_ASTERISK 180
14877 #define TK_SPAN 181
14878 #define TK_ERROR 182
14879 #define TK_QNUMBER 183
14880 #define TK_SPACE 184
14881 #define TK_ILLEGAL 185
 
14882
14883 /************** End of parse.h ***********************************************/
14884 /************** Continuing where we left off in sqliteInt.h ******************/
14885 #include <stdio.h>
14886 #include <stdlib.h>
@@ -16713,10 +16794,11 @@
16713 ** A signature for a reusable subroutine that materializes the RHS of
16714 ** an IN operator.
16715 */
16716 struct SubrtnSig {
16717 int selId; /* SELECT-id for the SELECT statement on the RHS */
 
16718 char *zAff; /* Affinity of the overall IN expression */
16719 int iTable; /* Ephemeral table generated by the subroutine */
16720 int iAddr; /* Subroutine entry address */
16721 int regReturn; /* Register used to hold return address */
16722 };
@@ -18043,10 +18125,13 @@
18043 /* DELETE, or UPDATE and return */
18044 /* the count using a callback. */
18045 #define SQLITE_CorruptRdOnly HI(0x00002) /* Prohibit writes due to error */
18046 #define SQLITE_ReadUncommit HI(0x00004) /* READ UNCOMMITTED in shared-cache */
18047 #define SQLITE_FkNoAction HI(0x00008) /* Treat all FK as NO ACTION */
 
 
 
18048
18049 /* Flags used only if debugging */
18050 #ifdef SQLITE_DEBUG
18051 #define SQLITE_SqlTrace HI(0x0100000) /* Debug print SQL as it executes */
18052 #define SQLITE_VdbeListing HI(0x0200000) /* Debug listings of VDBE progs */
@@ -90623,11 +90708,10 @@
90623 */
90624 static SQLITE_NOINLINE void invokeProfileCallback(sqlite3 *db, Vdbe *p){
90625 sqlite3_int64 iNow;
90626 sqlite3_int64 iElapse;
90627 assert( p->startTime>0 );
90628 assert( (db->mTrace & (SQLITE_TRACE_PROFILE|SQLITE_TRACE_XPROFILE))!=0 );
90629 assert( db->init.busy==0 );
90630 assert( p->zSql!=0 );
90631 sqlite3OsCurrentTimeInt64(db->pVfs, &iNow);
90632 iElapse = (iNow - p->startTime)*1000000;
90633 #ifndef SQLITE_OMIT_DEPRECATED
@@ -112896,10 +112980,11 @@
112896 for(; pOp<pEnd; pOp++){
112897 if( pOp->p4type!=P4_SUBRTNSIG ) continue;
112898 assert( pOp->opcode==OP_BeginSubrtn );
112899 pSig = pOp->p4.pSubrtnSig;
112900 assert( pSig!=0 );
 
112901 if( pNewSig->selId!=pSig->selId ) continue;
112902 if( strcmp(pNewSig->zAff,pSig->zAff)!=0 ) continue;
112903 pExpr->y.sub.iAddr = pSig->iAddr;
112904 pExpr->y.sub.regReturn = pSig->regReturn;
112905 pExpr->iTable = pSig->iTable;
@@ -112942,10 +113027,11 @@
112942 int addr; /* Address of OP_OpenEphemeral instruction */
112943 Expr *pLeft; /* the LHS of the IN operator */
112944 KeyInfo *pKeyInfo = 0; /* Key information */
112945 int nVal; /* Size of vector pLeft */
112946 Vdbe *v; /* The prepared statement under construction */
 
112947
112948 v = pParse->pVdbe;
112949 assert( v!=0 );
112950
112951 /* The evaluation of the IN must be repeated every time it
@@ -112962,11 +113048,10 @@
112962 /* Reuse of the RHS is allowed
112963 **
112964 ** Compute a signature for the RHS of the IN operator to facility
112965 ** finding and reusing prior instances of the same IN operator.
112966 */
112967 SubrtnSig *pSig = 0;
112968 assert( !ExprUseXSelect(pExpr) || pExpr->x.pSelect!=0 );
112969 if( ExprUseXSelect(pExpr) && (pExpr->x.pSelect->selFlags & SF_All)==0 ){
112970 pSig = sqlite3DbMallocRawNN(pParse->db, sizeof(pSig[0]));
112971 if( pSig ){
112972 pSig->selId = pExpr->x.pSelect->selId;
@@ -113005,10 +113090,11 @@
113005 assert( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) );
113006 pExpr->y.sub.regReturn = ++pParse->nMem;
113007 pExpr->y.sub.iAddr =
113008 sqlite3VdbeAddOp2(v, OP_BeginSubrtn, 0, pExpr->y.sub.regReturn) + 1;
113009 if( pSig ){
 
113010 pSig->iAddr = pExpr->y.sub.iAddr;
113011 pSig->regReturn = pExpr->y.sub.regReturn;
113012 pSig->iTable = iTab;
113013 pParse->mSubrtnSig = 1 << (pSig->selId&7);
113014 sqlite3VdbeChangeP4(v, -1, (const char*)pSig, P4_SUBRTNSIG);
@@ -113140,10 +113226,11 @@
113140 sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iTab, r2, r1, 1);
113141 }
113142 sqlite3ReleaseTempReg(pParse, r1);
113143 sqlite3ReleaseTempReg(pParse, r2);
113144 }
 
113145 if( pKeyInfo ){
113146 sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO);
113147 }
113148 if( addrOnce ){
113149 sqlite3VdbeAddOp1(v, OP_NullRow, iTab);
@@ -121337,10 +121424,16 @@
121337 if( rc!=SQLITE_OK ){
121338 if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
121339 sqlite3_result_error(context, zErr, -1);
121340 sqlite3_free(zErr);
121341 return;
 
 
 
 
 
 
121342 }
121343 assert( pVfs );
121344 flags |= SQLITE_OPEN_MAIN_DB;
121345 rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags);
121346 db->nDb++;
@@ -157233,11 +157326,13 @@
157233 ** sqlite3_declare_vtab() is being misused.
157234 */
157235 z = (const unsigned char*)zCreateTable;
157236 for(i=0; aKeyword[i]; i++){
157237 int tokenType = 0;
157238 do{ z += sqlite3GetToken(z, &tokenType); }while( tokenType==TK_SPACE );
 
 
157239 if( tokenType!=aKeyword[i] ){
157240 sqlite3ErrorWithMsg(db, SQLITE_ERROR, "syntax error");
157241 return SQLITE_ERROR;
157242 }
157243 }
@@ -161606,24 +161701,26 @@
161606 }else if( op==TK_STRING ){
161607 assert( !ExprHasProperty(pRight, EP_IntValue) );
161608 z = (u8*)pRight->u.zToken;
161609 }
161610 if( z ){
161611 /* Count the number of prefix bytes prior to the first wildcard.
161612 ** or U+fffd character. If the underlying database has a UTF16LE
161613 ** encoding, then only consider ASCII characters. Note that the
161614 ** encoding of z[] is UTF8 - we are dealing with only UTF8 here in
161615 ** this code, but the database engine itself might be processing
161616 ** content using a different encoding. */
161617 cnt = 0;
161618 while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
161619 cnt++;
161620 if( c==wc[3] && z[cnt]>0 && z[cnt]<0x80 ){
161621 cnt++;
161622 }else if( c>=0x80 ){
161623 const u8 *z2 = z+cnt-1;
161624 if( sqlite3Utf8Read(&z2)==0xfffd || ENC(db)==SQLITE_UTF16LE ){
 
 
161625 cnt--;
161626 break;
161627 }else{
161628 cnt = (int)(z2-z);
161629 }
@@ -162771,24 +162868,30 @@
162771 pStr2->u.zToken[i] = sqlite3Tolower(c);
162772 }
162773 }
162774
162775 if( !db->mallocFailed ){
162776 u8 c, *pC; /* Last character before the first wildcard */
162777 pC = (u8*)&pStr2->u.zToken[sqlite3Strlen30(pStr2->u.zToken)-1];
162778 c = *pC;
162779 if( noCase ){
162780 /* The point is to increment the last character before the first
162781 ** wildcard. But if we increment '@', that will push it into the
162782 ** alphabetic range where case conversions will mess up the
162783 ** inequality. To avoid this, make sure to also run the full
162784 ** LIKE on all candidate expressions by clearing the isComplete flag
162785 */
162786 if( c=='A'-1 ) isComplete = 0;
162787 c = sqlite3UpperToLower[c];
162788 }
162789 *pC = c + 1;
 
 
 
 
 
 
 
162790 }
162791 zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY;
162792 pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
162793 pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
162794 sqlite3ExprAddCollateString(pParse,pNewExpr1,zCollSeqName),
@@ -174500,11 +174603,12 @@
174500 #define TK_ASTERISK 180
174501 #define TK_SPAN 181
174502 #define TK_ERROR 182
174503 #define TK_QNUMBER 183
174504 #define TK_SPACE 184
174505 #define TK_ILLEGAL 185
 
174506 #endif
174507 /**************** End token definitions ***************************************/
174508
174509 /* The next sections is a series of control #defines.
174510 ** various aspects of the generated parser.
@@ -174565,35 +174669,35 @@
174565 #ifndef INTERFACE
174566 # define INTERFACE 1
174567 #endif
174568 /************* Begin control #defines *****************************************/
174569 #define YYCODETYPE unsigned short int
174570 #define YYNOCODE 322
174571 #define YYACTIONTYPE unsigned short int
174572 #define YYWILDCARD 102
174573 #define sqlite3ParserTOKENTYPE Token
174574 typedef union {
174575 int yyinit;
174576 sqlite3ParserTOKENTYPE yy0;
174577 ExprList* yy14;
174578 With* yy59;
174579 Cte* yy67;
174580 Upsert* yy122;
174581 IdList* yy132;
174582 int yy144;
174583 const char* yy168;
174584 SrcList* yy203;
174585 Window* yy211;
174586 OnOrUsing yy269;
174587 struct TrigEvent yy286;
174588 struct {int value; int mask;} yy383;
174589 u32 yy391;
174590 TriggerStep* yy427;
174591 Expr* yy454;
174592 u8 yy462;
174593 struct FrameBound yy509;
174594 Select* yy555;
174595 } YYMINORTYPE;
174596 #ifndef YYSTACKDEPTH
174597 #define YYSTACKDEPTH 100
174598 #endif
174599 #define sqlite3ParserARG_SDECL
@@ -174611,21 +174715,21 @@
174611 #define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
174612 #define YYFALLBACK 1
174613 #define YYNSTATE 583
174614 #define YYNRULE 409
174615 #define YYNRULE_WITH_ACTION 344
174616 #define YYNTOKEN 186
174617 #define YY_MAX_SHIFT 582
174618 #define YY_MIN_SHIFTREDUCE 845
174619 #define YY_MAX_SHIFTREDUCE 1253
174620 #define YY_ERROR_ACTION 1254
174621 #define YY_ACCEPT_ACTION 1255
174622 #define YY_NO_ACTION 1256
174623 #define YY_MIN_REDUCE 1257
174624 #define YY_MAX_REDUCE 1665
174625 #define YY_MIN_DSTRCTR 205
174626 #define YY_MAX_DSTRCTR 319
174627 /************* End control #defines *******************************************/
174628 #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
174629
174630 /* Define the yytestcase() macro to be a no-op if is not already defined
174631 ** otherwise.
@@ -174717,573 +174821,573 @@
174717 /* 60 */ 288, 288, 182, 288, 288, 481, 536, 288, 288, 130,
174718 /* 70 */ 127, 234, 432, 573, 525, 562, 573, 557, 562, 1290,
174719 /* 80 */ 573, 421, 562, 137, 138, 91, 559, 1228, 1228, 1063,
174720 /* 90 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 296,
174721 /* 100 */ 460, 398, 1249, 134, 134, 134, 134, 133, 133, 132,
174722 /* 110 */ 132, 132, 131, 128, 451, 44, 1050, 1050, 1064, 1067,
174723 /* 120 */ 1255, 1, 1, 582, 2, 1259, 581, 1174, 1259, 1174,
174724 /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 498, 1341,
174725 /* 140 */ 456, 299, 1341, 134, 134, 134, 134, 133, 133, 132,
174726 /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 1105, 1228,
174727 /* 160 */ 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136,
174728 /* 170 */ 136, 1204, 320, 567, 288, 288, 283, 288, 288, 523,
174729 /* 180 */ 523, 1250, 139, 1541, 7, 214, 503, 573, 1169, 562,
174730 /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 401, 547,
174731 /* 200 */ 487, 1169, 245, 1568, 1169, 245, 133, 133, 132, 132,
174732 /* 210 */ 132, 131, 128, 451, 261, 134, 134, 134, 134, 133,
174733 /* 220 */ 133, 132, 132, 132, 131, 128, 451, 451, 1204, 1205,
174734 /* 230 */ 1204, 130, 127, 234, 455, 413, 182, 455, 130, 127,
174735 /* 240 */ 234, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174736 /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 576, 137,
174737 /* 260 */ 138, 91, 261, 1228, 1228, 1063, 1066, 1053, 1053, 135,
174738 /* 270 */ 135, 136, 136, 136, 136, 44, 472, 346, 1204, 472,
174739 /* 280 */ 346, 51, 51, 418, 93, 157, 134, 134, 134, 134,
174740 /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 166, 363,
174741 /* 300 */ 298, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174742 /* 310 */ 131, 128, 451, 1293, 461, 1570, 423, 377, 275, 134,
174743 /* 320 */ 134, 134, 134, 133, 133, 132, 132, 132, 131, 128,
174744 /* 330 */ 451, 418, 320, 567, 1292, 1204, 1205, 1204, 257, 413,
174745 /* 340 */ 483, 511, 508, 507, 94, 132, 132, 132, 131, 128,
174746 /* 350 */ 451, 506, 1204, 548, 548, 388, 576, 384, 7, 413,
174747 /* 360 */ 550, 229, 522, 137, 138, 91, 530, 1228, 1228, 1063,
174748 /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 51,
174749 /* 380 */ 51, 1582, 380, 137, 138, 91, 331, 1228, 1228, 1063,
174750 /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 320,
174751 /* 400 */ 567, 288, 288, 320, 567, 1602, 582, 2, 1259, 1204,
174752 /* 410 */ 1205, 1204, 1628, 321, 573, 155, 562, 576, 1511, 264,
174753 /* 420 */ 231, 520, 1341, 134, 134, 134, 134, 133, 133, 132,
174754 /* 430 */ 132, 132, 131, 128, 451, 519, 1511, 1513, 1333, 1333,
174755 /* 440 */ 82, 82, 498, 134, 134, 134, 134, 133, 133, 132,
174756 /* 450 */ 132, 132, 131, 128, 451, 1435, 257, 288, 288, 511,
174757 /* 460 */ 508, 507, 944, 1568, 413, 1019, 1204, 943, 360, 506,
174758 /* 470 */ 573, 1598, 562, 44, 575, 551, 551, 557, 1107, 1582,
174759 /* 480 */ 544, 576, 1107, 40, 417, 245, 531, 1505, 137, 138,
174760 /* 490 */ 91, 219, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174761 /* 500 */ 136, 136, 136, 136, 81, 81, 1281, 1204, 413, 553,
174762 /* 510 */ 1511, 48, 512, 448, 447, 493, 578, 455, 578, 344,
174763 /* 520 */ 45, 1204, 1233, 1204, 1205, 1204, 428, 1235, 158, 882,
174764 /* 530 */ 320, 567, 137, 138, 91, 1234, 1228, 1228, 1063, 1066,
174765 /* 540 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 134, 134,
174766 /* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
174767 /* 560 */ 1236, 576, 1236, 329, 1204, 1205, 1204, 387, 492, 403,
174768 /* 570 */ 1040, 382, 489, 123, 568, 1569, 4, 377, 1204, 1205,
174769 /* 580 */ 1204, 570, 570, 570, 82, 82, 882, 1029, 1331, 1331,
174770 /* 590 */ 571, 1028, 134, 134, 134, 134, 133, 133, 132, 132,
174771 /* 600 */ 132, 131, 128, 451, 288, 288, 1281, 1204, 576, 423,
174772 /* 610 */ 576, 1568, 413, 423, 452, 378, 886, 573, 1279, 562,
174773 /* 620 */ 46, 557, 532, 1028, 1028, 1030, 565, 130, 127, 234,
174774 /* 630 */ 556, 82, 82, 82, 82, 479, 137, 138, 91, 462,
174775 /* 640 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174776 /* 650 */ 136, 136, 1188, 487, 1506, 1040, 413, 6, 1204, 50,
174777 /* 660 */ 879, 121, 121, 948, 1204, 1205, 1204, 358, 557, 122,
174778 /* 670 */ 316, 452, 577, 452, 535, 1204, 1028, 439, 303, 212,
174779 /* 680 */ 137, 138, 91, 213, 1228, 1228, 1063, 1066, 1053, 1053,
174780 /* 690 */ 135, 135, 136, 136, 136, 136, 134, 134, 134, 134,
174781 /* 700 */ 133, 133, 132, 132, 132, 131, 128, 451, 1028, 1028,
174782 /* 710 */ 1030, 1031, 35, 288, 288, 1204, 1205, 1204, 1040, 1339,
174783 /* 720 */ 533, 123, 568, 1569, 4, 377, 573, 1019, 562, 353,
174784 /* 730 */ 1277, 356, 1204, 1205, 1204, 1029, 488, 1188, 571, 1028,
174785 /* 740 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174786 /* 750 */ 128, 451, 576, 343, 288, 288, 449, 449, 449, 971,
174787 /* 760 */ 413, 1627, 452, 911, 1187, 288, 288, 573, 464, 562,
174788 /* 770 */ 238, 1028, 1028, 1030, 565, 82, 82, 498, 573, 411,
174789 /* 780 */ 562, 344, 467, 332, 137, 138, 91, 197, 1228, 1228,
174790 /* 790 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174791 /* 800 */ 1188, 528, 1169, 1040, 413, 1110, 1110, 495, 1041, 121,
174792 /* 810 */ 121, 1204, 317, 540, 862, 1169, 1244, 122, 1169, 452,
174793 /* 820 */ 577, 452, 1340, 198, 1028, 1204, 481, 526, 137, 138,
174794 /* 830 */ 91, 560, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174795 /* 840 */ 136, 136, 136, 136, 134, 134, 134, 134, 133, 133,
174796 /* 850 */ 132, 132, 132, 131, 128, 451, 1028, 1028, 1030, 1031,
174797 /* 860 */ 35, 1204, 288, 288, 1204, 477, 288, 288, 1204, 1205,
174798 /* 870 */ 1204, 539, 481, 437, 470, 573, 1451, 562, 364, 573,
174799 /* 880 */ 1153, 562, 1204, 1205, 1204, 1188, 5, 576, 134, 134,
174800 /* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
174801 /* 900 */ 221, 214, 302, 96, 1149, 1657, 232, 1657, 413, 392,
174802 /* 910 */ 19, 19, 1024, 949, 406, 373, 1595, 1085, 1204, 1205,
174803 /* 920 */ 1204, 1204, 1205, 1204, 1204, 426, 1149, 1658, 413, 1658,
174804 /* 930 */ 1659, 399, 137, 138, 91, 3, 1228, 1228, 1063, 1066,
174805 /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 304, 1311,
174806 /* 950 */ 514, 1204, 137, 138, 91, 1498, 1228, 1228, 1063, 1066,
174807 /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 131,
174808 /* 970 */ 128, 451, 375, 1204, 274, 291, 372, 517, 367, 516,
174809 /* 980 */ 262, 1204, 1205, 1204, 1147, 227, 363, 448, 447, 1435,
174810 /* 990 */ 1568, 1310, 134, 134, 134, 134, 133, 133, 132, 132,
174811 /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 487, 1204, 1205,
174812 /* 1010 */ 1204, 442, 134, 134, 134, 134, 133, 133, 132, 132,
174813 /* 1020 */ 132, 131, 128, 451, 386, 576, 485, 576, 19, 19,
174814 /* 1030 */ 1204, 1205, 1204, 1345, 1236, 970, 1236, 574, 47, 936,
174815 /* 1040 */ 936, 473, 413, 431, 1552, 573, 1125, 562, 19, 19,
174816 /* 1050 */ 19, 19, 49, 336, 850, 851, 852, 111, 1368, 315,
174817 /* 1060 */ 429, 576, 413, 433, 341, 306, 137, 138, 91, 115,
174818 /* 1070 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174819 /* 1080 */ 136, 136, 576, 1309, 82, 82, 137, 138, 91, 529,
174820 /* 1090 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174821 /* 1100 */ 136, 136, 1569, 222, 377, 19, 19, 305, 1126, 1169,
174822 /* 1110 */ 398, 1148, 22, 22, 498, 333, 1569, 335, 377, 576,
174823 /* 1120 */ 438, 445, 1169, 1127, 486, 1169, 134, 134, 134, 134,
174824 /* 1130 */ 133, 133, 132, 132, 132, 131, 128, 451, 1128, 576,
174825 /* 1140 */ 902, 576, 145, 145, 6, 576, 134, 134, 134, 134,
174826 /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 214, 1336,
174827 /* 1160 */ 922, 576, 19, 19, 19, 19, 1282, 419, 19, 19,
174828 /* 1170 */ 923, 412, 515, 141, 576, 1169, 413, 206, 465, 207,
174829 /* 1180 */ 903, 215, 1575, 552, 147, 147, 7, 227, 1169, 411,
174830 /* 1190 */ 1250, 1169, 120, 307, 117, 307, 413, 66, 66, 334,
174831 /* 1200 */ 137, 138, 91, 119, 1228, 1228, 1063, 1066, 1053, 1053,
174832 /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 285, 209, 969,
174833 /* 1220 */ 137, 138, 91, 471, 1228, 1228, 1063, 1066, 1053, 1053,
174834 /* 1230 */ 135, 135, 136, 136, 136, 136, 435, 10, 1450, 267,
174835 /* 1240 */ 137, 126, 91, 1435, 1228, 1228, 1063, 1066, 1053, 1053,
174836 /* 1250 */ 135, 135, 136, 136, 136, 136, 1435, 1435, 410, 409,
174837 /* 1260 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174838 /* 1270 */ 128, 451, 576, 969, 576, 1224, 498, 373, 1595, 1554,
174839 /* 1280 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174840 /* 1290 */ 128, 451, 532, 457, 576, 82, 82, 82, 82, 111,
174841 /* 1300 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174842 /* 1310 */ 128, 451, 109, 233, 430, 1576, 546, 67, 67, 7,
174843 /* 1320 */ 413, 351, 550, 1550, 260, 259, 258, 494, 443, 569,
174844 /* 1330 */ 419, 983, 446, 1224, 450, 545, 1207, 576, 969, 984,
174845 /* 1340 */ 413, 475, 1449, 1574, 1180, 138, 91, 7, 1228, 1228,
174846 /* 1350 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174847 /* 1360 */ 21, 21, 267, 576, 300, 1126, 91, 233, 1228, 1228,
174848 /* 1370 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174849 /* 1380 */ 1127, 373, 1595, 161, 1573, 16, 53, 53, 7, 108,
174850 /* 1390 */ 533, 38, 969, 125, 1207, 1128, 1180, 576, 1224, 123,
174851 /* 1400 */ 568, 893, 4, 324, 134, 134, 134, 134, 133, 133,
174852 /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 576,
174853 /* 1420 */ 68, 68, 576, 39, 134, 134, 134, 134, 133, 133,
174854 /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 160, 1571, 1223,
174855 /* 1440 */ 452, 576, 54, 54, 576, 69, 69, 576, 1366, 576,
174856 /* 1450 */ 420, 184, 565, 463, 297, 576, 1224, 463, 297, 70,
174857 /* 1460 */ 70, 576, 44, 474, 71, 71, 576, 72, 72, 576,
174858 /* 1470 */ 73, 73, 55, 55, 411, 874, 242, 576, 56, 56,
174859 /* 1480 */ 576, 1040, 576, 478, 57, 57, 576, 121, 121, 59,
174860 /* 1490 */ 59, 23, 60, 60, 411, 122, 319, 452, 577, 452,
174861 /* 1500 */ 74, 74, 1028, 75, 75, 76, 76, 411, 290, 20,
174862 /* 1510 */ 20, 108, 287, 231, 553, 123, 568, 325, 4, 320,
174863 /* 1520 */ 567, 97, 218, 944, 1144, 328, 400, 576, 943, 576,
174864 /* 1530 */ 1380, 424, 571, 874, 1028, 1028, 1030, 1031, 35, 293,
174865 /* 1540 */ 534, 576, 1104, 576, 1104, 9, 576, 342, 576, 111,
174866 /* 1550 */ 77, 77, 143, 143, 576, 205, 452, 222, 1379, 889,
174867 /* 1560 */ 576, 901, 900, 1188, 144, 144, 78, 78, 565, 62,
174868 /* 1570 */ 62, 79, 79, 323, 1021, 576, 266, 63, 63, 908,
174869 /* 1580 */ 909, 1589, 542, 80, 80, 576, 371, 541, 123, 568,
174870 /* 1590 */ 480, 4, 266, 482, 244, 266, 370, 1040, 64, 64,
174871 /* 1600 */ 576, 466, 576, 121, 121, 571, 1557, 576, 170, 170,
174872 /* 1610 */ 576, 122, 576, 452, 577, 452, 576, 889, 1028, 576,
174873 /* 1620 */ 165, 576, 111, 171, 171, 87, 87, 337, 1616, 452,
174874 /* 1630 */ 65, 65, 1530, 83, 83, 146, 146, 986, 987, 84,
174875 /* 1640 */ 84, 565, 168, 168, 148, 148, 1092, 347, 1032, 111,
174876 /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 1103, 576, 1103, 576,
174877 /* 1660 */ 543, 123, 568, 504, 4, 263, 576, 361, 1529, 111,
174878 /* 1670 */ 1040, 1088, 576, 263, 576, 490, 121, 121, 571, 1188,
174879 /* 1680 */ 142, 142, 169, 169, 122, 576, 452, 577, 452, 162,
174880 /* 1690 */ 162, 1028, 576, 563, 576, 152, 152, 151, 151, 348,
174881 /* 1700 */ 1376, 974, 452, 266, 1092, 942, 1032, 125, 149, 149,
174882 /* 1710 */ 939, 576, 125, 576, 565, 150, 150, 86, 86, 872,
174883 /* 1720 */ 352, 159, 576, 1028, 1028, 1030, 1031, 35, 542, 941,
174884 /* 1730 */ 576, 125, 355, 541, 88, 88, 85, 85, 357, 359,
174885 /* 1740 */ 1324, 1308, 366, 1040, 376, 52, 52, 499, 1389, 121,
174886 /* 1750 */ 121, 1434, 1188, 58, 58, 1362, 1374, 122, 1439, 452,
174887 /* 1760 */ 577, 452, 1289, 167, 1028, 1280, 280, 1268, 1267, 1269,
174888 /* 1770 */ 1609, 1359, 312, 313, 12, 314, 397, 1421, 224, 1416,
174889 /* 1780 */ 295, 237, 1409, 339, 340, 1426, 301, 345, 484, 228,
174890 /* 1790 */ 1371, 1307, 1372, 1370, 1425, 404, 1028, 1028, 1030, 1031,
174891 /* 1800 */ 35, 1601, 1192, 454, 509, 369, 292, 1502, 210, 1501,
174892 /* 1810 */ 1369, 396, 396, 395, 277, 393, 211, 566, 859, 1612,
174893 /* 1820 */ 1244, 123, 568, 391, 4, 1188, 223, 270, 1549, 1547,
174894 /* 1830 */ 1241, 239, 186, 327, 422, 96, 195, 220, 571, 235,
174895 /* 1840 */ 180, 326, 188, 468, 190, 1507, 191, 192, 92, 193,
174896 /* 1850 */ 469, 95, 1422, 13, 502, 247, 1430, 109, 199, 402,
174897 /* 1860 */ 476, 405, 452, 1496, 1428, 1427, 14, 491, 251, 102,
174898 /* 1870 */ 497, 1518, 241, 281, 565, 253, 203, 354, 500, 254,
174899 /* 1880 */ 175, 1270, 407, 43, 350, 518, 1327, 436, 255, 1326,
174900 /* 1890 */ 1325, 1318, 104, 893, 1626, 229, 408, 440, 1625, 441,
174901 /* 1900 */ 240, 310, 1296, 1040, 311, 1317, 527, 1594, 1297, 121,
174902 /* 1910 */ 121, 368, 1295, 1624, 268, 269, 1580, 122, 1579, 452,
174903 /* 1920 */ 577, 452, 374, 444, 1028, 1394, 1393, 140, 553, 90,
174904 /* 1930 */ 568, 11, 4, 1483, 383, 414, 385, 110, 116, 216,
174905 /* 1940 */ 320, 567, 1350, 555, 42, 318, 571, 537, 1349, 389,
174906 /* 1950 */ 390, 579, 1198, 276, 279, 278, 1028, 1028, 1030, 1031,
174907 /* 1960 */ 35, 580, 415, 1265, 458, 1260, 416, 185, 1534, 172,
174908 /* 1970 */ 452, 1535, 173, 156, 308, 846, 1533, 1532, 453, 217,
174909 /* 1980 */ 225, 89, 565, 174, 322, 1188, 226, 236, 1102, 154,
174910 /* 1990 */ 1100, 330, 176, 187, 1223, 189, 925, 338, 243, 1116,
174911 /* 2000 */ 246, 194, 177, 178, 425, 427, 98, 99, 196, 100,
174912 /* 2010 */ 101, 1040, 179, 1119, 248, 1115, 249, 121, 121, 24,
174913 /* 2020 */ 163, 250, 349, 1108, 266, 122, 1238, 452, 577, 452,
174914 /* 2030 */ 1192, 454, 1028, 200, 292, 496, 252, 201, 861, 396,
174915 /* 2040 */ 396, 395, 277, 393, 15, 501, 859, 370, 292, 256,
174916 /* 2050 */ 202, 554, 505, 396, 396, 395, 277, 393, 103, 239,
174917 /* 2060 */ 859, 327, 25, 26, 1028, 1028, 1030, 1031, 35, 326,
174918 /* 2070 */ 362, 510, 891, 239, 365, 327, 513, 904, 105, 309,
174919 /* 2080 */ 164, 181, 27, 326, 106, 521, 107, 1185, 1069, 1155,
174920 /* 2090 */ 17, 1154, 284, 1188, 286, 978, 265, 204, 125, 1171,
174921 /* 2100 */ 241, 230, 972, 1175, 28, 1160, 29, 1179, 175, 1173,
174922 /* 2110 */ 30, 43, 31, 1178, 241, 32, 41, 549, 8, 33,
174923 /* 2120 */ 208, 111, 175, 1083, 1070, 43, 113, 1068, 240, 114,
174924 /* 2130 */ 1072, 34, 1073, 561, 1124, 118, 271, 36, 18, 1194,
174925 /* 2140 */ 1033, 873, 240, 935, 124, 37, 272, 273, 1617, 572,
174926 /* 2150 */ 183, 153, 394, 1193, 1256, 1256, 1256, 1256, 1256, 1256,
174927 /* 2160 */ 1256, 1256, 1256, 414, 1256, 1256, 1256, 1256, 320, 567,
174928 /* 2170 */ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 414, 1256, 1256,
174929 /* 2180 */ 1256, 1256, 320, 567, 1256, 1256, 1256, 1256, 1256, 1256,
174930 /* 2190 */ 1256, 1256, 458, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
174931 /* 2200 */ 1256, 1256, 1256, 1256, 1256, 1256, 458,
174932 };
174933 static const YYCODETYPE yy_lookahead[] = {
174934 /* 0 */ 276, 277, 278, 240, 241, 224, 194, 226, 194, 240,
174935 /* 10 */ 241, 194, 216, 220, 194, 234, 253, 194, 255, 19,
174936 /* 20 */ 224, 297, 253, 194, 255, 205, 212, 213, 205, 217,
174937 /* 30 */ 218, 31, 205, 194, 217, 218, 194, 217, 218, 39,
174938 /* 40 */ 217, 218, 312, 43, 44, 45, 316, 47, 48, 49,
174939 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 19,
174940 /* 60 */ 240, 241, 194, 240, 241, 194, 254, 240, 241, 276,
174941 /* 70 */ 277, 278, 233, 253, 254, 255, 253, 254, 255, 217,
174942 /* 80 */ 253, 239, 255, 43, 44, 45, 263, 47, 48, 49,
174943 /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 270,
174944 /* 100 */ 286, 22, 23, 103, 104, 105, 106, 107, 108, 109,
174945 /* 110 */ 110, 111, 112, 113, 114, 82, 47, 48, 49, 50,
174946 /* 120 */ 186, 187, 188, 189, 190, 191, 189, 87, 191, 89,
174947 /* 130 */ 196, 19, 198, 196, 317, 198, 319, 25, 194, 205,
174948 /* 140 */ 298, 270, 205, 103, 104, 105, 106, 107, 108, 109,
174949 /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 11, 47,
174950 /* 160 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
174951 /* 170 */ 58, 60, 139, 140, 240, 241, 214, 240, 241, 311,
174952 /* 180 */ 312, 102, 70, 239, 316, 194, 19, 253, 77, 255,
174953 /* 190 */ 253, 122, 255, 55, 56, 57, 58, 59, 207, 88,
174954 /* 200 */ 194, 90, 268, 194, 93, 268, 107, 108, 109, 110,
174955 /* 210 */ 111, 112, 113, 114, 47, 103, 104, 105, 106, 107,
174956 /* 220 */ 108, 109, 110, 111, 112, 113, 114, 114, 117, 118,
174957 /* 230 */ 119, 276, 277, 278, 300, 19, 194, 300, 276, 277,
174958 /* 240 */ 278, 103, 104, 105, 106, 107, 108, 109, 110, 111,
174959 /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 194, 43,
174960 /* 260 */ 44, 45, 47, 47, 48, 49, 50, 51, 52, 53,
174961 /* 270 */ 54, 55, 56, 57, 58, 82, 129, 130, 60, 129,
174962 /* 280 */ 130, 217, 218, 116, 68, 25, 103, 104, 105, 106,
174963 /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 23, 132,
174964 /* 300 */ 294, 103, 104, 105, 106, 107, 108, 109, 110, 111,
174965 /* 310 */ 112, 113, 114, 217, 121, 306, 194, 308, 26, 103,
174966 /* 320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
174967 /* 330 */ 114, 116, 139, 140, 217, 117, 118, 119, 120, 19,
174968 /* 340 */ 194, 123, 124, 125, 24, 109, 110, 111, 112, 113,
174969 /* 350 */ 114, 133, 60, 311, 312, 250, 194, 252, 316, 19,
174970 /* 360 */ 194, 166, 167, 43, 44, 45, 205, 47, 48, 49,
174971 /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 217,
174972 /* 380 */ 218, 317, 318, 43, 44, 45, 264, 47, 48, 49,
174973 /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 139,
174974 /* 400 */ 140, 240, 241, 139, 140, 188, 189, 190, 191, 117,
174975 /* 410 */ 118, 119, 231, 196, 253, 198, 255, 194, 194, 258,
174976 /* 420 */ 259, 146, 205, 103, 104, 105, 106, 107, 108, 109,
174977 /* 430 */ 110, 111, 112, 113, 114, 109, 212, 213, 236, 237,
174978 /* 440 */ 217, 218, 194, 103, 104, 105, 106, 107, 108, 109,
174979 /* 450 */ 110, 111, 112, 113, 114, 194, 120, 240, 241, 123,
174980 /* 460 */ 124, 125, 136, 194, 19, 74, 60, 141, 23, 133,
174981 /* 470 */ 253, 194, 255, 82, 194, 309, 310, 254, 29, 317,
174982 /* 480 */ 318, 194, 33, 22, 199, 268, 263, 239, 43, 44,
174983 /* 490 */ 45, 151, 47, 48, 49, 50, 51, 52, 53, 54,
174984 /* 500 */ 55, 56, 57, 58, 217, 218, 194, 60, 19, 146,
174985 /* 510 */ 286, 242, 23, 107, 108, 66, 204, 300, 206, 128,
174986 /* 520 */ 73, 60, 116, 117, 118, 119, 265, 121, 165, 60,
174987 /* 530 */ 139, 140, 43, 44, 45, 129, 47, 48, 49, 50,
174988 /* 540 */ 51, 52, 53, 54, 55, 56, 57, 58, 103, 104,
174989 /* 550 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
174990 /* 560 */ 154, 194, 156, 194, 117, 118, 119, 280, 283, 205,
174991 /* 570 */ 101, 220, 287, 19, 20, 306, 22, 308, 117, 118,
174992 /* 580 */ 119, 211, 212, 213, 217, 218, 117, 118, 236, 237,
174993 /* 590 */ 36, 122, 103, 104, 105, 106, 107, 108, 109, 110,
174994 /* 600 */ 111, 112, 113, 114, 240, 241, 194, 60, 194, 194,
174995 /* 610 */ 194, 194, 19, 194, 60, 194, 23, 253, 206, 255,
174996 /* 620 */ 73, 254, 19, 154, 155, 156, 72, 276, 277, 278,
174997 /* 630 */ 263, 217, 218, 217, 218, 271, 43, 44, 45, 271,
174998 /* 640 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
174999 /* 650 */ 57, 58, 183, 194, 285, 101, 19, 214, 60, 242,
175000 /* 660 */ 23, 107, 108, 109, 117, 118, 119, 16, 254, 115,
175001 /* 670 */ 254, 117, 118, 119, 194, 60, 122, 263, 205, 264,
175002 /* 680 */ 43, 44, 45, 264, 47, 48, 49, 50, 51, 52,
175003 /* 690 */ 53, 54, 55, 56, 57, 58, 103, 104, 105, 106,
175004 /* 700 */ 107, 108, 109, 110, 111, 112, 113, 114, 154, 155,
175005 /* 710 */ 156, 157, 158, 240, 241, 117, 118, 119, 101, 205,
175006 /* 720 */ 117, 19, 20, 306, 22, 308, 253, 74, 255, 78,
175007 /* 730 */ 205, 80, 117, 118, 119, 118, 293, 183, 36, 122,
175008 /* 740 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175009 /* 750 */ 113, 114, 194, 294, 240, 241, 211, 212, 213, 144,
175010 /* 760 */ 19, 23, 60, 25, 23, 240, 241, 253, 245, 255,
175011 /* 770 */ 15, 154, 155, 156, 72, 217, 218, 194, 253, 256,
175012 /* 780 */ 255, 128, 129, 130, 43, 44, 45, 22, 47, 48,
175013 /* 790 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175014 /* 800 */ 183, 19, 77, 101, 19, 128, 129, 130, 23, 107,
175015 /* 810 */ 108, 60, 254, 88, 21, 90, 61, 115, 93, 117,
175016 /* 820 */ 118, 119, 239, 22, 122, 60, 194, 205, 43, 44,
175017 /* 830 */ 45, 205, 47, 48, 49, 50, 51, 52, 53, 54,
175018 /* 840 */ 55, 56, 57, 58, 103, 104, 105, 106, 107, 108,
175019 /* 850 */ 109, 110, 111, 112, 113, 114, 154, 155, 156, 157,
175020 /* 860 */ 158, 60, 240, 241, 60, 116, 240, 241, 117, 118,
175021 /* 870 */ 119, 146, 194, 19, 81, 253, 275, 255, 24, 253,
175022 /* 880 */ 98, 255, 117, 118, 119, 183, 22, 194, 103, 104,
175023 /* 890 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
175024 /* 900 */ 151, 194, 270, 152, 22, 23, 194, 25, 19, 202,
175025 /* 910 */ 217, 218, 23, 109, 207, 314, 315, 124, 117, 118,
175026 /* 920 */ 119, 117, 118, 119, 60, 232, 22, 23, 19, 25,
175027 /* 930 */ 303, 304, 43, 44, 45, 22, 47, 48, 49, 50,
175028 /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 270, 227,
175029 /* 950 */ 96, 60, 43, 44, 45, 162, 47, 48, 49, 50,
175030 /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 112,
175031 /* 970 */ 113, 114, 194, 60, 120, 121, 122, 123, 124, 125,
175032 /* 980 */ 126, 117, 118, 119, 102, 25, 132, 107, 108, 194,
175033 /* 990 */ 194, 227, 103, 104, 105, 106, 107, 108, 109, 110,
175034 /* 1000 */ 111, 112, 113, 114, 194, 194, 102, 194, 117, 118,
175035 /* 1010 */ 119, 233, 103, 104, 105, 106, 107, 108, 109, 110,
175036 /* 1020 */ 111, 112, 113, 114, 194, 194, 19, 194, 217, 218,
175037 /* 1030 */ 117, 118, 119, 241, 154, 144, 156, 135, 242, 137,
175038 /* 1040 */ 138, 130, 19, 232, 194, 253, 23, 255, 217, 218,
175039 /* 1050 */ 217, 218, 242, 16, 7, 8, 9, 25, 261, 262,
175040 /* 1060 */ 265, 194, 19, 232, 153, 232, 43, 44, 45, 160,
175041 /* 1070 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175042 /* 1080 */ 57, 58, 194, 227, 217, 218, 43, 44, 45, 194,
175043 /* 1090 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175044 /* 1100 */ 57, 58, 306, 143, 308, 217, 218, 294, 12, 77,
175045 /* 1110 */ 22, 23, 217, 218, 194, 78, 306, 80, 308, 194,
175046 /* 1120 */ 232, 254, 90, 27, 117, 93, 103, 104, 105, 106,
175047 /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 194,
175048 /* 1140 */ 35, 194, 217, 218, 214, 194, 103, 104, 105, 106,
175049 /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 194, 239,
175050 /* 1160 */ 64, 194, 217, 218, 217, 218, 209, 210, 217, 218,
175051 /* 1170 */ 74, 207, 67, 22, 194, 77, 19, 232, 245, 232,
175052 /* 1180 */ 75, 24, 312, 232, 217, 218, 316, 25, 90, 256,
175053 /* 1190 */ 102, 93, 159, 229, 161, 231, 19, 217, 218, 162,
175054 /* 1200 */ 43, 44, 45, 160, 47, 48, 49, 50, 51, 52,
175055 /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 23, 288, 25,
175056 /* 1220 */ 43, 44, 45, 293, 47, 48, 49, 50, 51, 52,
175057 /* 1230 */ 53, 54, 55, 56, 57, 58, 131, 22, 275, 24,
175058 /* 1240 */ 43, 44, 45, 194, 47, 48, 49, 50, 51, 52,
175059 /* 1250 */ 53, 54, 55, 56, 57, 58, 194, 194, 107, 108,
175060 /* 1260 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175061 /* 1270 */ 113, 114, 194, 25, 194, 60, 194, 314, 315, 194,
175062 /* 1280 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175063 /* 1290 */ 113, 114, 19, 194, 194, 217, 218, 217, 218, 25,
175064 /* 1300 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175065 /* 1310 */ 113, 114, 150, 119, 265, 312, 67, 217, 218, 316,
175066 /* 1320 */ 19, 239, 194, 194, 128, 129, 130, 265, 265, 209,
175067 /* 1330 */ 210, 31, 254, 118, 254, 86, 60, 194, 144, 39,
175068 /* 1340 */ 19, 130, 275, 312, 95, 44, 45, 316, 47, 48,
175069 /* 1350 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175070 /* 1360 */ 217, 218, 24, 194, 153, 12, 45, 119, 47, 48,
175071 /* 1370 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175072 /* 1380 */ 27, 314, 315, 22, 312, 24, 217, 218, 316, 116,
175073 /* 1390 */ 117, 22, 144, 25, 118, 42, 147, 194, 60, 19,
175074 /* 1400 */ 20, 127, 22, 194, 103, 104, 105, 106, 107, 108,
175075 /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 194,
175076 /* 1420 */ 217, 218, 194, 54, 103, 104, 105, 106, 107, 108,
175077 /* 1430 */ 109, 110, 111, 112, 113, 114, 194, 22, 310, 25,
175078 /* 1440 */ 60, 194, 217, 218, 194, 217, 218, 194, 260, 194,
175079 /* 1450 */ 301, 302, 72, 262, 262, 194, 118, 266, 266, 217,
175080 /* 1460 */ 218, 194, 82, 245, 217, 218, 194, 217, 218, 194,
175081 /* 1470 */ 217, 218, 217, 218, 256, 60, 24, 194, 217, 218,
175082 /* 1480 */ 194, 101, 194, 245, 217, 218, 194, 107, 108, 217,
175083 /* 1490 */ 218, 22, 217, 218, 256, 115, 245, 117, 118, 119,
175084 /* 1500 */ 217, 218, 122, 217, 218, 217, 218, 256, 22, 217,
175085 /* 1510 */ 218, 116, 258, 259, 146, 19, 20, 194, 22, 139,
175086 /* 1520 */ 140, 150, 151, 136, 23, 194, 25, 194, 141, 194,
175087 /* 1530 */ 194, 62, 36, 118, 154, 155, 156, 157, 158, 100,
175088 /* 1540 */ 145, 194, 154, 194, 156, 49, 194, 23, 194, 25,
175089 /* 1550 */ 217, 218, 217, 218, 194, 257, 60, 143, 194, 60,
175090 /* 1560 */ 194, 121, 122, 183, 217, 218, 217, 218, 72, 217,
175091 /* 1570 */ 218, 217, 218, 134, 23, 194, 25, 217, 218, 7,
175092 /* 1580 */ 8, 321, 86, 217, 218, 194, 122, 91, 19, 20,
175093 /* 1590 */ 23, 22, 25, 23, 142, 25, 132, 101, 217, 218,
175094 /* 1600 */ 194, 194, 194, 107, 108, 36, 194, 194, 217, 218,
175095 /* 1610 */ 194, 115, 194, 117, 118, 119, 194, 118, 122, 194,
175096 /* 1620 */ 23, 194, 25, 217, 218, 217, 218, 194, 142, 60,
175097 /* 1630 */ 217, 218, 194, 217, 218, 217, 218, 84, 85, 217,
175098 /* 1640 */ 218, 72, 217, 218, 217, 218, 60, 23, 60, 25,
175099 /* 1650 */ 154, 155, 156, 157, 158, 86, 154, 194, 156, 194,
175100 /* 1660 */ 91, 19, 20, 23, 22, 25, 194, 23, 194, 25,
175101 /* 1670 */ 101, 23, 194, 25, 194, 194, 107, 108, 36, 183,
175102 /* 1680 */ 217, 218, 217, 218, 115, 194, 117, 118, 119, 217,
175103 /* 1690 */ 218, 122, 194, 237, 194, 217, 218, 217, 218, 194,
175104 /* 1700 */ 194, 23, 60, 25, 118, 23, 118, 25, 217, 218,
175105 /* 1710 */ 23, 194, 25, 194, 72, 217, 218, 217, 218, 23,
175106 /* 1720 */ 194, 25, 194, 154, 155, 156, 157, 158, 86, 23,
175107 /* 1730 */ 194, 25, 194, 91, 217, 218, 217, 218, 194, 194,
175108 /* 1740 */ 194, 194, 194, 101, 194, 217, 218, 290, 194, 107,
175109 /* 1750 */ 108, 194, 183, 217, 218, 194, 194, 115, 194, 117,
175110 /* 1760 */ 118, 119, 194, 243, 122, 194, 289, 194, 194, 194,
175111 /* 1770 */ 194, 257, 257, 257, 244, 257, 192, 273, 215, 269,
175112 /* 1780 */ 246, 299, 269, 295, 247, 273, 247, 246, 295, 230,
175113 /* 1790 */ 261, 226, 261, 261, 273, 273, 154, 155, 156, 157,
175114 /* 1800 */ 158, 0, 1, 2, 221, 220, 5, 220, 250, 220,
175115 /* 1810 */ 261, 10, 11, 12, 13, 14, 250, 282, 17, 197,
175116 /* 1820 */ 61, 19, 20, 246, 22, 183, 244, 142, 201, 201,
175117 /* 1830 */ 38, 30, 299, 32, 201, 152, 22, 151, 36, 299,
175118 /* 1840 */ 43, 40, 235, 18, 238, 285, 238, 238, 296, 238,
175119 /* 1850 */ 201, 296, 274, 272, 18, 200, 235, 150, 235, 247,
175120 /* 1860 */ 247, 247, 60, 247, 274, 274, 272, 201, 200, 159,
175121 /* 1870 */ 63, 292, 71, 201, 72, 200, 22, 201, 222, 200,
175122 /* 1880 */ 79, 201, 222, 82, 291, 116, 219, 65, 200, 219,
175123 /* 1890 */ 219, 228, 22, 127, 225, 166, 222, 24, 225, 114,
175124 /* 1900 */ 99, 284, 221, 101, 284, 228, 307, 315, 219, 107,
175125 /* 1910 */ 108, 219, 219, 219, 201, 92, 320, 115, 320, 117,
175126 /* 1920 */ 118, 119, 222, 83, 122, 267, 267, 149, 146, 19,
175127 /* 1930 */ 20, 22, 22, 279, 250, 134, 201, 148, 159, 249,
175128 /* 1940 */ 139, 140, 251, 141, 25, 281, 36, 147, 251, 248,
175129 /* 1950 */ 247, 203, 13, 195, 6, 195, 154, 155, 156, 157,
175130 /* 1960 */ 158, 193, 305, 193, 163, 193, 305, 302, 214, 208,
175131 /* 1970 */ 60, 214, 208, 223, 223, 4, 214, 214, 3, 22,
175132 /* 1980 */ 215, 214, 72, 208, 164, 183, 215, 15, 23, 16,
175133 /* 1990 */ 23, 140, 131, 152, 25, 143, 20, 16, 24, 1,
175134 /* 2000 */ 145, 143, 131, 131, 62, 37, 54, 54, 152, 54,
175135 /* 2010 */ 54, 101, 131, 117, 34, 1, 142, 107, 108, 22,
175136 /* 2020 */ 5, 116, 162, 69, 25, 115, 76, 117, 118, 119,
175137 /* 2030 */ 1, 2, 122, 69, 5, 41, 142, 116, 20, 10,
175138 /* 2040 */ 11, 12, 13, 14, 24, 19, 17, 132, 5, 126,
175139 /* 2050 */ 22, 141, 68, 10, 11, 12, 13, 14, 22, 30,
175140 /* 2060 */ 17, 32, 22, 22, 154, 155, 156, 157, 158, 40,
175141 /* 2070 */ 23, 68, 60, 30, 24, 32, 97, 28, 22, 68,
175142 /* 2080 */ 23, 37, 34, 40, 150, 22, 25, 23, 23, 23,
175143 /* 2090 */ 22, 98, 23, 183, 23, 117, 34, 22, 25, 89,
175144 /* 2100 */ 71, 142, 144, 76, 34, 23, 34, 76, 79, 87,
175145 /* 2110 */ 34, 82, 34, 94, 71, 34, 22, 24, 44, 34,
175146 /* 2120 */ 25, 25, 79, 23, 23, 82, 143, 23, 99, 143,
175147 /* 2130 */ 23, 22, 11, 25, 23, 25, 22, 22, 22, 1,
175148 /* 2140 */ 23, 23, 99, 136, 22, 22, 142, 142, 142, 25,
175149 /* 2150 */ 25, 23, 15, 1, 322, 322, 322, 322, 322, 322,
175150 /* 2160 */ 322, 322, 322, 134, 322, 322, 322, 322, 139, 140,
175151 /* 2170 */ 322, 322, 322, 322, 322, 322, 322, 134, 322, 322,
175152 /* 2180 */ 322, 322, 139, 140, 322, 322, 322, 322, 322, 322,
175153 /* 2190 */ 322, 322, 163, 322, 322, 322, 322, 322, 322, 322,
175154 /* 2200 */ 322, 322, 322, 322, 322, 322, 163, 322, 322, 322,
175155 /* 2210 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175156 /* 2220 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175157 /* 2230 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175158 /* 2240 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175159 /* 2250 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175160 /* 2260 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175161 /* 2270 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175162 /* 2280 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175163 /* 2290 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175164 /* 2300 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175165 /* 2310 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175166 /* 2320 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175167 /* 2330 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
175168 /* 2340 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175169 /* 2350 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175170 /* 2360 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175171 /* 2370 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175172 /* 2380 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
175173 /* 2390 */ 186, 186, 186,
175174 };
175175 #define YY_SHIFT_COUNT (582)
175176 #define YY_SHIFT_MIN (0)
175177 #define YY_SHIFT_MAX (2152)
175178 static const unsigned short int yy_shift_ofst[] = {
175179 /* 0 */ 2029, 1801, 2043, 1380, 1380, 33, 391, 1496, 1569, 1642,
175180 /* 10 */ 702, 702, 702, 193, 33, 33, 33, 33, 33, 0,
175181 /* 20 */ 0, 216, 1177, 702, 702, 702, 702, 702, 702, 702,
175182 /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 406, 406,
175183 /* 40 */ 111, 111, 218, 447, 547, 598, 598, 260, 260, 260,
175184 /* 50 */ 260, 40, 112, 320, 340, 445, 489, 593, 637, 741,
175185 /* 60 */ 785, 889, 909, 1023, 1043, 1157, 1177, 1177, 1177, 1177,
175186 /* 70 */ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
175187 /* 80 */ 1177, 1177, 1177, 1177, 1197, 1177, 1301, 1321, 1321, 554,
175188 /* 90 */ 1802, 1910, 702, 702, 702, 702, 702, 702, 702, 702,
175189 /* 100 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175190 /* 110 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175191 /* 120 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175192 /* 130 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175193 /* 140 */ 702, 702, 138, 198, 198, 198, 198, 198, 198, 198,
175194 /* 150 */ 183, 99, 236, 292, 598, 793, 167, 598, 598, 880,
175195 /* 160 */ 880, 598, 857, 150, 195, 195, 195, 264, 113, 113,
175196 /* 170 */ 2207, 2207, 854, 854, 854, 751, 765, 765, 765, 765,
175197 /* 180 */ 1096, 1096, 725, 292, 882, 904, 598, 598, 598, 598,
175198 /* 190 */ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
175199 /* 200 */ 598, 598, 598, 598, 598, 1273, 1032, 1032, 598, 147,
175200 /* 210 */ 1098, 1098, 603, 603, 1276, 1276, 363, 2207, 2207, 2207,
175201 /* 220 */ 2207, 2207, 2207, 2207, 469, 617, 617, 801, 336, 461,
175202 /* 230 */ 804, 864, 615, 891, 913, 598, 598, 598, 598, 598,
175203 /* 240 */ 598, 598, 598, 598, 598, 653, 598, 598, 598, 598,
175204 /* 250 */ 598, 598, 598, 598, 598, 598, 598, 598, 1105, 1105,
175205 /* 260 */ 1105, 598, 598, 598, 1194, 598, 598, 598, 1215, 1249,
175206 /* 270 */ 598, 1353, 598, 598, 598, 598, 598, 598, 598, 598,
175207 /* 280 */ 677, 449, 902, 1338, 1338, 1338, 1338, 1248, 902, 902,
175208 /* 290 */ 326, 1151, 1047, 755, 749, 1371, 960, 1371, 1007, 1162,
175209 /* 300 */ 749, 749, 1162, 749, 960, 1007, 1274, 738, 215, 1300,
175210 /* 310 */ 1300, 1300, 1395, 1395, 1395, 1395, 1368, 1368, 1033, 1414,
175211 /* 320 */ 1387, 1361, 1759, 1759, 1685, 1685, 1792, 1792, 1685, 1683,
175212 /* 330 */ 1686, 1814, 1797, 1825, 1825, 1825, 1825, 1685, 1836, 1707,
175213 /* 340 */ 1686, 1686, 1707, 1814, 1797, 1707, 1797, 1707, 1685, 1836,
175214 /* 350 */ 1710, 1807, 1685, 1836, 1854, 1685, 1836, 1685, 1836, 1854,
175215 /* 360 */ 1769, 1769, 1769, 1822, 1870, 1870, 1854, 1769, 1766, 1769,
175216 /* 370 */ 1822, 1769, 1769, 1729, 1873, 1785, 1785, 1854, 1685, 1823,
175217 /* 380 */ 1823, 1840, 1840, 1778, 1782, 1909, 1685, 1779, 1778, 1789,
175218 /* 390 */ 1800, 1707, 1919, 1939, 1939, 1948, 1948, 1948, 2207, 2207,
175219 /* 400 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
175220 /* 410 */ 2207, 2207, 2207, 69, 1037, 79, 1088, 651, 1196, 1415,
175221 /* 420 */ 1501, 1439, 1369, 1452, 911, 1211, 1524, 1469, 1551, 1567,
175222 /* 430 */ 1570, 1624, 1640, 1644, 1499, 1440, 1572, 1464, 1597, 275,
175223 /* 440 */ 782, 1586, 1648, 1678, 1553, 1682, 1687, 1388, 1502, 1696,
175224 /* 450 */ 1706, 1588, 1486, 1971, 1975, 1957, 1820, 1972, 1973, 1965,
175225 /* 460 */ 1967, 1851, 1841, 1861, 1969, 1969, 1974, 1852, 1976, 1855,
175226 /* 470 */ 1981, 1998, 1858, 1871, 1969, 1872, 1942, 1968, 1969, 1856,
175227 /* 480 */ 1952, 1953, 1955, 1956, 1881, 1896, 1980, 1874, 2014, 2015,
175228 /* 490 */ 1997, 1905, 1860, 1954, 1999, 1964, 1950, 1994, 1894, 1921,
175229 /* 500 */ 2020, 2018, 2026, 1915, 1923, 2028, 1984, 2036, 2040, 2047,
175230 /* 510 */ 2041, 2003, 2012, 2050, 1979, 2049, 2056, 2011, 2044, 2057,
175231 /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1959,
175232 /* 530 */ 2069, 2071, 1978, 2062, 2075, 1958, 2073, 2070, 2072, 2076,
175233 /* 540 */ 2078, 2010, 2027, 2022, 2074, 2031, 2019, 2081, 2082, 2094,
175234 /* 550 */ 2093, 2095, 2096, 2085, 1983, 1986, 2100, 2073, 2101, 2104,
175235 /* 560 */ 2107, 2109, 2108, 2110, 2111, 2114, 2121, 2115, 2116, 2117,
175236 /* 570 */ 2118, 2122, 2123, 2124, 2007, 2004, 2005, 2006, 2125, 2128,
175237 /* 580 */ 2137, 2138, 2152,
175238 };
175239 #define YY_REDUCE_COUNT (412)
175240 #define YY_REDUCE_MIN (-276)
175241 #define YY_REDUCE_MAX (1775)
175242 static const short yy_reduce_ofst[] = {
175243 /* 0 */ -66, 217, -63, -177, -180, 161, 364, 64, -183, 162,
175244 /* 10 */ 223, 367, 414, -173, 473, 514, 525, 622, 626, -207,
175245 /* 20 */ 351, -276, -38, 693, 811, 831, 833, 888, -188, 945,
175246 /* 30 */ 947, 416, 558, 951, 867, 287, 1078, 1080, -186, 224,
175247 /* 40 */ -132, 42, 964, 269, 417, 796, 810, -237, -231, -237,
175248 /* 50 */ -231, -45, -45, -45, -45, -45, -45, -45, -45, -45,
175249 /* 60 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
175250 /* 70 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
175251 /* 80 */ -45, -45, -45, -45, -45, -45, -45, -45, -45, 895,
175252 /* 90 */ 925, 967, 980, 1100, 1143, 1169, 1203, 1225, 1228, 1242,
175253 /* 100 */ 1247, 1250, 1253, 1255, 1261, 1267, 1272, 1275, 1283, 1286,
175254 /* 110 */ 1288, 1292, 1333, 1335, 1347, 1349, 1352, 1354, 1360, 1366,
175255 /* 120 */ 1381, 1391, 1406, 1408, 1413, 1416, 1418, 1422, 1425, 1427,
175256 /* 130 */ 1463, 1465, 1472, 1478, 1480, 1491, 1498, 1500, 1517, 1519,
175257 /* 140 */ 1528, 1536, -45, -45, -45, -45, -45, -45, -45, -45,
175258 /* 150 */ -45, -45, -45, 312, -158, 285, -219, 9, 166, 370,
175259 /* 160 */ 545, 707, -45, 930, 601, 963, 1067, 792, -45, -45,
175260 /* 170 */ -45, -45, -204, -204, -204, 369, -171, -129, 632, 678,
175261 /* 180 */ 202, 352, -270, 412, 627, 627, -9, 122, 415, 419,
175262 /* 190 */ -56, 248, 583, 920, 6, 261, 459, 795, 1049, 813,
175263 /* 200 */ 1062, 1082, -161, 778, 1063, 797, 870, 1003, 1128, 443,
175264 /* 210 */ 1031, 1072, 1191, 1192, 957, 1120, 105, 1149, 523, 933,
175265 /* 220 */ 1218, 1238, 1254, 1251, -138, 96, 117, 146, 181, 277,
175266 /* 230 */ 280, 421, 480, 712, 830, 850, 1085, 1099, 1129, 1209,
175267 /* 240 */ 1323, 1331, 1336, 1364, 1407, 368, 1412, 1433, 1438, 1474,
175268 /* 250 */ 1481, 1505, 1506, 1526, 1538, 1544, 1545, 1546, 722, 764,
175269 /* 260 */ 856, 1547, 1548, 1550, 1188, 1554, 1557, 1561, 1298, 1260,
175270 /* 270 */ 1562, 1456, 1564, 280, 1568, 1571, 1573, 1574, 1575, 1576,
175271 /* 280 */ 1457, 1477, 1520, 1514, 1515, 1516, 1518, 1188, 1520, 1520,
175272 /* 290 */ 1530, 1563, 1584, 1482, 1504, 1510, 1534, 1513, 1488, 1537,
175273 /* 300 */ 1512, 1521, 1539, 1522, 1541, 1493, 1583, 1559, 1565, 1585,
175274 /* 310 */ 1587, 1589, 1529, 1531, 1532, 1549, 1558, 1566, 1535, 1577,
175275 /* 320 */ 1582, 1622, 1533, 1540, 1627, 1628, 1552, 1555, 1633, 1560,
175276 /* 330 */ 1578, 1581, 1607, 1606, 1608, 1609, 1611, 1649, 1655, 1612,
175277 /* 340 */ 1590, 1591, 1613, 1594, 1621, 1614, 1623, 1616, 1666, 1668,
175278 /* 350 */ 1579, 1593, 1672, 1675, 1656, 1676, 1679, 1680, 1688, 1660,
175279 /* 360 */ 1667, 1670, 1671, 1663, 1669, 1673, 1674, 1689, 1681, 1692,
175280 /* 370 */ 1677, 1693, 1694, 1592, 1599, 1617, 1620, 1700, 1713, 1596,
175281 /* 380 */ 1598, 1658, 1659, 1691, 1684, 1654, 1735, 1664, 1697, 1690,
175282 /* 390 */ 1701, 1703, 1748, 1758, 1760, 1768, 1770, 1772, 1657, 1661,
175283 /* 400 */ 1665, 1761, 1754, 1757, 1762, 1763, 1764, 1750, 1751, 1765,
175284 /* 410 */ 1771, 1767, 1775,
175285 };
175286 static const YYACTIONTYPE yy_default[] = {
175287 /* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254,
175288 /* 10 */ 1491, 1491, 1491, 1254, 1254, 1254, 1254, 1254, 1254, 1397,
175289 /* 20 */ 1397, 1544, 1287, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
@@ -175545,10 +175649,11 @@
175545 0, /* ASTERISK => nothing */
175546 0, /* SPAN => nothing */
175547 0, /* ERROR => nothing */
175548 0, /* QNUMBER => nothing */
175549 0, /* SPACE => nothing */
 
175550 0, /* ILLEGAL => nothing */
175551 };
175552 #endif /* YYFALLBACK */
175553
175554 /* The following structure represents a single element of the
@@ -175814,147 +175919,148 @@
175814 /* 180 */ "ASTERISK",
175815 /* 181 */ "SPAN",
175816 /* 182 */ "ERROR",
175817 /* 183 */ "QNUMBER",
175818 /* 184 */ "SPACE",
175819 /* 185 */ "ILLEGAL",
175820 /* 186 */ "input",
175821 /* 187 */ "cmdlist",
175822 /* 188 */ "ecmd",
175823 /* 189 */ "cmdx",
175824 /* 190 */ "explain",
175825 /* 191 */ "cmd",
175826 /* 192 */ "transtype",
175827 /* 193 */ "trans_opt",
175828 /* 194 */ "nm",
175829 /* 195 */ "savepoint_opt",
175830 /* 196 */ "create_table",
175831 /* 197 */ "create_table_args",
175832 /* 198 */ "createkw",
175833 /* 199 */ "temp",
175834 /* 200 */ "ifnotexists",
175835 /* 201 */ "dbnm",
175836 /* 202 */ "columnlist",
175837 /* 203 */ "conslist_opt",
175838 /* 204 */ "table_option_set",
175839 /* 205 */ "select",
175840 /* 206 */ "table_option",
175841 /* 207 */ "columnname",
175842 /* 208 */ "carglist",
175843 /* 209 */ "typetoken",
175844 /* 210 */ "typename",
175845 /* 211 */ "signed",
175846 /* 212 */ "plus_num",
175847 /* 213 */ "minus_num",
175848 /* 214 */ "scanpt",
175849 /* 215 */ "scantok",
175850 /* 216 */ "ccons",
175851 /* 217 */ "term",
175852 /* 218 */ "expr",
175853 /* 219 */ "onconf",
175854 /* 220 */ "sortorder",
175855 /* 221 */ "autoinc",
175856 /* 222 */ "eidlist_opt",
175857 /* 223 */ "refargs",
175858 /* 224 */ "defer_subclause",
175859 /* 225 */ "generated",
175860 /* 226 */ "refarg",
175861 /* 227 */ "refact",
175862 /* 228 */ "init_deferred_pred_opt",
175863 /* 229 */ "conslist",
175864 /* 230 */ "tconscomma",
175865 /* 231 */ "tcons",
175866 /* 232 */ "sortlist",
175867 /* 233 */ "eidlist",
175868 /* 234 */ "defer_subclause_opt",
175869 /* 235 */ "orconf",
175870 /* 236 */ "resolvetype",
175871 /* 237 */ "raisetype",
175872 /* 238 */ "ifexists",
175873 /* 239 */ "fullname",
175874 /* 240 */ "selectnowith",
175875 /* 241 */ "oneselect",
175876 /* 242 */ "wqlist",
175877 /* 243 */ "multiselect_op",
175878 /* 244 */ "distinct",
175879 /* 245 */ "selcollist",
175880 /* 246 */ "from",
175881 /* 247 */ "where_opt",
175882 /* 248 */ "groupby_opt",
175883 /* 249 */ "having_opt",
175884 /* 250 */ "orderby_opt",
175885 /* 251 */ "limit_opt",
175886 /* 252 */ "window_clause",
175887 /* 253 */ "values",
175888 /* 254 */ "nexprlist",
175889 /* 255 */ "mvalues",
175890 /* 256 */ "sclp",
175891 /* 257 */ "as",
175892 /* 258 */ "seltablist",
175893 /* 259 */ "stl_prefix",
175894 /* 260 */ "joinop",
175895 /* 261 */ "on_using",
175896 /* 262 */ "indexed_by",
175897 /* 263 */ "exprlist",
175898 /* 264 */ "xfullname",
175899 /* 265 */ "idlist",
175900 /* 266 */ "indexed_opt",
175901 /* 267 */ "nulls",
175902 /* 268 */ "with",
175903 /* 269 */ "where_opt_ret",
175904 /* 270 */ "setlist",
175905 /* 271 */ "insert_cmd",
175906 /* 272 */ "idlist_opt",
175907 /* 273 */ "upsert",
175908 /* 274 */ "returning",
175909 /* 275 */ "filter_over",
175910 /* 276 */ "likeop",
175911 /* 277 */ "between_op",
175912 /* 278 */ "in_op",
175913 /* 279 */ "paren_exprlist",
175914 /* 280 */ "case_operand",
175915 /* 281 */ "case_exprlist",
175916 /* 282 */ "case_else",
175917 /* 283 */ "uniqueflag",
175918 /* 284 */ "collate",
175919 /* 285 */ "vinto",
175920 /* 286 */ "nmnum",
175921 /* 287 */ "trigger_decl",
175922 /* 288 */ "trigger_cmd_list",
175923 /* 289 */ "trigger_time",
175924 /* 290 */ "trigger_event",
175925 /* 291 */ "foreach_clause",
175926 /* 292 */ "when_clause",
175927 /* 293 */ "trigger_cmd",
175928 /* 294 */ "trnm",
175929 /* 295 */ "tridxby",
175930 /* 296 */ "database_kw_opt",
175931 /* 297 */ "key_opt",
175932 /* 298 */ "add_column_fullname",
175933 /* 299 */ "kwcolumn_opt",
175934 /* 300 */ "create_vtab",
175935 /* 301 */ "vtabarglist",
175936 /* 302 */ "vtabarg",
175937 /* 303 */ "vtabargtoken",
175938 /* 304 */ "lp",
175939 /* 305 */ "anylist",
175940 /* 306 */ "wqitem",
175941 /* 307 */ "wqas",
175942 /* 308 */ "withnm",
175943 /* 309 */ "windowdefn_list",
175944 /* 310 */ "windowdefn",
175945 /* 311 */ "window",
175946 /* 312 */ "frame_opt",
175947 /* 313 */ "part_opt",
175948 /* 314 */ "filter_clause",
175949 /* 315 */ "over_clause",
175950 /* 316 */ "range_or_rows",
175951 /* 317 */ "frame_bound",
175952 /* 318 */ "frame_bound_s",
175953 /* 319 */ "frame_bound_e",
175954 /* 320 */ "frame_exclude_opt",
175955 /* 321 */ "frame_exclude",
 
175956 };
175957 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
175958
175959 #ifndef NDEBUG
175960 /* For tracing reduce actions, the names of all rules are required.
@@ -176490,102 +176596,102 @@
176490 ** Note: during a reduce, the only symbols destroyed are those
176491 ** which appear on the RHS of the rule, but which are *not* used
176492 ** inside the C code.
176493 */
176494 /********* Begin destructor definitions ***************************************/
176495 case 205: /* select */
176496 case 240: /* selectnowith */
176497 case 241: /* oneselect */
176498 case 253: /* values */
176499 case 255: /* mvalues */
176500 {
176501 sqlite3SelectDelete(pParse->db, (yypminor->yy555));
176502 }
176503 break;
176504 case 217: /* term */
176505 case 218: /* expr */
176506 case 247: /* where_opt */
176507 case 249: /* having_opt */
176508 case 269: /* where_opt_ret */
176509 case 280: /* case_operand */
176510 case 282: /* case_else */
176511 case 285: /* vinto */
176512 case 292: /* when_clause */
176513 case 297: /* key_opt */
176514 case 314: /* filter_clause */
176515 {
176516 sqlite3ExprDelete(pParse->db, (yypminor->yy454));
176517 }
176518 break;
176519 case 222: /* eidlist_opt */
176520 case 232: /* sortlist */
176521 case 233: /* eidlist */
176522 case 245: /* selcollist */
176523 case 248: /* groupby_opt */
176524 case 250: /* orderby_opt */
176525 case 254: /* nexprlist */
176526 case 256: /* sclp */
176527 case 263: /* exprlist */
176528 case 270: /* setlist */
176529 case 279: /* paren_exprlist */
176530 case 281: /* case_exprlist */
176531 case 313: /* part_opt */
176532 {
176533 sqlite3ExprListDelete(pParse->db, (yypminor->yy14));
176534 }
176535 break;
176536 case 239: /* fullname */
176537 case 246: /* from */
176538 case 258: /* seltablist */
176539 case 259: /* stl_prefix */
176540 case 264: /* xfullname */
176541 {
176542 sqlite3SrcListDelete(pParse->db, (yypminor->yy203));
176543 }
176544 break;
176545 case 242: /* wqlist */
176546 {
176547 sqlite3WithDelete(pParse->db, (yypminor->yy59));
176548 }
176549 break;
176550 case 252: /* window_clause */
176551 case 309: /* windowdefn_list */
176552 {
176553 sqlite3WindowListDelete(pParse->db, (yypminor->yy211));
176554 }
176555 break;
176556 case 265: /* idlist */
176557 case 272: /* idlist_opt */
176558 {
176559 sqlite3IdListDelete(pParse->db, (yypminor->yy132));
176560 }
176561 break;
176562 case 275: /* filter_over */
176563 case 310: /* windowdefn */
176564 case 311: /* window */
176565 case 312: /* frame_opt */
176566 case 315: /* over_clause */
176567 {
176568 sqlite3WindowDelete(pParse->db, (yypminor->yy211));
176569 }
176570 break;
176571 case 288: /* trigger_cmd_list */
176572 case 293: /* trigger_cmd */
176573 {
176574 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy427));
176575 }
176576 break;
176577 case 290: /* trigger_event */
176578 {
176579 sqlite3IdListDelete(pParse->db, (yypminor->yy286).b);
176580 }
176581 break;
176582 case 317: /* frame_bound */
176583 case 318: /* frame_bound_s */
176584 case 319: /* frame_bound_e */
176585 {
176586 sqlite3ExprDelete(pParse->db, (yypminor->yy509).pExpr);
176587 }
176588 break;
176589 /********* End destructor definitions *****************************************/
176590 default: break; /* If no destructor action specified: do nothing */
176591 }
@@ -176883,419 +176989,419 @@
176883 }
176884
176885 /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
176886 ** of that rule */
176887 static const YYCODETYPE yyRuleInfoLhs[] = {
176888 190, /* (0) explain ::= EXPLAIN */
176889 190, /* (1) explain ::= EXPLAIN QUERY PLAN */
176890 189, /* (2) cmdx ::= cmd */
176891 191, /* (3) cmd ::= BEGIN transtype trans_opt */
176892 192, /* (4) transtype ::= */
176893 192, /* (5) transtype ::= DEFERRED */
176894 192, /* (6) transtype ::= IMMEDIATE */
176895 192, /* (7) transtype ::= EXCLUSIVE */
176896 191, /* (8) cmd ::= COMMIT|END trans_opt */
176897 191, /* (9) cmd ::= ROLLBACK trans_opt */
176898 191, /* (10) cmd ::= SAVEPOINT nm */
176899 191, /* (11) cmd ::= RELEASE savepoint_opt nm */
176900 191, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
176901 196, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
176902 198, /* (14) createkw ::= CREATE */
176903 200, /* (15) ifnotexists ::= */
176904 200, /* (16) ifnotexists ::= IF NOT EXISTS */
176905 199, /* (17) temp ::= TEMP */
176906 199, /* (18) temp ::= */
176907 197, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */
176908 197, /* (20) create_table_args ::= AS select */
176909 204, /* (21) table_option_set ::= */
176910 204, /* (22) table_option_set ::= table_option_set COMMA table_option */
176911 206, /* (23) table_option ::= WITHOUT nm */
176912 206, /* (24) table_option ::= nm */
176913 207, /* (25) columnname ::= nm typetoken */
176914 209, /* (26) typetoken ::= */
176915 209, /* (27) typetoken ::= typename LP signed RP */
176916 209, /* (28) typetoken ::= typename LP signed COMMA signed RP */
176917 210, /* (29) typename ::= typename ID|STRING */
176918 214, /* (30) scanpt ::= */
176919 215, /* (31) scantok ::= */
176920 216, /* (32) ccons ::= CONSTRAINT nm */
176921 216, /* (33) ccons ::= DEFAULT scantok term */
176922 216, /* (34) ccons ::= DEFAULT LP expr RP */
176923 216, /* (35) ccons ::= DEFAULT PLUS scantok term */
176924 216, /* (36) ccons ::= DEFAULT MINUS scantok term */
176925 216, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */
176926 216, /* (38) ccons ::= NOT NULL onconf */
176927 216, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */
176928 216, /* (40) ccons ::= UNIQUE onconf */
176929 216, /* (41) ccons ::= CHECK LP expr RP */
176930 216, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */
176931 216, /* (43) ccons ::= defer_subclause */
176932 216, /* (44) ccons ::= COLLATE ID|STRING */
176933 225, /* (45) generated ::= LP expr RP */
176934 225, /* (46) generated ::= LP expr RP ID */
176935 221, /* (47) autoinc ::= */
176936 221, /* (48) autoinc ::= AUTOINCR */
176937 223, /* (49) refargs ::= */
176938 223, /* (50) refargs ::= refargs refarg */
176939 226, /* (51) refarg ::= MATCH nm */
176940 226, /* (52) refarg ::= ON INSERT refact */
176941 226, /* (53) refarg ::= ON DELETE refact */
176942 226, /* (54) refarg ::= ON UPDATE refact */
176943 227, /* (55) refact ::= SET NULL */
176944 227, /* (56) refact ::= SET DEFAULT */
176945 227, /* (57) refact ::= CASCADE */
176946 227, /* (58) refact ::= RESTRICT */
176947 227, /* (59) refact ::= NO ACTION */
176948 224, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
176949 224, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
176950 228, /* (62) init_deferred_pred_opt ::= */
176951 228, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */
176952 228, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
176953 203, /* (65) conslist_opt ::= */
176954 230, /* (66) tconscomma ::= COMMA */
176955 231, /* (67) tcons ::= CONSTRAINT nm */
176956 231, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
176957 231, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */
176958 231, /* (70) tcons ::= CHECK LP expr RP onconf */
176959 231, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
176960 234, /* (72) defer_subclause_opt ::= */
176961 219, /* (73) onconf ::= */
176962 219, /* (74) onconf ::= ON CONFLICT resolvetype */
176963 235, /* (75) orconf ::= */
176964 235, /* (76) orconf ::= OR resolvetype */
176965 236, /* (77) resolvetype ::= IGNORE */
176966 236, /* (78) resolvetype ::= REPLACE */
176967 191, /* (79) cmd ::= DROP TABLE ifexists fullname */
176968 238, /* (80) ifexists ::= IF EXISTS */
176969 238, /* (81) ifexists ::= */
176970 191, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
176971 191, /* (83) cmd ::= DROP VIEW ifexists fullname */
176972 191, /* (84) cmd ::= select */
176973 205, /* (85) select ::= WITH wqlist selectnowith */
176974 205, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */
176975 205, /* (87) select ::= selectnowith */
176976 240, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */
176977 243, /* (89) multiselect_op ::= UNION */
176978 243, /* (90) multiselect_op ::= UNION ALL */
176979 243, /* (91) multiselect_op ::= EXCEPT|INTERSECT */
176980 241, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
176981 241, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
176982 253, /* (94) values ::= VALUES LP nexprlist RP */
176983 241, /* (95) oneselect ::= mvalues */
176984 255, /* (96) mvalues ::= values COMMA LP nexprlist RP */
176985 255, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */
176986 244, /* (98) distinct ::= DISTINCT */
176987 244, /* (99) distinct ::= ALL */
176988 244, /* (100) distinct ::= */
176989 256, /* (101) sclp ::= */
176990 245, /* (102) selcollist ::= sclp scanpt expr scanpt as */
176991 245, /* (103) selcollist ::= sclp scanpt STAR */
176992 245, /* (104) selcollist ::= sclp scanpt nm DOT STAR */
176993 257, /* (105) as ::= AS nm */
176994 257, /* (106) as ::= */
176995 246, /* (107) from ::= */
176996 246, /* (108) from ::= FROM seltablist */
176997 259, /* (109) stl_prefix ::= seltablist joinop */
176998 259, /* (110) stl_prefix ::= */
176999 258, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */
177000 258, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
177001 258, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
177002 258, /* (114) seltablist ::= stl_prefix LP select RP as on_using */
177003 258, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */
177004 201, /* (116) dbnm ::= */
177005 201, /* (117) dbnm ::= DOT nm */
177006 239, /* (118) fullname ::= nm */
177007 239, /* (119) fullname ::= nm DOT nm */
177008 264, /* (120) xfullname ::= nm */
177009 264, /* (121) xfullname ::= nm DOT nm */
177010 264, /* (122) xfullname ::= nm DOT nm AS nm */
177011 264, /* (123) xfullname ::= nm AS nm */
177012 260, /* (124) joinop ::= COMMA|JOIN */
177013 260, /* (125) joinop ::= JOIN_KW JOIN */
177014 260, /* (126) joinop ::= JOIN_KW nm JOIN */
177015 260, /* (127) joinop ::= JOIN_KW nm nm JOIN */
177016 261, /* (128) on_using ::= ON expr */
177017 261, /* (129) on_using ::= USING LP idlist RP */
177018 261, /* (130) on_using ::= */
177019 266, /* (131) indexed_opt ::= */
177020 262, /* (132) indexed_by ::= INDEXED BY nm */
177021 262, /* (133) indexed_by ::= NOT INDEXED */
177022 250, /* (134) orderby_opt ::= */
177023 250, /* (135) orderby_opt ::= ORDER BY sortlist */
177024 232, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */
177025 232, /* (137) sortlist ::= expr sortorder nulls */
177026 220, /* (138) sortorder ::= ASC */
177027 220, /* (139) sortorder ::= DESC */
177028 220, /* (140) sortorder ::= */
177029 267, /* (141) nulls ::= NULLS FIRST */
177030 267, /* (142) nulls ::= NULLS LAST */
177031 267, /* (143) nulls ::= */
177032 248, /* (144) groupby_opt ::= */
177033 248, /* (145) groupby_opt ::= GROUP BY nexprlist */
177034 249, /* (146) having_opt ::= */
177035 249, /* (147) having_opt ::= HAVING expr */
177036 251, /* (148) limit_opt ::= */
177037 251, /* (149) limit_opt ::= LIMIT expr */
177038 251, /* (150) limit_opt ::= LIMIT expr OFFSET expr */
177039 251, /* (151) limit_opt ::= LIMIT expr COMMA expr */
177040 191, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
177041 247, /* (153) where_opt ::= */
177042 247, /* (154) where_opt ::= WHERE expr */
177043 269, /* (155) where_opt_ret ::= */
177044 269, /* (156) where_opt_ret ::= WHERE expr */
177045 269, /* (157) where_opt_ret ::= RETURNING selcollist */
177046 269, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */
177047 191, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
177048 270, /* (160) setlist ::= setlist COMMA nm EQ expr */
177049 270, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */
177050 270, /* (162) setlist ::= nm EQ expr */
177051 270, /* (163) setlist ::= LP idlist RP EQ expr */
177052 191, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
177053 191, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
177054 273, /* (166) upsert ::= */
177055 273, /* (167) upsert ::= RETURNING selcollist */
177056 273, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
177057 273, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
177058 273, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */
177059 273, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
177060 274, /* (172) returning ::= RETURNING selcollist */
177061 271, /* (173) insert_cmd ::= INSERT orconf */
177062 271, /* (174) insert_cmd ::= REPLACE */
177063 272, /* (175) idlist_opt ::= */
177064 272, /* (176) idlist_opt ::= LP idlist RP */
177065 265, /* (177) idlist ::= idlist COMMA nm */
177066 265, /* (178) idlist ::= nm */
177067 218, /* (179) expr ::= LP expr RP */
177068 218, /* (180) expr ::= ID|INDEXED|JOIN_KW */
177069 218, /* (181) expr ::= nm DOT nm */
177070 218, /* (182) expr ::= nm DOT nm DOT nm */
177071 217, /* (183) term ::= NULL|FLOAT|BLOB */
177072 217, /* (184) term ::= STRING */
177073 217, /* (185) term ::= INTEGER */
177074 218, /* (186) expr ::= VARIABLE */
177075 218, /* (187) expr ::= expr COLLATE ID|STRING */
177076 218, /* (188) expr ::= CAST LP expr AS typetoken RP */
177077 218, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
177078 218, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
177079 218, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
177080 218, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
177081 218, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
177082 218, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
177083 217, /* (195) term ::= CTIME_KW */
177084 218, /* (196) expr ::= LP nexprlist COMMA expr RP */
177085 218, /* (197) expr ::= expr AND expr */
177086 218, /* (198) expr ::= expr OR expr */
177087 218, /* (199) expr ::= expr LT|GT|GE|LE expr */
177088 218, /* (200) expr ::= expr EQ|NE expr */
177089 218, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
177090 218, /* (202) expr ::= expr PLUS|MINUS expr */
177091 218, /* (203) expr ::= expr STAR|SLASH|REM expr */
177092 218, /* (204) expr ::= expr CONCAT expr */
177093 276, /* (205) likeop ::= NOT LIKE_KW|MATCH */
177094 218, /* (206) expr ::= expr likeop expr */
177095 218, /* (207) expr ::= expr likeop expr ESCAPE expr */
177096 218, /* (208) expr ::= expr ISNULL|NOTNULL */
177097 218, /* (209) expr ::= expr NOT NULL */
177098 218, /* (210) expr ::= expr IS expr */
177099 218, /* (211) expr ::= expr IS NOT expr */
177100 218, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */
177101 218, /* (213) expr ::= expr IS DISTINCT FROM expr */
177102 218, /* (214) expr ::= NOT expr */
177103 218, /* (215) expr ::= BITNOT expr */
177104 218, /* (216) expr ::= PLUS|MINUS expr */
177105 218, /* (217) expr ::= expr PTR expr */
177106 277, /* (218) between_op ::= BETWEEN */
177107 277, /* (219) between_op ::= NOT BETWEEN */
177108 218, /* (220) expr ::= expr between_op expr AND expr */
177109 278, /* (221) in_op ::= IN */
177110 278, /* (222) in_op ::= NOT IN */
177111 218, /* (223) expr ::= expr in_op LP exprlist RP */
177112 218, /* (224) expr ::= LP select RP */
177113 218, /* (225) expr ::= expr in_op LP select RP */
177114 218, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */
177115 218, /* (227) expr ::= EXISTS LP select RP */
177116 218, /* (228) expr ::= CASE case_operand case_exprlist case_else END */
177117 281, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */
177118 281, /* (230) case_exprlist ::= WHEN expr THEN expr */
177119 282, /* (231) case_else ::= ELSE expr */
177120 282, /* (232) case_else ::= */
177121 280, /* (233) case_operand ::= */
177122 263, /* (234) exprlist ::= */
177123 254, /* (235) nexprlist ::= nexprlist COMMA expr */
177124 254, /* (236) nexprlist ::= expr */
177125 279, /* (237) paren_exprlist ::= */
177126 279, /* (238) paren_exprlist ::= LP exprlist RP */
177127 191, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
177128 283, /* (240) uniqueflag ::= UNIQUE */
177129 283, /* (241) uniqueflag ::= */
177130 222, /* (242) eidlist_opt ::= */
177131 222, /* (243) eidlist_opt ::= LP eidlist RP */
177132 233, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */
177133 233, /* (245) eidlist ::= nm collate sortorder */
177134 284, /* (246) collate ::= */
177135 284, /* (247) collate ::= COLLATE ID|STRING */
177136 191, /* (248) cmd ::= DROP INDEX ifexists fullname */
177137 191, /* (249) cmd ::= VACUUM vinto */
177138 191, /* (250) cmd ::= VACUUM nm vinto */
177139 285, /* (251) vinto ::= INTO expr */
177140 285, /* (252) vinto ::= */
177141 191, /* (253) cmd ::= PRAGMA nm dbnm */
177142 191, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */
177143 191, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */
177144 191, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */
177145 191, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */
177146 212, /* (258) plus_num ::= PLUS INTEGER|FLOAT */
177147 213, /* (259) minus_num ::= MINUS INTEGER|FLOAT */
177148 191, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
177149 287, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
177150 289, /* (262) trigger_time ::= BEFORE|AFTER */
177151 289, /* (263) trigger_time ::= INSTEAD OF */
177152 289, /* (264) trigger_time ::= */
177153 290, /* (265) trigger_event ::= DELETE|INSERT */
177154 290, /* (266) trigger_event ::= UPDATE */
177155 290, /* (267) trigger_event ::= UPDATE OF idlist */
177156 292, /* (268) when_clause ::= */
177157 292, /* (269) when_clause ::= WHEN expr */
177158 288, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
177159 288, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */
177160 294, /* (272) trnm ::= nm DOT nm */
177161 295, /* (273) tridxby ::= INDEXED BY nm */
177162 295, /* (274) tridxby ::= NOT INDEXED */
177163 293, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
177164 293, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
177165 293, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
177166 293, /* (278) trigger_cmd ::= scanpt select scanpt */
177167 218, /* (279) expr ::= RAISE LP IGNORE RP */
177168 218, /* (280) expr ::= RAISE LP raisetype COMMA expr RP */
177169 237, /* (281) raisetype ::= ROLLBACK */
177170 237, /* (282) raisetype ::= ABORT */
177171 237, /* (283) raisetype ::= FAIL */
177172 191, /* (284) cmd ::= DROP TRIGGER ifexists fullname */
177173 191, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
177174 191, /* (286) cmd ::= DETACH database_kw_opt expr */
177175 297, /* (287) key_opt ::= */
177176 297, /* (288) key_opt ::= KEY expr */
177177 191, /* (289) cmd ::= REINDEX */
177178 191, /* (290) cmd ::= REINDEX nm dbnm */
177179 191, /* (291) cmd ::= ANALYZE */
177180 191, /* (292) cmd ::= ANALYZE nm dbnm */
177181 191, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */
177182 191, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
177183 191, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
177184 298, /* (296) add_column_fullname ::= fullname */
177185 191, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
177186 191, /* (298) cmd ::= create_vtab */
177187 191, /* (299) cmd ::= create_vtab LP vtabarglist RP */
177188 300, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
177189 302, /* (301) vtabarg ::= */
177190 303, /* (302) vtabargtoken ::= ANY */
177191 303, /* (303) vtabargtoken ::= lp anylist RP */
177192 304, /* (304) lp ::= LP */
177193 268, /* (305) with ::= WITH wqlist */
177194 268, /* (306) with ::= WITH RECURSIVE wqlist */
177195 307, /* (307) wqas ::= AS */
177196 307, /* (308) wqas ::= AS MATERIALIZED */
177197 307, /* (309) wqas ::= AS NOT MATERIALIZED */
177198 306, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */
177199 308, /* (311) withnm ::= nm */
177200 242, /* (312) wqlist ::= wqitem */
177201 242, /* (313) wqlist ::= wqlist COMMA wqitem */
177202 309, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */
177203 310, /* (315) windowdefn ::= nm AS LP window RP */
177204 311, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
177205 311, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
177206 311, /* (318) window ::= ORDER BY sortlist frame_opt */
177207 311, /* (319) window ::= nm ORDER BY sortlist frame_opt */
177208 311, /* (320) window ::= nm frame_opt */
177209 312, /* (321) frame_opt ::= */
177210 312, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
177211 312, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
177212 316, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */
177213 318, /* (325) frame_bound_s ::= frame_bound */
177214 318, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */
177215 319, /* (327) frame_bound_e ::= frame_bound */
177216 319, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */
177217 317, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */
177218 317, /* (330) frame_bound ::= CURRENT ROW */
177219 320, /* (331) frame_exclude_opt ::= */
177220 320, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */
177221 321, /* (333) frame_exclude ::= NO OTHERS */
177222 321, /* (334) frame_exclude ::= CURRENT ROW */
177223 321, /* (335) frame_exclude ::= GROUP|TIES */
177224 252, /* (336) window_clause ::= WINDOW windowdefn_list */
177225 275, /* (337) filter_over ::= filter_clause over_clause */
177226 275, /* (338) filter_over ::= over_clause */
177227 275, /* (339) filter_over ::= filter_clause */
177228 315, /* (340) over_clause ::= OVER LP window RP */
177229 315, /* (341) over_clause ::= OVER nm */
177230 314, /* (342) filter_clause ::= FILTER LP WHERE expr RP */
177231 217, /* (343) term ::= QNUMBER */
177232 186, /* (344) input ::= cmdlist */
177233 187, /* (345) cmdlist ::= cmdlist ecmd */
177234 187, /* (346) cmdlist ::= ecmd */
177235 188, /* (347) ecmd ::= SEMI */
177236 188, /* (348) ecmd ::= cmdx SEMI */
177237 188, /* (349) ecmd ::= explain cmdx SEMI */
177238 193, /* (350) trans_opt ::= */
177239 193, /* (351) trans_opt ::= TRANSACTION */
177240 193, /* (352) trans_opt ::= TRANSACTION nm */
177241 195, /* (353) savepoint_opt ::= SAVEPOINT */
177242 195, /* (354) savepoint_opt ::= */
177243 191, /* (355) cmd ::= create_table create_table_args */
177244 204, /* (356) table_option_set ::= table_option */
177245 202, /* (357) columnlist ::= columnlist COMMA columnname carglist */
177246 202, /* (358) columnlist ::= columnname carglist */
177247 194, /* (359) nm ::= ID|INDEXED|JOIN_KW */
177248 194, /* (360) nm ::= STRING */
177249 209, /* (361) typetoken ::= typename */
177250 210, /* (362) typename ::= ID|STRING */
177251 211, /* (363) signed ::= plus_num */
177252 211, /* (364) signed ::= minus_num */
177253 208, /* (365) carglist ::= carglist ccons */
177254 208, /* (366) carglist ::= */
177255 216, /* (367) ccons ::= NULL onconf */
177256 216, /* (368) ccons ::= GENERATED ALWAYS AS generated */
177257 216, /* (369) ccons ::= AS generated */
177258 203, /* (370) conslist_opt ::= COMMA conslist */
177259 229, /* (371) conslist ::= conslist tconscomma tcons */
177260 229, /* (372) conslist ::= tcons */
177261 230, /* (373) tconscomma ::= */
177262 234, /* (374) defer_subclause_opt ::= defer_subclause */
177263 236, /* (375) resolvetype ::= raisetype */
177264 240, /* (376) selectnowith ::= oneselect */
177265 241, /* (377) oneselect ::= values */
177266 256, /* (378) sclp ::= selcollist COMMA */
177267 257, /* (379) as ::= ID|STRING */
177268 266, /* (380) indexed_opt ::= indexed_by */
177269 274, /* (381) returning ::= */
177270 218, /* (382) expr ::= term */
177271 276, /* (383) likeop ::= LIKE_KW|MATCH */
177272 280, /* (384) case_operand ::= expr */
177273 263, /* (385) exprlist ::= nexprlist */
177274 286, /* (386) nmnum ::= plus_num */
177275 286, /* (387) nmnum ::= nm */
177276 286, /* (388) nmnum ::= ON */
177277 286, /* (389) nmnum ::= DELETE */
177278 286, /* (390) nmnum ::= DEFAULT */
177279 212, /* (391) plus_num ::= INTEGER|FLOAT */
177280 291, /* (392) foreach_clause ::= */
177281 291, /* (393) foreach_clause ::= FOR EACH ROW */
177282 294, /* (394) trnm ::= nm */
177283 295, /* (395) tridxby ::= */
177284 296, /* (396) database_kw_opt ::= DATABASE */
177285 296, /* (397) database_kw_opt ::= */
177286 299, /* (398) kwcolumn_opt ::= */
177287 299, /* (399) kwcolumn_opt ::= COLUMNKW */
177288 301, /* (400) vtabarglist ::= vtabarg */
177289 301, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */
177290 302, /* (402) vtabarg ::= vtabarg vtabargtoken */
177291 305, /* (403) anylist ::= */
177292 305, /* (404) anylist ::= anylist LP anylist RP */
177293 305, /* (405) anylist ::= anylist ANY */
177294 268, /* (406) with ::= */
177295 309, /* (407) windowdefn_list ::= windowdefn */
177296 311, /* (408) window ::= frame_opt */
177297 };
177298
177299 /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
177300 ** of symbols on the right-hand side of that rule. */
177301 static const signed char yyRuleInfoNRhs[] = {
@@ -177757,20 +177863,20 @@
177757 break;
177758 case 2: /* cmdx ::= cmd */
177759 { sqlite3FinishCoding(pParse); }
177760 break;
177761 case 3: /* cmd ::= BEGIN transtype trans_opt */
177762 {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy144);}
177763 break;
177764 case 4: /* transtype ::= */
177765 {yymsp[1].minor.yy144 = TK_DEFERRED;}
177766 break;
177767 case 5: /* transtype ::= DEFERRED */
177768 case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
177769 case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
177770 case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324);
177771 {yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/}
177772 break;
177773 case 8: /* cmd ::= COMMIT|END trans_opt */
177774 case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
177775 {sqlite3EndTransaction(pParse,yymsp[-1].major);}
177776 break;
@@ -177789,11 +177895,11 @@
177789 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
177790 }
177791 break;
177792 case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
177793 {
177794 sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy144,0,0,yymsp[-2].minor.yy144);
177795 }
177796 break;
177797 case 14: /* createkw ::= CREATE */
177798 {disableLookaside(pParse);}
177799 break;
@@ -177803,56 +177909,56 @@
177803 case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62);
177804 case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72);
177805 case 81: /* ifexists ::= */ yytestcase(yyruleno==81);
177806 case 100: /* distinct ::= */ yytestcase(yyruleno==100);
177807 case 246: /* collate ::= */ yytestcase(yyruleno==246);
177808 {yymsp[1].minor.yy144 = 0;}
177809 break;
177810 case 16: /* ifnotexists ::= IF NOT EXISTS */
177811 {yymsp[-2].minor.yy144 = 1;}
177812 break;
177813 case 17: /* temp ::= TEMP */
177814 {yymsp[0].minor.yy144 = pParse->db->init.busy==0;}
177815 break;
177816 case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */
177817 {
177818 sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy391,0);
177819 }
177820 break;
177821 case 20: /* create_table_args ::= AS select */
177822 {
177823 sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy555);
177824 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555);
177825 }
177826 break;
177827 case 21: /* table_option_set ::= */
177828 {yymsp[1].minor.yy391 = 0;}
177829 break;
177830 case 22: /* table_option_set ::= table_option_set COMMA table_option */
177831 {yylhsminor.yy391 = yymsp[-2].minor.yy391|yymsp[0].minor.yy391;}
177832 yymsp[-2].minor.yy391 = yylhsminor.yy391;
177833 break;
177834 case 23: /* table_option ::= WITHOUT nm */
177835 {
177836 if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
177837 yymsp[-1].minor.yy391 = TF_WithoutRowid | TF_NoVisibleRowid;
177838 }else{
177839 yymsp[-1].minor.yy391 = 0;
177840 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
177841 }
177842 }
177843 break;
177844 case 24: /* table_option ::= nm */
177845 {
177846 if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){
177847 yylhsminor.yy391 = TF_Strict;
177848 }else{
177849 yylhsminor.yy391 = 0;
177850 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
177851 }
177852 }
177853 yymsp[0].minor.yy391 = yylhsminor.yy391;
177854 break;
177855 case 25: /* columnname ::= nm typetoken */
177856 {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);}
177857 break;
177858 case 26: /* typetoken ::= */
@@ -177874,11 +177980,11 @@
177874 {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
177875 break;
177876 case 30: /* scanpt ::= */
177877 {
177878 assert( yyLookahead!=YYNOCODE );
177879 yymsp[1].minor.yy168 = yyLookaheadToken.z;
177880 }
177881 break;
177882 case 31: /* scantok ::= */
177883 {
177884 assert( yyLookahead!=YYNOCODE );
@@ -177888,21 +177994,21 @@
177888 case 32: /* ccons ::= CONSTRAINT nm */
177889 case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67);
177890 {pParse->constraintName = yymsp[0].minor.yy0;}
177891 break;
177892 case 33: /* ccons ::= DEFAULT scantok term */
177893 {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
177894 break;
177895 case 34: /* ccons ::= DEFAULT LP expr RP */
177896 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
177897 break;
177898 case 35: /* ccons ::= DEFAULT PLUS scantok term */
177899 {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
177900 break;
177901 case 36: /* ccons ::= DEFAULT MINUS scantok term */
177902 {
177903 Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy454, 0);
177904 sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);
177905 }
177906 break;
177907 case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */
177908 {
@@ -177913,262 +178019,262 @@
177913 }
177914 sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
177915 }
177916 break;
177917 case 38: /* ccons ::= NOT NULL onconf */
177918 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy144);}
177919 break;
177920 case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
177921 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy144,yymsp[0].minor.yy144,yymsp[-2].minor.yy144);}
177922 break;
177923 case 40: /* ccons ::= UNIQUE onconf */
177924 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy144,0,0,0,0,
177925 SQLITE_IDXTYPE_UNIQUE);}
177926 break;
177927 case 41: /* ccons ::= CHECK LP expr RP */
177928 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);}
177929 break;
177930 case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */
177931 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yymsp[0].minor.yy144);}
177932 break;
177933 case 43: /* ccons ::= defer_subclause */
177934 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy144);}
177935 break;
177936 case 44: /* ccons ::= COLLATE ID|STRING */
177937 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
177938 break;
177939 case 45: /* generated ::= LP expr RP */
177940 {sqlite3AddGenerated(pParse,yymsp[-1].minor.yy454,0);}
177941 break;
177942 case 46: /* generated ::= LP expr RP ID */
177943 {sqlite3AddGenerated(pParse,yymsp[-2].minor.yy454,&yymsp[0].minor.yy0);}
177944 break;
177945 case 48: /* autoinc ::= AUTOINCR */
177946 {yymsp[0].minor.yy144 = 1;}
177947 break;
177948 case 49: /* refargs ::= */
177949 { yymsp[1].minor.yy144 = OE_None*0x0101; /* EV: R-19803-45884 */}
177950 break;
177951 case 50: /* refargs ::= refargs refarg */
177952 { yymsp[-1].minor.yy144 = (yymsp[-1].minor.yy144 & ~yymsp[0].minor.yy383.mask) | yymsp[0].minor.yy383.value; }
177953 break;
177954 case 51: /* refarg ::= MATCH nm */
177955 { yymsp[-1].minor.yy383.value = 0; yymsp[-1].minor.yy383.mask = 0x000000; }
177956 break;
177957 case 52: /* refarg ::= ON INSERT refact */
177958 { yymsp[-2].minor.yy383.value = 0; yymsp[-2].minor.yy383.mask = 0x000000; }
177959 break;
177960 case 53: /* refarg ::= ON DELETE refact */
177961 { yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144; yymsp[-2].minor.yy383.mask = 0x0000ff; }
177962 break;
177963 case 54: /* refarg ::= ON UPDATE refact */
177964 { yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144<<8; yymsp[-2].minor.yy383.mask = 0x00ff00; }
177965 break;
177966 case 55: /* refact ::= SET NULL */
177967 { yymsp[-1].minor.yy144 = OE_SetNull; /* EV: R-33326-45252 */}
177968 break;
177969 case 56: /* refact ::= SET DEFAULT */
177970 { yymsp[-1].minor.yy144 = OE_SetDflt; /* EV: R-33326-45252 */}
177971 break;
177972 case 57: /* refact ::= CASCADE */
177973 { yymsp[0].minor.yy144 = OE_Cascade; /* EV: R-33326-45252 */}
177974 break;
177975 case 58: /* refact ::= RESTRICT */
177976 { yymsp[0].minor.yy144 = OE_Restrict; /* EV: R-33326-45252 */}
177977 break;
177978 case 59: /* refact ::= NO ACTION */
177979 { yymsp[-1].minor.yy144 = OE_None; /* EV: R-33326-45252 */}
177980 break;
177981 case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
177982 {yymsp[-2].minor.yy144 = 0;}
177983 break;
177984 case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
177985 case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76);
177986 case 173: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==173);
177987 {yymsp[-1].minor.yy144 = yymsp[0].minor.yy144;}
177988 break;
177989 case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
177990 case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80);
177991 case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219);
177992 case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222);
177993 case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247);
177994 {yymsp[-1].minor.yy144 = 1;}
177995 break;
177996 case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
177997 {yymsp[-1].minor.yy144 = 0;}
177998 break;
177999 case 66: /* tconscomma ::= COMMA */
178000 {pParse->constraintName.n = 0;}
178001 break;
178002 case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
178003 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy144,yymsp[-2].minor.yy144,0);}
178004 break;
178005 case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */
178006 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy144,0,0,0,0,
178007 SQLITE_IDXTYPE_UNIQUE);}
178008 break;
178009 case 70: /* tcons ::= CHECK LP expr RP onconf */
178010 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy454,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);}
178011 break;
178012 case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
178013 {
178014 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy144);
178015 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy144);
178016 }
178017 break;
178018 case 73: /* onconf ::= */
178019 case 75: /* orconf ::= */ yytestcase(yyruleno==75);
178020 {yymsp[1].minor.yy144 = OE_Default;}
178021 break;
178022 case 74: /* onconf ::= ON CONFLICT resolvetype */
178023 {yymsp[-2].minor.yy144 = yymsp[0].minor.yy144;}
178024 break;
178025 case 77: /* resolvetype ::= IGNORE */
178026 {yymsp[0].minor.yy144 = OE_Ignore;}
178027 break;
178028 case 78: /* resolvetype ::= REPLACE */
178029 case 174: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==174);
178030 {yymsp[0].minor.yy144 = OE_Replace;}
178031 break;
178032 case 79: /* cmd ::= DROP TABLE ifexists fullname */
178033 {
178034 sqlite3DropTable(pParse, yymsp[0].minor.yy203, 0, yymsp[-1].minor.yy144);
178035 }
178036 break;
178037 case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
178038 {
178039 sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[0].minor.yy555, yymsp[-7].minor.yy144, yymsp[-5].minor.yy144);
178040 }
178041 break;
178042 case 83: /* cmd ::= DROP VIEW ifexists fullname */
178043 {
178044 sqlite3DropTable(pParse, yymsp[0].minor.yy203, 1, yymsp[-1].minor.yy144);
178045 }
178046 break;
178047 case 84: /* cmd ::= select */
178048 {
178049 SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0};
178050 if( (pParse->db->mDbFlags & DBFLAG_EncodingFixed)!=0
178051 || sqlite3ReadSchema(pParse)==SQLITE_OK
178052 ){
178053 sqlite3Select(pParse, yymsp[0].minor.yy555, &dest);
178054 }
178055 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555);
178056 }
178057 break;
178058 case 85: /* select ::= WITH wqlist selectnowith */
178059 {yymsp[-2].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);}
178060 break;
178061 case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */
178062 {yymsp[-3].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);}
178063 break;
178064 case 87: /* select ::= selectnowith */
178065 {
178066 Select *p = yymsp[0].minor.yy555;
178067 if( p ){
178068 parserDoubleLinkSelect(pParse, p);
178069 }
178070 }
178071 break;
178072 case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */
178073 {
178074 Select *pRhs = yymsp[0].minor.yy555;
178075 Select *pLhs = yymsp[-2].minor.yy555;
178076 if( pRhs && pRhs->pPrior ){
178077 SrcList *pFrom;
178078 Token x;
178079 x.n = 0;
178080 parserDoubleLinkSelect(pParse, pRhs);
178081 pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0);
178082 pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
178083 }
178084 if( pRhs ){
178085 pRhs->op = (u8)yymsp[-1].minor.yy144;
178086 pRhs->pPrior = pLhs;
178087 if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
178088 pRhs->selFlags &= ~SF_MultiValue;
178089 if( yymsp[-1].minor.yy144!=TK_ALL ) pParse->hasCompound = 1;
178090 }else{
178091 sqlite3SelectDelete(pParse->db, pLhs);
178092 }
178093 yymsp[-2].minor.yy555 = pRhs;
178094 }
178095 break;
178096 case 89: /* multiselect_op ::= UNION */
178097 case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91);
178098 {yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-OP*/}
178099 break;
178100 case 90: /* multiselect_op ::= UNION ALL */
178101 {yymsp[-1].minor.yy144 = TK_ALL;}
178102 break;
178103 case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
178104 {
178105 yymsp[-8].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy14,yymsp[-5].minor.yy203,yymsp[-4].minor.yy454,yymsp[-3].minor.yy14,yymsp[-2].minor.yy454,yymsp[-1].minor.yy14,yymsp[-7].minor.yy144,yymsp[0].minor.yy454);
178106 }
178107 break;
178108 case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
178109 {
178110 yymsp[-9].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy14,yymsp[-6].minor.yy203,yymsp[-5].minor.yy454,yymsp[-4].minor.yy14,yymsp[-3].minor.yy454,yymsp[-1].minor.yy14,yymsp[-8].minor.yy144,yymsp[0].minor.yy454);
178111 if( yymsp[-9].minor.yy555 ){
178112 yymsp[-9].minor.yy555->pWinDefn = yymsp[-2].minor.yy211;
178113 }else{
178114 sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy211);
178115 }
178116 }
178117 break;
178118 case 94: /* values ::= VALUES LP nexprlist RP */
178119 {
178120 yymsp[-3].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy14,0,0,0,0,0,SF_Values,0);
178121 }
178122 break;
178123 case 95: /* oneselect ::= mvalues */
178124 {
178125 sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy555);
178126 }
178127 break;
178128 case 96: /* mvalues ::= values COMMA LP nexprlist RP */
178129 case 97: /* mvalues ::= mvalues COMMA LP nexprlist RP */ yytestcase(yyruleno==97);
178130 {
178131 yymsp[-4].minor.yy555 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy555, yymsp[-1].minor.yy14);
178132 }
178133 break;
178134 case 98: /* distinct ::= DISTINCT */
178135 {yymsp[0].minor.yy144 = SF_Distinct;}
178136 break;
178137 case 99: /* distinct ::= ALL */
178138 {yymsp[0].minor.yy144 = SF_All;}
178139 break;
178140 case 101: /* sclp ::= */
178141 case 134: /* orderby_opt ::= */ yytestcase(yyruleno==134);
178142 case 144: /* groupby_opt ::= */ yytestcase(yyruleno==144);
178143 case 234: /* exprlist ::= */ yytestcase(yyruleno==234);
178144 case 237: /* paren_exprlist ::= */ yytestcase(yyruleno==237);
178145 case 242: /* eidlist_opt ::= */ yytestcase(yyruleno==242);
178146 {yymsp[1].minor.yy14 = 0;}
178147 break;
178148 case 102: /* selcollist ::= sclp scanpt expr scanpt as */
178149 {
178150 yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[-2].minor.yy454);
178151 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[0].minor.yy0, 1);
178152 sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy14,yymsp[-3].minor.yy168,yymsp[-1].minor.yy168);
178153 }
178154 break;
178155 case 103: /* selcollist ::= sclp scanpt STAR */
178156 {
178157 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
178158 sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail));
178159 yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy14, p);
178160 }
178161 break;
178162 case 104: /* selcollist ::= sclp scanpt nm DOT STAR */
178163 {
178164 Expr *pRight, *pLeft, *pDot;
178165 pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
178166 sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail));
178167 pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0);
178168 pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
178169 yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, pDot);
178170 }
178171 break;
178172 case 105: /* as ::= AS nm */
178173 case 117: /* dbnm ::= DOT nm */ yytestcase(yyruleno==117);
178174 case 258: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==258);
@@ -178175,54 +178281,54 @@
178175 case 259: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==259);
178176 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
178177 break;
178178 case 107: /* from ::= */
178179 case 110: /* stl_prefix ::= */ yytestcase(yyruleno==110);
178180 {yymsp[1].minor.yy203 = 0;}
178181 break;
178182 case 108: /* from ::= FROM seltablist */
178183 {
178184 yymsp[-1].minor.yy203 = yymsp[0].minor.yy203;
178185 sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy203);
178186 }
178187 break;
178188 case 109: /* stl_prefix ::= seltablist joinop */
178189 {
178190 if( ALWAYS(yymsp[-1].minor.yy203 && yymsp[-1].minor.yy203->nSrc>0) ) yymsp[-1].minor.yy203->a[yymsp[-1].minor.yy203->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy144;
178191 }
178192 break;
178193 case 111: /* seltablist ::= stl_prefix nm dbnm as on_using */
178194 {
178195 yymsp[-4].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy203,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269);
178196 }
178197 break;
178198 case 112: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
178199 {
178200 yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy269);
178201 sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-1].minor.yy0);
178202 }
178203 break;
178204 case 113: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
178205 {
178206 yymsp[-7].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy203,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269);
178207 sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy203, yymsp[-3].minor.yy14);
178208 }
178209 break;
178210 case 114: /* seltablist ::= stl_prefix LP select RP as on_using */
178211 {
178212 yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy555,&yymsp[0].minor.yy269);
178213 }
178214 break;
178215 case 115: /* seltablist ::= stl_prefix LP seltablist RP as on_using */
178216 {
178217 if( yymsp[-5].minor.yy203==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy269.pOn==0 && yymsp[0].minor.yy269.pUsing==0 ){
178218 yymsp[-5].minor.yy203 = yymsp[-3].minor.yy203;
178219 }else if( ALWAYS(yymsp[-3].minor.yy203!=0) && yymsp[-3].minor.yy203->nSrc==1 ){
178220 yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269);
178221 if( yymsp[-5].minor.yy203 ){
178222 SrcItem *pNew = &yymsp[-5].minor.yy203->a[yymsp[-5].minor.yy203->nSrc-1];
178223 SrcItem *pOld = yymsp[-3].minor.yy203->a;
178224 assert( pOld->fg.fixedSchema==0 );
178225 pNew->zName = pOld->zName;
178226 assert( pOld->fg.fixedSchema==0 );
178227 if( pOld->fg.isSubquery ){
178228 pNew->fg.isSubquery = 1;
@@ -178243,249 +178349,249 @@
178243 pOld->fg.isTabFunc = 0;
178244 pNew->fg.isTabFunc = 1;
178245 }
178246 pOld->zName = 0;
178247 }
178248 sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy203);
178249 }else{
178250 Select *pSubquery;
178251 sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy203);
178252 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy203,0,0,0,0,SF_NestedFrom,0);
178253 yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy269);
178254 }
178255 }
178256 break;
178257 case 116: /* dbnm ::= */
178258 case 131: /* indexed_opt ::= */ yytestcase(yyruleno==131);
178259 {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
178260 break;
178261 case 118: /* fullname ::= nm */
178262 {
178263 yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
178264 if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0);
178265 }
178266 yymsp[0].minor.yy203 = yylhsminor.yy203;
178267 break;
178268 case 119: /* fullname ::= nm DOT nm */
178269 {
178270 yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
178271 if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0);
178272 }
178273 yymsp[-2].minor.yy203 = yylhsminor.yy203;
178274 break;
178275 case 120: /* xfullname ::= nm */
178276 {yymsp[0].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
178277 break;
178278 case 121: /* xfullname ::= nm DOT nm */
178279 {yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
178280 break;
178281 case 122: /* xfullname ::= nm DOT nm AS nm */
178282 {
178283 yymsp[-4].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
178284 if( yymsp[-4].minor.yy203 ) yymsp[-4].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178285 }
178286 break;
178287 case 123: /* xfullname ::= nm AS nm */
178288 {
178289 yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
178290 if( yymsp[-2].minor.yy203 ) yymsp[-2].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178291 }
178292 break;
178293 case 124: /* joinop ::= COMMA|JOIN */
178294 { yymsp[0].minor.yy144 = JT_INNER; }
178295 break;
178296 case 125: /* joinop ::= JOIN_KW JOIN */
178297 {yymsp[-1].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
178298 break;
178299 case 126: /* joinop ::= JOIN_KW nm JOIN */
178300 {yymsp[-2].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
178301 break;
178302 case 127: /* joinop ::= JOIN_KW nm nm JOIN */
178303 {yymsp[-3].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
178304 break;
178305 case 128: /* on_using ::= ON expr */
178306 {yymsp[-1].minor.yy269.pOn = yymsp[0].minor.yy454; yymsp[-1].minor.yy269.pUsing = 0;}
178307 break;
178308 case 129: /* on_using ::= USING LP idlist RP */
178309 {yymsp[-3].minor.yy269.pOn = 0; yymsp[-3].minor.yy269.pUsing = yymsp[-1].minor.yy132;}
178310 break;
178311 case 130: /* on_using ::= */
178312 {yymsp[1].minor.yy269.pOn = 0; yymsp[1].minor.yy269.pUsing = 0;}
178313 break;
178314 case 132: /* indexed_by ::= INDEXED BY nm */
178315 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
178316 break;
178317 case 133: /* indexed_by ::= NOT INDEXED */
178318 {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
178319 break;
178320 case 135: /* orderby_opt ::= ORDER BY sortlist */
178321 case 145: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==145);
178322 {yymsp[-2].minor.yy14 = yymsp[0].minor.yy14;}
178323 break;
178324 case 136: /* sortlist ::= sortlist COMMA expr sortorder nulls */
178325 {
178326 yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14,yymsp[-2].minor.yy454);
178327 sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144);
178328 }
178329 break;
178330 case 137: /* sortlist ::= expr sortorder nulls */
178331 {
178332 yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy454); /*A-overwrites-Y*/
178333 sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144);
178334 }
178335 break;
178336 case 138: /* sortorder ::= ASC */
178337 {yymsp[0].minor.yy144 = SQLITE_SO_ASC;}
178338 break;
178339 case 139: /* sortorder ::= DESC */
178340 {yymsp[0].minor.yy144 = SQLITE_SO_DESC;}
178341 break;
178342 case 140: /* sortorder ::= */
178343 case 143: /* nulls ::= */ yytestcase(yyruleno==143);
178344 {yymsp[1].minor.yy144 = SQLITE_SO_UNDEFINED;}
178345 break;
178346 case 141: /* nulls ::= NULLS FIRST */
178347 {yymsp[-1].minor.yy144 = SQLITE_SO_ASC;}
178348 break;
178349 case 142: /* nulls ::= NULLS LAST */
178350 {yymsp[-1].minor.yy144 = SQLITE_SO_DESC;}
178351 break;
178352 case 146: /* having_opt ::= */
178353 case 148: /* limit_opt ::= */ yytestcase(yyruleno==148);
178354 case 153: /* where_opt ::= */ yytestcase(yyruleno==153);
178355 case 155: /* where_opt_ret ::= */ yytestcase(yyruleno==155);
178356 case 232: /* case_else ::= */ yytestcase(yyruleno==232);
178357 case 233: /* case_operand ::= */ yytestcase(yyruleno==233);
178358 case 252: /* vinto ::= */ yytestcase(yyruleno==252);
178359 {yymsp[1].minor.yy454 = 0;}
178360 break;
178361 case 147: /* having_opt ::= HAVING expr */
178362 case 154: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==154);
178363 case 156: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==156);
178364 case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231);
178365 case 251: /* vinto ::= INTO expr */ yytestcase(yyruleno==251);
178366 {yymsp[-1].minor.yy454 = yymsp[0].minor.yy454;}
178367 break;
178368 case 149: /* limit_opt ::= LIMIT expr */
178369 {yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,0);}
178370 break;
178371 case 150: /* limit_opt ::= LIMIT expr OFFSET expr */
178372 {yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);}
178373 break;
178374 case 151: /* limit_opt ::= LIMIT expr COMMA expr */
178375 {yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,yymsp[-2].minor.yy454);}
178376 break;
178377 case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
178378 {
178379 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy203, &yymsp[-1].minor.yy0);
178380 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy203,yymsp[0].minor.yy454,0,0);
178381 }
178382 break;
178383 case 157: /* where_opt_ret ::= RETURNING selcollist */
178384 {sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-1].minor.yy454 = 0;}
178385 break;
178386 case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */
178387 {sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-3].minor.yy454 = yymsp[-2].minor.yy454;}
178388 break;
178389 case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
178390 {
178391 sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-4].minor.yy0);
178392 sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy14,"set list");
178393 if( yymsp[-1].minor.yy203 ){
178394 SrcList *pFromClause = yymsp[-1].minor.yy203;
178395 if( pFromClause->nSrc>1 ){
178396 Select *pSubquery;
178397 Token as;
178398 pSubquery = sqlite3SelectNew(pParse,0,pFromClause,0,0,0,0,SF_NestedFrom,0);
178399 as.n = 0;
178400 as.z = 0;
178401 pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0);
178402 }
178403 yymsp[-5].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy203, pFromClause);
178404 }
178405 sqlite3Update(pParse,yymsp[-5].minor.yy203,yymsp[-2].minor.yy14,yymsp[0].minor.yy454,yymsp[-6].minor.yy144,0,0,0);
178406 }
178407 break;
178408 case 160: /* setlist ::= setlist COMMA nm EQ expr */
178409 {
178410 yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0].minor.yy454);
178411 sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, 1);
178412 }
178413 break;
178414 case 161: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
178415 {
178416 yymsp[-6].minor.yy14 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy14, yymsp[-3].minor.yy132, yymsp[0].minor.yy454);
178417 }
178418 break;
178419 case 162: /* setlist ::= nm EQ expr */
178420 {
178421 yylhsminor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy454);
178422 sqlite3ExprListSetName(pParse, yylhsminor.yy14, &yymsp[-2].minor.yy0, 1);
178423 }
178424 yymsp[-2].minor.yy14 = yylhsminor.yy14;
178425 break;
178426 case 163: /* setlist ::= LP idlist RP EQ expr */
178427 {
178428 yymsp[-4].minor.yy14 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy132, yymsp[0].minor.yy454);
178429 }
178430 break;
178431 case 164: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
178432 {
178433 sqlite3Insert(pParse, yymsp[-3].minor.yy203, yymsp[-1].minor.yy555, yymsp[-2].minor.yy132, yymsp[-5].minor.yy144, yymsp[0].minor.yy122);
178434 }
178435 break;
178436 case 165: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
178437 {
178438 sqlite3Insert(pParse, yymsp[-4].minor.yy203, 0, yymsp[-3].minor.yy132, yymsp[-6].minor.yy144, 0);
178439 }
178440 break;
178441 case 166: /* upsert ::= */
178442 { yymsp[1].minor.yy122 = 0; }
178443 break;
178444 case 167: /* upsert ::= RETURNING selcollist */
178445 { yymsp[-1].minor.yy122 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy14); }
178446 break;
178447 case 168: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
178448 { yymsp[-11].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy14,yymsp[-6].minor.yy454,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,yymsp[0].minor.yy122);}
178449 break;
178450 case 169: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
178451 { yymsp[-8].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy14,yymsp[-3].minor.yy454,0,0,yymsp[0].minor.yy122); }
178452 break;
178453 case 170: /* upsert ::= ON CONFLICT DO NOTHING returning */
178454 { yymsp[-4].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); }
178455 break;
178456 case 171: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
178457 { yymsp[-7].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,0);}
178458 break;
178459 case 172: /* returning ::= RETURNING selcollist */
178460 {sqlite3AddReturning(pParse,yymsp[0].minor.yy14);}
178461 break;
178462 case 175: /* idlist_opt ::= */
178463 {yymsp[1].minor.yy132 = 0;}
178464 break;
178465 case 176: /* idlist_opt ::= LP idlist RP */
178466 {yymsp[-2].minor.yy132 = yymsp[-1].minor.yy132;}
178467 break;
178468 case 177: /* idlist ::= idlist COMMA nm */
178469 {yymsp[-2].minor.yy132 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy132,&yymsp[0].minor.yy0);}
178470 break;
178471 case 178: /* idlist ::= nm */
178472 {yymsp[0].minor.yy132 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
178473 break;
178474 case 179: /* expr ::= LP expr RP */
178475 {yymsp[-2].minor.yy454 = yymsp[-1].minor.yy454;}
178476 break;
178477 case 180: /* expr ::= ID|INDEXED|JOIN_KW */
178478 {yymsp[0].minor.yy454=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178479 break;
178480 case 181: /* expr ::= nm DOT nm */
178481 {
178482 Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0);
178483 Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0);
178484 yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
178485 }
178486 yymsp[-2].minor.yy454 = yylhsminor.yy454;
178487 break;
178488 case 182: /* expr ::= nm DOT nm DOT nm */
178489 {
178490 Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-4].minor.yy0);
178491 Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0);
@@ -178492,378 +178598,378 @@
178492 Expr *temp3 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0);
178493 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
178494 if( IN_RENAME_OBJECT ){
178495 sqlite3RenameTokenRemap(pParse, 0, temp1);
178496 }
178497 yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
178498 }
178499 yymsp[-4].minor.yy454 = yylhsminor.yy454;
178500 break;
178501 case 183: /* term ::= NULL|FLOAT|BLOB */
178502 case 184: /* term ::= STRING */ yytestcase(yyruleno==184);
178503 {yymsp[0].minor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178504 break;
178505 case 185: /* term ::= INTEGER */
178506 {
178507 yylhsminor.yy454 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
178508 if( yylhsminor.yy454 ) yylhsminor.yy454->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail);
178509 }
178510 yymsp[0].minor.yy454 = yylhsminor.yy454;
178511 break;
178512 case 186: /* expr ::= VARIABLE */
178513 {
178514 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
178515 u32 n = yymsp[0].minor.yy0.n;
178516 yymsp[0].minor.yy454 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
178517 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy454, n);
178518 }else{
178519 /* When doing a nested parse, one can include terms in an expression
178520 ** that look like this: #1 #2 ... These terms refer to registers
178521 ** in the virtual machine. #N is the N-th register. */
178522 Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
178523 assert( t.n>=2 );
178524 if( pParse->nested==0 ){
178525 parserSyntaxError(pParse, &t);
178526 yymsp[0].minor.yy454 = 0;
178527 }else{
178528 yymsp[0].minor.yy454 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
178529 if( yymsp[0].minor.yy454 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy454->iTable);
178530 }
178531 }
178532 }
178533 break;
178534 case 187: /* expr ::= expr COLLATE ID|STRING */
178535 {
178536 yymsp[-2].minor.yy454 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy454, &yymsp[0].minor.yy0, 1);
178537 }
178538 break;
178539 case 188: /* expr ::= CAST LP expr AS typetoken RP */
178540 {
178541 yymsp[-5].minor.yy454 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
178542 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy454, yymsp[-3].minor.yy454, 0);
178543 }
178544 break;
178545 case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
178546 {
178547 yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy144);
178548 }
178549 yymsp[-4].minor.yy454 = yylhsminor.yy454;
178550 break;
178551 case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
178552 {
178553 yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy14, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy144);
178554 sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-1].minor.yy14);
178555 }
178556 yymsp[-7].minor.yy454 = yylhsminor.yy454;
178557 break;
178558 case 191: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
178559 {
178560 yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
178561 }
178562 yymsp[-3].minor.yy454 = yylhsminor.yy454;
178563 break;
178564 case 192: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
178565 {
178566 yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy14, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy144);
178567 sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211);
178568 }
178569 yymsp[-5].minor.yy454 = yylhsminor.yy454;
178570 break;
178571 case 193: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
178572 {
178573 yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy14, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy144);
178574 sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211);
178575 sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-2].minor.yy14);
178576 }
178577 yymsp[-8].minor.yy454 = yylhsminor.yy454;
178578 break;
178579 case 194: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
178580 {
178581 yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
178582 sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211);
178583 }
178584 yymsp[-4].minor.yy454 = yylhsminor.yy454;
178585 break;
178586 case 195: /* term ::= CTIME_KW */
178587 {
178588 yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
178589 }
178590 yymsp[0].minor.yy454 = yylhsminor.yy454;
178591 break;
178592 case 196: /* expr ::= LP nexprlist COMMA expr RP */
178593 {
178594 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454);
178595 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
178596 if( yymsp[-4].minor.yy454 ){
178597 yymsp[-4].minor.yy454->x.pList = pList;
178598 if( ALWAYS(pList->nExpr) ){
178599 yymsp[-4].minor.yy454->flags |= pList->a[0].pExpr->flags & EP_Propagate;
178600 }
178601 }else{
178602 sqlite3ExprListDelete(pParse->db, pList);
178603 }
178604 }
178605 break;
178606 case 197: /* expr ::= expr AND expr */
178607 {yymsp[-2].minor.yy454=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);}
178608 break;
178609 case 198: /* expr ::= expr OR expr */
178610 case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199);
178611 case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200);
178612 case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201);
178613 case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202);
178614 case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203);
178615 case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204);
178616 {yymsp[-2].minor.yy454=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);}
178617 break;
178618 case 205: /* likeop ::= NOT LIKE_KW|MATCH */
178619 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
178620 break;
178621 case 206: /* expr ::= expr likeop expr */
178622 {
178623 ExprList *pList;
178624 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
178625 yymsp[-1].minor.yy0.n &= 0x7fffffff;
178626 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy454);
178627 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy454);
178628 yymsp[-2].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178629 if( bNot ) yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy454, 0);
178630 if( yymsp[-2].minor.yy454 ) yymsp[-2].minor.yy454->flags |= EP_InfixFunc;
178631 }
178632 break;
178633 case 207: /* expr ::= expr likeop expr ESCAPE expr */
178634 {
178635 ExprList *pList;
178636 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
178637 yymsp[-3].minor.yy0.n &= 0x7fffffff;
178638 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454);
178639 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy454);
178640 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454);
178641 yymsp[-4].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
178642 if( bNot ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178643 if( yymsp[-4].minor.yy454 ) yymsp[-4].minor.yy454->flags |= EP_InfixFunc;
178644 }
178645 break;
178646 case 208: /* expr ::= expr ISNULL|NOTNULL */
178647 {yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy454,0);}
178648 break;
178649 case 209: /* expr ::= expr NOT NULL */
178650 {yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy454,0);}
178651 break;
178652 case 210: /* expr ::= expr IS expr */
178653 {
178654 yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);
178655 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-2].minor.yy454, TK_ISNULL);
178656 }
178657 break;
178658 case 211: /* expr ::= expr IS NOT expr */
178659 {
178660 yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy454,yymsp[0].minor.yy454);
178661 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-3].minor.yy454, TK_NOTNULL);
178662 }
178663 break;
178664 case 212: /* expr ::= expr IS NOT DISTINCT FROM expr */
178665 {
178666 yymsp[-5].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy454,yymsp[0].minor.yy454);
178667 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-5].minor.yy454, TK_ISNULL);
178668 }
178669 break;
178670 case 213: /* expr ::= expr IS DISTINCT FROM expr */
178671 {
178672 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy454,yymsp[0].minor.yy454);
178673 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-4].minor.yy454, TK_NOTNULL);
178674 }
178675 break;
178676 case 214: /* expr ::= NOT expr */
178677 case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215);
178678 {yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy454, 0);/*A-overwrites-B*/}
178679 break;
178680 case 216: /* expr ::= PLUS|MINUS expr */
178681 {
178682 Expr *p = yymsp[0].minor.yy454;
178683 u8 op = yymsp[-1].major + (TK_UPLUS-TK_PLUS);
178684 assert( TK_UPLUS>TK_PLUS );
178685 assert( TK_UMINUS == TK_MINUS + (TK_UPLUS - TK_PLUS) );
178686 if( p && p->op==TK_UPLUS ){
178687 p->op = op;
178688 yymsp[-1].minor.yy454 = p;
178689 }else{
178690 yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, op, p, 0);
178691 /*A-overwrites-B*/
178692 }
178693 }
178694 break;
178695 case 217: /* expr ::= expr PTR expr */
178696 {
178697 ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy454);
178698 pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy454);
178699 yylhsminor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178700 }
178701 yymsp[-2].minor.yy454 = yylhsminor.yy454;
178702 break;
178703 case 218: /* between_op ::= BETWEEN */
178704 case 221: /* in_op ::= IN */ yytestcase(yyruleno==221);
178705 {yymsp[0].minor.yy144 = 0;}
178706 break;
178707 case 220: /* expr ::= expr between_op expr AND expr */
178708 {
178709 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454);
178710 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454);
178711 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy454, 0);
178712 if( yymsp[-4].minor.yy454 ){
178713 yymsp[-4].minor.yy454->x.pList = pList;
178714 }else{
178715 sqlite3ExprListDelete(pParse->db, pList);
178716 }
178717 if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178718 }
178719 break;
178720 case 223: /* expr ::= expr in_op LP exprlist RP */
178721 {
178722 if( yymsp[-1].minor.yy14==0 ){
178723 /* Expressions of the form
178724 **
178725 ** expr1 IN ()
178726 ** expr1 NOT IN ()
178727 **
178728 ** simplify to constants 0 (false) and 1 (true), respectively,
178729 ** regardless of the value of expr1.
178730 */
178731 sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy454);
178732 yymsp[-4].minor.yy454 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy144 ? "true" : "false");
178733 if( yymsp[-4].minor.yy454 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy454);
178734 }else{
178735 Expr *pRHS = yymsp[-1].minor.yy14->a[0].pExpr;
178736 if( yymsp[-1].minor.yy14->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy454->op!=TK_VECTOR ){
178737 yymsp[-1].minor.yy14->a[0].pExpr = 0;
178738 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14);
178739 pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0);
178740 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy454, pRHS);
178741 }else if( yymsp[-1].minor.yy14->nExpr==1 && pRHS->op==TK_SELECT ){
178742 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178743 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pRHS->x.pSelect);
178744 pRHS->x.pSelect = 0;
178745 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14);
178746 }else{
178747 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178748 if( yymsp[-4].minor.yy454==0 ){
178749 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14);
178750 }else if( yymsp[-4].minor.yy454->pLeft->op==TK_VECTOR ){
178751 int nExpr = yymsp[-4].minor.yy454->pLeft->x.pList->nExpr;
178752 Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy14);
178753 if( pSelectRHS ){
178754 parserDoubleLinkSelect(pParse, pSelectRHS);
178755 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelectRHS);
178756 }
178757 }else{
178758 yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy14;
178759 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454);
178760 }
178761 }
178762 if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178763 }
178764 }
178765 break;
178766 case 224: /* expr ::= LP select RP */
178767 {
178768 yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
178769 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy454, yymsp[-1].minor.yy555);
178770 }
178771 break;
178772 case 225: /* expr ::= expr in_op LP select RP */
178773 {
178774 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178775 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, yymsp[-1].minor.yy555);
178776 if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178777 }
178778 break;
178779 case 226: /* expr ::= expr in_op nm dbnm paren_exprlist */
178780 {
178781 SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
178782 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
178783 if( yymsp[0].minor.yy14 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy14);
178784 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0);
178785 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelect);
178786 if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0);
178787 }
178788 break;
178789 case 227: /* expr ::= EXISTS LP select RP */
178790 {
178791 Expr *p;
178792 p = yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
178793 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy555);
178794 }
178795 break;
178796 case 228: /* expr ::= CASE case_operand case_exprlist case_else END */
178797 {
178798 yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy454, 0);
178799 if( yymsp[-4].minor.yy454 ){
178800 yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy454 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454) : yymsp[-2].minor.yy14;
178801 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454);
178802 }else{
178803 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy14);
178804 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454);
178805 }
178806 }
178807 break;
178808 case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
178809 {
178810 yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2].minor.yy454);
178811 yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[0].minor.yy454);
178812 }
178813 break;
178814 case 230: /* case_exprlist ::= WHEN expr THEN expr */
178815 {
178816 yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454);
178817 yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14, yymsp[0].minor.yy454);
178818 }
178819 break;
178820 case 235: /* nexprlist ::= nexprlist COMMA expr */
178821 {yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].minor.yy454);}
178822 break;
178823 case 236: /* nexprlist ::= expr */
178824 {yymsp[0].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy454); /*A-overwrites-Y*/}
178825 break;
178826 case 238: /* paren_exprlist ::= LP exprlist RP */
178827 case 243: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==243);
178828 {yymsp[-2].minor.yy14 = yymsp[-1].minor.yy14;}
178829 break;
178830 case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
178831 {
178832 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
178833 sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy14, yymsp[-10].minor.yy144,
178834 &yymsp[-11].minor.yy0, yymsp[0].minor.yy454, SQLITE_SO_ASC, yymsp[-8].minor.yy144, SQLITE_IDXTYPE_APPDEF);
178835 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
178836 sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0);
178837 }
178838 }
178839 break;
178840 case 240: /* uniqueflag ::= UNIQUE */
178841 case 282: /* raisetype ::= ABORT */ yytestcase(yyruleno==282);
178842 {yymsp[0].minor.yy144 = OE_Abort;}
178843 break;
178844 case 241: /* uniqueflag ::= */
178845 {yymsp[1].minor.yy144 = OE_None;}
178846 break;
178847 case 244: /* eidlist ::= eidlist COMMA nm collate sortorder */
178848 {
178849 yymsp[-4].minor.yy14 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144);
178850 }
178851 break;
178852 case 245: /* eidlist ::= nm collate sortorder */
178853 {
178854 yymsp[-2].minor.yy14 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); /*A-overwrites-Y*/
178855 }
178856 break;
178857 case 248: /* cmd ::= DROP INDEX ifexists fullname */
178858 {sqlite3DropIndex(pParse, yymsp[0].minor.yy203, yymsp[-1].minor.yy144);}
178859 break;
178860 case 249: /* cmd ::= VACUUM vinto */
178861 {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy454);}
178862 break;
178863 case 250: /* cmd ::= VACUUM nm vinto */
178864 {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy454);}
178865 break;
178866 case 253: /* cmd ::= PRAGMA nm dbnm */
178867 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
178868 break;
178869 case 254: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
@@ -178881,54 +178987,54 @@
178881 case 260: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
178882 {
178883 Token all;
178884 all.z = yymsp[-3].minor.yy0.z;
178885 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
178886 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy427, &all);
178887 }
178888 break;
178889 case 261: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
178890 {
178891 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy144, yymsp[-4].minor.yy286.a, yymsp[-4].minor.yy286.b, yymsp[-2].minor.yy203, yymsp[0].minor.yy454, yymsp[-10].minor.yy144, yymsp[-8].minor.yy144);
178892 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
178893 }
178894 break;
178895 case 262: /* trigger_time ::= BEFORE|AFTER */
178896 { yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/ }
178897 break;
178898 case 263: /* trigger_time ::= INSTEAD OF */
178899 { yymsp[-1].minor.yy144 = TK_INSTEAD;}
178900 break;
178901 case 264: /* trigger_time ::= */
178902 { yymsp[1].minor.yy144 = TK_BEFORE; }
178903 break;
178904 case 265: /* trigger_event ::= DELETE|INSERT */
178905 case 266: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==266);
178906 {yymsp[0].minor.yy286.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy286.b = 0;}
178907 break;
178908 case 267: /* trigger_event ::= UPDATE OF idlist */
178909 {yymsp[-2].minor.yy286.a = TK_UPDATE; yymsp[-2].minor.yy286.b = yymsp[0].minor.yy132;}
178910 break;
178911 case 268: /* when_clause ::= */
178912 case 287: /* key_opt ::= */ yytestcase(yyruleno==287);
178913 { yymsp[1].minor.yy454 = 0; }
178914 break;
178915 case 269: /* when_clause ::= WHEN expr */
178916 case 288: /* key_opt ::= KEY expr */ yytestcase(yyruleno==288);
178917 { yymsp[-1].minor.yy454 = yymsp[0].minor.yy454; }
178918 break;
178919 case 270: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
178920 {
178921 assert( yymsp[-2].minor.yy427!=0 );
178922 yymsp[-2].minor.yy427->pLast->pNext = yymsp[-1].minor.yy427;
178923 yymsp[-2].minor.yy427->pLast = yymsp[-1].minor.yy427;
178924 }
178925 break;
178926 case 271: /* trigger_cmd_list ::= trigger_cmd SEMI */
178927 {
178928 assert( yymsp[-1].minor.yy427!=0 );
178929 yymsp[-1].minor.yy427->pLast = yymsp[-1].minor.yy427;
178930 }
178931 break;
178932 case 272: /* trnm ::= nm DOT nm */
178933 {
178934 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
@@ -178950,62 +179056,62 @@
178950 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
178951 "within triggers");
178952 }
178953 break;
178954 case 275: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
178955 {yylhsminor.yy427 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy203, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454, yymsp[-7].minor.yy144, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy168);}
178956 yymsp[-8].minor.yy427 = yylhsminor.yy427;
178957 break;
178958 case 276: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
178959 {
178960 yylhsminor.yy427 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy132,yymsp[-2].minor.yy555,yymsp[-6].minor.yy144,yymsp[-1].minor.yy122,yymsp[-7].minor.yy168,yymsp[0].minor.yy168);/*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/
178961 }
178962 yymsp[-7].minor.yy427 = yylhsminor.yy427;
178963 break;
178964 case 277: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
178965 {yylhsminor.yy427 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy454, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy168);}
178966 yymsp[-5].minor.yy427 = yylhsminor.yy427;
178967 break;
178968 case 278: /* trigger_cmd ::= scanpt select scanpt */
178969 {yylhsminor.yy427 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy555, yymsp[-2].minor.yy168, yymsp[0].minor.yy168); /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/}
178970 yymsp[-2].minor.yy427 = yylhsminor.yy427;
178971 break;
178972 case 279: /* expr ::= RAISE LP IGNORE RP */
178973 {
178974 yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
178975 if( yymsp[-3].minor.yy454 ){
178976 yymsp[-3].minor.yy454->affExpr = OE_Ignore;
178977 }
178978 }
178979 break;
178980 case 280: /* expr ::= RAISE LP raisetype COMMA expr RP */
178981 {
178982 yymsp[-5].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy454, 0);
178983 if( yymsp[-5].minor.yy454 ) {
178984 yymsp[-5].minor.yy454->affExpr = (char)yymsp[-3].minor.yy144;
178985 }
178986 }
178987 break;
178988 case 281: /* raisetype ::= ROLLBACK */
178989 {yymsp[0].minor.yy144 = OE_Rollback;}
178990 break;
178991 case 283: /* raisetype ::= FAIL */
178992 {yymsp[0].minor.yy144 = OE_Fail;}
178993 break;
178994 case 284: /* cmd ::= DROP TRIGGER ifexists fullname */
178995 {
178996 sqlite3DropTrigger(pParse,yymsp[0].minor.yy203,yymsp[-1].minor.yy144);
178997 }
178998 break;
178999 case 285: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
179000 {
179001 sqlite3Attach(pParse, yymsp[-3].minor.yy454, yymsp[-1].minor.yy454, yymsp[0].minor.yy454);
179002 }
179003 break;
179004 case 286: /* cmd ::= DETACH database_kw_opt expr */
179005 {
179006 sqlite3Detach(pParse, yymsp[0].minor.yy454);
179007 }
179008 break;
179009 case 289: /* cmd ::= REINDEX */
179010 {sqlite3Reindex(pParse, 0, 0);}
179011 break;
@@ -179018,11 +179124,11 @@
179018 case 292: /* cmd ::= ANALYZE nm dbnm */
179019 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
179020 break;
179021 case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
179022 {
179023 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy203,&yymsp[0].minor.yy0);
179024 }
179025 break;
179026 case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
179027 {
179028 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
@@ -179029,22 +179135,22 @@
179029 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
179030 }
179031 break;
179032 case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
179033 {
179034 sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy203, &yymsp[0].minor.yy0);
179035 }
179036 break;
179037 case 296: /* add_column_fullname ::= fullname */
179038 {
179039 disableLookaside(pParse);
179040 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy203);
179041 }
179042 break;
179043 case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
179044 {
179045 sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy203, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
179046 }
179047 break;
179048 case 298: /* cmd ::= create_vtab */
179049 {sqlite3VtabFinishParse(pParse,0);}
179050 break;
@@ -179051,11 +179157,11 @@
179051 case 299: /* cmd ::= create_vtab LP vtabarglist RP */
179052 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
179053 break;
179054 case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
179055 {
179056 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy144);
179057 }
179058 break;
179059 case 301: /* vtabarg ::= */
179060 {sqlite3VtabArgInit(pParse);}
179061 break;
@@ -179064,185 +179170,185 @@
179064 case 304: /* lp ::= LP */ yytestcase(yyruleno==304);
179065 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
179066 break;
179067 case 305: /* with ::= WITH wqlist */
179068 case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306);
179069 { sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); }
179070 break;
179071 case 307: /* wqas ::= AS */
179072 {yymsp[0].minor.yy462 = M10d_Any;}
179073 break;
179074 case 308: /* wqas ::= AS MATERIALIZED */
179075 {yymsp[-1].minor.yy462 = M10d_Yes;}
179076 break;
179077 case 309: /* wqas ::= AS NOT MATERIALIZED */
179078 {yymsp[-2].minor.yy462 = M10d_No;}
179079 break;
179080 case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */
179081 {
179082 yymsp[-5].minor.yy67 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy555, yymsp[-3].minor.yy462); /*A-overwrites-X*/
179083 }
179084 break;
179085 case 311: /* withnm ::= nm */
179086 {pParse->bHasWith = 1;}
179087 break;
179088 case 312: /* wqlist ::= wqitem */
179089 {
179090 yymsp[0].minor.yy59 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy67); /*A-overwrites-X*/
179091 }
179092 break;
179093 case 313: /* wqlist ::= wqlist COMMA wqitem */
179094 {
179095 yymsp[-2].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy59, yymsp[0].minor.yy67);
179096 }
179097 break;
179098 case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
179099 {
179100 assert( yymsp[0].minor.yy211!=0 );
179101 sqlite3WindowChain(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy211);
179102 yymsp[0].minor.yy211->pNextWin = yymsp[-2].minor.yy211;
179103 yylhsminor.yy211 = yymsp[0].minor.yy211;
179104 }
179105 yymsp[-2].minor.yy211 = yylhsminor.yy211;
179106 break;
179107 case 315: /* windowdefn ::= nm AS LP window RP */
179108 {
179109 if( ALWAYS(yymsp[-1].minor.yy211) ){
179110 yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
179111 }
179112 yylhsminor.yy211 = yymsp[-1].minor.yy211;
179113 }
179114 yymsp[-4].minor.yy211 = yylhsminor.yy211;
179115 break;
179116 case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */
179117 {
179118 yymsp[-4].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, 0);
179119 }
179120 break;
179121 case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
179122 {
179123 yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, &yymsp[-5].minor.yy0);
179124 }
179125 yymsp[-5].minor.yy211 = yylhsminor.yy211;
179126 break;
179127 case 318: /* window ::= ORDER BY sortlist frame_opt */
179128 {
179129 yymsp[-3].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, 0);
179130 }
179131 break;
179132 case 319: /* window ::= nm ORDER BY sortlist frame_opt */
179133 {
179134 yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0);
179135 }
179136 yymsp[-4].minor.yy211 = yylhsminor.yy211;
179137 break;
179138 case 320: /* window ::= nm frame_opt */
179139 {
179140 yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, 0, &yymsp[-1].minor.yy0);
179141 }
179142 yymsp[-1].minor.yy211 = yylhsminor.yy211;
179143 break;
179144 case 321: /* frame_opt ::= */
179145 {
179146 yymsp[1].minor.yy211 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
179147 }
179148 break;
179149 case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
179150 {
179151 yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy144, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy462);
179152 }
179153 yymsp[-2].minor.yy211 = yylhsminor.yy211;
179154 break;
179155 case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
179156 {
179157 yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy144, yymsp[-3].minor.yy509.eType, yymsp[-3].minor.yy509.pExpr, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, yymsp[0].minor.yy462);
179158 }
179159 yymsp[-5].minor.yy211 = yylhsminor.yy211;
179160 break;
179161 case 325: /* frame_bound_s ::= frame_bound */
179162 case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327);
179163 {yylhsminor.yy509 = yymsp[0].minor.yy509;}
179164 yymsp[0].minor.yy509 = yylhsminor.yy509;
179165 break;
179166 case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */
179167 case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328);
179168 case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330);
179169 {yylhsminor.yy509.eType = yymsp[-1].major; yylhsminor.yy509.pExpr = 0;}
179170 yymsp[-1].minor.yy509 = yylhsminor.yy509;
179171 break;
179172 case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */
179173 {yylhsminor.yy509.eType = yymsp[0].major; yylhsminor.yy509.pExpr = yymsp[-1].minor.yy454;}
179174 yymsp[-1].minor.yy509 = yylhsminor.yy509;
179175 break;
179176 case 331: /* frame_exclude_opt ::= */
179177 {yymsp[1].minor.yy462 = 0;}
179178 break;
179179 case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */
179180 {yymsp[-1].minor.yy462 = yymsp[0].minor.yy462;}
179181 break;
179182 case 333: /* frame_exclude ::= NO OTHERS */
179183 case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334);
179184 {yymsp[-1].minor.yy462 = yymsp[-1].major; /*A-overwrites-X*/}
179185 break;
179186 case 335: /* frame_exclude ::= GROUP|TIES */
179187 {yymsp[0].minor.yy462 = yymsp[0].major; /*A-overwrites-X*/}
179188 break;
179189 case 336: /* window_clause ::= WINDOW windowdefn_list */
179190 { yymsp[-1].minor.yy211 = yymsp[0].minor.yy211; }
179191 break;
179192 case 337: /* filter_over ::= filter_clause over_clause */
179193 {
179194 if( yymsp[0].minor.yy211 ){
179195 yymsp[0].minor.yy211->pFilter = yymsp[-1].minor.yy454;
179196 }else{
179197 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454);
179198 }
179199 yylhsminor.yy211 = yymsp[0].minor.yy211;
179200 }
179201 yymsp[-1].minor.yy211 = yylhsminor.yy211;
179202 break;
179203 case 338: /* filter_over ::= over_clause */
179204 {
179205 yylhsminor.yy211 = yymsp[0].minor.yy211;
179206 }
179207 yymsp[0].minor.yy211 = yylhsminor.yy211;
179208 break;
179209 case 339: /* filter_over ::= filter_clause */
179210 {
179211 yylhsminor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179212 if( yylhsminor.yy211 ){
179213 yylhsminor.yy211->eFrmType = TK_FILTER;
179214 yylhsminor.yy211->pFilter = yymsp[0].minor.yy454;
179215 }else{
179216 sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy454);
179217 }
179218 }
179219 yymsp[0].minor.yy211 = yylhsminor.yy211;
179220 break;
179221 case 340: /* over_clause ::= OVER LP window RP */
179222 {
179223 yymsp[-3].minor.yy211 = yymsp[-1].minor.yy211;
179224 assert( yymsp[-3].minor.yy211!=0 );
179225 }
179226 break;
179227 case 341: /* over_clause ::= OVER nm */
179228 {
179229 yymsp[-1].minor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179230 if( yymsp[-1].minor.yy211 ){
179231 yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
179232 }
179233 }
179234 break;
179235 case 342: /* filter_clause ::= FILTER LP WHERE expr RP */
179236 { yymsp[-4].minor.yy454 = yymsp[-1].minor.yy454; }
179237 break;
179238 case 343: /* term ::= QNUMBER */
179239 {
179240 yylhsminor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0);
179241 sqlite3DequoteNumber(pParse, yylhsminor.yy454);
179242 }
179243 yymsp[0].minor.yy454 = yylhsminor.yy454;
179244 break;
179245 default:
179246 /* (344) input ::= cmdlist */ yytestcase(yyruleno==344);
179247 /* (345) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==345);
179248 /* (346) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=346);
@@ -180419,11 +180525,11 @@
180419 return i;
180420 }
180421 case CC_MINUS: {
180422 if( z[1]=='-' ){
180423 for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
180424 *tokenType = TK_SPACE; /* IMP: R-22934-25134 */
180425 return i;
180426 }else if( z[1]=='>' ){
180427 *tokenType = TK_PTR;
180428 return 2 + (z[2]=='>');
180429 }
@@ -180455,11 +180561,11 @@
180455 *tokenType = TK_SLASH;
180456 return 1;
180457 }
180458 for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
180459 if( c ) i++;
180460 *tokenType = TK_SPACE; /* IMP: R-22934-25134 */
180461 return i;
180462 }
180463 case CC_PERCENT: {
180464 *tokenType = TK_REM;
180465 return 1;
@@ -180784,16 +180890,16 @@
180784 }
180785 #ifndef SQLITE_OMIT_WINDOWFUNC
180786 if( tokenType>=TK_WINDOW ){
180787 assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER
180788 || tokenType==TK_ILLEGAL || tokenType==TK_WINDOW
180789 || tokenType==TK_QNUMBER
180790 );
180791 #else
180792 if( tokenType>=TK_SPACE ){
180793 assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL
180794 || tokenType==TK_QNUMBER
180795 );
180796 #endif /* SQLITE_OMIT_WINDOWFUNC */
180797 if( AtomicLoad(&db->u1.isInterrupted) ){
180798 pParse->rc = SQLITE_INTERRUPT;
180799 pParse->nErr++;
@@ -180823,10 +180929,13 @@
180823 tokenType = analyzeOverKeyword((const u8*)&zSql[4], lastTokenParsed);
180824 }else if( tokenType==TK_FILTER ){
180825 assert( n==6 );
180826 tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed);
180827 #endif /* SQLITE_OMIT_WINDOWFUNC */
 
 
 
180828 }else if( tokenType!=TK_QNUMBER ){
180829 Token x;
180830 x.z = zSql;
180831 x.n = n;
180832 sqlite3ErrorMsg(pParse, "unrecognized token: \"%T\"", &x);
@@ -180929,10 +181038,11 @@
180929 prevType = tokenType;
180930 }
180931 n = sqlite3GetToken((unsigned char*)zSql+i, &tokenType);
180932 if( NEVER(n<=0) ) break;
180933 switch( tokenType ){
 
180934 case TK_SPACE: {
180935 break;
180936 }
180937 case TK_NULL: {
180938 if( prevType==TK_IS || prevType==TK_NOT ){
@@ -182370,11 +182480,11 @@
182370 break;
182371 }
182372 default: {
182373 static const struct {
182374 int op; /* The opcode */
182375 u32 mask; /* Mask of the bit in sqlite3.flags to set/clear */
182376 } aFlagOp[] = {
182377 { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
182378 { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
182379 { SQLITE_DBCONFIG_ENABLE_VIEW, SQLITE_EnableView },
182380 { SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, SQLITE_Fts3Tokenizer },
@@ -182391,10 +182501,13 @@
182391 { SQLITE_DBCONFIG_DQS_DML, SQLITE_DqsDML },
182392 { SQLITE_DBCONFIG_LEGACY_FILE_FORMAT, SQLITE_LegacyFileFmt },
182393 { SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_TrustedSchema },
182394 { SQLITE_DBCONFIG_STMT_SCANSTATUS, SQLITE_StmtScanStatus },
182395 { SQLITE_DBCONFIG_REVERSE_SCANORDER, SQLITE_ReverseOrder },
 
 
 
182396 };
182397 unsigned int i;
182398 rc = SQLITE_ERROR; /* IMP: R-42790-23372 */
182399 for(i=0; i<ArraySize(aFlagOp); i++){
182400 if( aFlagOp[i].op==op ){
@@ -184732,10 +184845,13 @@
184732 #endif
184733 db->flags |= SQLITE_ShortColNames
184734 | SQLITE_EnableTrigger
184735 | SQLITE_EnableView
184736 | SQLITE_CacheSpill
 
 
 
184737 #if !defined(SQLITE_TRUSTED_SCHEMA) || SQLITE_TRUSTED_SCHEMA+0!=0
184738 | SQLITE_TrustedSchema
184739 #endif
184740 /* The SQLITE_DQS compile-time option determines the default settings
184741 ** for SQLITE_DBCONFIG_DQS_DDL and SQLITE_DBCONFIG_DQS_DML.
@@ -226528,10 +226644,11 @@
226528 }
226529 sqlite3PagerUnref(pDbPage);
226530 return rc;
226531
226532 update_fail:
 
226533 sqlite3_free(pVtab->zErrMsg);
226534 pVtab->zErrMsg = sqlite3_mprintf("%s", zErr);
226535 return SQLITE_ERROR;
226536 }
226537
@@ -255689,11 +255806,11 @@
255689 int nArg, /* Number of args */
255690 sqlite3_value **apUnused /* Function arguments */
255691 ){
255692 assert( nArg==0 );
255693 UNUSED_PARAM2(nArg, apUnused);
255694 sqlite3_result_text(pCtx, "fts5: 2025-01-29 18:53:19 d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f", -1, SQLITE_TRANSIENT);
255695 }
255696
255697 /*
255698 ** Implementation of fts5_locale(LOCALE, TEXT) function.
255699 **
255700
--- extsrc/sqlite3.c
+++ extsrc/sqlite3.c
@@ -16,11 +16,11 @@
16 ** if you want a wrapper to interface SQLite with your choice of programming
17 ** language. The code for the "sqlite3" command-line shell is also in a
18 ** separate file. This file contains only code for the core SQLite library.
19 **
20 ** The content in this amalgamation comes from Fossil check-in
21 ** 4068f586ddadd3a818645574f7584fcee6d3 with changes in files:
22 **
23 **
24 */
25 #ifndef SQLITE_AMALGAMATION
26 #define SQLITE_CORE 1
@@ -465,11 +465,11 @@
465 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
466 ** [sqlite_version()] and [sqlite_source_id()].
467 */
468 #define SQLITE_VERSION "3.49.0"
469 #define SQLITE_VERSION_NUMBER 3049000
470 #define SQLITE_SOURCE_ID "2025-02-01 23:49:01 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a"
471
472 /*
473 ** CAPI3REF: Run-Time Library Version Numbers
474 ** KEYWORDS: sqlite3_version sqlite3_sourceid
475 **
@@ -2540,12 +2540,16 @@
2540 ** is invoked.
2541 **
2542 ** <dl>
2543 ** [[SQLITE_DBCONFIG_LOOKASIDE]]
2544 ** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2545 ** <dd> The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the
2546 ** configuration of the lookaside memory allocator within a database
2547 ** connection.
2548 ** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are <i>not</i>
2549 ** in the [DBCONFIG arguments|usual format].
2550 ** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two.
2551 ** ^The first argument (the third parameter to [sqlite3_db_config()] is a
2552 ** pointer to a memory buffer to use for lookaside memory.
2553 ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
2554 ** may be NULL in which case SQLite will allocate the
2555 ** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the
@@ -2564,11 +2568,12 @@
2568 ** [SQLITE_BUSY].)^</dd>
2569 **
2570 ** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
2571 ** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
2572 ** <dd> ^This option is used to enable or disable the enforcement of
2573 ** [foreign key constraints]. This is the same setting that is
2574 ** enabled or disabled by the [PRAGMA foreign_keys] statement.
2575 ** The first argument is an integer which is 0 to disable FK enforcement,
2576 ** positive to enable FK enforcement or negative to leave FK enforcement
2577 ** unchanged. The second parameter is a pointer to an integer into which
2578 ** is written 0 or 1 to indicate whether FK enforcement is off or on
2579 ** following this call. The second parameter may be a NULL pointer, in
@@ -2586,17 +2591,17 @@
2591 ** which case the trigger setting is not reported back.
2592 **
2593 ** <p>Originally this option disabled all triggers. ^(However, since
2594 ** SQLite version 3.35.0, TEMP triggers are still allowed even if
2595 ** this option is off. So, in other words, this option now only disables
2596 ** triggers in the main database schema or in the schemas of [ATTACH]-ed
2597 ** databases.)^ </dd>
2598 **
2599 ** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
2600 ** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
2601 ** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2602 ** There must be two additional arguments.
2603 ** The first argument is an integer which is 0 to disable views,
2604 ** positive to enable views or negative to leave the setting unchanged.
2605 ** The second parameter is a pointer to an integer into which
2606 ** is written 0 or 1 to indicate whether views are disabled or enabled
2607 ** following this call. The second parameter may be a NULL pointer, in
@@ -2611,11 +2616,11 @@
2616 ** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
2617 ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
2618 ** <dd> ^This option is used to enable or disable the
2619 ** [fts3_tokenizer()] function which is part of the
2620 ** [FTS3] full-text search engine extension.
2621 ** There must be two additional arguments.
2622 ** The first argument is an integer which is 0 to disable fts3_tokenizer() or
2623 ** positive to enable fts3_tokenizer() or negative to leave the setting
2624 ** unchanged.
2625 ** The second parameter is a pointer to an integer into which
2626 ** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
@@ -2626,11 +2631,11 @@
2631 ** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
2632 ** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
2633 ** interface independently of the [load_extension()] SQL function.
2634 ** The [sqlite3_enable_load_extension()] API enables or disables both the
2635 ** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2636 ** There must be two additional arguments.
2637 ** When the first argument to this interface is 1, then only the C-API is
2638 ** enabled and the SQL function remains disabled. If the first argument to
2639 ** this interface is 0, then both the C-API and the SQL function are disabled.
2640 ** If the first argument is -1, then no changes are made to state of either the
2641 ** C-API or the SQL function.
@@ -2640,26 +2645,31 @@
2645 ** be a NULL pointer, in which case the new setting is not reported back.
2646 ** </dd>
2647 **
2648 ** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
2649 ** <dd> ^This option is used to change the name of the "main" database
2650 ** schema. This option does not follow the
2651 ** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format].
2652 ** This option takes exactly one argument, which ust be a pointer
2653 ** to a constant UTF8 string which will become the new schema name
2654 ** in place of "main". ^SQLite does not make a copy of the new main
2655 ** schema name string, so the application must ensure that the argument
2656 ** passed into SQLITE_DBCONFIG MAINDBNAME is unchanged
2657 ** until after the database connection closes.
2658 ** </dd>
2659 **
2660 ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
2661 ** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2662 ** <dd> Usually, when a database in [WAL mode] is closed or detached from a
2663 ** database handle, SQLite checks if if there are other connections to the
2664 ** same database, and if there are no other database connection (if the
2665 ** connection being closed is the last open connection to the database),
2666 ** then SQLite performs a [checkpoint] before closing the connection and
2667 ** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can
2668 ** be used to override that behavior. The first parameter passed to this
2669 ** operation is an integer - positive to disable checkpoints-on-close, or
2670 ** zero (the default) to enable them, and negative to leave the setting unchanged.
2671 ** The second parameter is a pointer to an integer
2672 ** into which is written 0 or 1 to indicate whether checkpoints-on-close
2673 ** have been disabled - 0 if they are not disabled, 1 if they are.
2674 ** </dd>
2675 **
@@ -2817,11 +2827,11 @@
2827 ** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
2828 ** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
2829 ** statistics. For statistics to be collected, the flag must be set on
2830 ** the database handle both when the SQL statement is prepared and when it
2831 ** is stepped. The flag is set (collection of statistics is enabled)
2832 ** by default. <p>This option takes two arguments: an integer and a pointer to
2833 ** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
2834 ** leave unchanged the statement scanstatus option. If the second argument
2835 ** is not NULL, then the value of the statement scanstatus setting after
2836 ** processing the first argument is written into the integer that the second
2837 ** argument points to.
@@ -2831,20 +2841,87 @@
2841 ** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
2842 ** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
2843 ** in which tables and indexes are scanned so that the scans start at the end
2844 ** and work toward the beginning rather than starting at the beginning and
2845 ** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2846 ** same as setting [PRAGMA reverse_unordered_selects]. <p>This option takes
2847 ** two arguments which are an integer and a pointer to an integer. The first
2848 ** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
2849 ** reverse scan order flag, respectively. If the second argument is not NULL,
2850 ** then 0 or 1 is written into the integer that the second argument points to
2851 ** depending on if the reverse scan order flag is set after processing the
2852 ** first argument.
2853 ** </dd>
2854 **
2855 ** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]]
2856 ** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE</dt>
2857 ** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables
2858 ** the ability of the [ATTACH DATABASE] SQL command to create a new database
2859 ** file if the database filed named in the ATTACH command does not already
2860 ** exist. This ability of ATTACH to create a new database is enabled by
2861 ** default. Applications can disable or reenable the ability for ATTACH to
2862 ** create new database files using this DBCONFIG option.<p>
2863 ** This option takes two arguments which are an integer and a pointer
2864 ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2865 ** leave unchanged the attach-create flag, respectively. If the second
2866 ** argument is not NULL, then 0 or 1 is written into the integer that the
2867 ** second argument points to depending on if the attach-create flag is set
2868 ** after processing the first argument.
2869 ** </dd>
2870 **
2871 ** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]]
2872 ** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE</dt>
2873 ** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
2874 ** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
2875 ** This capability is enabled by default. Applications can disable or
2876 ** reenable this capability using the current DBCONFIG option. If the
2877 ** the this capability is disabled, the [ATTACH] command will still work,
2878 ** but the database will be opened read-only. If this option is disabled,
2879 ** then the ability to create a new database using [ATTACH] is also disabled,
2880 ** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
2881 ** option.<p>
2882 ** This option takes two arguments which are an integer and a pointer
2883 ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2884 ** leave unchanged the ability to ATTACH another database for writing,
2885 ** respectively. If the second argument is not NULL, then 0 or 1 is written
2886 ** into the integer to which the second argument points, depending on whether
2887 ** the ability to ATTACH a read/write database is enabled or disabled
2888 ** after processing the first argument.
2889 ** </dd>
2890 **
2891 ** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]]
2892 ** <dt>SQLITE_DBCONFIG_ENABLE_COMMENTS</dt>
2893 ** <dd>The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the
2894 ** ability to include comments in SQL text. Comments are enabled by default.
2895 ** An application can disable or reenable comments in SQL text using this
2896 ** DBCONFIG option.<p>
2897 ** This option takes two arguments which are an integer and a pointer
2898 ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2899 ** leave unchanged the ability to use comments in SQL text,
2900 ** respectively. If the second argument is not NULL, then 0 or 1 is written
2901 ** into the integer that the second argument points to depending on if
2902 ** comments are allowed in SQL text after processing the first argument.
2903 ** </dd>
2904 **
2905 ** </dl>
2906 **
2907 ** [[DBCONFIG arguments]] <h3>Arguments To SQLITE_DBCONFIG Options</h3>
2908 **
2909 ** <p>Most of the SQLITE_DBCONFIG options take two arguments: an integer
2910 ** and a pointer to an integer. If the first integer argument is 1, then
2911 ** the option becomes enabled. If the first integer argument is 0, then the
2912 ** option is disabled. If the first argument is -1, then the option setting
2913 ** is unchanged. The second argument, the pointer to an integer, may be NULL.
2914 ** If the second argument is not NULL, then a value of 0 or 1 is written into
2915 ** the integer to which the second argument points, depending on whether the
2916 ** setting is disabled or enabled after applying any changes specified by
2917 ** the first argument.
2918 **
2919 ** <p>While most SQLITE_DBCONFIG options use the argument format
2920 ** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME]
2921 ** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the
2922 ** documentation of those exceptional options for details.
2923 */
2924 #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
2925 #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
2926 #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
2927 #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
@@ -2862,11 +2939,14 @@
2939 #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
2940 #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
2941 #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
2942 #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
2943 #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2944 #define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */
2945 #define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */
2946 #define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */
2947 #define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */
2948
2949 /*
2950 ** CAPI3REF: Enable Or Disable Extended Result Codes
2951 ** METHOD: sqlite3
2952 **
@@ -14876,11 +14956,12 @@
14956 #define TK_ASTERISK 180
14957 #define TK_SPAN 181
14958 #define TK_ERROR 182
14959 #define TK_QNUMBER 183
14960 #define TK_SPACE 184
14961 #define TK_COMMENT 185
14962 #define TK_ILLEGAL 186
14963
14964 /************** End of parse.h ***********************************************/
14965 /************** Continuing where we left off in sqliteInt.h ******************/
14966 #include <stdio.h>
14967 #include <stdlib.h>
@@ -16713,10 +16794,11 @@
16794 ** A signature for a reusable subroutine that materializes the RHS of
16795 ** an IN operator.
16796 */
16797 struct SubrtnSig {
16798 int selId; /* SELECT-id for the SELECT statement on the RHS */
16799 u8 bComplete; /* True if fully coded and available for reusable */
16800 char *zAff; /* Affinity of the overall IN expression */
16801 int iTable; /* Ephemeral table generated by the subroutine */
16802 int iAddr; /* Subroutine entry address */
16803 int regReturn; /* Register used to hold return address */
16804 };
@@ -18043,10 +18125,13 @@
18125 /* DELETE, or UPDATE and return */
18126 /* the count using a callback. */
18127 #define SQLITE_CorruptRdOnly HI(0x00002) /* Prohibit writes due to error */
18128 #define SQLITE_ReadUncommit HI(0x00004) /* READ UNCOMMITTED in shared-cache */
18129 #define SQLITE_FkNoAction HI(0x00008) /* Treat all FK as NO ACTION */
18130 #define SQLITE_AttachCreate HI(0x00010) /* ATTACH allowed to create new dbs */
18131 #define SQLITE_AttachWrite HI(0x00020) /* ATTACH allowed to open for write */
18132 #define SQLITE_Comments HI(0x00040) /* Enable SQL comments */
18133
18134 /* Flags used only if debugging */
18135 #ifdef SQLITE_DEBUG
18136 #define SQLITE_SqlTrace HI(0x0100000) /* Debug print SQL as it executes */
18137 #define SQLITE_VdbeListing HI(0x0200000) /* Debug listings of VDBE progs */
@@ -90623,11 +90708,10 @@
90708 */
90709 static SQLITE_NOINLINE void invokeProfileCallback(sqlite3 *db, Vdbe *p){
90710 sqlite3_int64 iNow;
90711 sqlite3_int64 iElapse;
90712 assert( p->startTime>0 );
 
90713 assert( db->init.busy==0 );
90714 assert( p->zSql!=0 );
90715 sqlite3OsCurrentTimeInt64(db->pVfs, &iNow);
90716 iElapse = (iNow - p->startTime)*1000000;
90717 #ifndef SQLITE_OMIT_DEPRECATED
@@ -112896,10 +112980,11 @@
112980 for(; pOp<pEnd; pOp++){
112981 if( pOp->p4type!=P4_SUBRTNSIG ) continue;
112982 assert( pOp->opcode==OP_BeginSubrtn );
112983 pSig = pOp->p4.pSubrtnSig;
112984 assert( pSig!=0 );
112985 if( !pSig->bComplete ) continue;
112986 if( pNewSig->selId!=pSig->selId ) continue;
112987 if( strcmp(pNewSig->zAff,pSig->zAff)!=0 ) continue;
112988 pExpr->y.sub.iAddr = pSig->iAddr;
112989 pExpr->y.sub.regReturn = pSig->regReturn;
112990 pExpr->iTable = pSig->iTable;
@@ -112942,10 +113027,11 @@
113027 int addr; /* Address of OP_OpenEphemeral instruction */
113028 Expr *pLeft; /* the LHS of the IN operator */
113029 KeyInfo *pKeyInfo = 0; /* Key information */
113030 int nVal; /* Size of vector pLeft */
113031 Vdbe *v; /* The prepared statement under construction */
113032 SubrtnSig *pSig = 0; /* Signature for this subroutine */
113033
113034 v = pParse->pVdbe;
113035 assert( v!=0 );
113036
113037 /* The evaluation of the IN must be repeated every time it
@@ -112962,11 +113048,10 @@
113048 /* Reuse of the RHS is allowed
113049 **
113050 ** Compute a signature for the RHS of the IN operator to facility
113051 ** finding and reusing prior instances of the same IN operator.
113052 */
 
113053 assert( !ExprUseXSelect(pExpr) || pExpr->x.pSelect!=0 );
113054 if( ExprUseXSelect(pExpr) && (pExpr->x.pSelect->selFlags & SF_All)==0 ){
113055 pSig = sqlite3DbMallocRawNN(pParse->db, sizeof(pSig[0]));
113056 if( pSig ){
113057 pSig->selId = pExpr->x.pSelect->selId;
@@ -113005,10 +113090,11 @@
113090 assert( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) );
113091 pExpr->y.sub.regReturn = ++pParse->nMem;
113092 pExpr->y.sub.iAddr =
113093 sqlite3VdbeAddOp2(v, OP_BeginSubrtn, 0, pExpr->y.sub.regReturn) + 1;
113094 if( pSig ){
113095 pSig->bComplete = 0;
113096 pSig->iAddr = pExpr->y.sub.iAddr;
113097 pSig->regReturn = pExpr->y.sub.regReturn;
113098 pSig->iTable = iTab;
113099 pParse->mSubrtnSig = 1 << (pSig->selId&7);
113100 sqlite3VdbeChangeP4(v, -1, (const char*)pSig, P4_SUBRTNSIG);
@@ -113140,10 +113226,11 @@
113226 sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iTab, r2, r1, 1);
113227 }
113228 sqlite3ReleaseTempReg(pParse, r1);
113229 sqlite3ReleaseTempReg(pParse, r2);
113230 }
113231 if( pSig ) pSig->bComplete = 1;
113232 if( pKeyInfo ){
113233 sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO);
113234 }
113235 if( addrOnce ){
113236 sqlite3VdbeAddOp1(v, OP_NullRow, iTab);
@@ -121337,10 +121424,16 @@
121424 if( rc!=SQLITE_OK ){
121425 if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
121426 sqlite3_result_error(context, zErr, -1);
121427 sqlite3_free(zErr);
121428 return;
121429 }
121430 if( (db->flags & SQLITE_AttachWrite)==0 ){
121431 flags &= ~(SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE);
121432 flags |= SQLITE_OPEN_READONLY;
121433 }else if( (db->flags & SQLITE_AttachCreate)==0 ){
121434 flags &= ~SQLITE_OPEN_CREATE;
121435 }
121436 assert( pVfs );
121437 flags |= SQLITE_OPEN_MAIN_DB;
121438 rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags);
121439 db->nDb++;
@@ -157233,11 +157326,13 @@
157326 ** sqlite3_declare_vtab() is being misused.
157327 */
157328 z = (const unsigned char*)zCreateTable;
157329 for(i=0; aKeyword[i]; i++){
157330 int tokenType = 0;
157331 do{
157332 z += sqlite3GetToken(z, &tokenType);
157333 }while( tokenType==TK_SPACE || tokenType==TK_COMMENT );
157334 if( tokenType!=aKeyword[i] ){
157335 sqlite3ErrorWithMsg(db, SQLITE_ERROR, "syntax error");
157336 return SQLITE_ERROR;
157337 }
157338 }
@@ -161606,24 +161701,26 @@
161701 }else if( op==TK_STRING ){
161702 assert( !ExprHasProperty(pRight, EP_IntValue) );
161703 z = (u8*)pRight->u.zToken;
161704 }
161705 if( z ){
161706 /* Count the number of prefix bytes prior to the first wildcard,
161707 ** U+fffd character, or malformed utf-8. If the underlying database
161708 ** has a UTF16LE encoding, then only consider ASCII characters. Note that
161709 ** the encoding of z[] is UTF8 - we are dealing with only UTF8 here in this
161710 ** code, but the database engine itself might be processing content using a
161711 ** different encoding. */
161712 cnt = 0;
161713 while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
161714 cnt++;
161715 if( c==wc[3] && z[cnt]>0 && z[cnt]<0x80 ){
161716 cnt++;
161717 }else if( c>=0x80 ){
161718 const u8 *z2 = z+cnt-1;
161719 if( c==0xff || sqlite3Utf8Read(&z2)==0xfffd /* bad utf-8 */
161720 || ENC(db)==SQLITE_UTF16LE
161721 ){
161722 cnt--;
161723 break;
161724 }else{
161725 cnt = (int)(z2-z);
161726 }
@@ -162771,24 +162868,30 @@
162868 pStr2->u.zToken[i] = sqlite3Tolower(c);
162869 }
162870 }
162871
162872 if( !db->mallocFailed ){
162873 u8 *pC; /* Last character before the first wildcard */
162874 pC = (u8*)&pStr2->u.zToken[sqlite3Strlen30(pStr2->u.zToken)-1];
 
162875 if( noCase ){
162876 /* The point is to increment the last character before the first
162877 ** wildcard. But if we increment '@', that will push it into the
162878 ** alphabetic range where case conversions will mess up the
162879 ** inequality. To avoid this, make sure to also run the full
162880 ** LIKE on all candidate expressions by clearing the isComplete flag
162881 */
162882 if( *pC=='A'-1 ) isComplete = 0;
162883 *pC = sqlite3UpperToLower[*pC];
162884 }
162885
162886 /* Increment the value of the last utf8 character in the prefix. */
162887 while( *pC==0xBF && pC>(u8*)pStr2->u.zToken ){
162888 *pC = 0x80;
162889 pC--;
162890 }
162891 assert( *pC!=0xFF ); /* isLikeOrGlob() guarantees this */
162892 (*pC)++;
162893 }
162894 zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY;
162895 pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
162896 pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
162897 sqlite3ExprAddCollateString(pParse,pNewExpr1,zCollSeqName),
@@ -174500,11 +174603,12 @@
174603 #define TK_ASTERISK 180
174604 #define TK_SPAN 181
174605 #define TK_ERROR 182
174606 #define TK_QNUMBER 183
174607 #define TK_SPACE 184
174608 #define TK_COMMENT 185
174609 #define TK_ILLEGAL 186
174610 #endif
174611 /**************** End token definitions ***************************************/
174612
174613 /* The next sections is a series of control #defines.
174614 ** various aspects of the generated parser.
@@ -174565,35 +174669,35 @@
174669 #ifndef INTERFACE
174670 # define INTERFACE 1
174671 #endif
174672 /************* Begin control #defines *****************************************/
174673 #define YYCODETYPE unsigned short int
174674 #define YYNOCODE 323
174675 #define YYACTIONTYPE unsigned short int
174676 #define YYWILDCARD 102
174677 #define sqlite3ParserTOKENTYPE Token
174678 typedef union {
174679 int yyinit;
174680 sqlite3ParserTOKENTYPE yy0;
174681 u32 yy9;
174682 struct TrigEvent yy28;
174683 With* yy125;
174684 IdList* yy204;
174685 struct FrameBound yy205;
174686 TriggerStep* yy319;
174687 const char* yy342;
174688 Cte* yy361;
174689 ExprList* yy402;
174690 Upsert* yy403;
174691 OnOrUsing yy421;
174692 u8 yy444;
174693 struct {int value; int mask;} yy481;
174694 Window* yy483;
174695 int yy502;
174696 SrcList* yy563;
174697 Expr* yy590;
174698 Select* yy637;
174699 } YYMINORTYPE;
174700 #ifndef YYSTACKDEPTH
174701 #define YYSTACKDEPTH 100
174702 #endif
174703 #define sqlite3ParserARG_SDECL
@@ -174611,21 +174715,21 @@
174715 #define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
174716 #define YYFALLBACK 1
174717 #define YYNSTATE 583
174718 #define YYNRULE 409
174719 #define YYNRULE_WITH_ACTION 344
174720 #define YYNTOKEN 187
174721 #define YY_MAX_SHIFT 582
174722 #define YY_MIN_SHIFTREDUCE 845
174723 #define YY_MAX_SHIFTREDUCE 1253
174724 #define YY_ERROR_ACTION 1254
174725 #define YY_ACCEPT_ACTION 1255
174726 #define YY_NO_ACTION 1256
174727 #define YY_MIN_REDUCE 1257
174728 #define YY_MAX_REDUCE 1665
174729 #define YY_MIN_DSTRCTR 206
174730 #define YY_MAX_DSTRCTR 320
174731 /************* End control #defines *******************************************/
174732 #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
174733
174734 /* Define the yytestcase() macro to be a no-op if is not already defined
174735 ** otherwise.
@@ -174717,573 +174821,573 @@
174821 /* 60 */ 288, 288, 182, 288, 288, 481, 536, 288, 288, 130,
174822 /* 70 */ 127, 234, 432, 573, 525, 562, 573, 557, 562, 1290,
174823 /* 80 */ 573, 421, 562, 137, 138, 91, 559, 1228, 1228, 1063,
174824 /* 90 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 296,
174825 /* 100 */ 460, 398, 1249, 134, 134, 134, 134, 133, 133, 132,
174826 /* 110 */ 132, 132, 131, 128, 451, 451, 1050, 1050, 1064, 1067,
174827 /* 120 */ 1255, 1, 1, 582, 2, 1259, 581, 1174, 1259, 1174,
174828 /* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 481, 1341,
174829 /* 140 */ 456, 299, 1341, 134, 134, 134, 134, 133, 133, 132,
174830 /* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 498, 1228,
174831 /* 160 */ 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136,
174832 /* 170 */ 136, 1204, 862, 1281, 288, 288, 283, 288, 288, 523,
174833 /* 180 */ 523, 1250, 139, 578, 7, 578, 1345, 573, 1169, 562,
174834 /* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 573, 547,
174835 /* 200 */ 562, 1169, 245, 1541, 1169, 245, 133, 133, 132, 132,
174836 /* 210 */ 132, 131, 128, 451, 302, 134, 134, 134, 134, 133,
174837 /* 220 */ 133, 132, 132, 132, 131, 128, 451, 1575, 1204, 1205,
174838 /* 230 */ 1204, 7, 470, 550, 455, 413, 550, 455, 130, 127,
174839 /* 240 */ 234, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174840 /* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 483, 137,
174841 /* 260 */ 138, 91, 1019, 1228, 1228, 1063, 1066, 1053, 1053, 135,
174842 /* 270 */ 135, 136, 136, 136, 136, 1085, 576, 1204, 132, 132,
174843 /* 280 */ 132, 131, 128, 451, 93, 214, 134, 134, 134, 134,
174844 /* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 401, 19,
174845 /* 300 */ 19, 134, 134, 134, 134, 133, 133, 132, 132, 132,
174846 /* 310 */ 131, 128, 451, 1498, 426, 267, 344, 467, 332, 134,
174847 /* 320 */ 134, 134, 134, 133, 133, 132, 132, 132, 131, 128,
174848 /* 330 */ 451, 1281, 576, 6, 1204, 1205, 1204, 257, 576, 413,
174849 /* 340 */ 511, 508, 507, 1279, 94, 1019, 464, 1204, 551, 551,
174850 /* 350 */ 506, 1224, 1571, 44, 38, 51, 51, 411, 576, 413,
174851 /* 360 */ 45, 51, 51, 137, 138, 91, 530, 1228, 1228, 1063,
174852 /* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 398,
174853 /* 380 */ 1148, 82, 82, 137, 138, 91, 39, 1228, 1228, 1063,
174854 /* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 344,
174855 /* 400 */ 44, 288, 288, 375, 1204, 1205, 1204, 209, 1204, 1224,
174856 /* 410 */ 320, 567, 471, 576, 573, 576, 562, 576, 316, 264,
174857 /* 420 */ 231, 46, 160, 134, 134, 134, 134, 133, 133, 132,
174858 /* 430 */ 132, 132, 131, 128, 451, 303, 82, 82, 82, 82,
174859 /* 440 */ 82, 82, 442, 134, 134, 134, 134, 133, 133, 132,
174860 /* 450 */ 132, 132, 131, 128, 451, 1582, 544, 320, 567, 1250,
174861 /* 460 */ 874, 1582, 380, 382, 413, 1204, 1205, 1204, 360, 182,
174862 /* 470 */ 288, 288, 1576, 557, 1339, 557, 7, 557, 1277, 472,
174863 /* 480 */ 346, 526, 531, 573, 556, 562, 439, 1511, 137, 138,
174864 /* 490 */ 91, 219, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174865 /* 500 */ 136, 136, 136, 136, 465, 1511, 1513, 532, 413, 288,
174866 /* 510 */ 288, 423, 512, 288, 288, 411, 288, 288, 874, 130,
174867 /* 520 */ 127, 234, 573, 1107, 562, 1204, 573, 1107, 562, 573,
174868 /* 530 */ 560, 562, 137, 138, 91, 1293, 1228, 1228, 1063, 1066,
174869 /* 540 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 134, 134,
174870 /* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
174871 /* 560 */ 493, 503, 1292, 1204, 257, 288, 288, 511, 508, 507,
174872 /* 570 */ 1204, 1628, 1169, 123, 568, 275, 4, 506, 573, 1511,
174873 /* 580 */ 562, 331, 1204, 1205, 1204, 1169, 548, 548, 1169, 261,
174874 /* 590 */ 571, 7, 134, 134, 134, 134, 133, 133, 132, 132,
174875 /* 600 */ 132, 131, 128, 451, 108, 533, 130, 127, 234, 1204,
174876 /* 610 */ 448, 447, 413, 1451, 452, 983, 886, 96, 1598, 1233,
174877 /* 620 */ 1204, 1205, 1204, 984, 1235, 1450, 565, 1204, 1205, 1204,
174878 /* 630 */ 229, 522, 1234, 534, 1333, 1333, 137, 138, 91, 1449,
174879 /* 640 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174880 /* 650 */ 136, 136, 373, 1595, 971, 1040, 413, 1236, 418, 1236,
174881 /* 660 */ 879, 121, 121, 948, 373, 1595, 1204, 1205, 1204, 122,
174882 /* 670 */ 1204, 452, 577, 452, 363, 417, 1028, 882, 373, 1595,
174883 /* 680 */ 137, 138, 91, 462, 1228, 1228, 1063, 1066, 1053, 1053,
174884 /* 690 */ 135, 135, 136, 136, 136, 136, 134, 134, 134, 134,
174885 /* 700 */ 133, 133, 132, 132, 132, 131, 128, 451, 1028, 1028,
174886 /* 710 */ 1030, 1031, 35, 570, 570, 570, 197, 423, 1040, 198,
174887 /* 720 */ 1204, 123, 568, 1204, 4, 320, 567, 1204, 1205, 1204,
174888 /* 730 */ 40, 388, 576, 384, 882, 1029, 423, 1188, 571, 1028,
174889 /* 740 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174890 /* 750 */ 128, 451, 529, 1568, 1204, 19, 19, 1204, 575, 492,
174891 /* 760 */ 413, 157, 452, 489, 1187, 1331, 1331, 5, 1204, 949,
174892 /* 770 */ 431, 1028, 1028, 1030, 565, 22, 22, 1204, 1205, 1204,
174893 /* 780 */ 1204, 1205, 1204, 477, 137, 138, 91, 212, 1228, 1228,
174894 /* 790 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174895 /* 800 */ 1188, 48, 111, 1040, 413, 1204, 213, 970, 1041, 121,
174896 /* 810 */ 121, 1204, 1205, 1204, 1204, 1205, 1204, 122, 221, 452,
174897 /* 820 */ 577, 452, 44, 487, 1028, 1204, 1205, 1204, 137, 138,
174898 /* 830 */ 91, 378, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
174899 /* 840 */ 136, 136, 136, 136, 134, 134, 134, 134, 133, 133,
174900 /* 850 */ 132, 132, 132, 131, 128, 451, 1028, 1028, 1030, 1031,
174901 /* 860 */ 35, 461, 1204, 1205, 1204, 1569, 1040, 377, 214, 1149,
174902 /* 870 */ 1657, 535, 1657, 437, 902, 320, 567, 1568, 364, 320,
174903 /* 880 */ 567, 412, 329, 1029, 519, 1188, 3, 1028, 134, 134,
174904 /* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
174905 /* 900 */ 1659, 399, 1169, 307, 893, 307, 515, 576, 413, 214,
174906 /* 910 */ 498, 944, 1024, 540, 903, 1169, 943, 392, 1169, 1028,
174907 /* 920 */ 1028, 1030, 406, 298, 1204, 50, 1149, 1658, 413, 1658,
174908 /* 930 */ 145, 145, 137, 138, 91, 293, 1228, 1228, 1063, 1066,
174909 /* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 1188, 1147,
174910 /* 950 */ 514, 1568, 137, 138, 91, 1505, 1228, 1228, 1063, 1066,
174911 /* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 323,
174912 /* 970 */ 435, 539, 111, 1506, 274, 291, 372, 517, 367, 516,
174913 /* 980 */ 262, 1204, 1205, 1204, 1574, 481, 363, 576, 7, 1569,
174914 /* 990 */ 1568, 377, 134, 134, 134, 134, 133, 133, 132, 132,
174915 /* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 576, 232, 576,
174916 /* 1010 */ 19, 19, 134, 134, 134, 134, 133, 133, 132, 132,
174917 /* 1020 */ 132, 131, 128, 451, 1169, 433, 576, 1207, 19, 19,
174918 /* 1030 */ 19, 19, 19, 19, 1627, 576, 911, 1169, 47, 120,
174919 /* 1040 */ 1169, 117, 413, 306, 498, 438, 1125, 206, 336, 19,
174920 /* 1050 */ 19, 1435, 49, 449, 449, 449, 1368, 315, 81, 81,
174921 /* 1060 */ 576, 304, 413, 1570, 207, 377, 137, 138, 91, 115,
174922 /* 1070 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174923 /* 1080 */ 136, 136, 576, 82, 82, 1207, 137, 138, 91, 1340,
174924 /* 1090 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
174925 /* 1100 */ 136, 136, 1569, 386, 377, 82, 82, 463, 1126, 1552,
174926 /* 1110 */ 333, 463, 335, 131, 128, 451, 1569, 161, 377, 16,
174927 /* 1120 */ 317, 387, 428, 1127, 448, 447, 134, 134, 134, 134,
174928 /* 1130 */ 133, 133, 132, 132, 132, 131, 128, 451, 1128, 576,
174929 /* 1140 */ 1105, 10, 445, 267, 576, 1554, 134, 134, 134, 134,
174930 /* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 532, 576,
174931 /* 1160 */ 922, 576, 19, 19, 576, 1573, 576, 147, 147, 7,
174932 /* 1170 */ 923, 1236, 498, 1236, 576, 487, 413, 552, 285, 1224,
174933 /* 1180 */ 969, 215, 82, 82, 66, 66, 1435, 67, 67, 21,
174934 /* 1190 */ 21, 1110, 1110, 495, 334, 297, 413, 53, 53, 297,
174935 /* 1200 */ 137, 138, 91, 119, 1228, 1228, 1063, 1066, 1053, 1053,
174936 /* 1210 */ 135, 135, 136, 136, 136, 136, 413, 1336, 1311, 446,
174937 /* 1220 */ 137, 138, 91, 227, 1228, 1228, 1063, 1066, 1053, 1053,
174938 /* 1230 */ 135, 135, 136, 136, 136, 136, 574, 1224, 936, 936,
174939 /* 1240 */ 137, 126, 91, 141, 1228, 1228, 1063, 1066, 1053, 1053,
174940 /* 1250 */ 135, 135, 136, 136, 136, 136, 533, 429, 472, 346,
174941 /* 1260 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174942 /* 1270 */ 128, 451, 576, 457, 233, 343, 1435, 403, 498, 1550,
174943 /* 1280 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174944 /* 1290 */ 128, 451, 576, 324, 576, 82, 82, 487, 576, 969,
174945 /* 1300 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
174946 /* 1310 */ 128, 451, 288, 288, 546, 68, 68, 54, 54, 553,
174947 /* 1320 */ 413, 69, 69, 351, 6, 573, 944, 562, 410, 409,
174948 /* 1330 */ 1435, 943, 450, 545, 260, 259, 258, 576, 158, 576,
174949 /* 1340 */ 413, 222, 1180, 479, 969, 138, 91, 430, 1228, 1228,
174950 /* 1350 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174951 /* 1360 */ 70, 70, 71, 71, 576, 1126, 91, 576, 1228, 1228,
174952 /* 1370 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
174953 /* 1380 */ 1127, 166, 850, 851, 852, 1282, 419, 72, 72, 108,
174954 /* 1390 */ 73, 73, 1310, 358, 1180, 1128, 576, 305, 576, 123,
174955 /* 1400 */ 568, 494, 4, 488, 134, 134, 134, 134, 133, 133,
174956 /* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 55,
174957 /* 1420 */ 55, 56, 56, 576, 134, 134, 134, 134, 133, 133,
174958 /* 1430 */ 132, 132, 132, 131, 128, 451, 576, 1104, 233, 1104,
174959 /* 1440 */ 452, 1602, 582, 2, 1259, 576, 57, 57, 576, 321,
174960 /* 1450 */ 576, 155, 565, 1435, 485, 353, 576, 356, 1341, 59,
174961 /* 1460 */ 59, 576, 44, 969, 569, 419, 576, 238, 60, 60,
174962 /* 1470 */ 261, 74, 74, 75, 75, 287, 231, 576, 1366, 76,
174963 /* 1480 */ 76, 1040, 420, 184, 20, 20, 576, 121, 121, 77,
174964 /* 1490 */ 77, 97, 218, 288, 288, 122, 125, 452, 577, 452,
174965 /* 1500 */ 143, 143, 1028, 576, 520, 576, 573, 576, 562, 144,
174966 /* 1510 */ 144, 474, 227, 1244, 478, 123, 568, 576, 4, 320,
174967 /* 1520 */ 567, 245, 411, 576, 443, 411, 78, 78, 62, 62,
174968 /* 1530 */ 79, 79, 571, 319, 1028, 1028, 1030, 1031, 35, 418,
174969 /* 1540 */ 63, 63, 576, 290, 411, 9, 80, 80, 1144, 576,
174970 /* 1550 */ 400, 576, 486, 455, 576, 1223, 452, 576, 325, 342,
174971 /* 1560 */ 576, 111, 576, 1188, 242, 64, 64, 473, 565, 576,
174972 /* 1570 */ 23, 576, 170, 170, 171, 171, 576, 87, 87, 328,
174973 /* 1580 */ 65, 65, 542, 83, 83, 146, 146, 541, 123, 568,
174974 /* 1590 */ 341, 4, 84, 84, 168, 168, 576, 1040, 576, 148,
174975 /* 1600 */ 148, 576, 1380, 121, 121, 571, 1021, 576, 266, 576,
174976 /* 1610 */ 424, 122, 576, 452, 577, 452, 576, 553, 1028, 142,
174977 /* 1620 */ 142, 169, 169, 576, 162, 162, 528, 889, 371, 452,
174978 /* 1630 */ 152, 152, 151, 151, 1379, 149, 149, 109, 370, 150,
174979 /* 1640 */ 150, 565, 576, 480, 576, 266, 86, 86, 576, 1092,
174980 /* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 482, 576, 266, 466,
174981 /* 1660 */ 543, 123, 568, 1616, 4, 88, 88, 85, 85, 475,
174982 /* 1670 */ 1040, 52, 52, 222, 901, 900, 121, 121, 571, 1188,
174983 /* 1680 */ 58, 58, 244, 1032, 122, 889, 452, 577, 452, 908,
174984 /* 1690 */ 909, 1028, 300, 347, 504, 111, 263, 361, 165, 111,
174985 /* 1700 */ 111, 1088, 452, 263, 974, 1153, 266, 1092, 986, 987,
174986 /* 1710 */ 942, 939, 125, 125, 565, 1103, 872, 1103, 159, 941,
174987 /* 1720 */ 1309, 125, 1557, 1028, 1028, 1030, 1031, 35, 542, 337,
174988 /* 1730 */ 1530, 205, 1529, 541, 499, 1589, 490, 348, 1376, 352,
174989 /* 1740 */ 355, 1032, 357, 1040, 359, 1324, 1308, 366, 563, 121,
174990 /* 1750 */ 121, 376, 1188, 1389, 1434, 1362, 280, 122, 1374, 452,
174991 /* 1760 */ 577, 452, 167, 1439, 1028, 1289, 1280, 1268, 1267, 1269,
174992 /* 1770 */ 1609, 1359, 312, 313, 314, 397, 12, 237, 224, 1421,
174993 /* 1780 */ 295, 1416, 1409, 1426, 339, 484, 340, 509, 1371, 1612,
174994 /* 1790 */ 1372, 1425, 1244, 404, 301, 228, 1028, 1028, 1030, 1031,
174995 /* 1800 */ 35, 1601, 1192, 454, 345, 1307, 292, 369, 1502, 1501,
174996 /* 1810 */ 270, 396, 396, 395, 277, 393, 1370, 1369, 859, 1549,
174997 /* 1820 */ 186, 123, 568, 235, 4, 1188, 391, 210, 211, 223,
174998 /* 1830 */ 1547, 239, 1241, 327, 422, 96, 220, 195, 571, 180,
174999 /* 1840 */ 188, 326, 468, 469, 190, 191, 502, 192, 193, 566,
175000 /* 1850 */ 247, 109, 1430, 491, 199, 251, 102, 281, 402, 476,
175001 /* 1860 */ 405, 1496, 452, 497, 253, 1422, 13, 1428, 14, 1427,
175002 /* 1870 */ 203, 1507, 241, 500, 565, 354, 407, 92, 95, 1270,
175003 /* 1880 */ 175, 254, 518, 43, 1327, 255, 1326, 1325, 436, 1518,
175004 /* 1890 */ 350, 1318, 104, 229, 893, 1626, 440, 441, 1625, 408,
175005 /* 1900 */ 240, 1296, 268, 1040, 310, 269, 1297, 527, 444, 121,
175006 /* 1910 */ 121, 368, 1295, 1594, 1624, 311, 1394, 122, 1317, 452,
175007 /* 1920 */ 577, 452, 374, 1580, 1028, 1393, 140, 553, 11, 90,
175008 /* 1930 */ 568, 385, 4, 116, 318, 414, 1579, 110, 1483, 537,
175009 /* 1940 */ 320, 567, 1350, 555, 42, 579, 571, 1349, 1198, 383,
175010 /* 1950 */ 276, 390, 216, 389, 278, 279, 1028, 1028, 1030, 1031,
175011 /* 1960 */ 35, 172, 580, 1265, 458, 1260, 415, 416, 185, 156,
175012 /* 1970 */ 452, 1534, 1535, 173, 1533, 1532, 89, 308, 225, 226,
175013 /* 1980 */ 846, 174, 565, 453, 217, 1188, 322, 236, 1102, 154,
175014 /* 1990 */ 1100, 330, 187, 176, 1223, 243, 189, 925, 338, 246,
175015 /* 2000 */ 1116, 194, 177, 425, 178, 427, 98, 196, 99, 100,
175016 /* 2010 */ 101, 1040, 179, 1119, 1115, 248, 249, 121, 121, 163,
175017 /* 2020 */ 24, 250, 349, 1238, 496, 122, 1108, 452, 577, 452,
175018 /* 2030 */ 1192, 454, 1028, 266, 292, 200, 252, 201, 861, 396,
175019 /* 2040 */ 396, 395, 277, 393, 15, 501, 859, 370, 292, 256,
175020 /* 2050 */ 202, 554, 505, 396, 396, 395, 277, 393, 103, 239,
175021 /* 2060 */ 859, 327, 25, 26, 1028, 1028, 1030, 1031, 35, 326,
175022 /* 2070 */ 362, 510, 891, 239, 365, 327, 513, 904, 105, 309,
175023 /* 2080 */ 164, 181, 27, 326, 106, 521, 107, 1185, 1069, 1155,
175024 /* 2090 */ 17, 1154, 230, 1188, 284, 286, 265, 204, 125, 1171,
175025 /* 2100 */ 241, 28, 978, 972, 29, 41, 1175, 1179, 175, 1173,
175026 /* 2110 */ 30, 43, 31, 8, 241, 1178, 32, 1160, 208, 549,
175027 /* 2120 */ 33, 111, 175, 1083, 1070, 43, 1068, 1072, 240, 113,
175028 /* 2130 */ 114, 34, 561, 118, 1124, 271, 1073, 36, 18, 572,
175029 /* 2140 */ 1033, 873, 240, 124, 37, 935, 272, 273, 1617, 183,
175030 /* 2150 */ 153, 394, 1194, 1193, 1256, 1256, 1256, 1256, 1256, 1256,
175031 /* 2160 */ 1256, 1256, 1256, 414, 1256, 1256, 1256, 1256, 320, 567,
175032 /* 2170 */ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 414, 1256, 1256,
175033 /* 2180 */ 1256, 1256, 320, 567, 1256, 1256, 1256, 1256, 1256, 1256,
175034 /* 2190 */ 1256, 1256, 458, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
175035 /* 2200 */ 1256, 1256, 1256, 1256, 1256, 1256, 458,
175036 };
175037 static const YYCODETYPE yy_lookahead[] = {
175038 /* 0 */ 277, 278, 279, 241, 242, 225, 195, 227, 195, 241,
175039 /* 10 */ 242, 195, 217, 221, 195, 235, 254, 195, 256, 19,
175040 /* 20 */ 225, 298, 254, 195, 256, 206, 213, 214, 206, 218,
175041 /* 30 */ 219, 31, 206, 195, 218, 219, 195, 218, 219, 39,
175042 /* 40 */ 218, 219, 313, 43, 44, 45, 317, 47, 48, 49,
175043 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 19,
175044 /* 60 */ 241, 242, 195, 241, 242, 195, 255, 241, 242, 277,
175045 /* 70 */ 278, 279, 234, 254, 255, 256, 254, 255, 256, 218,
175046 /* 80 */ 254, 240, 256, 43, 44, 45, 264, 47, 48, 49,
175047 /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 271,
175048 /* 100 */ 287, 22, 23, 103, 104, 105, 106, 107, 108, 109,
175049 /* 110 */ 110, 111, 112, 113, 114, 114, 47, 48, 49, 50,
175050 /* 120 */ 187, 188, 189, 190, 191, 192, 190, 87, 192, 89,
175051 /* 130 */ 197, 19, 199, 197, 318, 199, 320, 25, 195, 206,
175052 /* 140 */ 299, 271, 206, 103, 104, 105, 106, 107, 108, 109,
175053 /* 150 */ 110, 111, 112, 113, 114, 43, 44, 45, 195, 47,
175054 /* 160 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
175055 /* 170 */ 58, 60, 21, 195, 241, 242, 215, 241, 242, 312,
175056 /* 180 */ 313, 102, 70, 205, 317, 207, 242, 254, 77, 256,
175057 /* 190 */ 254, 122, 256, 55, 56, 57, 58, 59, 254, 88,
175058 /* 200 */ 256, 90, 269, 240, 93, 269, 107, 108, 109, 110,
175059 /* 210 */ 111, 112, 113, 114, 271, 103, 104, 105, 106, 107,
175060 /* 220 */ 108, 109, 110, 111, 112, 113, 114, 313, 117, 118,
175061 /* 230 */ 119, 317, 81, 195, 301, 19, 195, 301, 277, 278,
175062 /* 240 */ 279, 103, 104, 105, 106, 107, 108, 109, 110, 111,
175063 /* 250 */ 112, 113, 114, 55, 56, 57, 58, 146, 195, 43,
175064 /* 260 */ 44, 45, 74, 47, 48, 49, 50, 51, 52, 53,
175065 /* 270 */ 54, 55, 56, 57, 58, 124, 195, 60, 109, 110,
175066 /* 280 */ 111, 112, 113, 114, 68, 195, 103, 104, 105, 106,
175067 /* 290 */ 107, 108, 109, 110, 111, 112, 113, 114, 208, 218,
175068 /* 300 */ 219, 103, 104, 105, 106, 107, 108, 109, 110, 111,
175069 /* 310 */ 112, 113, 114, 162, 233, 24, 128, 129, 130, 103,
175070 /* 320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
175071 /* 330 */ 114, 195, 195, 215, 117, 118, 119, 120, 195, 19,
175072 /* 340 */ 123, 124, 125, 207, 24, 74, 246, 60, 310, 311,
175073 /* 350 */ 133, 60, 311, 82, 22, 218, 219, 257, 195, 19,
175074 /* 360 */ 73, 218, 219, 43, 44, 45, 206, 47, 48, 49,
175075 /* 370 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 22,
175076 /* 380 */ 23, 218, 219, 43, 44, 45, 54, 47, 48, 49,
175077 /* 390 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 128,
175078 /* 400 */ 82, 241, 242, 195, 117, 118, 119, 289, 60, 118,
175079 /* 410 */ 139, 140, 294, 195, 254, 195, 256, 195, 255, 259,
175080 /* 420 */ 260, 73, 22, 103, 104, 105, 106, 107, 108, 109,
175081 /* 430 */ 110, 111, 112, 113, 114, 206, 218, 219, 218, 219,
175082 /* 440 */ 218, 219, 234, 103, 104, 105, 106, 107, 108, 109,
175083 /* 450 */ 110, 111, 112, 113, 114, 318, 319, 139, 140, 102,
175084 /* 460 */ 60, 318, 319, 221, 19, 117, 118, 119, 23, 195,
175085 /* 470 */ 241, 242, 313, 255, 206, 255, 317, 255, 206, 129,
175086 /* 480 */ 130, 206, 264, 254, 264, 256, 264, 195, 43, 44,
175087 /* 490 */ 45, 151, 47, 48, 49, 50, 51, 52, 53, 54,
175088 /* 500 */ 55, 56, 57, 58, 246, 213, 214, 19, 19, 241,
175089 /* 510 */ 242, 195, 23, 241, 242, 257, 241, 242, 118, 277,
175090 /* 520 */ 278, 279, 254, 29, 256, 60, 254, 33, 256, 254,
175091 /* 530 */ 206, 256, 43, 44, 45, 218, 47, 48, 49, 50,
175092 /* 540 */ 51, 52, 53, 54, 55, 56, 57, 58, 103, 104,
175093 /* 550 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
175094 /* 560 */ 66, 19, 218, 60, 120, 241, 242, 123, 124, 125,
175095 /* 570 */ 60, 232, 77, 19, 20, 26, 22, 133, 254, 287,
175096 /* 580 */ 256, 265, 117, 118, 119, 90, 312, 313, 93, 47,
175097 /* 590 */ 36, 317, 103, 104, 105, 106, 107, 108, 109, 110,
175098 /* 600 */ 111, 112, 113, 114, 116, 117, 277, 278, 279, 60,
175099 /* 610 */ 107, 108, 19, 276, 60, 31, 23, 152, 195, 116,
175100 /* 620 */ 117, 118, 119, 39, 121, 276, 72, 117, 118, 119,
175101 /* 630 */ 166, 167, 129, 145, 237, 238, 43, 44, 45, 276,
175102 /* 640 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175103 /* 650 */ 57, 58, 315, 316, 144, 101, 19, 154, 116, 156,
175104 /* 660 */ 23, 107, 108, 109, 315, 316, 117, 118, 119, 115,
175105 /* 670 */ 60, 117, 118, 119, 132, 200, 122, 60, 315, 316,
175106 /* 680 */ 43, 44, 45, 272, 47, 48, 49, 50, 51, 52,
175107 /* 690 */ 53, 54, 55, 56, 57, 58, 103, 104, 105, 106,
175108 /* 700 */ 107, 108, 109, 110, 111, 112, 113, 114, 154, 155,
175109 /* 710 */ 156, 157, 158, 212, 213, 214, 22, 195, 101, 22,
175110 /* 720 */ 60, 19, 20, 60, 22, 139, 140, 117, 118, 119,
175111 /* 730 */ 22, 251, 195, 253, 117, 118, 195, 183, 36, 122,
175112 /* 740 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175113 /* 750 */ 113, 114, 195, 195, 60, 218, 219, 60, 195, 284,
175114 /* 760 */ 19, 25, 60, 288, 23, 237, 238, 22, 60, 109,
175115 /* 770 */ 233, 154, 155, 156, 72, 218, 219, 117, 118, 119,
175116 /* 780 */ 117, 118, 119, 116, 43, 44, 45, 265, 47, 48,
175117 /* 790 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175118 /* 800 */ 183, 243, 25, 101, 19, 60, 265, 144, 23, 107,
175119 /* 810 */ 108, 117, 118, 119, 117, 118, 119, 115, 151, 117,
175120 /* 820 */ 118, 119, 82, 195, 122, 117, 118, 119, 43, 44,
175121 /* 830 */ 45, 195, 47, 48, 49, 50, 51, 52, 53, 54,
175122 /* 840 */ 55, 56, 57, 58, 103, 104, 105, 106, 107, 108,
175123 /* 850 */ 109, 110, 111, 112, 113, 114, 154, 155, 156, 157,
175124 /* 860 */ 158, 121, 117, 118, 119, 307, 101, 309, 195, 22,
175125 /* 870 */ 23, 195, 25, 19, 35, 139, 140, 195, 24, 139,
175126 /* 880 */ 140, 208, 195, 118, 109, 183, 22, 122, 103, 104,
175127 /* 890 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
175128 /* 900 */ 304, 305, 77, 230, 127, 232, 67, 195, 19, 195,
175129 /* 910 */ 195, 136, 23, 88, 75, 90, 141, 203, 93, 154,
175130 /* 920 */ 155, 156, 208, 295, 60, 243, 22, 23, 19, 25,
175131 /* 930 */ 218, 219, 43, 44, 45, 100, 47, 48, 49, 50,
175132 /* 940 */ 51, 52, 53, 54, 55, 56, 57, 58, 183, 102,
175133 /* 950 */ 96, 195, 43, 44, 45, 240, 47, 48, 49, 50,
175134 /* 960 */ 51, 52, 53, 54, 55, 56, 57, 58, 114, 134,
175135 /* 970 */ 131, 146, 25, 286, 120, 121, 122, 123, 124, 125,
175136 /* 980 */ 126, 117, 118, 119, 313, 195, 132, 195, 317, 307,
175137 /* 990 */ 195, 309, 103, 104, 105, 106, 107, 108, 109, 110,
175138 /* 1000 */ 111, 112, 113, 114, 195, 195, 102, 195, 195, 195,
175139 /* 1010 */ 218, 219, 103, 104, 105, 106, 107, 108, 109, 110,
175140 /* 1020 */ 111, 112, 113, 114, 77, 233, 195, 60, 218, 219,
175141 /* 1030 */ 218, 219, 218, 219, 23, 195, 25, 90, 243, 159,
175142 /* 1040 */ 93, 161, 19, 233, 195, 233, 23, 233, 16, 218,
175143 /* 1050 */ 219, 195, 243, 212, 213, 214, 262, 263, 218, 219,
175144 /* 1060 */ 195, 271, 19, 307, 233, 309, 43, 44, 45, 160,
175145 /* 1070 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175146 /* 1080 */ 57, 58, 195, 218, 219, 118, 43, 44, 45, 240,
175147 /* 1090 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
175148 /* 1100 */ 57, 58, 307, 195, 309, 218, 219, 263, 12, 195,
175149 /* 1110 */ 78, 267, 80, 112, 113, 114, 307, 22, 309, 24,
175150 /* 1120 */ 255, 281, 266, 27, 107, 108, 103, 104, 105, 106,
175151 /* 1130 */ 107, 108, 109, 110, 111, 112, 113, 114, 42, 195,
175152 /* 1140 */ 11, 22, 255, 24, 195, 195, 103, 104, 105, 106,
175153 /* 1150 */ 107, 108, 109, 110, 111, 112, 113, 114, 19, 195,
175154 /* 1160 */ 64, 195, 218, 219, 195, 313, 195, 218, 219, 317,
175155 /* 1170 */ 74, 154, 195, 156, 195, 195, 19, 233, 23, 60,
175156 /* 1180 */ 25, 24, 218, 219, 218, 219, 195, 218, 219, 218,
175157 /* 1190 */ 219, 128, 129, 130, 162, 263, 19, 218, 219, 267,
175158 /* 1200 */ 43, 44, 45, 160, 47, 48, 49, 50, 51, 52,
175159 /* 1210 */ 53, 54, 55, 56, 57, 58, 19, 240, 228, 255,
175160 /* 1220 */ 43, 44, 45, 25, 47, 48, 49, 50, 51, 52,
175161 /* 1230 */ 53, 54, 55, 56, 57, 58, 135, 118, 137, 138,
175162 /* 1240 */ 43, 44, 45, 22, 47, 48, 49, 50, 51, 52,
175163 /* 1250 */ 53, 54, 55, 56, 57, 58, 117, 266, 129, 130,
175164 /* 1260 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175165 /* 1270 */ 113, 114, 195, 195, 119, 295, 195, 206, 195, 195,
175166 /* 1280 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175167 /* 1290 */ 113, 114, 195, 195, 195, 218, 219, 195, 195, 144,
175168 /* 1300 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
175169 /* 1310 */ 113, 114, 241, 242, 67, 218, 219, 218, 219, 146,
175170 /* 1320 */ 19, 218, 219, 240, 215, 254, 136, 256, 107, 108,
175171 /* 1330 */ 195, 141, 255, 86, 128, 129, 130, 195, 165, 195,
175172 /* 1340 */ 19, 143, 95, 272, 25, 44, 45, 266, 47, 48,
175173 /* 1350 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175174 /* 1360 */ 218, 219, 218, 219, 195, 12, 45, 195, 47, 48,
175175 /* 1370 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
175176 /* 1380 */ 27, 23, 7, 8, 9, 210, 211, 218, 219, 116,
175177 /* 1390 */ 218, 219, 228, 16, 147, 42, 195, 295, 195, 19,
175178 /* 1400 */ 20, 266, 22, 294, 103, 104, 105, 106, 107, 108,
175179 /* 1410 */ 109, 110, 111, 112, 113, 114, 36, 64, 145, 218,
175180 /* 1420 */ 219, 218, 219, 195, 103, 104, 105, 106, 107, 108,
175181 /* 1430 */ 109, 110, 111, 112, 113, 114, 195, 154, 119, 156,
175182 /* 1440 */ 60, 189, 190, 191, 192, 195, 218, 219, 195, 197,
175183 /* 1450 */ 195, 199, 72, 195, 19, 78, 195, 80, 206, 218,
175184 /* 1460 */ 219, 195, 82, 144, 210, 211, 195, 15, 218, 219,
175185 /* 1470 */ 47, 218, 219, 218, 219, 259, 260, 195, 261, 218,
175186 /* 1480 */ 219, 101, 302, 303, 218, 219, 195, 107, 108, 218,
175187 /* 1490 */ 219, 150, 151, 241, 242, 115, 25, 117, 118, 119,
175188 /* 1500 */ 218, 219, 122, 195, 146, 195, 254, 195, 256, 218,
175189 /* 1510 */ 219, 246, 25, 61, 246, 19, 20, 195, 22, 139,
175190 /* 1520 */ 140, 269, 257, 195, 266, 257, 218, 219, 218, 219,
175191 /* 1530 */ 218, 219, 36, 246, 154, 155, 156, 157, 158, 116,
175192 /* 1540 */ 218, 219, 195, 22, 257, 49, 218, 219, 23, 195,
175193 /* 1550 */ 25, 195, 117, 301, 195, 25, 60, 195, 195, 23,
175194 /* 1560 */ 195, 25, 195, 183, 24, 218, 219, 130, 72, 195,
175195 /* 1570 */ 22, 195, 218, 219, 218, 219, 195, 218, 219, 195,
175196 /* 1580 */ 218, 219, 86, 218, 219, 218, 219, 91, 19, 20,
175197 /* 1590 */ 153, 22, 218, 219, 218, 219, 195, 101, 195, 218,
175198 /* 1600 */ 219, 195, 195, 107, 108, 36, 23, 195, 25, 195,
175199 /* 1610 */ 62, 115, 195, 117, 118, 119, 195, 146, 122, 218,
175200 /* 1620 */ 219, 218, 219, 195, 218, 219, 19, 60, 122, 60,
175201 /* 1630 */ 218, 219, 218, 219, 195, 218, 219, 150, 132, 218,
175202 /* 1640 */ 219, 72, 195, 23, 195, 25, 218, 219, 195, 60,
175203 /* 1650 */ 154, 155, 156, 157, 158, 86, 23, 195, 25, 195,
175204 /* 1660 */ 91, 19, 20, 142, 22, 218, 219, 218, 219, 130,
175205 /* 1670 */ 101, 218, 219, 143, 121, 122, 107, 108, 36, 183,
175206 /* 1680 */ 218, 219, 142, 60, 115, 118, 117, 118, 119, 7,
175207 /* 1690 */ 8, 122, 153, 23, 23, 25, 25, 23, 23, 25,
175208 /* 1700 */ 25, 23, 60, 25, 23, 98, 25, 118, 84, 85,
175209 /* 1710 */ 23, 23, 25, 25, 72, 154, 23, 156, 25, 23,
175210 /* 1720 */ 228, 25, 195, 154, 155, 156, 157, 158, 86, 195,
175211 /* 1730 */ 195, 258, 195, 91, 291, 322, 195, 195, 195, 195,
175212 /* 1740 */ 195, 118, 195, 101, 195, 195, 195, 195, 238, 107,
175213 /* 1750 */ 108, 195, 183, 195, 195, 195, 290, 115, 195, 117,
175214 /* 1760 */ 118, 119, 244, 195, 122, 195, 195, 195, 195, 195,
175215 /* 1770 */ 195, 258, 258, 258, 258, 193, 245, 300, 216, 274,
175216 /* 1780 */ 247, 270, 270, 274, 296, 296, 248, 222, 262, 198,
175217 /* 1790 */ 262, 274, 61, 274, 248, 231, 154, 155, 156, 157,
175218 /* 1800 */ 158, 0, 1, 2, 247, 227, 5, 221, 221, 221,
175219 /* 1810 */ 142, 10, 11, 12, 13, 14, 262, 262, 17, 202,
175220 /* 1820 */ 300, 19, 20, 300, 22, 183, 247, 251, 251, 245,
175221 /* 1830 */ 202, 30, 38, 32, 202, 152, 151, 22, 36, 43,
175222 /* 1840 */ 236, 40, 18, 202, 239, 239, 18, 239, 239, 283,
175223 /* 1850 */ 201, 150, 236, 202, 236, 201, 159, 202, 248, 248,
175224 /* 1860 */ 248, 248, 60, 63, 201, 275, 273, 275, 273, 275,
175225 /* 1870 */ 22, 286, 71, 223, 72, 202, 223, 297, 297, 202,
175226 /* 1880 */ 79, 201, 116, 82, 220, 201, 220, 220, 65, 293,
175227 /* 1890 */ 292, 229, 22, 166, 127, 226, 24, 114, 226, 223,
175228 /* 1900 */ 99, 222, 202, 101, 285, 92, 220, 308, 83, 107,
175229 /* 1910 */ 108, 220, 220, 316, 220, 285, 268, 115, 229, 117,
175230 /* 1920 */ 118, 119, 223, 321, 122, 268, 149, 146, 22, 19,
175231 /* 1930 */ 20, 202, 22, 159, 282, 134, 321, 148, 280, 147,
175232 /* 1940 */ 139, 140, 252, 141, 25, 204, 36, 252, 13, 251,
175233 /* 1950 */ 196, 248, 250, 249, 196, 6, 154, 155, 156, 157,
175234 /* 1960 */ 158, 209, 194, 194, 163, 194, 306, 306, 303, 224,
175235 /* 1970 */ 60, 215, 215, 209, 215, 215, 215, 224, 216, 216,
175236 /* 1980 */ 4, 209, 72, 3, 22, 183, 164, 15, 23, 16,
175237 /* 1990 */ 23, 140, 152, 131, 25, 24, 143, 20, 16, 145,
175238 /* 2000 */ 1, 143, 131, 62, 131, 37, 54, 152, 54, 54,
175239 /* 2010 */ 54, 101, 131, 117, 1, 34, 142, 107, 108, 5,
175240 /* 2020 */ 22, 116, 162, 76, 41, 115, 69, 117, 118, 119,
175241 /* 2030 */ 1, 2, 122, 25, 5, 69, 142, 116, 20, 10,
175242 /* 2040 */ 11, 12, 13, 14, 24, 19, 17, 132, 5, 126,
175243 /* 2050 */ 22, 141, 68, 10, 11, 12, 13, 14, 22, 30,
175244 /* 2060 */ 17, 32, 22, 22, 154, 155, 156, 157, 158, 40,
175245 /* 2070 */ 23, 68, 60, 30, 24, 32, 97, 28, 22, 68,
175246 /* 2080 */ 23, 37, 34, 40, 150, 22, 25, 23, 23, 23,
175247 /* 2090 */ 22, 98, 142, 183, 23, 23, 34, 22, 25, 89,
175248 /* 2100 */ 71, 34, 117, 144, 34, 22, 76, 76, 79, 87,
175249 /* 2110 */ 34, 82, 34, 44, 71, 94, 34, 23, 25, 24,
175250 /* 2120 */ 34, 25, 79, 23, 23, 82, 23, 23, 99, 143,
175251 /* 2130 */ 143, 22, 25, 25, 23, 22, 11, 22, 22, 25,
175252 /* 2140 */ 23, 23, 99, 22, 22, 136, 142, 142, 142, 25,
175253 /* 2150 */ 23, 15, 1, 1, 323, 323, 323, 323, 323, 323,
175254 /* 2160 */ 323, 323, 323, 134, 323, 323, 323, 323, 139, 140,
175255 /* 2170 */ 323, 323, 323, 323, 323, 323, 323, 134, 323, 323,
175256 /* 2180 */ 323, 323, 139, 140, 323, 323, 323, 323, 323, 323,
175257 /* 2190 */ 323, 323, 163, 323, 323, 323, 323, 323, 323, 323,
175258 /* 2200 */ 323, 323, 323, 323, 323, 323, 163, 323, 323, 323,
175259 /* 2210 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175260 /* 2220 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175261 /* 2230 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175262 /* 2240 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175263 /* 2250 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175264 /* 2260 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175265 /* 2270 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175266 /* 2280 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175267 /* 2290 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175268 /* 2300 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175269 /* 2310 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175270 /* 2320 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175271 /* 2330 */ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
175272 /* 2340 */ 323, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175273 /* 2350 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175274 /* 2360 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175275 /* 2370 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175276 /* 2380 */ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
175277 /* 2390 */ 187, 187, 187, 187,
175278 };
175279 #define YY_SHIFT_COUNT (582)
175280 #define YY_SHIFT_MIN (0)
175281 #define YY_SHIFT_MAX (2152)
175282 static const unsigned short int yy_shift_ofst[] = {
175283 /* 0 */ 2029, 1801, 2043, 1380, 1380, 318, 271, 1496, 1569, 1642,
175284 /* 10 */ 702, 702, 702, 740, 318, 318, 318, 318, 318, 0,
175285 /* 20 */ 0, 216, 1177, 702, 702, 702, 702, 702, 702, 702,
175286 /* 30 */ 702, 702, 702, 702, 702, 702, 702, 702, 503, 503,
175287 /* 40 */ 111, 111, 217, 287, 348, 610, 610, 736, 736, 736,
175288 /* 50 */ 736, 40, 112, 320, 340, 445, 489, 593, 637, 741,
175289 /* 60 */ 785, 889, 909, 1023, 1043, 1157, 1177, 1177, 1177, 1177,
175290 /* 70 */ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
175291 /* 80 */ 1177, 1177, 1177, 1177, 1197, 1177, 1301, 1321, 1321, 554,
175292 /* 90 */ 1802, 1910, 702, 702, 702, 702, 702, 702, 702, 702,
175293 /* 100 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175294 /* 110 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175295 /* 120 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175296 /* 130 */ 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
175297 /* 140 */ 702, 702, 138, 198, 198, 198, 198, 198, 198, 198,
175298 /* 150 */ 183, 99, 169, 549, 610, 151, 542, 610, 610, 1017,
175299 /* 160 */ 1017, 610, 1001, 350, 464, 464, 464, 586, 1, 1,
175300 /* 170 */ 2207, 2207, 854, 854, 854, 465, 694, 694, 694, 694,
175301 /* 180 */ 1096, 1096, 825, 549, 847, 904, 610, 610, 610, 610,
175302 /* 190 */ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
175303 /* 200 */ 610, 610, 610, 610, 610, 488, 947, 947, 610, 1129,
175304 /* 210 */ 495, 495, 1139, 1139, 967, 967, 1173, 2207, 2207, 2207,
175305 /* 220 */ 2207, 2207, 2207, 2207, 617, 765, 765, 697, 444, 708,
175306 /* 230 */ 660, 745, 510, 663, 864, 610, 610, 610, 610, 610,
175307 /* 240 */ 610, 610, 610, 610, 610, 188, 610, 610, 610, 610,
175308 /* 250 */ 610, 610, 610, 610, 610, 610, 610, 610, 839, 839,
175309 /* 260 */ 839, 610, 610, 610, 1155, 610, 610, 610, 1119, 1247,
175310 /* 270 */ 610, 1353, 610, 610, 610, 610, 610, 610, 610, 610,
175311 /* 280 */ 1063, 494, 1101, 291, 291, 291, 291, 1319, 1101, 1101,
175312 /* 290 */ 775, 1221, 1375, 1452, 667, 1341, 1198, 1341, 1435, 1487,
175313 /* 300 */ 667, 667, 1487, 667, 1198, 1435, 777, 1011, 1423, 584,
175314 /* 310 */ 584, 584, 1273, 1273, 1273, 1273, 1471, 1471, 880, 1530,
175315 /* 320 */ 1190, 1095, 1731, 1731, 1668, 1668, 1794, 1794, 1668, 1683,
175316 /* 330 */ 1685, 1815, 1796, 1824, 1824, 1824, 1824, 1668, 1828, 1701,
175317 /* 340 */ 1685, 1685, 1701, 1815, 1796, 1701, 1796, 1701, 1668, 1828,
175318 /* 350 */ 1697, 1800, 1668, 1828, 1848, 1668, 1828, 1668, 1828, 1848,
175319 /* 360 */ 1766, 1766, 1766, 1823, 1870, 1870, 1848, 1766, 1767, 1766,
175320 /* 370 */ 1823, 1766, 1766, 1727, 1872, 1783, 1783, 1848, 1668, 1813,
175321 /* 380 */ 1813, 1825, 1825, 1777, 1781, 1906, 1668, 1774, 1777, 1789,
175322 /* 390 */ 1792, 1701, 1919, 1935, 1935, 1949, 1949, 1949, 2207, 2207,
175323 /* 400 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
175324 /* 410 */ 2207, 2207, 2207, 69, 1032, 79, 357, 1377, 1206, 400,
175325 /* 420 */ 1525, 835, 332, 1540, 1437, 1539, 1536, 1548, 1583, 1620,
175326 /* 430 */ 1633, 1670, 1671, 1674, 1567, 1553, 1682, 1506, 1675, 1358,
175327 /* 440 */ 1607, 1589, 1678, 1681, 1624, 1687, 1688, 1283, 1561, 1693,
175328 /* 450 */ 1696, 1623, 1521, 1976, 1980, 1962, 1822, 1972, 1973, 1965,
175329 /* 460 */ 1967, 1851, 1840, 1862, 1969, 1969, 1971, 1853, 1977, 1854,
175330 /* 470 */ 1982, 1999, 1858, 1871, 1969, 1873, 1941, 1968, 1969, 1855,
175331 /* 480 */ 1952, 1954, 1955, 1956, 1881, 1896, 1981, 1874, 2013, 2014,
175332 /* 490 */ 1998, 1905, 1860, 1957, 2008, 1966, 1947, 1983, 1894, 1921,
175333 /* 500 */ 2020, 2018, 2026, 1915, 1923, 2028, 1984, 2036, 2040, 2047,
175334 /* 510 */ 2041, 2003, 2012, 2050, 1979, 2049, 2056, 2011, 2044, 2057,
175335 /* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1950,
175336 /* 530 */ 2071, 2072, 1985, 2062, 2075, 1959, 2073, 2067, 2070, 2076,
175337 /* 540 */ 2078, 2010, 2030, 2022, 2069, 2031, 2021, 2082, 2094, 2083,
175338 /* 550 */ 2095, 2093, 2096, 2086, 1986, 1987, 2100, 2073, 2101, 2103,
175339 /* 560 */ 2104, 2109, 2107, 2108, 2111, 2113, 2125, 2115, 2116, 2117,
175340 /* 570 */ 2118, 2121, 2122, 2114, 2009, 2004, 2005, 2006, 2124, 2127,
175341 /* 580 */ 2136, 2151, 2152,
175342 };
175343 #define YY_REDUCE_COUNT (412)
175344 #define YY_REDUCE_MIN (-277)
175345 #define YY_REDUCE_MAX (1772)
175346 static const short yy_reduce_ofst[] = {
175347 /* 0 */ -67, 1252, -64, -178, -181, 160, 1071, 143, -184, 137,
175348 /* 10 */ 218, 220, 222, -174, 229, 268, 272, 275, 324, -208,
175349 /* 20 */ 242, -277, -39, 81, 537, 792, 810, 812, -189, 814,
175350 /* 30 */ 831, 163, 865, 944, 887, 840, 964, 1077, -187, 292,
175351 /* 40 */ -133, 274, 673, 558, 682, 795, 809, -238, -232, -238,
175352 /* 50 */ -232, 329, 329, 329, 329, 329, 329, 329, 329, 329,
175353 /* 60 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
175354 /* 70 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
175355 /* 80 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 557,
175356 /* 90 */ 712, 949, 966, 969, 971, 979, 1097, 1099, 1103, 1142,
175357 /* 100 */ 1144, 1169, 1172, 1201, 1203, 1228, 1241, 1250, 1253, 1255,
175358 /* 110 */ 1261, 1266, 1271, 1282, 1291, 1308, 1310, 1312, 1322, 1328,
175359 /* 120 */ 1347, 1354, 1356, 1359, 1362, 1365, 1367, 1374, 1376, 1381,
175360 /* 130 */ 1401, 1403, 1406, 1412, 1414, 1417, 1421, 1428, 1447, 1449,
175361 /* 140 */ 1453, 1462, 329, 329, 329, 329, 329, 329, 329, 329,
175362 /* 150 */ 329, 329, 329, -22, -159, 475, -220, 756, 38, 501,
175363 /* 160 */ 841, 714, 329, 118, 337, 349, 363, -56, 329, 329,
175364 /* 170 */ 329, 329, -205, -205, -205, 687, -172, -130, -57, 790,
175365 /* 180 */ 397, 528, -271, 136, 596, 596, 90, 316, 522, 541,
175366 /* 190 */ -37, 715, 849, 977, 628, 856, 980, 991, 1081, 1102,
175367 /* 200 */ 1135, 1083, -162, 208, 1258, 794, -86, 159, 41, 1109,
175368 /* 210 */ 671, 852, 844, 932, 1175, 1254, 480, 1180, 100, 258,
175369 /* 220 */ 1265, 1268, 1216, 1287, -139, 317, 344, 63, 339, 423,
175370 /* 230 */ 563, 636, 676, 813, 908, 914, 950, 1078, 1084, 1098,
175371 /* 240 */ 1363, 1384, 1407, 1439, 1464, 411, 1527, 1534, 1535, 1537,
175372 /* 250 */ 1541, 1542, 1543, 1544, 1545, 1547, 1549, 1550, 990, 1164,
175373 /* 260 */ 1492, 1551, 1552, 1556, 1217, 1558, 1559, 1560, 1473, 1413,
175374 /* 270 */ 1563, 1510, 1568, 563, 1570, 1571, 1572, 1573, 1574, 1575,
175375 /* 280 */ 1443, 1466, 1518, 1513, 1514, 1515, 1516, 1217, 1518, 1518,
175376 /* 290 */ 1531, 1562, 1582, 1477, 1505, 1511, 1533, 1512, 1488, 1538,
175377 /* 300 */ 1509, 1517, 1546, 1519, 1557, 1489, 1565, 1564, 1578, 1586,
175378 /* 310 */ 1587, 1588, 1526, 1528, 1554, 1555, 1576, 1577, 1566, 1579,
175379 /* 320 */ 1584, 1591, 1520, 1523, 1617, 1628, 1580, 1581, 1632, 1585,
175380 /* 330 */ 1590, 1593, 1604, 1605, 1606, 1608, 1609, 1641, 1649, 1610,
175381 /* 340 */ 1592, 1594, 1611, 1595, 1616, 1612, 1618, 1613, 1651, 1654,
175382 /* 350 */ 1596, 1598, 1655, 1663, 1650, 1673, 1680, 1677, 1684, 1653,
175383 /* 360 */ 1664, 1666, 1667, 1662, 1669, 1672, 1676, 1686, 1679, 1691,
175384 /* 370 */ 1689, 1692, 1694, 1597, 1599, 1619, 1630, 1699, 1700, 1602,
175385 /* 380 */ 1615, 1648, 1657, 1690, 1698, 1658, 1729, 1652, 1695, 1702,
175386 /* 390 */ 1704, 1703, 1741, 1754, 1758, 1768, 1769, 1771, 1660, 1661,
175387 /* 400 */ 1665, 1752, 1756, 1757, 1759, 1760, 1764, 1745, 1753, 1762,
175388 /* 410 */ 1763, 1761, 1772,
175389 };
175390 static const YYACTIONTYPE yy_default[] = {
175391 /* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254,
175392 /* 10 */ 1491, 1491, 1491, 1254, 1254, 1254, 1254, 1254, 1254, 1397,
175393 /* 20 */ 1397, 1544, 1287, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
@@ -175545,10 +175649,11 @@
175649 0, /* ASTERISK => nothing */
175650 0, /* SPAN => nothing */
175651 0, /* ERROR => nothing */
175652 0, /* QNUMBER => nothing */
175653 0, /* SPACE => nothing */
175654 0, /* COMMENT => nothing */
175655 0, /* ILLEGAL => nothing */
175656 };
175657 #endif /* YYFALLBACK */
175658
175659 /* The following structure represents a single element of the
@@ -175814,147 +175919,148 @@
175919 /* 180 */ "ASTERISK",
175920 /* 181 */ "SPAN",
175921 /* 182 */ "ERROR",
175922 /* 183 */ "QNUMBER",
175923 /* 184 */ "SPACE",
175924 /* 185 */ "COMMENT",
175925 /* 186 */ "ILLEGAL",
175926 /* 187 */ "input",
175927 /* 188 */ "cmdlist",
175928 /* 189 */ "ecmd",
175929 /* 190 */ "cmdx",
175930 /* 191 */ "explain",
175931 /* 192 */ "cmd",
175932 /* 193 */ "transtype",
175933 /* 194 */ "trans_opt",
175934 /* 195 */ "nm",
175935 /* 196 */ "savepoint_opt",
175936 /* 197 */ "create_table",
175937 /* 198 */ "create_table_args",
175938 /* 199 */ "createkw",
175939 /* 200 */ "temp",
175940 /* 201 */ "ifnotexists",
175941 /* 202 */ "dbnm",
175942 /* 203 */ "columnlist",
175943 /* 204 */ "conslist_opt",
175944 /* 205 */ "table_option_set",
175945 /* 206 */ "select",
175946 /* 207 */ "table_option",
175947 /* 208 */ "columnname",
175948 /* 209 */ "carglist",
175949 /* 210 */ "typetoken",
175950 /* 211 */ "typename",
175951 /* 212 */ "signed",
175952 /* 213 */ "plus_num",
175953 /* 214 */ "minus_num",
175954 /* 215 */ "scanpt",
175955 /* 216 */ "scantok",
175956 /* 217 */ "ccons",
175957 /* 218 */ "term",
175958 /* 219 */ "expr",
175959 /* 220 */ "onconf",
175960 /* 221 */ "sortorder",
175961 /* 222 */ "autoinc",
175962 /* 223 */ "eidlist_opt",
175963 /* 224 */ "refargs",
175964 /* 225 */ "defer_subclause",
175965 /* 226 */ "generated",
175966 /* 227 */ "refarg",
175967 /* 228 */ "refact",
175968 /* 229 */ "init_deferred_pred_opt",
175969 /* 230 */ "conslist",
175970 /* 231 */ "tconscomma",
175971 /* 232 */ "tcons",
175972 /* 233 */ "sortlist",
175973 /* 234 */ "eidlist",
175974 /* 235 */ "defer_subclause_opt",
175975 /* 236 */ "orconf",
175976 /* 237 */ "resolvetype",
175977 /* 238 */ "raisetype",
175978 /* 239 */ "ifexists",
175979 /* 240 */ "fullname",
175980 /* 241 */ "selectnowith",
175981 /* 242 */ "oneselect",
175982 /* 243 */ "wqlist",
175983 /* 244 */ "multiselect_op",
175984 /* 245 */ "distinct",
175985 /* 246 */ "selcollist",
175986 /* 247 */ "from",
175987 /* 248 */ "where_opt",
175988 /* 249 */ "groupby_opt",
175989 /* 250 */ "having_opt",
175990 /* 251 */ "orderby_opt",
175991 /* 252 */ "limit_opt",
175992 /* 253 */ "window_clause",
175993 /* 254 */ "values",
175994 /* 255 */ "nexprlist",
175995 /* 256 */ "mvalues",
175996 /* 257 */ "sclp",
175997 /* 258 */ "as",
175998 /* 259 */ "seltablist",
175999 /* 260 */ "stl_prefix",
176000 /* 261 */ "joinop",
176001 /* 262 */ "on_using",
176002 /* 263 */ "indexed_by",
176003 /* 264 */ "exprlist",
176004 /* 265 */ "xfullname",
176005 /* 266 */ "idlist",
176006 /* 267 */ "indexed_opt",
176007 /* 268 */ "nulls",
176008 /* 269 */ "with",
176009 /* 270 */ "where_opt_ret",
176010 /* 271 */ "setlist",
176011 /* 272 */ "insert_cmd",
176012 /* 273 */ "idlist_opt",
176013 /* 274 */ "upsert",
176014 /* 275 */ "returning",
176015 /* 276 */ "filter_over",
176016 /* 277 */ "likeop",
176017 /* 278 */ "between_op",
176018 /* 279 */ "in_op",
176019 /* 280 */ "paren_exprlist",
176020 /* 281 */ "case_operand",
176021 /* 282 */ "case_exprlist",
176022 /* 283 */ "case_else",
176023 /* 284 */ "uniqueflag",
176024 /* 285 */ "collate",
176025 /* 286 */ "vinto",
176026 /* 287 */ "nmnum",
176027 /* 288 */ "trigger_decl",
176028 /* 289 */ "trigger_cmd_list",
176029 /* 290 */ "trigger_time",
176030 /* 291 */ "trigger_event",
176031 /* 292 */ "foreach_clause",
176032 /* 293 */ "when_clause",
176033 /* 294 */ "trigger_cmd",
176034 /* 295 */ "trnm",
176035 /* 296 */ "tridxby",
176036 /* 297 */ "database_kw_opt",
176037 /* 298 */ "key_opt",
176038 /* 299 */ "add_column_fullname",
176039 /* 300 */ "kwcolumn_opt",
176040 /* 301 */ "create_vtab",
176041 /* 302 */ "vtabarglist",
176042 /* 303 */ "vtabarg",
176043 /* 304 */ "vtabargtoken",
176044 /* 305 */ "lp",
176045 /* 306 */ "anylist",
176046 /* 307 */ "wqitem",
176047 /* 308 */ "wqas",
176048 /* 309 */ "withnm",
176049 /* 310 */ "windowdefn_list",
176050 /* 311 */ "windowdefn",
176051 /* 312 */ "window",
176052 /* 313 */ "frame_opt",
176053 /* 314 */ "part_opt",
176054 /* 315 */ "filter_clause",
176055 /* 316 */ "over_clause",
176056 /* 317 */ "range_or_rows",
176057 /* 318 */ "frame_bound",
176058 /* 319 */ "frame_bound_s",
176059 /* 320 */ "frame_bound_e",
176060 /* 321 */ "frame_exclude_opt",
176061 /* 322 */ "frame_exclude",
176062 };
176063 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
176064
176065 #ifndef NDEBUG
176066 /* For tracing reduce actions, the names of all rules are required.
@@ -176490,102 +176596,102 @@
176596 ** Note: during a reduce, the only symbols destroyed are those
176597 ** which appear on the RHS of the rule, but which are *not* used
176598 ** inside the C code.
176599 */
176600 /********* Begin destructor definitions ***************************************/
176601 case 206: /* select */
176602 case 241: /* selectnowith */
176603 case 242: /* oneselect */
176604 case 254: /* values */
176605 case 256: /* mvalues */
176606 {
176607 sqlite3SelectDelete(pParse->db, (yypminor->yy637));
176608 }
176609 break;
176610 case 218: /* term */
176611 case 219: /* expr */
176612 case 248: /* where_opt */
176613 case 250: /* having_opt */
176614 case 270: /* where_opt_ret */
176615 case 281: /* case_operand */
176616 case 283: /* case_else */
176617 case 286: /* vinto */
176618 case 293: /* when_clause */
176619 case 298: /* key_opt */
176620 case 315: /* filter_clause */
176621 {
176622 sqlite3ExprDelete(pParse->db, (yypminor->yy590));
176623 }
176624 break;
176625 case 223: /* eidlist_opt */
176626 case 233: /* sortlist */
176627 case 234: /* eidlist */
176628 case 246: /* selcollist */
176629 case 249: /* groupby_opt */
176630 case 251: /* orderby_opt */
176631 case 255: /* nexprlist */
176632 case 257: /* sclp */
176633 case 264: /* exprlist */
176634 case 271: /* setlist */
176635 case 280: /* paren_exprlist */
176636 case 282: /* case_exprlist */
176637 case 314: /* part_opt */
176638 {
176639 sqlite3ExprListDelete(pParse->db, (yypminor->yy402));
176640 }
176641 break;
176642 case 240: /* fullname */
176643 case 247: /* from */
176644 case 259: /* seltablist */
176645 case 260: /* stl_prefix */
176646 case 265: /* xfullname */
176647 {
176648 sqlite3SrcListDelete(pParse->db, (yypminor->yy563));
176649 }
176650 break;
176651 case 243: /* wqlist */
176652 {
176653 sqlite3WithDelete(pParse->db, (yypminor->yy125));
176654 }
176655 break;
176656 case 253: /* window_clause */
176657 case 310: /* windowdefn_list */
176658 {
176659 sqlite3WindowListDelete(pParse->db, (yypminor->yy483));
176660 }
176661 break;
176662 case 266: /* idlist */
176663 case 273: /* idlist_opt */
176664 {
176665 sqlite3IdListDelete(pParse->db, (yypminor->yy204));
176666 }
176667 break;
176668 case 276: /* filter_over */
176669 case 311: /* windowdefn */
176670 case 312: /* window */
176671 case 313: /* frame_opt */
176672 case 316: /* over_clause */
176673 {
176674 sqlite3WindowDelete(pParse->db, (yypminor->yy483));
176675 }
176676 break;
176677 case 289: /* trigger_cmd_list */
176678 case 294: /* trigger_cmd */
176679 {
176680 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy319));
176681 }
176682 break;
176683 case 291: /* trigger_event */
176684 {
176685 sqlite3IdListDelete(pParse->db, (yypminor->yy28).b);
176686 }
176687 break;
176688 case 318: /* frame_bound */
176689 case 319: /* frame_bound_s */
176690 case 320: /* frame_bound_e */
176691 {
176692 sqlite3ExprDelete(pParse->db, (yypminor->yy205).pExpr);
176693 }
176694 break;
176695 /********* End destructor definitions *****************************************/
176696 default: break; /* If no destructor action specified: do nothing */
176697 }
@@ -176883,419 +176989,419 @@
176989 }
176990
176991 /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
176992 ** of that rule */
176993 static const YYCODETYPE yyRuleInfoLhs[] = {
176994 191, /* (0) explain ::= EXPLAIN */
176995 191, /* (1) explain ::= EXPLAIN QUERY PLAN */
176996 190, /* (2) cmdx ::= cmd */
176997 192, /* (3) cmd ::= BEGIN transtype trans_opt */
176998 193, /* (4) transtype ::= */
176999 193, /* (5) transtype ::= DEFERRED */
177000 193, /* (6) transtype ::= IMMEDIATE */
177001 193, /* (7) transtype ::= EXCLUSIVE */
177002 192, /* (8) cmd ::= COMMIT|END trans_opt */
177003 192, /* (9) cmd ::= ROLLBACK trans_opt */
177004 192, /* (10) cmd ::= SAVEPOINT nm */
177005 192, /* (11) cmd ::= RELEASE savepoint_opt nm */
177006 192, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
177007 197, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
177008 199, /* (14) createkw ::= CREATE */
177009 201, /* (15) ifnotexists ::= */
177010 201, /* (16) ifnotexists ::= IF NOT EXISTS */
177011 200, /* (17) temp ::= TEMP */
177012 200, /* (18) temp ::= */
177013 198, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */
177014 198, /* (20) create_table_args ::= AS select */
177015 205, /* (21) table_option_set ::= */
177016 205, /* (22) table_option_set ::= table_option_set COMMA table_option */
177017 207, /* (23) table_option ::= WITHOUT nm */
177018 207, /* (24) table_option ::= nm */
177019 208, /* (25) columnname ::= nm typetoken */
177020 210, /* (26) typetoken ::= */
177021 210, /* (27) typetoken ::= typename LP signed RP */
177022 210, /* (28) typetoken ::= typename LP signed COMMA signed RP */
177023 211, /* (29) typename ::= typename ID|STRING */
177024 215, /* (30) scanpt ::= */
177025 216, /* (31) scantok ::= */
177026 217, /* (32) ccons ::= CONSTRAINT nm */
177027 217, /* (33) ccons ::= DEFAULT scantok term */
177028 217, /* (34) ccons ::= DEFAULT LP expr RP */
177029 217, /* (35) ccons ::= DEFAULT PLUS scantok term */
177030 217, /* (36) ccons ::= DEFAULT MINUS scantok term */
177031 217, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */
177032 217, /* (38) ccons ::= NOT NULL onconf */
177033 217, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */
177034 217, /* (40) ccons ::= UNIQUE onconf */
177035 217, /* (41) ccons ::= CHECK LP expr RP */
177036 217, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */
177037 217, /* (43) ccons ::= defer_subclause */
177038 217, /* (44) ccons ::= COLLATE ID|STRING */
177039 226, /* (45) generated ::= LP expr RP */
177040 226, /* (46) generated ::= LP expr RP ID */
177041 222, /* (47) autoinc ::= */
177042 222, /* (48) autoinc ::= AUTOINCR */
177043 224, /* (49) refargs ::= */
177044 224, /* (50) refargs ::= refargs refarg */
177045 227, /* (51) refarg ::= MATCH nm */
177046 227, /* (52) refarg ::= ON INSERT refact */
177047 227, /* (53) refarg ::= ON DELETE refact */
177048 227, /* (54) refarg ::= ON UPDATE refact */
177049 228, /* (55) refact ::= SET NULL */
177050 228, /* (56) refact ::= SET DEFAULT */
177051 228, /* (57) refact ::= CASCADE */
177052 228, /* (58) refact ::= RESTRICT */
177053 228, /* (59) refact ::= NO ACTION */
177054 225, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
177055 225, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
177056 229, /* (62) init_deferred_pred_opt ::= */
177057 229, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */
177058 229, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
177059 204, /* (65) conslist_opt ::= */
177060 231, /* (66) tconscomma ::= COMMA */
177061 232, /* (67) tcons ::= CONSTRAINT nm */
177062 232, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
177063 232, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */
177064 232, /* (70) tcons ::= CHECK LP expr RP onconf */
177065 232, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
177066 235, /* (72) defer_subclause_opt ::= */
177067 220, /* (73) onconf ::= */
177068 220, /* (74) onconf ::= ON CONFLICT resolvetype */
177069 236, /* (75) orconf ::= */
177070 236, /* (76) orconf ::= OR resolvetype */
177071 237, /* (77) resolvetype ::= IGNORE */
177072 237, /* (78) resolvetype ::= REPLACE */
177073 192, /* (79) cmd ::= DROP TABLE ifexists fullname */
177074 239, /* (80) ifexists ::= IF EXISTS */
177075 239, /* (81) ifexists ::= */
177076 192, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
177077 192, /* (83) cmd ::= DROP VIEW ifexists fullname */
177078 192, /* (84) cmd ::= select */
177079 206, /* (85) select ::= WITH wqlist selectnowith */
177080 206, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */
177081 206, /* (87) select ::= selectnowith */
177082 241, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */
177083 244, /* (89) multiselect_op ::= UNION */
177084 244, /* (90) multiselect_op ::= UNION ALL */
177085 244, /* (91) multiselect_op ::= EXCEPT|INTERSECT */
177086 242, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
177087 242, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
177088 254, /* (94) values ::= VALUES LP nexprlist RP */
177089 242, /* (95) oneselect ::= mvalues */
177090 256, /* (96) mvalues ::= values COMMA LP nexprlist RP */
177091 256, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */
177092 245, /* (98) distinct ::= DISTINCT */
177093 245, /* (99) distinct ::= ALL */
177094 245, /* (100) distinct ::= */
177095 257, /* (101) sclp ::= */
177096 246, /* (102) selcollist ::= sclp scanpt expr scanpt as */
177097 246, /* (103) selcollist ::= sclp scanpt STAR */
177098 246, /* (104) selcollist ::= sclp scanpt nm DOT STAR */
177099 258, /* (105) as ::= AS nm */
177100 258, /* (106) as ::= */
177101 247, /* (107) from ::= */
177102 247, /* (108) from ::= FROM seltablist */
177103 260, /* (109) stl_prefix ::= seltablist joinop */
177104 260, /* (110) stl_prefix ::= */
177105 259, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */
177106 259, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
177107 259, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
177108 259, /* (114) seltablist ::= stl_prefix LP select RP as on_using */
177109 259, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */
177110 202, /* (116) dbnm ::= */
177111 202, /* (117) dbnm ::= DOT nm */
177112 240, /* (118) fullname ::= nm */
177113 240, /* (119) fullname ::= nm DOT nm */
177114 265, /* (120) xfullname ::= nm */
177115 265, /* (121) xfullname ::= nm DOT nm */
177116 265, /* (122) xfullname ::= nm DOT nm AS nm */
177117 265, /* (123) xfullname ::= nm AS nm */
177118 261, /* (124) joinop ::= COMMA|JOIN */
177119 261, /* (125) joinop ::= JOIN_KW JOIN */
177120 261, /* (126) joinop ::= JOIN_KW nm JOIN */
177121 261, /* (127) joinop ::= JOIN_KW nm nm JOIN */
177122 262, /* (128) on_using ::= ON expr */
177123 262, /* (129) on_using ::= USING LP idlist RP */
177124 262, /* (130) on_using ::= */
177125 267, /* (131) indexed_opt ::= */
177126 263, /* (132) indexed_by ::= INDEXED BY nm */
177127 263, /* (133) indexed_by ::= NOT INDEXED */
177128 251, /* (134) orderby_opt ::= */
177129 251, /* (135) orderby_opt ::= ORDER BY sortlist */
177130 233, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */
177131 233, /* (137) sortlist ::= expr sortorder nulls */
177132 221, /* (138) sortorder ::= ASC */
177133 221, /* (139) sortorder ::= DESC */
177134 221, /* (140) sortorder ::= */
177135 268, /* (141) nulls ::= NULLS FIRST */
177136 268, /* (142) nulls ::= NULLS LAST */
177137 268, /* (143) nulls ::= */
177138 249, /* (144) groupby_opt ::= */
177139 249, /* (145) groupby_opt ::= GROUP BY nexprlist */
177140 250, /* (146) having_opt ::= */
177141 250, /* (147) having_opt ::= HAVING expr */
177142 252, /* (148) limit_opt ::= */
177143 252, /* (149) limit_opt ::= LIMIT expr */
177144 252, /* (150) limit_opt ::= LIMIT expr OFFSET expr */
177145 252, /* (151) limit_opt ::= LIMIT expr COMMA expr */
177146 192, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
177147 248, /* (153) where_opt ::= */
177148 248, /* (154) where_opt ::= WHERE expr */
177149 270, /* (155) where_opt_ret ::= */
177150 270, /* (156) where_opt_ret ::= WHERE expr */
177151 270, /* (157) where_opt_ret ::= RETURNING selcollist */
177152 270, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */
177153 192, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
177154 271, /* (160) setlist ::= setlist COMMA nm EQ expr */
177155 271, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */
177156 271, /* (162) setlist ::= nm EQ expr */
177157 271, /* (163) setlist ::= LP idlist RP EQ expr */
177158 192, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
177159 192, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
177160 274, /* (166) upsert ::= */
177161 274, /* (167) upsert ::= RETURNING selcollist */
177162 274, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
177163 274, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
177164 274, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */
177165 274, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
177166 275, /* (172) returning ::= RETURNING selcollist */
177167 272, /* (173) insert_cmd ::= INSERT orconf */
177168 272, /* (174) insert_cmd ::= REPLACE */
177169 273, /* (175) idlist_opt ::= */
177170 273, /* (176) idlist_opt ::= LP idlist RP */
177171 266, /* (177) idlist ::= idlist COMMA nm */
177172 266, /* (178) idlist ::= nm */
177173 219, /* (179) expr ::= LP expr RP */
177174 219, /* (180) expr ::= ID|INDEXED|JOIN_KW */
177175 219, /* (181) expr ::= nm DOT nm */
177176 219, /* (182) expr ::= nm DOT nm DOT nm */
177177 218, /* (183) term ::= NULL|FLOAT|BLOB */
177178 218, /* (184) term ::= STRING */
177179 218, /* (185) term ::= INTEGER */
177180 219, /* (186) expr ::= VARIABLE */
177181 219, /* (187) expr ::= expr COLLATE ID|STRING */
177182 219, /* (188) expr ::= CAST LP expr AS typetoken RP */
177183 219, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
177184 219, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
177185 219, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
177186 219, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
177187 219, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
177188 219, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
177189 218, /* (195) term ::= CTIME_KW */
177190 219, /* (196) expr ::= LP nexprlist COMMA expr RP */
177191 219, /* (197) expr ::= expr AND expr */
177192 219, /* (198) expr ::= expr OR expr */
177193 219, /* (199) expr ::= expr LT|GT|GE|LE expr */
177194 219, /* (200) expr ::= expr EQ|NE expr */
177195 219, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
177196 219, /* (202) expr ::= expr PLUS|MINUS expr */
177197 219, /* (203) expr ::= expr STAR|SLASH|REM expr */
177198 219, /* (204) expr ::= expr CONCAT expr */
177199 277, /* (205) likeop ::= NOT LIKE_KW|MATCH */
177200 219, /* (206) expr ::= expr likeop expr */
177201 219, /* (207) expr ::= expr likeop expr ESCAPE expr */
177202 219, /* (208) expr ::= expr ISNULL|NOTNULL */
177203 219, /* (209) expr ::= expr NOT NULL */
177204 219, /* (210) expr ::= expr IS expr */
177205 219, /* (211) expr ::= expr IS NOT expr */
177206 219, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */
177207 219, /* (213) expr ::= expr IS DISTINCT FROM expr */
177208 219, /* (214) expr ::= NOT expr */
177209 219, /* (215) expr ::= BITNOT expr */
177210 219, /* (216) expr ::= PLUS|MINUS expr */
177211 219, /* (217) expr ::= expr PTR expr */
177212 278, /* (218) between_op ::= BETWEEN */
177213 278, /* (219) between_op ::= NOT BETWEEN */
177214 219, /* (220) expr ::= expr between_op expr AND expr */
177215 279, /* (221) in_op ::= IN */
177216 279, /* (222) in_op ::= NOT IN */
177217 219, /* (223) expr ::= expr in_op LP exprlist RP */
177218 219, /* (224) expr ::= LP select RP */
177219 219, /* (225) expr ::= expr in_op LP select RP */
177220 219, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */
177221 219, /* (227) expr ::= EXISTS LP select RP */
177222 219, /* (228) expr ::= CASE case_operand case_exprlist case_else END */
177223 282, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */
177224 282, /* (230) case_exprlist ::= WHEN expr THEN expr */
177225 283, /* (231) case_else ::= ELSE expr */
177226 283, /* (232) case_else ::= */
177227 281, /* (233) case_operand ::= */
177228 264, /* (234) exprlist ::= */
177229 255, /* (235) nexprlist ::= nexprlist COMMA expr */
177230 255, /* (236) nexprlist ::= expr */
177231 280, /* (237) paren_exprlist ::= */
177232 280, /* (238) paren_exprlist ::= LP exprlist RP */
177233 192, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
177234 284, /* (240) uniqueflag ::= UNIQUE */
177235 284, /* (241) uniqueflag ::= */
177236 223, /* (242) eidlist_opt ::= */
177237 223, /* (243) eidlist_opt ::= LP eidlist RP */
177238 234, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */
177239 234, /* (245) eidlist ::= nm collate sortorder */
177240 285, /* (246) collate ::= */
177241 285, /* (247) collate ::= COLLATE ID|STRING */
177242 192, /* (248) cmd ::= DROP INDEX ifexists fullname */
177243 192, /* (249) cmd ::= VACUUM vinto */
177244 192, /* (250) cmd ::= VACUUM nm vinto */
177245 286, /* (251) vinto ::= INTO expr */
177246 286, /* (252) vinto ::= */
177247 192, /* (253) cmd ::= PRAGMA nm dbnm */
177248 192, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */
177249 192, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */
177250 192, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */
177251 192, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */
177252 213, /* (258) plus_num ::= PLUS INTEGER|FLOAT */
177253 214, /* (259) minus_num ::= MINUS INTEGER|FLOAT */
177254 192, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
177255 288, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
177256 290, /* (262) trigger_time ::= BEFORE|AFTER */
177257 290, /* (263) trigger_time ::= INSTEAD OF */
177258 290, /* (264) trigger_time ::= */
177259 291, /* (265) trigger_event ::= DELETE|INSERT */
177260 291, /* (266) trigger_event ::= UPDATE */
177261 291, /* (267) trigger_event ::= UPDATE OF idlist */
177262 293, /* (268) when_clause ::= */
177263 293, /* (269) when_clause ::= WHEN expr */
177264 289, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
177265 289, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */
177266 295, /* (272) trnm ::= nm DOT nm */
177267 296, /* (273) tridxby ::= INDEXED BY nm */
177268 296, /* (274) tridxby ::= NOT INDEXED */
177269 294, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
177270 294, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
177271 294, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
177272 294, /* (278) trigger_cmd ::= scanpt select scanpt */
177273 219, /* (279) expr ::= RAISE LP IGNORE RP */
177274 219, /* (280) expr ::= RAISE LP raisetype COMMA expr RP */
177275 238, /* (281) raisetype ::= ROLLBACK */
177276 238, /* (282) raisetype ::= ABORT */
177277 238, /* (283) raisetype ::= FAIL */
177278 192, /* (284) cmd ::= DROP TRIGGER ifexists fullname */
177279 192, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
177280 192, /* (286) cmd ::= DETACH database_kw_opt expr */
177281 298, /* (287) key_opt ::= */
177282 298, /* (288) key_opt ::= KEY expr */
177283 192, /* (289) cmd ::= REINDEX */
177284 192, /* (290) cmd ::= REINDEX nm dbnm */
177285 192, /* (291) cmd ::= ANALYZE */
177286 192, /* (292) cmd ::= ANALYZE nm dbnm */
177287 192, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */
177288 192, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
177289 192, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
177290 299, /* (296) add_column_fullname ::= fullname */
177291 192, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
177292 192, /* (298) cmd ::= create_vtab */
177293 192, /* (299) cmd ::= create_vtab LP vtabarglist RP */
177294 301, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
177295 303, /* (301) vtabarg ::= */
177296 304, /* (302) vtabargtoken ::= ANY */
177297 304, /* (303) vtabargtoken ::= lp anylist RP */
177298 305, /* (304) lp ::= LP */
177299 269, /* (305) with ::= WITH wqlist */
177300 269, /* (306) with ::= WITH RECURSIVE wqlist */
177301 308, /* (307) wqas ::= AS */
177302 308, /* (308) wqas ::= AS MATERIALIZED */
177303 308, /* (309) wqas ::= AS NOT MATERIALIZED */
177304 307, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */
177305 309, /* (311) withnm ::= nm */
177306 243, /* (312) wqlist ::= wqitem */
177307 243, /* (313) wqlist ::= wqlist COMMA wqitem */
177308 310, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */
177309 311, /* (315) windowdefn ::= nm AS LP window RP */
177310 312, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
177311 312, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
177312 312, /* (318) window ::= ORDER BY sortlist frame_opt */
177313 312, /* (319) window ::= nm ORDER BY sortlist frame_opt */
177314 312, /* (320) window ::= nm frame_opt */
177315 313, /* (321) frame_opt ::= */
177316 313, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
177317 313, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
177318 317, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */
177319 319, /* (325) frame_bound_s ::= frame_bound */
177320 319, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */
177321 320, /* (327) frame_bound_e ::= frame_bound */
177322 320, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */
177323 318, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */
177324 318, /* (330) frame_bound ::= CURRENT ROW */
177325 321, /* (331) frame_exclude_opt ::= */
177326 321, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */
177327 322, /* (333) frame_exclude ::= NO OTHERS */
177328 322, /* (334) frame_exclude ::= CURRENT ROW */
177329 322, /* (335) frame_exclude ::= GROUP|TIES */
177330 253, /* (336) window_clause ::= WINDOW windowdefn_list */
177331 276, /* (337) filter_over ::= filter_clause over_clause */
177332 276, /* (338) filter_over ::= over_clause */
177333 276, /* (339) filter_over ::= filter_clause */
177334 316, /* (340) over_clause ::= OVER LP window RP */
177335 316, /* (341) over_clause ::= OVER nm */
177336 315, /* (342) filter_clause ::= FILTER LP WHERE expr RP */
177337 218, /* (343) term ::= QNUMBER */
177338 187, /* (344) input ::= cmdlist */
177339 188, /* (345) cmdlist ::= cmdlist ecmd */
177340 188, /* (346) cmdlist ::= ecmd */
177341 189, /* (347) ecmd ::= SEMI */
177342 189, /* (348) ecmd ::= cmdx SEMI */
177343 189, /* (349) ecmd ::= explain cmdx SEMI */
177344 194, /* (350) trans_opt ::= */
177345 194, /* (351) trans_opt ::= TRANSACTION */
177346 194, /* (352) trans_opt ::= TRANSACTION nm */
177347 196, /* (353) savepoint_opt ::= SAVEPOINT */
177348 196, /* (354) savepoint_opt ::= */
177349 192, /* (355) cmd ::= create_table create_table_args */
177350 205, /* (356) table_option_set ::= table_option */
177351 203, /* (357) columnlist ::= columnlist COMMA columnname carglist */
177352 203, /* (358) columnlist ::= columnname carglist */
177353 195, /* (359) nm ::= ID|INDEXED|JOIN_KW */
177354 195, /* (360) nm ::= STRING */
177355 210, /* (361) typetoken ::= typename */
177356 211, /* (362) typename ::= ID|STRING */
177357 212, /* (363) signed ::= plus_num */
177358 212, /* (364) signed ::= minus_num */
177359 209, /* (365) carglist ::= carglist ccons */
177360 209, /* (366) carglist ::= */
177361 217, /* (367) ccons ::= NULL onconf */
177362 217, /* (368) ccons ::= GENERATED ALWAYS AS generated */
177363 217, /* (369) ccons ::= AS generated */
177364 204, /* (370) conslist_opt ::= COMMA conslist */
177365 230, /* (371) conslist ::= conslist tconscomma tcons */
177366 230, /* (372) conslist ::= tcons */
177367 231, /* (373) tconscomma ::= */
177368 235, /* (374) defer_subclause_opt ::= defer_subclause */
177369 237, /* (375) resolvetype ::= raisetype */
177370 241, /* (376) selectnowith ::= oneselect */
177371 242, /* (377) oneselect ::= values */
177372 257, /* (378) sclp ::= selcollist COMMA */
177373 258, /* (379) as ::= ID|STRING */
177374 267, /* (380) indexed_opt ::= indexed_by */
177375 275, /* (381) returning ::= */
177376 219, /* (382) expr ::= term */
177377 277, /* (383) likeop ::= LIKE_KW|MATCH */
177378 281, /* (384) case_operand ::= expr */
177379 264, /* (385) exprlist ::= nexprlist */
177380 287, /* (386) nmnum ::= plus_num */
177381 287, /* (387) nmnum ::= nm */
177382 287, /* (388) nmnum ::= ON */
177383 287, /* (389) nmnum ::= DELETE */
177384 287, /* (390) nmnum ::= DEFAULT */
177385 213, /* (391) plus_num ::= INTEGER|FLOAT */
177386 292, /* (392) foreach_clause ::= */
177387 292, /* (393) foreach_clause ::= FOR EACH ROW */
177388 295, /* (394) trnm ::= nm */
177389 296, /* (395) tridxby ::= */
177390 297, /* (396) database_kw_opt ::= DATABASE */
177391 297, /* (397) database_kw_opt ::= */
177392 300, /* (398) kwcolumn_opt ::= */
177393 300, /* (399) kwcolumn_opt ::= COLUMNKW */
177394 302, /* (400) vtabarglist ::= vtabarg */
177395 302, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */
177396 303, /* (402) vtabarg ::= vtabarg vtabargtoken */
177397 306, /* (403) anylist ::= */
177398 306, /* (404) anylist ::= anylist LP anylist RP */
177399 306, /* (405) anylist ::= anylist ANY */
177400 269, /* (406) with ::= */
177401 310, /* (407) windowdefn_list ::= windowdefn */
177402 312, /* (408) window ::= frame_opt */
177403 };
177404
177405 /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
177406 ** of symbols on the right-hand side of that rule. */
177407 static const signed char yyRuleInfoNRhs[] = {
@@ -177757,20 +177863,20 @@
177863 break;
177864 case 2: /* cmdx ::= cmd */
177865 { sqlite3FinishCoding(pParse); }
177866 break;
177867 case 3: /* cmd ::= BEGIN transtype trans_opt */
177868 {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy502);}
177869 break;
177870 case 4: /* transtype ::= */
177871 {yymsp[1].minor.yy502 = TK_DEFERRED;}
177872 break;
177873 case 5: /* transtype ::= DEFERRED */
177874 case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
177875 case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
177876 case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324);
177877 {yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/}
177878 break;
177879 case 8: /* cmd ::= COMMIT|END trans_opt */
177880 case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
177881 {sqlite3EndTransaction(pParse,yymsp[-1].major);}
177882 break;
@@ -177789,11 +177895,11 @@
177895 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
177896 }
177897 break;
177898 case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
177899 {
177900 sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy502,0,0,yymsp[-2].minor.yy502);
177901 }
177902 break;
177903 case 14: /* createkw ::= CREATE */
177904 {disableLookaside(pParse);}
177905 break;
@@ -177803,56 +177909,56 @@
177909 case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62);
177910 case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72);
177911 case 81: /* ifexists ::= */ yytestcase(yyruleno==81);
177912 case 100: /* distinct ::= */ yytestcase(yyruleno==100);
177913 case 246: /* collate ::= */ yytestcase(yyruleno==246);
177914 {yymsp[1].minor.yy502 = 0;}
177915 break;
177916 case 16: /* ifnotexists ::= IF NOT EXISTS */
177917 {yymsp[-2].minor.yy502 = 1;}
177918 break;
177919 case 17: /* temp ::= TEMP */
177920 {yymsp[0].minor.yy502 = pParse->db->init.busy==0;}
177921 break;
177922 case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */
177923 {
177924 sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy9,0);
177925 }
177926 break;
177927 case 20: /* create_table_args ::= AS select */
177928 {
177929 sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy637);
177930 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy637);
177931 }
177932 break;
177933 case 21: /* table_option_set ::= */
177934 {yymsp[1].minor.yy9 = 0;}
177935 break;
177936 case 22: /* table_option_set ::= table_option_set COMMA table_option */
177937 {yylhsminor.yy9 = yymsp[-2].minor.yy9|yymsp[0].minor.yy9;}
177938 yymsp[-2].minor.yy9 = yylhsminor.yy9;
177939 break;
177940 case 23: /* table_option ::= WITHOUT nm */
177941 {
177942 if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
177943 yymsp[-1].minor.yy9 = TF_WithoutRowid | TF_NoVisibleRowid;
177944 }else{
177945 yymsp[-1].minor.yy9 = 0;
177946 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
177947 }
177948 }
177949 break;
177950 case 24: /* table_option ::= nm */
177951 {
177952 if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){
177953 yylhsminor.yy9 = TF_Strict;
177954 }else{
177955 yylhsminor.yy9 = 0;
177956 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
177957 }
177958 }
177959 yymsp[0].minor.yy9 = yylhsminor.yy9;
177960 break;
177961 case 25: /* columnname ::= nm typetoken */
177962 {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);}
177963 break;
177964 case 26: /* typetoken ::= */
@@ -177874,11 +177980,11 @@
177980 {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
177981 break;
177982 case 30: /* scanpt ::= */
177983 {
177984 assert( yyLookahead!=YYNOCODE );
177985 yymsp[1].minor.yy342 = yyLookaheadToken.z;
177986 }
177987 break;
177988 case 31: /* scantok ::= */
177989 {
177990 assert( yyLookahead!=YYNOCODE );
@@ -177888,21 +177994,21 @@
177994 case 32: /* ccons ::= CONSTRAINT nm */
177995 case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67);
177996 {pParse->constraintName = yymsp[0].minor.yy0;}
177997 break;
177998 case 33: /* ccons ::= DEFAULT scantok term */
177999 {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy590,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
178000 break;
178001 case 34: /* ccons ::= DEFAULT LP expr RP */
178002 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy590,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
178003 break;
178004 case 35: /* ccons ::= DEFAULT PLUS scantok term */
178005 {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy590,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);}
178006 break;
178007 case 36: /* ccons ::= DEFAULT MINUS scantok term */
178008 {
178009 Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy590, 0);
178010 sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);
178011 }
178012 break;
178013 case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */
178014 {
@@ -177913,262 +178019,262 @@
178019 }
178020 sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
178021 }
178022 break;
178023 case 38: /* ccons ::= NOT NULL onconf */
178024 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy502);}
178025 break;
178026 case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
178027 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy502,yymsp[0].minor.yy502,yymsp[-2].minor.yy502);}
178028 break;
178029 case 40: /* ccons ::= UNIQUE onconf */
178030 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy502,0,0,0,0,
178031 SQLITE_IDXTYPE_UNIQUE);}
178032 break;
178033 case 41: /* ccons ::= CHECK LP expr RP */
178034 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy590,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);}
178035 break;
178036 case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */
178037 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy402,yymsp[0].minor.yy502);}
178038 break;
178039 case 43: /* ccons ::= defer_subclause */
178040 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy502);}
178041 break;
178042 case 44: /* ccons ::= COLLATE ID|STRING */
178043 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
178044 break;
178045 case 45: /* generated ::= LP expr RP */
178046 {sqlite3AddGenerated(pParse,yymsp[-1].minor.yy590,0);}
178047 break;
178048 case 46: /* generated ::= LP expr RP ID */
178049 {sqlite3AddGenerated(pParse,yymsp[-2].minor.yy590,&yymsp[0].minor.yy0);}
178050 break;
178051 case 48: /* autoinc ::= AUTOINCR */
178052 {yymsp[0].minor.yy502 = 1;}
178053 break;
178054 case 49: /* refargs ::= */
178055 { yymsp[1].minor.yy502 = OE_None*0x0101; /* EV: R-19803-45884 */}
178056 break;
178057 case 50: /* refargs ::= refargs refarg */
178058 { yymsp[-1].minor.yy502 = (yymsp[-1].minor.yy502 & ~yymsp[0].minor.yy481.mask) | yymsp[0].minor.yy481.value; }
178059 break;
178060 case 51: /* refarg ::= MATCH nm */
178061 { yymsp[-1].minor.yy481.value = 0; yymsp[-1].minor.yy481.mask = 0x000000; }
178062 break;
178063 case 52: /* refarg ::= ON INSERT refact */
178064 { yymsp[-2].minor.yy481.value = 0; yymsp[-2].minor.yy481.mask = 0x000000; }
178065 break;
178066 case 53: /* refarg ::= ON DELETE refact */
178067 { yymsp[-2].minor.yy481.value = yymsp[0].minor.yy502; yymsp[-2].minor.yy481.mask = 0x0000ff; }
178068 break;
178069 case 54: /* refarg ::= ON UPDATE refact */
178070 { yymsp[-2].minor.yy481.value = yymsp[0].minor.yy502<<8; yymsp[-2].minor.yy481.mask = 0x00ff00; }
178071 break;
178072 case 55: /* refact ::= SET NULL */
178073 { yymsp[-1].minor.yy502 = OE_SetNull; /* EV: R-33326-45252 */}
178074 break;
178075 case 56: /* refact ::= SET DEFAULT */
178076 { yymsp[-1].minor.yy502 = OE_SetDflt; /* EV: R-33326-45252 */}
178077 break;
178078 case 57: /* refact ::= CASCADE */
178079 { yymsp[0].minor.yy502 = OE_Cascade; /* EV: R-33326-45252 */}
178080 break;
178081 case 58: /* refact ::= RESTRICT */
178082 { yymsp[0].minor.yy502 = OE_Restrict; /* EV: R-33326-45252 */}
178083 break;
178084 case 59: /* refact ::= NO ACTION */
178085 { yymsp[-1].minor.yy502 = OE_None; /* EV: R-33326-45252 */}
178086 break;
178087 case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
178088 {yymsp[-2].minor.yy502 = 0;}
178089 break;
178090 case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
178091 case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76);
178092 case 173: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==173);
178093 {yymsp[-1].minor.yy502 = yymsp[0].minor.yy502;}
178094 break;
178095 case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
178096 case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80);
178097 case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219);
178098 case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222);
178099 case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247);
178100 {yymsp[-1].minor.yy502 = 1;}
178101 break;
178102 case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
178103 {yymsp[-1].minor.yy502 = 0;}
178104 break;
178105 case 66: /* tconscomma ::= COMMA */
178106 {pParse->constraintName.n = 0;}
178107 break;
178108 case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
178109 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy402,yymsp[0].minor.yy502,yymsp[-2].minor.yy502,0);}
178110 break;
178111 case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */
178112 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy402,yymsp[0].minor.yy502,0,0,0,0,
178113 SQLITE_IDXTYPE_UNIQUE);}
178114 break;
178115 case 70: /* tcons ::= CHECK LP expr RP onconf */
178116 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy590,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);}
178117 break;
178118 case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
178119 {
178120 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy402, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy402, yymsp[-1].minor.yy502);
178121 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy502);
178122 }
178123 break;
178124 case 73: /* onconf ::= */
178125 case 75: /* orconf ::= */ yytestcase(yyruleno==75);
178126 {yymsp[1].minor.yy502 = OE_Default;}
178127 break;
178128 case 74: /* onconf ::= ON CONFLICT resolvetype */
178129 {yymsp[-2].minor.yy502 = yymsp[0].minor.yy502;}
178130 break;
178131 case 77: /* resolvetype ::= IGNORE */
178132 {yymsp[0].minor.yy502 = OE_Ignore;}
178133 break;
178134 case 78: /* resolvetype ::= REPLACE */
178135 case 174: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==174);
178136 {yymsp[0].minor.yy502 = OE_Replace;}
178137 break;
178138 case 79: /* cmd ::= DROP TABLE ifexists fullname */
178139 {
178140 sqlite3DropTable(pParse, yymsp[0].minor.yy563, 0, yymsp[-1].minor.yy502);
178141 }
178142 break;
178143 case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
178144 {
178145 sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy402, yymsp[0].minor.yy637, yymsp[-7].minor.yy502, yymsp[-5].minor.yy502);
178146 }
178147 break;
178148 case 83: /* cmd ::= DROP VIEW ifexists fullname */
178149 {
178150 sqlite3DropTable(pParse, yymsp[0].minor.yy563, 1, yymsp[-1].minor.yy502);
178151 }
178152 break;
178153 case 84: /* cmd ::= select */
178154 {
178155 SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0};
178156 if( (pParse->db->mDbFlags & DBFLAG_EncodingFixed)!=0
178157 || sqlite3ReadSchema(pParse)==SQLITE_OK
178158 ){
178159 sqlite3Select(pParse, yymsp[0].minor.yy637, &dest);
178160 }
178161 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy637);
178162 }
178163 break;
178164 case 85: /* select ::= WITH wqlist selectnowith */
178165 {yymsp[-2].minor.yy637 = attachWithToSelect(pParse,yymsp[0].minor.yy637,yymsp[-1].minor.yy125);}
178166 break;
178167 case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */
178168 {yymsp[-3].minor.yy637 = attachWithToSelect(pParse,yymsp[0].minor.yy637,yymsp[-1].minor.yy125);}
178169 break;
178170 case 87: /* select ::= selectnowith */
178171 {
178172 Select *p = yymsp[0].minor.yy637;
178173 if( p ){
178174 parserDoubleLinkSelect(pParse, p);
178175 }
178176 }
178177 break;
178178 case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */
178179 {
178180 Select *pRhs = yymsp[0].minor.yy637;
178181 Select *pLhs = yymsp[-2].minor.yy637;
178182 if( pRhs && pRhs->pPrior ){
178183 SrcList *pFrom;
178184 Token x;
178185 x.n = 0;
178186 parserDoubleLinkSelect(pParse, pRhs);
178187 pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0);
178188 pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
178189 }
178190 if( pRhs ){
178191 pRhs->op = (u8)yymsp[-1].minor.yy502;
178192 pRhs->pPrior = pLhs;
178193 if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
178194 pRhs->selFlags &= ~SF_MultiValue;
178195 if( yymsp[-1].minor.yy502!=TK_ALL ) pParse->hasCompound = 1;
178196 }else{
178197 sqlite3SelectDelete(pParse->db, pLhs);
178198 }
178199 yymsp[-2].minor.yy637 = pRhs;
178200 }
178201 break;
178202 case 89: /* multiselect_op ::= UNION */
178203 case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91);
178204 {yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-OP*/}
178205 break;
178206 case 90: /* multiselect_op ::= UNION ALL */
178207 {yymsp[-1].minor.yy502 = TK_ALL;}
178208 break;
178209 case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
178210 {
178211 yymsp[-8].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy402,yymsp[-5].minor.yy563,yymsp[-4].minor.yy590,yymsp[-3].minor.yy402,yymsp[-2].minor.yy590,yymsp[-1].minor.yy402,yymsp[-7].minor.yy502,yymsp[0].minor.yy590);
178212 }
178213 break;
178214 case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
178215 {
178216 yymsp[-9].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy402,yymsp[-6].minor.yy563,yymsp[-5].minor.yy590,yymsp[-4].minor.yy402,yymsp[-3].minor.yy590,yymsp[-1].minor.yy402,yymsp[-8].minor.yy502,yymsp[0].minor.yy590);
178217 if( yymsp[-9].minor.yy637 ){
178218 yymsp[-9].minor.yy637->pWinDefn = yymsp[-2].minor.yy483;
178219 }else{
178220 sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy483);
178221 }
178222 }
178223 break;
178224 case 94: /* values ::= VALUES LP nexprlist RP */
178225 {
178226 yymsp[-3].minor.yy637 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy402,0,0,0,0,0,SF_Values,0);
178227 }
178228 break;
178229 case 95: /* oneselect ::= mvalues */
178230 {
178231 sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy637);
178232 }
178233 break;
178234 case 96: /* mvalues ::= values COMMA LP nexprlist RP */
178235 case 97: /* mvalues ::= mvalues COMMA LP nexprlist RP */ yytestcase(yyruleno==97);
178236 {
178237 yymsp[-4].minor.yy637 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy637, yymsp[-1].minor.yy402);
178238 }
178239 break;
178240 case 98: /* distinct ::= DISTINCT */
178241 {yymsp[0].minor.yy502 = SF_Distinct;}
178242 break;
178243 case 99: /* distinct ::= ALL */
178244 {yymsp[0].minor.yy502 = SF_All;}
178245 break;
178246 case 101: /* sclp ::= */
178247 case 134: /* orderby_opt ::= */ yytestcase(yyruleno==134);
178248 case 144: /* groupby_opt ::= */ yytestcase(yyruleno==144);
178249 case 234: /* exprlist ::= */ yytestcase(yyruleno==234);
178250 case 237: /* paren_exprlist ::= */ yytestcase(yyruleno==237);
178251 case 242: /* eidlist_opt ::= */ yytestcase(yyruleno==242);
178252 {yymsp[1].minor.yy402 = 0;}
178253 break;
178254 case 102: /* selcollist ::= sclp scanpt expr scanpt as */
178255 {
178256 yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy402, yymsp[-2].minor.yy590);
178257 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy402, &yymsp[0].minor.yy0, 1);
178258 sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy402,yymsp[-3].minor.yy342,yymsp[-1].minor.yy342);
178259 }
178260 break;
178261 case 103: /* selcollist ::= sclp scanpt STAR */
178262 {
178263 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
178264 sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail));
178265 yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy402, p);
178266 }
178267 break;
178268 case 104: /* selcollist ::= sclp scanpt nm DOT STAR */
178269 {
178270 Expr *pRight, *pLeft, *pDot;
178271 pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
178272 sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail));
178273 pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0);
178274 pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
178275 yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, pDot);
178276 }
178277 break;
178278 case 105: /* as ::= AS nm */
178279 case 117: /* dbnm ::= DOT nm */ yytestcase(yyruleno==117);
178280 case 258: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==258);
@@ -178175,54 +178281,54 @@
178281 case 259: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==259);
178282 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
178283 break;
178284 case 107: /* from ::= */
178285 case 110: /* stl_prefix ::= */ yytestcase(yyruleno==110);
178286 {yymsp[1].minor.yy563 = 0;}
178287 break;
178288 case 108: /* from ::= FROM seltablist */
178289 {
178290 yymsp[-1].minor.yy563 = yymsp[0].minor.yy563;
178291 sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy563);
178292 }
178293 break;
178294 case 109: /* stl_prefix ::= seltablist joinop */
178295 {
178296 if( ALWAYS(yymsp[-1].minor.yy563 && yymsp[-1].minor.yy563->nSrc>0) ) yymsp[-1].minor.yy563->a[yymsp[-1].minor.yy563->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy502;
178297 }
178298 break;
178299 case 111: /* seltablist ::= stl_prefix nm dbnm as on_using */
178300 {
178301 yymsp[-4].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy563,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421);
178302 }
178303 break;
178304 case 112: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */
178305 {
178306 yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy421);
178307 sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy563, &yymsp[-1].minor.yy0);
178308 }
178309 break;
178310 case 113: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */
178311 {
178312 yymsp[-7].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy563,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421);
178313 sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy563, yymsp[-3].minor.yy402);
178314 }
178315 break;
178316 case 114: /* seltablist ::= stl_prefix LP select RP as on_using */
178317 {
178318 yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy637,&yymsp[0].minor.yy421);
178319 }
178320 break;
178321 case 115: /* seltablist ::= stl_prefix LP seltablist RP as on_using */
178322 {
178323 if( yymsp[-5].minor.yy563==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy421.pOn==0 && yymsp[0].minor.yy421.pUsing==0 ){
178324 yymsp[-5].minor.yy563 = yymsp[-3].minor.yy563;
178325 }else if( ALWAYS(yymsp[-3].minor.yy563!=0) && yymsp[-3].minor.yy563->nSrc==1 ){
178326 yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy421);
178327 if( yymsp[-5].minor.yy563 ){
178328 SrcItem *pNew = &yymsp[-5].minor.yy563->a[yymsp[-5].minor.yy563->nSrc-1];
178329 SrcItem *pOld = yymsp[-3].minor.yy563->a;
178330 assert( pOld->fg.fixedSchema==0 );
178331 pNew->zName = pOld->zName;
178332 assert( pOld->fg.fixedSchema==0 );
178333 if( pOld->fg.isSubquery ){
178334 pNew->fg.isSubquery = 1;
@@ -178243,249 +178349,249 @@
178349 pOld->fg.isTabFunc = 0;
178350 pNew->fg.isTabFunc = 1;
178351 }
178352 pOld->zName = 0;
178353 }
178354 sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy563);
178355 }else{
178356 Select *pSubquery;
178357 sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy563);
178358 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy563,0,0,0,0,SF_NestedFrom,0);
178359 yymsp[-5].minor.yy563 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy563,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy421);
178360 }
178361 }
178362 break;
178363 case 116: /* dbnm ::= */
178364 case 131: /* indexed_opt ::= */ yytestcase(yyruleno==131);
178365 {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
178366 break;
178367 case 118: /* fullname ::= nm */
178368 {
178369 yylhsminor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
178370 if( IN_RENAME_OBJECT && yylhsminor.yy563 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy563->a[0].zName, &yymsp[0].minor.yy0);
178371 }
178372 yymsp[0].minor.yy563 = yylhsminor.yy563;
178373 break;
178374 case 119: /* fullname ::= nm DOT nm */
178375 {
178376 yylhsminor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
178377 if( IN_RENAME_OBJECT && yylhsminor.yy563 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy563->a[0].zName, &yymsp[0].minor.yy0);
178378 }
178379 yymsp[-2].minor.yy563 = yylhsminor.yy563;
178380 break;
178381 case 120: /* xfullname ::= nm */
178382 {yymsp[0].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
178383 break;
178384 case 121: /* xfullname ::= nm DOT nm */
178385 {yymsp[-2].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
178386 break;
178387 case 122: /* xfullname ::= nm DOT nm AS nm */
178388 {
178389 yymsp[-4].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
178390 if( yymsp[-4].minor.yy563 ) yymsp[-4].minor.yy563->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178391 }
178392 break;
178393 case 123: /* xfullname ::= nm AS nm */
178394 {
178395 yymsp[-2].minor.yy563 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
178396 if( yymsp[-2].minor.yy563 ) yymsp[-2].minor.yy563->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
178397 }
178398 break;
178399 case 124: /* joinop ::= COMMA|JOIN */
178400 { yymsp[0].minor.yy502 = JT_INNER; }
178401 break;
178402 case 125: /* joinop ::= JOIN_KW JOIN */
178403 {yymsp[-1].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
178404 break;
178405 case 126: /* joinop ::= JOIN_KW nm JOIN */
178406 {yymsp[-2].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
178407 break;
178408 case 127: /* joinop ::= JOIN_KW nm nm JOIN */
178409 {yymsp[-3].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
178410 break;
178411 case 128: /* on_using ::= ON expr */
178412 {yymsp[-1].minor.yy421.pOn = yymsp[0].minor.yy590; yymsp[-1].minor.yy421.pUsing = 0;}
178413 break;
178414 case 129: /* on_using ::= USING LP idlist RP */
178415 {yymsp[-3].minor.yy421.pOn = 0; yymsp[-3].minor.yy421.pUsing = yymsp[-1].minor.yy204;}
178416 break;
178417 case 130: /* on_using ::= */
178418 {yymsp[1].minor.yy421.pOn = 0; yymsp[1].minor.yy421.pUsing = 0;}
178419 break;
178420 case 132: /* indexed_by ::= INDEXED BY nm */
178421 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
178422 break;
178423 case 133: /* indexed_by ::= NOT INDEXED */
178424 {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
178425 break;
178426 case 135: /* orderby_opt ::= ORDER BY sortlist */
178427 case 145: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==145);
178428 {yymsp[-2].minor.yy402 = yymsp[0].minor.yy402;}
178429 break;
178430 case 136: /* sortlist ::= sortlist COMMA expr sortorder nulls */
178431 {
178432 yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402,yymsp[-2].minor.yy590);
178433 sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy402,yymsp[-1].minor.yy502,yymsp[0].minor.yy502);
178434 }
178435 break;
178436 case 137: /* sortlist ::= expr sortorder nulls */
178437 {
178438 yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy590); /*A-overwrites-Y*/
178439 sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy402,yymsp[-1].minor.yy502,yymsp[0].minor.yy502);
178440 }
178441 break;
178442 case 138: /* sortorder ::= ASC */
178443 {yymsp[0].minor.yy502 = SQLITE_SO_ASC;}
178444 break;
178445 case 139: /* sortorder ::= DESC */
178446 {yymsp[0].minor.yy502 = SQLITE_SO_DESC;}
178447 break;
178448 case 140: /* sortorder ::= */
178449 case 143: /* nulls ::= */ yytestcase(yyruleno==143);
178450 {yymsp[1].minor.yy502 = SQLITE_SO_UNDEFINED;}
178451 break;
178452 case 141: /* nulls ::= NULLS FIRST */
178453 {yymsp[-1].minor.yy502 = SQLITE_SO_ASC;}
178454 break;
178455 case 142: /* nulls ::= NULLS LAST */
178456 {yymsp[-1].minor.yy502 = SQLITE_SO_DESC;}
178457 break;
178458 case 146: /* having_opt ::= */
178459 case 148: /* limit_opt ::= */ yytestcase(yyruleno==148);
178460 case 153: /* where_opt ::= */ yytestcase(yyruleno==153);
178461 case 155: /* where_opt_ret ::= */ yytestcase(yyruleno==155);
178462 case 232: /* case_else ::= */ yytestcase(yyruleno==232);
178463 case 233: /* case_operand ::= */ yytestcase(yyruleno==233);
178464 case 252: /* vinto ::= */ yytestcase(yyruleno==252);
178465 {yymsp[1].minor.yy590 = 0;}
178466 break;
178467 case 147: /* having_opt ::= HAVING expr */
178468 case 154: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==154);
178469 case 156: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==156);
178470 case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231);
178471 case 251: /* vinto ::= INTO expr */ yytestcase(yyruleno==251);
178472 {yymsp[-1].minor.yy590 = yymsp[0].minor.yy590;}
178473 break;
178474 case 149: /* limit_opt ::= LIMIT expr */
178475 {yymsp[-1].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy590,0);}
178476 break;
178477 case 150: /* limit_opt ::= LIMIT expr OFFSET expr */
178478 {yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);}
178479 break;
178480 case 151: /* limit_opt ::= LIMIT expr COMMA expr */
178481 {yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy590,yymsp[-2].minor.yy590);}
178482 break;
178483 case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
178484 {
178485 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy563, &yymsp[-1].minor.yy0);
178486 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy563,yymsp[0].minor.yy590,0,0);
178487 }
178488 break;
178489 case 157: /* where_opt_ret ::= RETURNING selcollist */
178490 {sqlite3AddReturning(pParse,yymsp[0].minor.yy402); yymsp[-1].minor.yy590 = 0;}
178491 break;
178492 case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */
178493 {sqlite3AddReturning(pParse,yymsp[0].minor.yy402); yymsp[-3].minor.yy590 = yymsp[-2].minor.yy590;}
178494 break;
178495 case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
178496 {
178497 sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy563, &yymsp[-4].minor.yy0);
178498 sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy402,"set list");
178499 if( yymsp[-1].minor.yy563 ){
178500 SrcList *pFromClause = yymsp[-1].minor.yy563;
178501 if( pFromClause->nSrc>1 ){
178502 Select *pSubquery;
178503 Token as;
178504 pSubquery = sqlite3SelectNew(pParse,0,pFromClause,0,0,0,0,SF_NestedFrom,0);
178505 as.n = 0;
178506 as.z = 0;
178507 pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0);
178508 }
178509 yymsp[-5].minor.yy563 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy563, pFromClause);
178510 }
178511 sqlite3Update(pParse,yymsp[-5].minor.yy563,yymsp[-2].minor.yy402,yymsp[0].minor.yy590,yymsp[-6].minor.yy502,0,0,0);
178512 }
178513 break;
178514 case 160: /* setlist ::= setlist COMMA nm EQ expr */
178515 {
178516 yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy402, yymsp[0].minor.yy590);
178517 sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy402, &yymsp[-2].minor.yy0, 1);
178518 }
178519 break;
178520 case 161: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
178521 {
178522 yymsp[-6].minor.yy402 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy402, yymsp[-3].minor.yy204, yymsp[0].minor.yy590);
178523 }
178524 break;
178525 case 162: /* setlist ::= nm EQ expr */
178526 {
178527 yylhsminor.yy402 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy590);
178528 sqlite3ExprListSetName(pParse, yylhsminor.yy402, &yymsp[-2].minor.yy0, 1);
178529 }
178530 yymsp[-2].minor.yy402 = yylhsminor.yy402;
178531 break;
178532 case 163: /* setlist ::= LP idlist RP EQ expr */
178533 {
178534 yymsp[-4].minor.yy402 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy204, yymsp[0].minor.yy590);
178535 }
178536 break;
178537 case 164: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
178538 {
178539 sqlite3Insert(pParse, yymsp[-3].minor.yy563, yymsp[-1].minor.yy637, yymsp[-2].minor.yy204, yymsp[-5].minor.yy502, yymsp[0].minor.yy403);
178540 }
178541 break;
178542 case 165: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */
178543 {
178544 sqlite3Insert(pParse, yymsp[-4].minor.yy563, 0, yymsp[-3].minor.yy204, yymsp[-6].minor.yy502, 0);
178545 }
178546 break;
178547 case 166: /* upsert ::= */
178548 { yymsp[1].minor.yy403 = 0; }
178549 break;
178550 case 167: /* upsert ::= RETURNING selcollist */
178551 { yymsp[-1].minor.yy403 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy402); }
178552 break;
178553 case 168: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */
178554 { yymsp[-11].minor.yy403 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy402,yymsp[-6].minor.yy590,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590,yymsp[0].minor.yy403);}
178555 break;
178556 case 169: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */
178557 { yymsp[-8].minor.yy403 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy402,yymsp[-3].minor.yy590,0,0,yymsp[0].minor.yy403); }
178558 break;
178559 case 170: /* upsert ::= ON CONFLICT DO NOTHING returning */
178560 { yymsp[-4].minor.yy403 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); }
178561 break;
178562 case 171: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */
178563 { yymsp[-7].minor.yy403 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590,0);}
178564 break;
178565 case 172: /* returning ::= RETURNING selcollist */
178566 {sqlite3AddReturning(pParse,yymsp[0].minor.yy402);}
178567 break;
178568 case 175: /* idlist_opt ::= */
178569 {yymsp[1].minor.yy204 = 0;}
178570 break;
178571 case 176: /* idlist_opt ::= LP idlist RP */
178572 {yymsp[-2].minor.yy204 = yymsp[-1].minor.yy204;}
178573 break;
178574 case 177: /* idlist ::= idlist COMMA nm */
178575 {yymsp[-2].minor.yy204 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy204,&yymsp[0].minor.yy0);}
178576 break;
178577 case 178: /* idlist ::= nm */
178578 {yymsp[0].minor.yy204 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
178579 break;
178580 case 179: /* expr ::= LP expr RP */
178581 {yymsp[-2].minor.yy590 = yymsp[-1].minor.yy590;}
178582 break;
178583 case 180: /* expr ::= ID|INDEXED|JOIN_KW */
178584 {yymsp[0].minor.yy590=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178585 break;
178586 case 181: /* expr ::= nm DOT nm */
178587 {
178588 Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0);
178589 Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0);
178590 yylhsminor.yy590 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
178591 }
178592 yymsp[-2].minor.yy590 = yylhsminor.yy590;
178593 break;
178594 case 182: /* expr ::= nm DOT nm DOT nm */
178595 {
178596 Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-4].minor.yy0);
178597 Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0);
@@ -178492,378 +178598,378 @@
178598 Expr *temp3 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0);
178599 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
178600 if( IN_RENAME_OBJECT ){
178601 sqlite3RenameTokenRemap(pParse, 0, temp1);
178602 }
178603 yylhsminor.yy590 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
178604 }
178605 yymsp[-4].minor.yy590 = yylhsminor.yy590;
178606 break;
178607 case 183: /* term ::= NULL|FLOAT|BLOB */
178608 case 184: /* term ::= STRING */ yytestcase(yyruleno==184);
178609 {yymsp[0].minor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
178610 break;
178611 case 185: /* term ::= INTEGER */
178612 {
178613 yylhsminor.yy590 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
178614 if( yylhsminor.yy590 ) yylhsminor.yy590->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail);
178615 }
178616 yymsp[0].minor.yy590 = yylhsminor.yy590;
178617 break;
178618 case 186: /* expr ::= VARIABLE */
178619 {
178620 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
178621 u32 n = yymsp[0].minor.yy0.n;
178622 yymsp[0].minor.yy590 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
178623 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy590, n);
178624 }else{
178625 /* When doing a nested parse, one can include terms in an expression
178626 ** that look like this: #1 #2 ... These terms refer to registers
178627 ** in the virtual machine. #N is the N-th register. */
178628 Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
178629 assert( t.n>=2 );
178630 if( pParse->nested==0 ){
178631 parserSyntaxError(pParse, &t);
178632 yymsp[0].minor.yy590 = 0;
178633 }else{
178634 yymsp[0].minor.yy590 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
178635 if( yymsp[0].minor.yy590 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy590->iTable);
178636 }
178637 }
178638 }
178639 break;
178640 case 187: /* expr ::= expr COLLATE ID|STRING */
178641 {
178642 yymsp[-2].minor.yy590 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy590, &yymsp[0].minor.yy0, 1);
178643 }
178644 break;
178645 case 188: /* expr ::= CAST LP expr AS typetoken RP */
178646 {
178647 yymsp[-5].minor.yy590 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
178648 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy590, yymsp[-3].minor.yy590, 0);
178649 }
178650 break;
178651 case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */
178652 {
178653 yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy502);
178654 }
178655 yymsp[-4].minor.yy590 = yylhsminor.yy590;
178656 break;
178657 case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */
178658 {
178659 yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy402, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy502);
178660 sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy590, yymsp[-1].minor.yy402);
178661 }
178662 yymsp[-7].minor.yy590 = yylhsminor.yy590;
178663 break;
178664 case 191: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */
178665 {
178666 yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
178667 }
178668 yymsp[-3].minor.yy590 = yylhsminor.yy590;
178669 break;
178670 case 192: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */
178671 {
178672 yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy402, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy502);
178673 sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483);
178674 }
178675 yymsp[-5].minor.yy590 = yylhsminor.yy590;
178676 break;
178677 case 193: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */
178678 {
178679 yylhsminor.yy590 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy402, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy502);
178680 sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483);
178681 sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy590, yymsp[-2].minor.yy402);
178682 }
178683 yymsp[-8].minor.yy590 = yylhsminor.yy590;
178684 break;
178685 case 194: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */
178686 {
178687 yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
178688 sqlite3WindowAttach(pParse, yylhsminor.yy590, yymsp[0].minor.yy483);
178689 }
178690 yymsp[-4].minor.yy590 = yylhsminor.yy590;
178691 break;
178692 case 195: /* term ::= CTIME_KW */
178693 {
178694 yylhsminor.yy590 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
178695 }
178696 yymsp[0].minor.yy590 = yylhsminor.yy590;
178697 break;
178698 case 196: /* expr ::= LP nexprlist COMMA expr RP */
178699 {
178700 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy402, yymsp[-1].minor.yy590);
178701 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
178702 if( yymsp[-4].minor.yy590 ){
178703 yymsp[-4].minor.yy590->x.pList = pList;
178704 if( ALWAYS(pList->nExpr) ){
178705 yymsp[-4].minor.yy590->flags |= pList->a[0].pExpr->flags & EP_Propagate;
178706 }
178707 }else{
178708 sqlite3ExprListDelete(pParse->db, pList);
178709 }
178710 }
178711 break;
178712 case 197: /* expr ::= expr AND expr */
178713 {yymsp[-2].minor.yy590=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);}
178714 break;
178715 case 198: /* expr ::= expr OR expr */
178716 case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199);
178717 case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200);
178718 case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201);
178719 case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202);
178720 case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203);
178721 case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204);
178722 {yymsp[-2].minor.yy590=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);}
178723 break;
178724 case 205: /* likeop ::= NOT LIKE_KW|MATCH */
178725 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
178726 break;
178727 case 206: /* expr ::= expr likeop expr */
178728 {
178729 ExprList *pList;
178730 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
178731 yymsp[-1].minor.yy0.n &= 0x7fffffff;
178732 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy590);
178733 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy590);
178734 yymsp[-2].minor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178735 if( bNot ) yymsp[-2].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy590, 0);
178736 if( yymsp[-2].minor.yy590 ) yymsp[-2].minor.yy590->flags |= EP_InfixFunc;
178737 }
178738 break;
178739 case 207: /* expr ::= expr likeop expr ESCAPE expr */
178740 {
178741 ExprList *pList;
178742 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
178743 yymsp[-3].minor.yy0.n &= 0x7fffffff;
178744 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590);
178745 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy590);
178746 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy590);
178747 yymsp[-4].minor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
178748 if( bNot ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178749 if( yymsp[-4].minor.yy590 ) yymsp[-4].minor.yy590->flags |= EP_InfixFunc;
178750 }
178751 break;
178752 case 208: /* expr ::= expr ISNULL|NOTNULL */
178753 {yymsp[-1].minor.yy590 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy590,0);}
178754 break;
178755 case 209: /* expr ::= expr NOT NULL */
178756 {yymsp[-2].minor.yy590 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy590,0);}
178757 break;
178758 case 210: /* expr ::= expr IS expr */
178759 {
178760 yymsp[-2].minor.yy590 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy590,yymsp[0].minor.yy590);
178761 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-2].minor.yy590, TK_ISNULL);
178762 }
178763 break;
178764 case 211: /* expr ::= expr IS NOT expr */
178765 {
178766 yymsp[-3].minor.yy590 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy590,yymsp[0].minor.yy590);
178767 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-3].minor.yy590, TK_NOTNULL);
178768 }
178769 break;
178770 case 212: /* expr ::= expr IS NOT DISTINCT FROM expr */
178771 {
178772 yymsp[-5].minor.yy590 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy590,yymsp[0].minor.yy590);
178773 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-5].minor.yy590, TK_ISNULL);
178774 }
178775 break;
178776 case 213: /* expr ::= expr IS DISTINCT FROM expr */
178777 {
178778 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy590,yymsp[0].minor.yy590);
178779 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy590, yymsp[-4].minor.yy590, TK_NOTNULL);
178780 }
178781 break;
178782 case 214: /* expr ::= NOT expr */
178783 case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215);
178784 {yymsp[-1].minor.yy590 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy590, 0);/*A-overwrites-B*/}
178785 break;
178786 case 216: /* expr ::= PLUS|MINUS expr */
178787 {
178788 Expr *p = yymsp[0].minor.yy590;
178789 u8 op = yymsp[-1].major + (TK_UPLUS-TK_PLUS);
178790 assert( TK_UPLUS>TK_PLUS );
178791 assert( TK_UMINUS == TK_MINUS + (TK_UPLUS - TK_PLUS) );
178792 if( p && p->op==TK_UPLUS ){
178793 p->op = op;
178794 yymsp[-1].minor.yy590 = p;
178795 }else{
178796 yymsp[-1].minor.yy590 = sqlite3PExpr(pParse, op, p, 0);
178797 /*A-overwrites-B*/
178798 }
178799 }
178800 break;
178801 case 217: /* expr ::= expr PTR expr */
178802 {
178803 ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy590);
178804 pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy590);
178805 yylhsminor.yy590 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
178806 }
178807 yymsp[-2].minor.yy590 = yylhsminor.yy590;
178808 break;
178809 case 218: /* between_op ::= BETWEEN */
178810 case 221: /* in_op ::= IN */ yytestcase(yyruleno==221);
178811 {yymsp[0].minor.yy502 = 0;}
178812 break;
178813 case 220: /* expr ::= expr between_op expr AND expr */
178814 {
178815 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590);
178816 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy590);
178817 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy590, 0);
178818 if( yymsp[-4].minor.yy590 ){
178819 yymsp[-4].minor.yy590->x.pList = pList;
178820 }else{
178821 sqlite3ExprListDelete(pParse->db, pList);
178822 }
178823 if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178824 }
178825 break;
178826 case 223: /* expr ::= expr in_op LP exprlist RP */
178827 {
178828 if( yymsp[-1].minor.yy402==0 ){
178829 /* Expressions of the form
178830 **
178831 ** expr1 IN ()
178832 ** expr1 NOT IN ()
178833 **
178834 ** simplify to constants 0 (false) and 1 (true), respectively,
178835 ** regardless of the value of expr1.
178836 */
178837 sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy590);
178838 yymsp[-4].minor.yy590 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy502 ? "true" : "false");
178839 if( yymsp[-4].minor.yy590 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy590);
178840 }else{
178841 Expr *pRHS = yymsp[-1].minor.yy402->a[0].pExpr;
178842 if( yymsp[-1].minor.yy402->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy590->op!=TK_VECTOR ){
178843 yymsp[-1].minor.yy402->a[0].pExpr = 0;
178844 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402);
178845 pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0);
178846 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy590, pRHS);
178847 }else if( yymsp[-1].minor.yy402->nExpr==1 && pRHS->op==TK_SELECT ){
178848 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178849 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pRHS->x.pSelect);
178850 pRHS->x.pSelect = 0;
178851 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402);
178852 }else{
178853 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178854 if( yymsp[-4].minor.yy590==0 ){
178855 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy402);
178856 }else if( yymsp[-4].minor.yy590->pLeft->op==TK_VECTOR ){
178857 int nExpr = yymsp[-4].minor.yy590->pLeft->x.pList->nExpr;
178858 Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy402);
178859 if( pSelectRHS ){
178860 parserDoubleLinkSelect(pParse, pSelectRHS);
178861 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pSelectRHS);
178862 }
178863 }else{
178864 yymsp[-4].minor.yy590->x.pList = yymsp[-1].minor.yy402;
178865 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy590);
178866 }
178867 }
178868 if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178869 }
178870 }
178871 break;
178872 case 224: /* expr ::= LP select RP */
178873 {
178874 yymsp[-2].minor.yy590 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
178875 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy590, yymsp[-1].minor.yy637);
178876 }
178877 break;
178878 case 225: /* expr ::= expr in_op LP select RP */
178879 {
178880 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178881 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, yymsp[-1].minor.yy637);
178882 if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178883 }
178884 break;
178885 case 226: /* expr ::= expr in_op nm dbnm paren_exprlist */
178886 {
178887 SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
178888 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
178889 if( yymsp[0].minor.yy402 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy402);
178890 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy590, 0);
178891 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy590, pSelect);
178892 if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy590, 0);
178893 }
178894 break;
178895 case 227: /* expr ::= EXISTS LP select RP */
178896 {
178897 Expr *p;
178898 p = yymsp[-3].minor.yy590 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
178899 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy637);
178900 }
178901 break;
178902 case 228: /* expr ::= CASE case_operand case_exprlist case_else END */
178903 {
178904 yymsp[-4].minor.yy590 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy590, 0);
178905 if( yymsp[-4].minor.yy590 ){
178906 yymsp[-4].minor.yy590->x.pList = yymsp[-1].minor.yy590 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy402,yymsp[-1].minor.yy590) : yymsp[-2].minor.yy402;
178907 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy590);
178908 }else{
178909 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy402);
178910 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590);
178911 }
178912 }
178913 break;
178914 case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
178915 {
178916 yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, yymsp[-2].minor.yy590);
178917 yymsp[-4].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy402, yymsp[0].minor.yy590);
178918 }
178919 break;
178920 case 230: /* case_exprlist ::= WHEN expr THEN expr */
178921 {
178922 yymsp[-3].minor.yy402 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy590);
178923 yymsp[-3].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy402, yymsp[0].minor.yy590);
178924 }
178925 break;
178926 case 235: /* nexprlist ::= nexprlist COMMA expr */
178927 {yymsp[-2].minor.yy402 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy402,yymsp[0].minor.yy590);}
178928 break;
178929 case 236: /* nexprlist ::= expr */
178930 {yymsp[0].minor.yy402 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy590); /*A-overwrites-Y*/}
178931 break;
178932 case 238: /* paren_exprlist ::= LP exprlist RP */
178933 case 243: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==243);
178934 {yymsp[-2].minor.yy402 = yymsp[-1].minor.yy402;}
178935 break;
178936 case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
178937 {
178938 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
178939 sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy402, yymsp[-10].minor.yy502,
178940 &yymsp[-11].minor.yy0, yymsp[0].minor.yy590, SQLITE_SO_ASC, yymsp[-8].minor.yy502, SQLITE_IDXTYPE_APPDEF);
178941 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
178942 sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0);
178943 }
178944 }
178945 break;
178946 case 240: /* uniqueflag ::= UNIQUE */
178947 case 282: /* raisetype ::= ABORT */ yytestcase(yyruleno==282);
178948 {yymsp[0].minor.yy502 = OE_Abort;}
178949 break;
178950 case 241: /* uniqueflag ::= */
178951 {yymsp[1].minor.yy502 = OE_None;}
178952 break;
178953 case 244: /* eidlist ::= eidlist COMMA nm collate sortorder */
178954 {
178955 yymsp[-4].minor.yy402 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy402, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502);
178956 }
178957 break;
178958 case 245: /* eidlist ::= nm collate sortorder */
178959 {
178960 yymsp[-2].minor.yy402 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502); /*A-overwrites-Y*/
178961 }
178962 break;
178963 case 248: /* cmd ::= DROP INDEX ifexists fullname */
178964 {sqlite3DropIndex(pParse, yymsp[0].minor.yy563, yymsp[-1].minor.yy502);}
178965 break;
178966 case 249: /* cmd ::= VACUUM vinto */
178967 {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy590);}
178968 break;
178969 case 250: /* cmd ::= VACUUM nm vinto */
178970 {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy590);}
178971 break;
178972 case 253: /* cmd ::= PRAGMA nm dbnm */
178973 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
178974 break;
178975 case 254: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
@@ -178881,54 +178987,54 @@
178987 case 260: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
178988 {
178989 Token all;
178990 all.z = yymsp[-3].minor.yy0.z;
178991 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
178992 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy319, &all);
178993 }
178994 break;
178995 case 261: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
178996 {
178997 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy502, yymsp[-4].minor.yy28.a, yymsp[-4].minor.yy28.b, yymsp[-2].minor.yy563, yymsp[0].minor.yy590, yymsp[-10].minor.yy502, yymsp[-8].minor.yy502);
178998 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
178999 }
179000 break;
179001 case 262: /* trigger_time ::= BEFORE|AFTER */
179002 { yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/ }
179003 break;
179004 case 263: /* trigger_time ::= INSTEAD OF */
179005 { yymsp[-1].minor.yy502 = TK_INSTEAD;}
179006 break;
179007 case 264: /* trigger_time ::= */
179008 { yymsp[1].minor.yy502 = TK_BEFORE; }
179009 break;
179010 case 265: /* trigger_event ::= DELETE|INSERT */
179011 case 266: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==266);
179012 {yymsp[0].minor.yy28.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy28.b = 0;}
179013 break;
179014 case 267: /* trigger_event ::= UPDATE OF idlist */
179015 {yymsp[-2].minor.yy28.a = TK_UPDATE; yymsp[-2].minor.yy28.b = yymsp[0].minor.yy204;}
179016 break;
179017 case 268: /* when_clause ::= */
179018 case 287: /* key_opt ::= */ yytestcase(yyruleno==287);
179019 { yymsp[1].minor.yy590 = 0; }
179020 break;
179021 case 269: /* when_clause ::= WHEN expr */
179022 case 288: /* key_opt ::= KEY expr */ yytestcase(yyruleno==288);
179023 { yymsp[-1].minor.yy590 = yymsp[0].minor.yy590; }
179024 break;
179025 case 270: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
179026 {
179027 assert( yymsp[-2].minor.yy319!=0 );
179028 yymsp[-2].minor.yy319->pLast->pNext = yymsp[-1].minor.yy319;
179029 yymsp[-2].minor.yy319->pLast = yymsp[-1].minor.yy319;
179030 }
179031 break;
179032 case 271: /* trigger_cmd_list ::= trigger_cmd SEMI */
179033 {
179034 assert( yymsp[-1].minor.yy319!=0 );
179035 yymsp[-1].minor.yy319->pLast = yymsp[-1].minor.yy319;
179036 }
179037 break;
179038 case 272: /* trnm ::= nm DOT nm */
179039 {
179040 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
@@ -178950,62 +179056,62 @@
179056 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
179057 "within triggers");
179058 }
179059 break;
179060 case 275: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */
179061 {yylhsminor.yy319 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy563, yymsp[-3].minor.yy402, yymsp[-1].minor.yy590, yymsp[-7].minor.yy502, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy342);}
179062 yymsp[-8].minor.yy319 = yylhsminor.yy319;
179063 break;
179064 case 276: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
179065 {
179066 yylhsminor.yy319 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy204,yymsp[-2].minor.yy637,yymsp[-6].minor.yy502,yymsp[-1].minor.yy403,yymsp[-7].minor.yy342,yymsp[0].minor.yy342);/*yylhsminor.yy319-overwrites-yymsp[-6].minor.yy502*/
179067 }
179068 yymsp[-7].minor.yy319 = yylhsminor.yy319;
179069 break;
179070 case 277: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
179071 {yylhsminor.yy319 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy590, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy342);}
179072 yymsp[-5].minor.yy319 = yylhsminor.yy319;
179073 break;
179074 case 278: /* trigger_cmd ::= scanpt select scanpt */
179075 {yylhsminor.yy319 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy637, yymsp[-2].minor.yy342, yymsp[0].minor.yy342); /*yylhsminor.yy319-overwrites-yymsp[-1].minor.yy637*/}
179076 yymsp[-2].minor.yy319 = yylhsminor.yy319;
179077 break;
179078 case 279: /* expr ::= RAISE LP IGNORE RP */
179079 {
179080 yymsp[-3].minor.yy590 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
179081 if( yymsp[-3].minor.yy590 ){
179082 yymsp[-3].minor.yy590->affExpr = OE_Ignore;
179083 }
179084 }
179085 break;
179086 case 280: /* expr ::= RAISE LP raisetype COMMA expr RP */
179087 {
179088 yymsp[-5].minor.yy590 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy590, 0);
179089 if( yymsp[-5].minor.yy590 ) {
179090 yymsp[-5].minor.yy590->affExpr = (char)yymsp[-3].minor.yy502;
179091 }
179092 }
179093 break;
179094 case 281: /* raisetype ::= ROLLBACK */
179095 {yymsp[0].minor.yy502 = OE_Rollback;}
179096 break;
179097 case 283: /* raisetype ::= FAIL */
179098 {yymsp[0].minor.yy502 = OE_Fail;}
179099 break;
179100 case 284: /* cmd ::= DROP TRIGGER ifexists fullname */
179101 {
179102 sqlite3DropTrigger(pParse,yymsp[0].minor.yy563,yymsp[-1].minor.yy502);
179103 }
179104 break;
179105 case 285: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
179106 {
179107 sqlite3Attach(pParse, yymsp[-3].minor.yy590, yymsp[-1].minor.yy590, yymsp[0].minor.yy590);
179108 }
179109 break;
179110 case 286: /* cmd ::= DETACH database_kw_opt expr */
179111 {
179112 sqlite3Detach(pParse, yymsp[0].minor.yy590);
179113 }
179114 break;
179115 case 289: /* cmd ::= REINDEX */
179116 {sqlite3Reindex(pParse, 0, 0);}
179117 break;
@@ -179018,11 +179124,11 @@
179124 case 292: /* cmd ::= ANALYZE nm dbnm */
179125 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
179126 break;
179127 case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
179128 {
179129 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy563,&yymsp[0].minor.yy0);
179130 }
179131 break;
179132 case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
179133 {
179134 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
@@ -179029,22 +179135,22 @@
179135 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
179136 }
179137 break;
179138 case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */
179139 {
179140 sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy563, &yymsp[0].minor.yy0);
179141 }
179142 break;
179143 case 296: /* add_column_fullname ::= fullname */
179144 {
179145 disableLookaside(pParse);
179146 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy563);
179147 }
179148 break;
179149 case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
179150 {
179151 sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy563, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
179152 }
179153 break;
179154 case 298: /* cmd ::= create_vtab */
179155 {sqlite3VtabFinishParse(pParse,0);}
179156 break;
@@ -179051,11 +179157,11 @@
179157 case 299: /* cmd ::= create_vtab LP vtabarglist RP */
179158 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
179159 break;
179160 case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
179161 {
179162 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy502);
179163 }
179164 break;
179165 case 301: /* vtabarg ::= */
179166 {sqlite3VtabArgInit(pParse);}
179167 break;
@@ -179064,185 +179170,185 @@
179170 case 304: /* lp ::= LP */ yytestcase(yyruleno==304);
179171 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
179172 break;
179173 case 305: /* with ::= WITH wqlist */
179174 case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306);
179175 { sqlite3WithPush(pParse, yymsp[0].minor.yy125, 1); }
179176 break;
179177 case 307: /* wqas ::= AS */
179178 {yymsp[0].minor.yy444 = M10d_Any;}
179179 break;
179180 case 308: /* wqas ::= AS MATERIALIZED */
179181 {yymsp[-1].minor.yy444 = M10d_Yes;}
179182 break;
179183 case 309: /* wqas ::= AS NOT MATERIALIZED */
179184 {yymsp[-2].minor.yy444 = M10d_No;}
179185 break;
179186 case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */
179187 {
179188 yymsp[-5].minor.yy361 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy402, yymsp[-1].minor.yy637, yymsp[-3].minor.yy444); /*A-overwrites-X*/
179189 }
179190 break;
179191 case 311: /* withnm ::= nm */
179192 {pParse->bHasWith = 1;}
179193 break;
179194 case 312: /* wqlist ::= wqitem */
179195 {
179196 yymsp[0].minor.yy125 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy361); /*A-overwrites-X*/
179197 }
179198 break;
179199 case 313: /* wqlist ::= wqlist COMMA wqitem */
179200 {
179201 yymsp[-2].minor.yy125 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy125, yymsp[0].minor.yy361);
179202 }
179203 break;
179204 case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
179205 {
179206 assert( yymsp[0].minor.yy483!=0 );
179207 sqlite3WindowChain(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy483);
179208 yymsp[0].minor.yy483->pNextWin = yymsp[-2].minor.yy483;
179209 yylhsminor.yy483 = yymsp[0].minor.yy483;
179210 }
179211 yymsp[-2].minor.yy483 = yylhsminor.yy483;
179212 break;
179213 case 315: /* windowdefn ::= nm AS LP window RP */
179214 {
179215 if( ALWAYS(yymsp[-1].minor.yy483) ){
179216 yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
179217 }
179218 yylhsminor.yy483 = yymsp[-1].minor.yy483;
179219 }
179220 yymsp[-4].minor.yy483 = yylhsminor.yy483;
179221 break;
179222 case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */
179223 {
179224 yymsp[-4].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, 0);
179225 }
179226 break;
179227 case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
179228 {
179229 yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, yymsp[-2].minor.yy402, yymsp[-1].minor.yy402, &yymsp[-5].minor.yy0);
179230 }
179231 yymsp[-5].minor.yy483 = yylhsminor.yy483;
179232 break;
179233 case 318: /* window ::= ORDER BY sortlist frame_opt */
179234 {
179235 yymsp[-3].minor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, 0);
179236 }
179237 break;
179238 case 319: /* window ::= nm ORDER BY sortlist frame_opt */
179239 {
179240 yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy402, &yymsp[-4].minor.yy0);
179241 }
179242 yymsp[-4].minor.yy483 = yylhsminor.yy483;
179243 break;
179244 case 320: /* window ::= nm frame_opt */
179245 {
179246 yylhsminor.yy483 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy483, 0, 0, &yymsp[-1].minor.yy0);
179247 }
179248 yymsp[-1].minor.yy483 = yylhsminor.yy483;
179249 break;
179250 case 321: /* frame_opt ::= */
179251 {
179252 yymsp[1].minor.yy483 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
179253 }
179254 break;
179255 case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
179256 {
179257 yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy502, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy444);
179258 }
179259 yymsp[-2].minor.yy483 = yylhsminor.yy483;
179260 break;
179261 case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
179262 {
179263 yylhsminor.yy483 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy502, yymsp[-3].minor.yy205.eType, yymsp[-3].minor.yy205.pExpr, yymsp[-1].minor.yy205.eType, yymsp[-1].minor.yy205.pExpr, yymsp[0].minor.yy444);
179264 }
179265 yymsp[-5].minor.yy483 = yylhsminor.yy483;
179266 break;
179267 case 325: /* frame_bound_s ::= frame_bound */
179268 case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327);
179269 {yylhsminor.yy205 = yymsp[0].minor.yy205;}
179270 yymsp[0].minor.yy205 = yylhsminor.yy205;
179271 break;
179272 case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */
179273 case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328);
179274 case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330);
179275 {yylhsminor.yy205.eType = yymsp[-1].major; yylhsminor.yy205.pExpr = 0;}
179276 yymsp[-1].minor.yy205 = yylhsminor.yy205;
179277 break;
179278 case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */
179279 {yylhsminor.yy205.eType = yymsp[0].major; yylhsminor.yy205.pExpr = yymsp[-1].minor.yy590;}
179280 yymsp[-1].minor.yy205 = yylhsminor.yy205;
179281 break;
179282 case 331: /* frame_exclude_opt ::= */
179283 {yymsp[1].minor.yy444 = 0;}
179284 break;
179285 case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */
179286 {yymsp[-1].minor.yy444 = yymsp[0].minor.yy444;}
179287 break;
179288 case 333: /* frame_exclude ::= NO OTHERS */
179289 case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334);
179290 {yymsp[-1].minor.yy444 = yymsp[-1].major; /*A-overwrites-X*/}
179291 break;
179292 case 335: /* frame_exclude ::= GROUP|TIES */
179293 {yymsp[0].minor.yy444 = yymsp[0].major; /*A-overwrites-X*/}
179294 break;
179295 case 336: /* window_clause ::= WINDOW windowdefn_list */
179296 { yymsp[-1].minor.yy483 = yymsp[0].minor.yy483; }
179297 break;
179298 case 337: /* filter_over ::= filter_clause over_clause */
179299 {
179300 if( yymsp[0].minor.yy483 ){
179301 yymsp[0].minor.yy483->pFilter = yymsp[-1].minor.yy590;
179302 }else{
179303 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy590);
179304 }
179305 yylhsminor.yy483 = yymsp[0].minor.yy483;
179306 }
179307 yymsp[-1].minor.yy483 = yylhsminor.yy483;
179308 break;
179309 case 338: /* filter_over ::= over_clause */
179310 {
179311 yylhsminor.yy483 = yymsp[0].minor.yy483;
179312 }
179313 yymsp[0].minor.yy483 = yylhsminor.yy483;
179314 break;
179315 case 339: /* filter_over ::= filter_clause */
179316 {
179317 yylhsminor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179318 if( yylhsminor.yy483 ){
179319 yylhsminor.yy483->eFrmType = TK_FILTER;
179320 yylhsminor.yy483->pFilter = yymsp[0].minor.yy590;
179321 }else{
179322 sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy590);
179323 }
179324 }
179325 yymsp[0].minor.yy483 = yylhsminor.yy483;
179326 break;
179327 case 340: /* over_clause ::= OVER LP window RP */
179328 {
179329 yymsp[-3].minor.yy483 = yymsp[-1].minor.yy483;
179330 assert( yymsp[-3].minor.yy483!=0 );
179331 }
179332 break;
179333 case 341: /* over_clause ::= OVER nm */
179334 {
179335 yymsp[-1].minor.yy483 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
179336 if( yymsp[-1].minor.yy483 ){
179337 yymsp[-1].minor.yy483->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
179338 }
179339 }
179340 break;
179341 case 342: /* filter_clause ::= FILTER LP WHERE expr RP */
179342 { yymsp[-4].minor.yy590 = yymsp[-1].minor.yy590; }
179343 break;
179344 case 343: /* term ::= QNUMBER */
179345 {
179346 yylhsminor.yy590=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0);
179347 sqlite3DequoteNumber(pParse, yylhsminor.yy590);
179348 }
179349 yymsp[0].minor.yy590 = yylhsminor.yy590;
179350 break;
179351 default:
179352 /* (344) input ::= cmdlist */ yytestcase(yyruleno==344);
179353 /* (345) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==345);
179354 /* (346) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=346);
@@ -180419,11 +180525,11 @@
180525 return i;
180526 }
180527 case CC_MINUS: {
180528 if( z[1]=='-' ){
180529 for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
180530 *tokenType = TK_COMMENT;
180531 return i;
180532 }else if( z[1]=='>' ){
180533 *tokenType = TK_PTR;
180534 return 2 + (z[2]=='>');
180535 }
@@ -180455,11 +180561,11 @@
180561 *tokenType = TK_SLASH;
180562 return 1;
180563 }
180564 for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
180565 if( c ) i++;
180566 *tokenType = TK_COMMENT;
180567 return i;
180568 }
180569 case CC_PERCENT: {
180570 *tokenType = TK_REM;
180571 return 1;
@@ -180784,16 +180890,16 @@
180890 }
180891 #ifndef SQLITE_OMIT_WINDOWFUNC
180892 if( tokenType>=TK_WINDOW ){
180893 assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER
180894 || tokenType==TK_ILLEGAL || tokenType==TK_WINDOW
180895 || tokenType==TK_QNUMBER || tokenType==TK_COMMENT
180896 );
180897 #else
180898 if( tokenType>=TK_SPACE ){
180899 assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL
180900 || tokenType==TK_QNUMBER || tokenType==TK_COMMENT
180901 );
180902 #endif /* SQLITE_OMIT_WINDOWFUNC */
180903 if( AtomicLoad(&db->u1.isInterrupted) ){
180904 pParse->rc = SQLITE_INTERRUPT;
180905 pParse->nErr++;
@@ -180823,10 +180929,13 @@
180929 tokenType = analyzeOverKeyword((const u8*)&zSql[4], lastTokenParsed);
180930 }else if( tokenType==TK_FILTER ){
180931 assert( n==6 );
180932 tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed);
180933 #endif /* SQLITE_OMIT_WINDOWFUNC */
180934 }else if( tokenType==TK_COMMENT && (db->flags & SQLITE_Comments)!=0 ){
180935 zSql += n;
180936 continue;
180937 }else if( tokenType!=TK_QNUMBER ){
180938 Token x;
180939 x.z = zSql;
180940 x.n = n;
180941 sqlite3ErrorMsg(pParse, "unrecognized token: \"%T\"", &x);
@@ -180929,10 +181038,11 @@
181038 prevType = tokenType;
181039 }
181040 n = sqlite3GetToken((unsigned char*)zSql+i, &tokenType);
181041 if( NEVER(n<=0) ) break;
181042 switch( tokenType ){
181043 case TK_COMMENT:
181044 case TK_SPACE: {
181045 break;
181046 }
181047 case TK_NULL: {
181048 if( prevType==TK_IS || prevType==TK_NOT ){
@@ -182370,11 +182480,11 @@
182480 break;
182481 }
182482 default: {
182483 static const struct {
182484 int op; /* The opcode */
182485 u64 mask; /* Mask of the bit in sqlite3.flags to set/clear */
182486 } aFlagOp[] = {
182487 { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
182488 { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
182489 { SQLITE_DBCONFIG_ENABLE_VIEW, SQLITE_EnableView },
182490 { SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, SQLITE_Fts3Tokenizer },
@@ -182391,10 +182501,13 @@
182501 { SQLITE_DBCONFIG_DQS_DML, SQLITE_DqsDML },
182502 { SQLITE_DBCONFIG_LEGACY_FILE_FORMAT, SQLITE_LegacyFileFmt },
182503 { SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_TrustedSchema },
182504 { SQLITE_DBCONFIG_STMT_SCANSTATUS, SQLITE_StmtScanStatus },
182505 { SQLITE_DBCONFIG_REVERSE_SCANORDER, SQLITE_ReverseOrder },
182506 { SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE, SQLITE_AttachCreate },
182507 { SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE, SQLITE_AttachWrite },
182508 { SQLITE_DBCONFIG_ENABLE_COMMENTS, SQLITE_Comments },
182509 };
182510 unsigned int i;
182511 rc = SQLITE_ERROR; /* IMP: R-42790-23372 */
182512 for(i=0; i<ArraySize(aFlagOp); i++){
182513 if( aFlagOp[i].op==op ){
@@ -184732,10 +184845,13 @@
184845 #endif
184846 db->flags |= SQLITE_ShortColNames
184847 | SQLITE_EnableTrigger
184848 | SQLITE_EnableView
184849 | SQLITE_CacheSpill
184850 | SQLITE_AttachCreate
184851 | SQLITE_AttachWrite
184852 | SQLITE_Comments
184853 #if !defined(SQLITE_TRUSTED_SCHEMA) || SQLITE_TRUSTED_SCHEMA+0!=0
184854 | SQLITE_TrustedSchema
184855 #endif
184856 /* The SQLITE_DQS compile-time option determines the default settings
184857 ** for SQLITE_DBCONFIG_DQS_DDL and SQLITE_DBCONFIG_DQS_DML.
@@ -226528,10 +226644,11 @@
226644 }
226645 sqlite3PagerUnref(pDbPage);
226646 return rc;
226647
226648 update_fail:
226649 pTab->pgnoTrunc = 0;
226650 sqlite3_free(pVtab->zErrMsg);
226651 pVtab->zErrMsg = sqlite3_mprintf("%s", zErr);
226652 return SQLITE_ERROR;
226653 }
226654
@@ -255689,11 +255806,11 @@
255806 int nArg, /* Number of args */
255807 sqlite3_value **apUnused /* Function arguments */
255808 ){
255809 assert( nArg==0 );
255810 UNUSED_PARAM2(nArg, apUnused);
255811 sqlite3_result_text(pCtx, "fts5: 2025-02-01 23:49:01 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a", -1, SQLITE_TRANSIENT);
255812 }
255813
255814 /*
255815 ** Implementation of fts5_locale(LOCALE, TEXT) function.
255816 **
255817
+102 -22
--- extsrc/sqlite3.h
+++ extsrc/sqlite3.h
@@ -146,11 +146,11 @@
146146
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147147
** [sqlite_version()] and [sqlite_source_id()].
148148
*/
149149
#define SQLITE_VERSION "3.49.0"
150150
#define SQLITE_VERSION_NUMBER 3049000
151
-#define SQLITE_SOURCE_ID "2025-01-29 18:53:19 d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f"
151
+#define SQLITE_SOURCE_ID "2025-02-01 23:49:01 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a"
152152
153153
/*
154154
** CAPI3REF: Run-Time Library Version Numbers
155155
** KEYWORDS: sqlite3_version sqlite3_sourceid
156156
**
@@ -2221,12 +2221,16 @@
22212221
** is invoked.
22222222
**
22232223
** <dl>
22242224
** [[SQLITE_DBCONFIG_LOOKASIDE]]
22252225
** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2226
-** <dd> ^This option takes three additional arguments that determine the
2227
-** [lookaside memory allocator] configuration for the [database connection].
2226
+** <dd> The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the
2227
+** configuration of the lookaside memory allocator within a database
2228
+** connection.
2229
+** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are <i>not</i>
2230
+** in the [DBCONFIG arguments|usual format].
2231
+** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two.
22282232
** ^The first argument (the third parameter to [sqlite3_db_config()] is a
22292233
** pointer to a memory buffer to use for lookaside memory.
22302234
** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
22312235
** may be NULL in which case SQLite will allocate the
22322236
** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the
@@ -2245,11 +2249,12 @@
22452249
** [SQLITE_BUSY].)^</dd>
22462250
**
22472251
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
22482252
** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
22492253
** <dd> ^This option is used to enable or disable the enforcement of
2250
-** [foreign key constraints]. There should be two additional arguments.
2254
+** [foreign key constraints]. This is the same setting that is
2255
+** enabled or disabled by the [PRAGMA foreign_keys] statement.
22512256
** The first argument is an integer which is 0 to disable FK enforcement,
22522257
** positive to enable FK enforcement or negative to leave FK enforcement
22532258
** unchanged. The second parameter is a pointer to an integer into which
22542259
** is written 0 or 1 to indicate whether FK enforcement is off or on
22552260
** following this call. The second parameter may be a NULL pointer, in
@@ -2267,17 +2272,17 @@
22672272
** which case the trigger setting is not reported back.
22682273
**
22692274
** <p>Originally this option disabled all triggers. ^(However, since
22702275
** SQLite version 3.35.0, TEMP triggers are still allowed even if
22712276
** this option is off. So, in other words, this option now only disables
2272
-** triggers in the main database schema or in the schemas of ATTACH-ed
2277
+** triggers in the main database schema or in the schemas of [ATTACH]-ed
22732278
** databases.)^ </dd>
22742279
**
22752280
** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
22762281
** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
22772282
** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2278
-** There should be two additional arguments.
2283
+** There must be two additional arguments.
22792284
** The first argument is an integer which is 0 to disable views,
22802285
** positive to enable views or negative to leave the setting unchanged.
22812286
** The second parameter is a pointer to an integer into which
22822287
** is written 0 or 1 to indicate whether views are disabled or enabled
22832288
** following this call. The second parameter may be a NULL pointer, in
@@ -2292,11 +2297,11 @@
22922297
** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
22932298
** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
22942299
** <dd> ^This option is used to enable or disable the
22952300
** [fts3_tokenizer()] function which is part of the
22962301
** [FTS3] full-text search engine extension.
2297
-** There should be two additional arguments.
2302
+** There must be two additional arguments.
22982303
** The first argument is an integer which is 0 to disable fts3_tokenizer() or
22992304
** positive to enable fts3_tokenizer() or negative to leave the setting
23002305
** unchanged.
23012306
** The second parameter is a pointer to an integer into which
23022307
** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
@@ -2307,11 +2312,11 @@
23072312
** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
23082313
** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
23092314
** interface independently of the [load_extension()] SQL function.
23102315
** The [sqlite3_enable_load_extension()] API enables or disables both the
23112316
** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2312
-** There should be two additional arguments.
2317
+** There must be two additional arguments.
23132318
** When the first argument to this interface is 1, then only the C-API is
23142319
** enabled and the SQL function remains disabled. If the first argument to
23152320
** this interface is 0, then both the C-API and the SQL function are disabled.
23162321
** If the first argument is -1, then no changes are made to state of either the
23172322
** C-API or the SQL function.
@@ -2321,26 +2326,31 @@
23212326
** be a NULL pointer, in which case the new setting is not reported back.
23222327
** </dd>
23232328
**
23242329
** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
23252330
** <dd> ^This option is used to change the name of the "main" database
2326
-** schema. ^The sole argument is a pointer to a constant UTF8 string
2327
-** which will become the new schema name in place of "main". ^SQLite
2328
-** does not make a copy of the new main schema name string, so the application
2329
-** must ensure that the argument passed into this DBCONFIG option is unchanged
2331
+** schema. This option does not follow the
2332
+** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format].
2333
+** This option takes exactly one argument, which ust be a pointer
2334
+** to a constant UTF8 string which will become the new schema name
2335
+** in place of "main". ^SQLite does not make a copy of the new main
2336
+** schema name string, so the application must ensure that the argument
2337
+** passed into SQLITE_DBCONFIG MAINDBNAME is unchanged
23302338
** until after the database connection closes.
23312339
** </dd>
23322340
**
23332341
** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
23342342
** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2335
-** <dd> Usually, when a database in wal mode is closed or detached from a
2336
-** database handle, SQLite checks if this will mean that there are now no
2337
-** connections at all to the database. If so, it performs a checkpoint
2338
-** operation before closing the connection. This option may be used to
2339
-** override this behavior. The first parameter passed to this operation
2340
-** is an integer - positive to disable checkpoints-on-close, or zero (the
2341
-** default) to enable them, and negative to leave the setting unchanged.
2343
+** <dd> Usually, when a database in [WAL mode] is closed or detached from a
2344
+** database handle, SQLite checks if if there are other connections to the
2345
+** same database, and if there are no other database connection (if the
2346
+** connection being closed is the last open connection to the database),
2347
+** then SQLite performs a [checkpoint] before closing the connection and
2348
+** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can
2349
+** be used to override that behavior. The first parameter passed to this
2350
+** operation is an integer - positive to disable checkpoints-on-close, or
2351
+** zero (the default) to enable them, and negative to leave the setting unchanged.
23422352
** The second parameter is a pointer to an integer
23432353
** into which is written 0 or 1 to indicate whether checkpoints-on-close
23442354
** have been disabled - 0 if they are not disabled, 1 if they are.
23452355
** </dd>
23462356
**
@@ -2498,11 +2508,11 @@
24982508
** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
24992509
** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
25002510
** statistics. For statistics to be collected, the flag must be set on
25012511
** the database handle both when the SQL statement is prepared and when it
25022512
** is stepped. The flag is set (collection of statistics is enabled)
2503
-** by default. This option takes two arguments: an integer and a pointer to
2513
+** by default. <p>This option takes two arguments: an integer and a pointer to
25042514
** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
25052515
** leave unchanged the statement scanstatus option. If the second argument
25062516
** is not NULL, then the value of the statement scanstatus setting after
25072517
** processing the first argument is written into the integer that the second
25082518
** argument points to.
@@ -2512,20 +2522,87 @@
25122522
** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
25132523
** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
25142524
** in which tables and indexes are scanned so that the scans start at the end
25152525
** and work toward the beginning rather than starting at the beginning and
25162526
** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2517
-** same as setting [PRAGMA reverse_unordered_selects]. This option takes
2527
+** same as setting [PRAGMA reverse_unordered_selects]. <p>This option takes
25182528
** two arguments which are an integer and a pointer to an integer. The first
25192529
** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
25202530
** reverse scan order flag, respectively. If the second argument is not NULL,
25212531
** then 0 or 1 is written into the integer that the second argument points to
25222532
** depending on if the reverse scan order flag is set after processing the
25232533
** first argument.
25242534
** </dd>
25252535
**
2536
+** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]]
2537
+** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE</dt>
2538
+** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables
2539
+** the ability of the [ATTACH DATABASE] SQL command to create a new database
2540
+** file if the database filed named in the ATTACH command does not already
2541
+** exist. This ability of ATTACH to create a new database is enabled by
2542
+** default. Applications can disable or reenable the ability for ATTACH to
2543
+** create new database files using this DBCONFIG option.<p>
2544
+** This option takes two arguments which are an integer and a pointer
2545
+** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2546
+** leave unchanged the attach-create flag, respectively. If the second
2547
+** argument is not NULL, then 0 or 1 is written into the integer that the
2548
+** second argument points to depending on if the attach-create flag is set
2549
+** after processing the first argument.
2550
+** </dd>
2551
+**
2552
+** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]]
2553
+** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE</dt>
2554
+** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
2555
+** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
2556
+** This capability is enabled by default. Applications can disable or
2557
+** reenable this capability using the current DBCONFIG option. If the
2558
+** the this capability is disabled, the [ATTACH] command will still work,
2559
+** but the database will be opened read-only. If this option is disabled,
2560
+** then the ability to create a new database using [ATTACH] is also disabled,
2561
+** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
2562
+** option.<p>
2563
+** This option takes two arguments which are an integer and a pointer
2564
+** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2565
+** leave unchanged the ability to ATTACH another database for writing,
2566
+** respectively. If the second argument is not NULL, then 0 or 1 is written
2567
+** into the integer to which the second argument points, depending on whether
2568
+** the ability to ATTACH a read/write database is enabled or disabled
2569
+** after processing the first argument.
2570
+** </dd>
2571
+**
2572
+** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]]
2573
+** <dt>SQLITE_DBCONFIG_ENABLE_COMMENTS</dt>
2574
+** <dd>The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the
2575
+** ability to include comments in SQL text. Comments are enabled by default.
2576
+** An application can disable or reenable comments in SQL text using this
2577
+** DBCONFIG option.<p>
2578
+** This option takes two arguments which are an integer and a pointer
2579
+** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2580
+** leave unchanged the ability to use comments in SQL text,
2581
+** respectively. If the second argument is not NULL, then 0 or 1 is written
2582
+** into the integer that the second argument points to depending on if
2583
+** comments are allowed in SQL text after processing the first argument.
2584
+** </dd>
2585
+**
25262586
** </dl>
2587
+**
2588
+** [[DBCONFIG arguments]] <h3>Arguments To SQLITE_DBCONFIG Options</h3>
2589
+**
2590
+** <p>Most of the SQLITE_DBCONFIG options take two arguments: an integer
2591
+** and a pointer to an integer. If the first integer argument is 1, then
2592
+** the option becomes enabled. If the first integer argument is 0, then the
2593
+** option is disabled. If the first argument is -1, then the option setting
2594
+** is unchanged. The second argument, the pointer to an integer, may be NULL.
2595
+** If the second argument is not NULL, then a value of 0 or 1 is written into
2596
+** the integer to which the second argument points, depending on whether the
2597
+** setting is disabled or enabled after applying any changes specified by
2598
+** the first argument.
2599
+**
2600
+** <p>While most SQLITE_DBCONFIG options use the argument format
2601
+** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME]
2602
+** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the
2603
+** documentation of those exceptional options for details.
25272604
*/
25282605
#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
25292606
#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
25302607
#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
25312608
#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
@@ -2543,11 +2620,14 @@
25432620
#define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
25442621
#define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
25452622
#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
25462623
#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
25472624
#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2548
-#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
2625
+#define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */
2626
+#define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */
2627
+#define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */
2628
+#define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */
25492629
25502630
/*
25512631
** CAPI3REF: Enable Or Disable Extended Result Codes
25522632
** METHOD: sqlite3
25532633
**
25542634
--- extsrc/sqlite3.h
+++ extsrc/sqlite3.h
@@ -146,11 +146,11 @@
146 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147 ** [sqlite_version()] and [sqlite_source_id()].
148 */
149 #define SQLITE_VERSION "3.49.0"
150 #define SQLITE_VERSION_NUMBER 3049000
151 #define SQLITE_SOURCE_ID "2025-01-29 18:53:19 d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f"
152
153 /*
154 ** CAPI3REF: Run-Time Library Version Numbers
155 ** KEYWORDS: sqlite3_version sqlite3_sourceid
156 **
@@ -2221,12 +2221,16 @@
2221 ** is invoked.
2222 **
2223 ** <dl>
2224 ** [[SQLITE_DBCONFIG_LOOKASIDE]]
2225 ** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2226 ** <dd> ^This option takes three additional arguments that determine the
2227 ** [lookaside memory allocator] configuration for the [database connection].
 
 
 
 
2228 ** ^The first argument (the third parameter to [sqlite3_db_config()] is a
2229 ** pointer to a memory buffer to use for lookaside memory.
2230 ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
2231 ** may be NULL in which case SQLite will allocate the
2232 ** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the
@@ -2245,11 +2249,12 @@
2245 ** [SQLITE_BUSY].)^</dd>
2246 **
2247 ** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
2248 ** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
2249 ** <dd> ^This option is used to enable or disable the enforcement of
2250 ** [foreign key constraints]. There should be two additional arguments.
 
2251 ** The first argument is an integer which is 0 to disable FK enforcement,
2252 ** positive to enable FK enforcement or negative to leave FK enforcement
2253 ** unchanged. The second parameter is a pointer to an integer into which
2254 ** is written 0 or 1 to indicate whether FK enforcement is off or on
2255 ** following this call. The second parameter may be a NULL pointer, in
@@ -2267,17 +2272,17 @@
2267 ** which case the trigger setting is not reported back.
2268 **
2269 ** <p>Originally this option disabled all triggers. ^(However, since
2270 ** SQLite version 3.35.0, TEMP triggers are still allowed even if
2271 ** this option is off. So, in other words, this option now only disables
2272 ** triggers in the main database schema or in the schemas of ATTACH-ed
2273 ** databases.)^ </dd>
2274 **
2275 ** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
2276 ** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
2277 ** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2278 ** There should be two additional arguments.
2279 ** The first argument is an integer which is 0 to disable views,
2280 ** positive to enable views or negative to leave the setting unchanged.
2281 ** The second parameter is a pointer to an integer into which
2282 ** is written 0 or 1 to indicate whether views are disabled or enabled
2283 ** following this call. The second parameter may be a NULL pointer, in
@@ -2292,11 +2297,11 @@
2292 ** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
2293 ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
2294 ** <dd> ^This option is used to enable or disable the
2295 ** [fts3_tokenizer()] function which is part of the
2296 ** [FTS3] full-text search engine extension.
2297 ** There should be two additional arguments.
2298 ** The first argument is an integer which is 0 to disable fts3_tokenizer() or
2299 ** positive to enable fts3_tokenizer() or negative to leave the setting
2300 ** unchanged.
2301 ** The second parameter is a pointer to an integer into which
2302 ** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
@@ -2307,11 +2312,11 @@
2307 ** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
2308 ** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
2309 ** interface independently of the [load_extension()] SQL function.
2310 ** The [sqlite3_enable_load_extension()] API enables or disables both the
2311 ** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2312 ** There should be two additional arguments.
2313 ** When the first argument to this interface is 1, then only the C-API is
2314 ** enabled and the SQL function remains disabled. If the first argument to
2315 ** this interface is 0, then both the C-API and the SQL function are disabled.
2316 ** If the first argument is -1, then no changes are made to state of either the
2317 ** C-API or the SQL function.
@@ -2321,26 +2326,31 @@
2321 ** be a NULL pointer, in which case the new setting is not reported back.
2322 ** </dd>
2323 **
2324 ** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
2325 ** <dd> ^This option is used to change the name of the "main" database
2326 ** schema. ^The sole argument is a pointer to a constant UTF8 string
2327 ** which will become the new schema name in place of "main". ^SQLite
2328 ** does not make a copy of the new main schema name string, so the application
2329 ** must ensure that the argument passed into this DBCONFIG option is unchanged
 
 
 
2330 ** until after the database connection closes.
2331 ** </dd>
2332 **
2333 ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
2334 ** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2335 ** <dd> Usually, when a database in wal mode is closed or detached from a
2336 ** database handle, SQLite checks if this will mean that there are now no
2337 ** connections at all to the database. If so, it performs a checkpoint
2338 ** operation before closing the connection. This option may be used to
2339 ** override this behavior. The first parameter passed to this operation
2340 ** is an integer - positive to disable checkpoints-on-close, or zero (the
2341 ** default) to enable them, and negative to leave the setting unchanged.
 
 
2342 ** The second parameter is a pointer to an integer
2343 ** into which is written 0 or 1 to indicate whether checkpoints-on-close
2344 ** have been disabled - 0 if they are not disabled, 1 if they are.
2345 ** </dd>
2346 **
@@ -2498,11 +2508,11 @@
2498 ** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
2499 ** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
2500 ** statistics. For statistics to be collected, the flag must be set on
2501 ** the database handle both when the SQL statement is prepared and when it
2502 ** is stepped. The flag is set (collection of statistics is enabled)
2503 ** by default. This option takes two arguments: an integer and a pointer to
2504 ** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
2505 ** leave unchanged the statement scanstatus option. If the second argument
2506 ** is not NULL, then the value of the statement scanstatus setting after
2507 ** processing the first argument is written into the integer that the second
2508 ** argument points to.
@@ -2512,20 +2522,87 @@
2512 ** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
2513 ** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
2514 ** in which tables and indexes are scanned so that the scans start at the end
2515 ** and work toward the beginning rather than starting at the beginning and
2516 ** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2517 ** same as setting [PRAGMA reverse_unordered_selects]. This option takes
2518 ** two arguments which are an integer and a pointer to an integer. The first
2519 ** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
2520 ** reverse scan order flag, respectively. If the second argument is not NULL,
2521 ** then 0 or 1 is written into the integer that the second argument points to
2522 ** depending on if the reverse scan order flag is set after processing the
2523 ** first argument.
2524 ** </dd>
2525 **
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2526 ** </dl>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2527 */
2528 #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
2529 #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
2530 #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
2531 #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
@@ -2543,11 +2620,14 @@
2543 #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
2544 #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
2545 #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
2546 #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
2547 #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2548 #define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
 
 
 
2549
2550 /*
2551 ** CAPI3REF: Enable Or Disable Extended Result Codes
2552 ** METHOD: sqlite3
2553 **
2554
--- extsrc/sqlite3.h
+++ extsrc/sqlite3.h
@@ -146,11 +146,11 @@
146 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147 ** [sqlite_version()] and [sqlite_source_id()].
148 */
149 #define SQLITE_VERSION "3.49.0"
150 #define SQLITE_VERSION_NUMBER 3049000
151 #define SQLITE_SOURCE_ID "2025-02-01 23:49:01 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a"
152
153 /*
154 ** CAPI3REF: Run-Time Library Version Numbers
155 ** KEYWORDS: sqlite3_version sqlite3_sourceid
156 **
@@ -2221,12 +2221,16 @@
2221 ** is invoked.
2222 **
2223 ** <dl>
2224 ** [[SQLITE_DBCONFIG_LOOKASIDE]]
2225 ** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2226 ** <dd> The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the
2227 ** configuration of the lookaside memory allocator within a database
2228 ** connection.
2229 ** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are <i>not</i>
2230 ** in the [DBCONFIG arguments|usual format].
2231 ** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two.
2232 ** ^The first argument (the third parameter to [sqlite3_db_config()] is a
2233 ** pointer to a memory buffer to use for lookaside memory.
2234 ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
2235 ** may be NULL in which case SQLite will allocate the
2236 ** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the
@@ -2245,11 +2249,12 @@
2249 ** [SQLITE_BUSY].)^</dd>
2250 **
2251 ** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
2252 ** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
2253 ** <dd> ^This option is used to enable or disable the enforcement of
2254 ** [foreign key constraints]. This is the same setting that is
2255 ** enabled or disabled by the [PRAGMA foreign_keys] statement.
2256 ** The first argument is an integer which is 0 to disable FK enforcement,
2257 ** positive to enable FK enforcement or negative to leave FK enforcement
2258 ** unchanged. The second parameter is a pointer to an integer into which
2259 ** is written 0 or 1 to indicate whether FK enforcement is off or on
2260 ** following this call. The second parameter may be a NULL pointer, in
@@ -2267,17 +2272,17 @@
2272 ** which case the trigger setting is not reported back.
2273 **
2274 ** <p>Originally this option disabled all triggers. ^(However, since
2275 ** SQLite version 3.35.0, TEMP triggers are still allowed even if
2276 ** this option is off. So, in other words, this option now only disables
2277 ** triggers in the main database schema or in the schemas of [ATTACH]-ed
2278 ** databases.)^ </dd>
2279 **
2280 ** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
2281 ** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
2282 ** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2283 ** There must be two additional arguments.
2284 ** The first argument is an integer which is 0 to disable views,
2285 ** positive to enable views or negative to leave the setting unchanged.
2286 ** The second parameter is a pointer to an integer into which
2287 ** is written 0 or 1 to indicate whether views are disabled or enabled
2288 ** following this call. The second parameter may be a NULL pointer, in
@@ -2292,11 +2297,11 @@
2297 ** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
2298 ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
2299 ** <dd> ^This option is used to enable or disable the
2300 ** [fts3_tokenizer()] function which is part of the
2301 ** [FTS3] full-text search engine extension.
2302 ** There must be two additional arguments.
2303 ** The first argument is an integer which is 0 to disable fts3_tokenizer() or
2304 ** positive to enable fts3_tokenizer() or negative to leave the setting
2305 ** unchanged.
2306 ** The second parameter is a pointer to an integer into which
2307 ** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
@@ -2307,11 +2312,11 @@
2312 ** <dt>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION</dt>
2313 ** <dd> ^This option is used to enable or disable the [sqlite3_load_extension()]
2314 ** interface independently of the [load_extension()] SQL function.
2315 ** The [sqlite3_enable_load_extension()] API enables or disables both the
2316 ** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2317 ** There must be two additional arguments.
2318 ** When the first argument to this interface is 1, then only the C-API is
2319 ** enabled and the SQL function remains disabled. If the first argument to
2320 ** this interface is 0, then both the C-API and the SQL function are disabled.
2321 ** If the first argument is -1, then no changes are made to state of either the
2322 ** C-API or the SQL function.
@@ -2321,26 +2326,31 @@
2326 ** be a NULL pointer, in which case the new setting is not reported back.
2327 ** </dd>
2328 **
2329 ** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
2330 ** <dd> ^This option is used to change the name of the "main" database
2331 ** schema. This option does not follow the
2332 ** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format].
2333 ** This option takes exactly one argument, which ust be a pointer
2334 ** to a constant UTF8 string which will become the new schema name
2335 ** in place of "main". ^SQLite does not make a copy of the new main
2336 ** schema name string, so the application must ensure that the argument
2337 ** passed into SQLITE_DBCONFIG MAINDBNAME is unchanged
2338 ** until after the database connection closes.
2339 ** </dd>
2340 **
2341 ** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
2342 ** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2343 ** <dd> Usually, when a database in [WAL mode] is closed or detached from a
2344 ** database handle, SQLite checks if if there are other connections to the
2345 ** same database, and if there are no other database connection (if the
2346 ** connection being closed is the last open connection to the database),
2347 ** then SQLite performs a [checkpoint] before closing the connection and
2348 ** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can
2349 ** be used to override that behavior. The first parameter passed to this
2350 ** operation is an integer - positive to disable checkpoints-on-close, or
2351 ** zero (the default) to enable them, and negative to leave the setting unchanged.
2352 ** The second parameter is a pointer to an integer
2353 ** into which is written 0 or 1 to indicate whether checkpoints-on-close
2354 ** have been disabled - 0 if they are not disabled, 1 if they are.
2355 ** </dd>
2356 **
@@ -2498,11 +2508,11 @@
2508 ** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
2509 ** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
2510 ** statistics. For statistics to be collected, the flag must be set on
2511 ** the database handle both when the SQL statement is prepared and when it
2512 ** is stepped. The flag is set (collection of statistics is enabled)
2513 ** by default. <p>This option takes two arguments: an integer and a pointer to
2514 ** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
2515 ** leave unchanged the statement scanstatus option. If the second argument
2516 ** is not NULL, then the value of the statement scanstatus setting after
2517 ** processing the first argument is written into the integer that the second
2518 ** argument points to.
@@ -2512,20 +2522,87 @@
2522 ** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
2523 ** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
2524 ** in which tables and indexes are scanned so that the scans start at the end
2525 ** and work toward the beginning rather than starting at the beginning and
2526 ** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2527 ** same as setting [PRAGMA reverse_unordered_selects]. <p>This option takes
2528 ** two arguments which are an integer and a pointer to an integer. The first
2529 ** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
2530 ** reverse scan order flag, respectively. If the second argument is not NULL,
2531 ** then 0 or 1 is written into the integer that the second argument points to
2532 ** depending on if the reverse scan order flag is set after processing the
2533 ** first argument.
2534 ** </dd>
2535 **
2536 ** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]]
2537 ** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE</dt>
2538 ** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables
2539 ** the ability of the [ATTACH DATABASE] SQL command to create a new database
2540 ** file if the database filed named in the ATTACH command does not already
2541 ** exist. This ability of ATTACH to create a new database is enabled by
2542 ** default. Applications can disable or reenable the ability for ATTACH to
2543 ** create new database files using this DBCONFIG option.<p>
2544 ** This option takes two arguments which are an integer and a pointer
2545 ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2546 ** leave unchanged the attach-create flag, respectively. If the second
2547 ** argument is not NULL, then 0 or 1 is written into the integer that the
2548 ** second argument points to depending on if the attach-create flag is set
2549 ** after processing the first argument.
2550 ** </dd>
2551 **
2552 ** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]]
2553 ** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE</dt>
2554 ** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
2555 ** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
2556 ** This capability is enabled by default. Applications can disable or
2557 ** reenable this capability using the current DBCONFIG option. If the
2558 ** the this capability is disabled, the [ATTACH] command will still work,
2559 ** but the database will be opened read-only. If this option is disabled,
2560 ** then the ability to create a new database using [ATTACH] is also disabled,
2561 ** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
2562 ** option.<p>
2563 ** This option takes two arguments which are an integer and a pointer
2564 ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2565 ** leave unchanged the ability to ATTACH another database for writing,
2566 ** respectively. If the second argument is not NULL, then 0 or 1 is written
2567 ** into the integer to which the second argument points, depending on whether
2568 ** the ability to ATTACH a read/write database is enabled or disabled
2569 ** after processing the first argument.
2570 ** </dd>
2571 **
2572 ** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]]
2573 ** <dt>SQLITE_DBCONFIG_ENABLE_COMMENTS</dt>
2574 ** <dd>The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the
2575 ** ability to include comments in SQL text. Comments are enabled by default.
2576 ** An application can disable or reenable comments in SQL text using this
2577 ** DBCONFIG option.<p>
2578 ** This option takes two arguments which are an integer and a pointer
2579 ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2580 ** leave unchanged the ability to use comments in SQL text,
2581 ** respectively. If the second argument is not NULL, then 0 or 1 is written
2582 ** into the integer that the second argument points to depending on if
2583 ** comments are allowed in SQL text after processing the first argument.
2584 ** </dd>
2585 **
2586 ** </dl>
2587 **
2588 ** [[DBCONFIG arguments]] <h3>Arguments To SQLITE_DBCONFIG Options</h3>
2589 **
2590 ** <p>Most of the SQLITE_DBCONFIG options take two arguments: an integer
2591 ** and a pointer to an integer. If the first integer argument is 1, then
2592 ** the option becomes enabled. If the first integer argument is 0, then the
2593 ** option is disabled. If the first argument is -1, then the option setting
2594 ** is unchanged. The second argument, the pointer to an integer, may be NULL.
2595 ** If the second argument is not NULL, then a value of 0 or 1 is written into
2596 ** the integer to which the second argument points, depending on whether the
2597 ** setting is disabled or enabled after applying any changes specified by
2598 ** the first argument.
2599 **
2600 ** <p>While most SQLITE_DBCONFIG options use the argument format
2601 ** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME]
2602 ** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the
2603 ** documentation of those exceptional options for details.
2604 */
2605 #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
2606 #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
2607 #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
2608 #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
@@ -2543,11 +2620,14 @@
2620 #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
2621 #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
2622 #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
2623 #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
2624 #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2625 #define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */
2626 #define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */
2627 #define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */
2628 #define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */
2629
2630 /*
2631 ** CAPI3REF: Enable Or Disable Extended Result Codes
2632 ** METHOD: sqlite3
2633 **
2634

Keyboard Shortcuts

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