@@ -1,8 +1,8 @@
1 1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/******************************************************************************
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This file is an amalgamation of many separate C source files from SQLite
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** version 3.24.0. By combining all the individual C code files into this
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** version 3.25.0. By combining all the individual C code files into this
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** single large file, the entire code can be compiled as a single translation
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unit. This allows many compilers to do optimizations that would not be
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** possible if the files were compiled separately. Performance improvements
7 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of 5% or more are commonly seen when SQLite is compiled as a single
8 8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** translation unit.
@@ -1148,13 +1148,13 @@
1148 1148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1149 1149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** See also: [sqlite3_libversion()],
1150 1150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1151 1151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
1152 1152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_VERSION "3.24.0"
1154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_VERSION_NUMBER 3024000
1155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2018-06-04 19:24:41 c7ee0833225bfd8c5ec2f9bf62b97c4e04d03bd9566366d5221ac8fb199a87ca"
1153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_VERSION "3.25.0"
1154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_VERSION_NUMBER 3025000
1155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2018-07-13 20:28:54 148d9b61471a874a16a9ec9c9603da03cadb3a40662fb550af51cb36212426b1"
1156 1156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1157 1157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1158 1158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
1159 1159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version sqlite3_sourceid
1160 1160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -1536,10 +1536,11 @@
1536 1536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8))
1537 1537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
1538 1538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
1539 1539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CANTOPEN_FULLPATH (SQLITE_CANTOPEN | (3<<8))
1540 1540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CANTOPEN_CONVPATH (SQLITE_CANTOPEN | (4<<8))
1541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_CANTOPEN_DIRTYWAL (SQLITE_CANTOPEN | (5<<8)) /* Not Used */
1541 1542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
1542 1543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CORRUPT_SEQUENCE (SQLITE_CORRUPT | (2<<8))
1543 1544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
1544 1545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
1545 1546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_READONLY_ROLLBACK (SQLITE_READONLY | (3<<8))
@@ -3146,10 +3147,16 @@
3146 3147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <dd> Set the SQLITE_DBCONFIG_RESET_DATABASE flag and then run
3147 3148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [VACUUM] in order to reset a database back to an empty database
3148 3149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** with no schema and no content. The following process works even for
3149 3150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a badly corrupted database file:
3150 3151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <ol>
3152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> If the database connection is newly opened, make sure it has read the
3153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** database schema by preparing then discarding some query against the
3154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** database, or calling sqlite3_table_column_metadata(), ignoring any
3155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** errors. This step is only necessary if the application desires to keep
3156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the database in WAL mode after the reset if it was in WAL mode before
3157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the reset.
3151 3158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li> sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 1, 0);
3152 3159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li> [sqlite3_exec](db, "[VACUUM]", 0, 0, 0);
3153 3160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li> sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 0, 0);
3154 3161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </ol>
3155 3162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Because resetting a database is destructive and irreversible, the
@@ -4379,16 +4386,27 @@
4379 4386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4380 4387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^If the most recent sqlite3_* API call associated with
4381 4388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [database connection] D failed, then the sqlite3_errcode(D) interface
4382 4389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** returns the numeric [result code] or [extended result code] for that
4383 4390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** API call.
4384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the most recent API call was successful,
4385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then the return value from sqlite3_errcode() is undefined.
4386 4391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The sqlite3_extended_errcode()
4387 4392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** interface is the same except that it always returns the
4388 4393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [extended result code] even when extended result codes are
4389 4394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** disabled.
4395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
4396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The values returned by sqlite3_errcode() and/or
4397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_extended_errcode() might change with each API call.
4398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Except, there are some interfaces that are guaranteed to never
4399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** change the value of the error code. The error-code preserving
4400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** interfaces are:
4401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
4402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <ul>
4403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_errcode()
4404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_extended_errcode()
4405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_errmsg()
4406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_errmsg16()
4407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </ul>
4390 4408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4391 4409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The sqlite3_errmsg() and sqlite3_errmsg16() return English-language
4392 4410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** text that describes the error, as either UTF-8 or UTF-16 respectively.
4393 4411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(Memory to hold the error message string is managed internally.
4394 4412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The application does not need to worry about freeing the result.
@@ -5539,15 +5557,29 @@
5539 5557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_finalize()] is called. ^The memory space used to hold strings
5540 5558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and BLOBs is freed automatically. Do not pass the pointers returned
5541 5559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** from [sqlite3_column_blob()], [sqlite3_column_text()], etc. into
5542 5560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_free()].
5543 5561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^(If a memory allocation error occurs during the evaluation of any
5545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of these routines, a default value is returned. The default value
5546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is either the integer 0, the floating point number 0.0, or a NULL
5547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pointer. Subsequent calls to [sqlite3_errcode()] will return
5548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** [SQLITE_NOMEM].)^
5562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As long as the input parameters are correct, these routines will only
5563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** fail if an out-of-memory error occurs during a format conversion.
5564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Only the following subset of interfaces are subject to out-of-memory
5565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** errors:
5566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <ul>
5568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_column_blob()
5569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_column_text()
5570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_column_text16()
5571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_column_bytes()
5572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_column_bytes16()
5573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </ul>
5574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If an out-of-memory error occurs, then the return value from these
5576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routines is the same as if the column had contained an SQL NULL value.
5577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Valid SQL NULL returns can be distinguished from out-of-memory errors
5578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** by invoking the [sqlite3_errcode()] immediately after the suspect
5579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** return value is obtained and before any
5580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** other SQLite interface is called on the same [database connection].
5549 5581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
5550 5582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
5551 5583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API double sqlite3_column_double(sqlite3_stmt*, int iCol);
5552 5584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_column_int(sqlite3_stmt*, int iCol);
5553 5585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
@@ -5620,15 +5652,17 @@
5620 5652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: {application-defined SQL functions}
5621 5653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** METHOD: sqlite3
5622 5654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5623 5655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^These functions (collectively known as "function creation routines")
5624 5656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are used to add SQL functions or aggregates or to redefine the behavior
5625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of existing SQL functions or aggregates. The only differences between
5626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** these routines are the text encoding expected for
5627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the second parameter (the name of the function being created)
5628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and the presence or absence of a destructor callback for
5629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the application data pointer.
5657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of existing SQL functions or aggregates. The only differences between
5658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the three "sqlite3_create_function*" routines are the text encoding
5659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** expected for the second parameter (the name of the function being
5660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** created) and the presence or absence of a destructor callback for
5661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the application data pointer. Function sqlite3_create_window_function()
5662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is similar, but allows the user to supply the extra callback functions
5663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** needed by [aggregate window functions].
5630 5664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5631 5665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The first parameter is the [database connection] to which the SQL
5632 5666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function is to be added. ^If an application uses more than one database
5633 5667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** connection then application-defined SQL functions must be added
5634 5668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to each database connection separately.
@@ -5670,28 +5704,38 @@
5670 5704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of the [SQLITE_DETERMINISTIC] flag is recommended where possible.
5671 5705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5672 5706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(The fifth parameter is an arbitrary pointer. The implementation of the
5673 5707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function can gain access to this pointer using [sqlite3_user_data()].)^
5674 5708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^The sixth, seventh and eighth parameters, xFunc, xStep and xFinal, are
5709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The sixth, seventh and eighth parameters passed to the three
5710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** "sqlite3_create_function*" functions, xFunc, xStep and xFinal, are
5676 5711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointers to C-language functions that implement the SQL function or
5677 5712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** aggregate. ^A scalar SQL function requires an implementation of the xFunc
5678 5713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** callback only; NULL pointers must be passed as the xStep and xFinal
5679 5714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** parameters. ^An aggregate SQL function requires an implementation of xStep
5680 5715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and xFinal and NULL pointer must be passed for xFunc. ^To delete an existing
5681 5716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQL function or aggregate, pass NULL pointers for all three function
5682 5717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** callbacks.
5683 5718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^(If the ninth parameter to sqlite3_create_function_v2() is not NULL,
5685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then it is destructor for the application data pointer.
5686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The destructor is invoked when the function is deleted, either by being
5687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** overloaded or when the database connection closes.)^
5688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^The destructor is also invoked if the call to
5689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_create_function_v2() fails.
5690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^When the destructor callback of the tenth parameter is invoked, it
5691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is passed a single argument which is a copy of the application data
5692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pointer which was the fifth parameter to sqlite3_create_function_v2().
5719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The sixth, seventh, eighth and ninth parameters (xStep, xFinal, xValue
5720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and xInverse) passed to sqlite3_create_window_function are pointers to
5721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** C-lanugage callbacks that implement the new function. xStep and xFinal
5722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** must both be non-NULL. xValue and xInverse may either both be NULL, in
5723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** which case a regular aggregate function is created, or must both be
5724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** non-NULL, in which case the new function may be used as either an aggregate
5725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or aggregate window function. More details regarding the implementation
5726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of aggregate window functions are
5727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [user-defined window functions|available here].
5728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^(If the final parameter to sqlite3_create_function_v2() or
5730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_create_window_function() is not NULL, then it is destructor for
5731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the application data pointer. The destructor is invoked when the function
5732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is deleted, either by being overloaded or when the database connection
5733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** closes.)^ ^The destructor is also invoked if the call to
5734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_create_function_v2() fails. ^When the destructor callback is
5735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** invoked, it is passed a single argument which is a copy of the application
5736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** data pointer which was the fifth parameter to sqlite3_create_function_v2().
5693 5737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5694 5738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^It is permitted to register multiple implementations of the same
5695 5739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** functions with the same name but with either differing numbers of
5696 5740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** arguments or differing preferred text encodings. ^SQLite will use
5697 5741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the implementation that most closely matches the way in which the
@@ -5739,10 +5783,22 @@
5739 5783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pApp,
5740 5784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
5741 5785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
5742 5786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFinal)(sqlite3_context*),
5743 5787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void(*xDestroy)(void*)
5788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
5789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_create_window_function(
5790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db,
5791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFunctionName,
5792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
5793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int eTextRep,
5794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *pApp,
5795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xStep)(sqlite3_context*,int,sqlite3_value**),
5796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xFinal)(sqlite3_context*),
5797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xValue)(sqlite3_context*),
5798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xInverse)(sqlite3_context*,int,sqlite3_value**),
5799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void(*xDestroy)(void*)
5744 5800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
5745 5801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5746 5802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
5747 5803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Text Encodings
5748 5804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -5882,10 +5938,32 @@
5882 5938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_value_bytes()], [sqlite3_value_bytes16()], [sqlite3_value_text()],
5883 5939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or [sqlite3_value_text16()].
5884 5940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5885 5941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These routines must be called from the same thread as
5886 5942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the SQL function that supplied the [sqlite3_value*] parameters.
5943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As long as the input parameter is correct, these routines can only
5945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** fail if an out-of-memory error occurs during a format conversion.
5946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Only the following subset of interfaces are subject to out-of-memory
5947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** errors:
5948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <ul>
5950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_blob()
5951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_text()
5952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_text16()
5953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_text16le()
5954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_text16be()
5955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_bytes()
5956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> sqlite3_value_bytes16()
5957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </ul>
5958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If an out-of-memory error occurs, then the return value from these
5960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routines is the same as if the column had contained an SQL NULL value.
5961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Valid SQL NULL returns can be distinguished from out-of-memory errors
5962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** by invoking the [sqlite3_errcode()] immediately after the suspect
5963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** return value is obtained and before any
5964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** other SQLite interface is called on the same [database connection].
5887 5965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
5888 5966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API const void *sqlite3_value_blob(sqlite3_value*);
5889 5967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API double sqlite3_value_double(sqlite3_value*);
5890 5968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_value_int(sqlite3_value*);
5891 5969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
@@ -12877,10 +12955,21 @@
12877 12955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
12878 12956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(NDEBUG) && defined(SQLITE_DEBUG)
12879 12957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# undef NDEBUG
12880 12958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
12881 12959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
12960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* SQLITE_DEBUG_COLUMNCACHE is synomous with SQLITE_DEBUG. The
12961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_DEBUG_COLUMNCACHE symbol only exists to provide a convenient
12962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** way to search for all code that deals with verifying correct behavior
12963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the column cache.
12964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
12965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
12966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define SQLITE_DEBUG_COLUMNCACHE 1
12967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
12968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # undef SQLIT_DEBUG_COLUMNCACHE
12969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
12970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12882 12971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
12883 12972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Enable SQLITE_ENABLE_EXPLAIN_COMMENTS if SQLITE_DEBUG is turned on.
12884 12973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
12885 12974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_ENABLE_EXPLAIN_COMMENTS) && defined(SQLITE_DEBUG)
12886 12975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_ENABLE_EXPLAIN_COMMENTS 1
@@ -13214,98 +13303,108 @@
13214 13303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define TK_RAISE 71
13215 13304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define TK_RECURSIVE 72
13216 13305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define TK_REPLACE 73
13217 13306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define TK_RESTRICT 74
13218 13307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define TK_ROW 75
13219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_TRIGGER 76
13220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_VACUUM 77
13221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_VIEW 78
13222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_VIRTUAL 79
13223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_WITH 80
13224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_REINDEX 81
13225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_RENAME 82
13226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_CTIME_KW 83
13227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ANY 84
13228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_BITAND 85
13229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_BITOR 86
13230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_LSHIFT 87
13231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_RSHIFT 88
13232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_PLUS 89
13233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_MINUS 90
13234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_STAR 91
13235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_SLASH 92
13236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_REM 93
13237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_CONCAT 94
13238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_COLLATE 95
13239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_BITNOT 96
13240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ON 97
13241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_INDEXED 98
13242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_STRING 99
13243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_JOIN_KW 100
13244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_CONSTRAINT 101
13245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_DEFAULT 102
13246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_NULL 103
13247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_PRIMARY 104
13248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_UNIQUE 105
13249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_CHECK 106
13250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_REFERENCES 107
13251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_AUTOINCR 108
13252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_INSERT 109
13253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_DELETE 110
13254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_UPDATE 111
13255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_SET 112
13256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_DEFERRABLE 113
13257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_FOREIGN 114
13258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_DROP 115
13259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_UNION 116
13260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ALL 117
13261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_EXCEPT 118
13262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_INTERSECT 119
13263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_SELECT 120
13264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_VALUES 121
13265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_DISTINCT 122
13266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_DOT 123
13267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_FROM 124
13268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_JOIN 125
13269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_USING 126
13270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ORDER 127
13271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_GROUP 128
13272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_HAVING 129
13273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_LIMIT 130
13274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_WHERE 131
13275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_INTO 132
13276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_NOTHING 133
13277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_FLOAT 134
13278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_BLOB 135
13279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_INTEGER 136
13280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_VARIABLE 137
13281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_CASE 138
13282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_WHEN 139
13283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_THEN 140
13284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ELSE 141
13285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_INDEX 142
13286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ALTER 143
13287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ADD 144
13288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_TRUEFALSE 145
13289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ISNOT 146
13290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_FUNCTION 147
13291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_COLUMN 148
13292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_AGG_FUNCTION 149
13293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_AGG_COLUMN 150
13294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_UMINUS 151
13295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_UPLUS 152
13296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_TRUTH 153
13297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_REGISTER 154
13298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_VECTOR 155
13299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_SELECT_COLUMN 156
13300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_IF_NULL_ROW 157
13301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ASTERISK 158
13302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_SPAN 159
13303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_END_OF_FILE 160
13304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_UNCLOSED_STRING 161
13305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_SPACE 162
13306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TK_ILLEGAL 163
13308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ROWS 76
13309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_TRIGGER 77
13310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_VACUUM 78
13311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_VIEW 79
13312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_VIRTUAL 80
13313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_WITH 81
13314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_CURRENT 82
13315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_FOLLOWING 83
13316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_PARTITION 84
13317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_PRECEDING 85
13318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_RANGE 86
13319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UNBOUNDED 87
13320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_REINDEX 88
13321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_RENAME 89
13322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_CTIME_KW 90
13323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ANY 91
13324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_BITAND 92
13325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_BITOR 93
13326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_LSHIFT 94
13327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_RSHIFT 95
13328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_PLUS 96
13329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_MINUS 97
13330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_STAR 98
13331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_SLASH 99
13332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_REM 100
13333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_CONCAT 101
13334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_COLLATE 102
13335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_BITNOT 103
13336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ON 104
13337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_INDEXED 105
13338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_STRING 106
13339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_JOIN_KW 107
13340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_CONSTRAINT 108
13341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_DEFAULT 109
13342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_NULL 110
13343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_PRIMARY 111
13344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UNIQUE 112
13345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_CHECK 113
13346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_REFERENCES 114
13347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_AUTOINCR 115
13348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_INSERT 116
13349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_DELETE 117
13350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UPDATE 118
13351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_SET 119
13352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_DEFERRABLE 120
13353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_FOREIGN 121
13354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_DROP 122
13355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UNION 123
13356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ALL 124
13357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_EXCEPT 125
13358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_INTERSECT 126
13359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_SELECT 127
13360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_VALUES 128
13361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_DISTINCT 129
13362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_DOT 130
13363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_FROM 131
13364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_JOIN 132
13365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_USING 133
13366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ORDER 134
13367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_GROUP 135
13368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_HAVING 136
13369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_LIMIT 137
13370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_WHERE 138
13371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_INTO 139
13372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_NOTHING 140
13373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_FLOAT 141
13374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_BLOB 142
13375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_INTEGER 143
13376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_VARIABLE 144
13377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_CASE 145
13378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_WHEN 146
13379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_THEN 147
13380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ELSE 148
13381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_INDEX 149
13382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ALTER 150
13383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ADD 151
13384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_WINDOW 152
13385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_OVER 153
13386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_FILTER 154
13387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_TRUEFALSE 155
13388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ISNOT 156
13389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_FUNCTION 157
13390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_COLUMN 158
13391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_AGG_FUNCTION 159
13392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_AGG_COLUMN 160
13393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UMINUS 161
13394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UPLUS 162
13395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_TRUTH 163
13396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_REGISTER 164
13397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_VECTOR 165
13398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_SELECT_COLUMN 166
13399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_IF_NULL_ROW 167
13400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ASTERISK 168
13401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_SPAN 169
13402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_END_OF_FILE 170
13403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_UNCLOSED_STRING 171
13404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_SPACE 172
13405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TK_ILLEGAL 173
13307 13406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13308 13407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The token codes above must all fit in 8 bits */
13309 13408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define TKFLG_MASK 0xff
13310 13409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13311 13410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Flags that can be added to a token code when it is not
@@ -13891,12 +13990,39 @@
13891 13990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Upsert Upsert;
13892 13991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct VTable VTable;
13893 13992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct VtabCtx VtabCtx;
13894 13993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Walker Walker;
13895 13994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct WhereInfo WhereInfo;
13995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct Window Window;
13896 13996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct With With;
13897 13997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
14000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The bitmask datatype defined below is used for various optimizations.
14001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
14002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Changing this from a 64-bit to a 32-bit type limits the number of
14003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** tables in a join to 32 instead of 64. But it also reduces the size
14004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the library by 738 bytes on ix86.
14005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
14006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_BITMASK_TYPE
14007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef SQLITE_BITMASK_TYPE Bitmask;
14008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
14009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef u64 Bitmask;
14010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
14011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
14012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
14013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The number of bits in a Bitmask. "BMS" means "BitMask Size".
14014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
14015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define BMS ((int)(sizeof(Bitmask)*8))
14016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
14017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
14018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A bit in a Bitmask
14019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
14020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MASKBIT(n) (((Bitmask)1)<<(n))
14021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MASKBIT32(n) (((unsigned int)1)<<(n))
14022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define ALLBITS ((Bitmask)-1)
14023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13898 14024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A VList object records a mapping between parameters/variables/wildcards
13899 14025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the SQL statement (such as $abc, @pqr, or :xyz) and the integer
13900 14026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** variable number associated with that parameter. See the format description
13901 14027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on the sqlite3VListAdd() routine for more information. A VList is really
13902 14028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** just an array of integers.
@@ -13988,11 +14114,11 @@
13988 14114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeSecureDelete(Btree*,int);
13989 14115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeGetOptimalReserve(Btree*);
13990 14116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeGetReserveNoMutex(Btree *p);
13991 14117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeSetAutoVacuum(Btree *, int);
13992 14118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeGetAutoVacuum(Btree *);
13993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree*,int);
14119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree*,int,int*);
13994 14120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne(Btree*, const char *zMaster);
13995 14121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo(Btree*, int);
13996 14122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeCommit(Btree*);
13997 14123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeRollback(Btree*,int,int);
13998 14124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeBeginStmt(Btree*,int);
@@ -14211,10 +14337,13 @@
14211 14337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
14212 14338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14213 14339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeInsert(BtCursor*, const BtreePayload *pPayload,
14214 14340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int flags, int seekResult);
14215 14341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor*, int *pRes);
14342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
14343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3BtreeSkipNext(BtCursor*);
14344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
14216 14345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor*, int *pRes);
14217 14346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeNext(BtCursor*, int flags);
14218 14347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeEof(BtCursor*);
14219 14348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreePrevious(BtCursor*, int flags);
14220 14349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE i64 sqlite3BtreeIntegerKey(BtCursor*);
@@ -14378,11 +14507,12 @@
14378 14507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef VDBE_PROFILE
14379 14508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 cnt; /* Number of times this instruction was executed */
14380 14509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u64 cycles; /* Total time spent executing this instruction */
14381 14510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
14382 14511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_VDBE_COVERAGE
14383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iSrcLine; /* Source-code line that generated this opcode */
14512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 iSrcLine; /* Source-code line that generated this opcode
14513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with flags in the upper 8 bits */
14384 14514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
14385 14515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
14386 14516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct VdbeOp VdbeOp;
14387 14517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14388 14518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -14479,122 +14609,122 @@
14479 14609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* See the tool/mkopcodeh.tcl script for details */
14480 14610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Savepoint 0
14481 14611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_AutoCommit 1
14482 14612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Transaction 2
14483 14613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_SorterNext 3 /* jump */
14484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_PrevIfOpen 4 /* jump */
14485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NextIfOpen 5 /* jump */
14486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Prev 6 /* jump */
14487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Next 7 /* jump */
14488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Checkpoint 8
14489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_JournalMode 9
14490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Vacuum 10
14491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VFilter 11 /* jump, synopsis: iplan=r[P3] zplan='P4' */
14492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VUpdate 12 /* synopsis: data=r[P3@P2] */
14493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Goto 13 /* jump */
14494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Gosub 14 /* jump */
14495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_InitCoroutine 15 /* jump */
14496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Yield 16 /* jump */
14497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_MustBeInt 17 /* jump */
14498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Jump 18 /* jump */
14614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Prev 4 /* jump */
14615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Next 5 /* jump */
14616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Checkpoint 6
14617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_JournalMode 7
14618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Vacuum 8
14619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VFilter 9 /* jump, synopsis: iplan=r[P3] zplan='P4' */
14620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VUpdate 10 /* synopsis: data=r[P3@P2] */
14621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Goto 11 /* jump */
14622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Gosub 12 /* jump */
14623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_InitCoroutine 13 /* jump */
14624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Yield 14 /* jump */
14625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_MustBeInt 15 /* jump */
14626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Jump 16 /* jump */
14627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Once 17 /* jump */
14628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_If 18 /* jump */
14499 14629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Not 19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */
14500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Once 20 /* jump */
14501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_If 21 /* jump */
14502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfNot 22 /* jump */
14503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfNullRow 23 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */
14504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekLT 24 /* jump, synopsis: key=r[P3@P4] */
14505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekLE 25 /* jump, synopsis: key=r[P3@P4] */
14506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekGE 26 /* jump, synopsis: key=r[P3@P4] */
14507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekGT 27 /* jump, synopsis: key=r[P3@P4] */
14508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NoConflict 28 /* jump, synopsis: key=r[P3@P4] */
14509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NotFound 29 /* jump, synopsis: key=r[P3@P4] */
14510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Found 30 /* jump, synopsis: key=r[P3@P4] */
14511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekRowid 31 /* jump, synopsis: intkey=r[P3] */
14512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NotExists 32 /* jump, synopsis: intkey=r[P3] */
14513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Last 33 /* jump */
14514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfSmaller 34 /* jump */
14515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterSort 35 /* jump */
14516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Sort 36 /* jump */
14517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Rewind 37 /* jump */
14518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxLE 38 /* jump, synopsis: key=r[P3@P4] */
14519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxGT 39 /* jump, synopsis: key=r[P3@P4] */
14520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxLT 40 /* jump, synopsis: key=r[P3@P4] */
14521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxGE 41 /* jump, synopsis: key=r[P3@P4] */
14522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowSetRead 42 /* jump, synopsis: r[P3]=rowset(P1) */
14630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfNot 20 /* jump */
14631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfNullRow 21 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */
14632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekLT 22 /* jump, synopsis: key=r[P3@P4] */
14633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekLE 23 /* jump, synopsis: key=r[P3@P4] */
14634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekGE 24 /* jump, synopsis: key=r[P3@P4] */
14635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekGT 25 /* jump, synopsis: key=r[P3@P4] */
14636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfNoHope 26 /* jump, synopsis: key=r[P3@P4] */
14637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NoConflict 27 /* jump, synopsis: key=r[P3@P4] */
14638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NotFound 28 /* jump, synopsis: key=r[P3@P4] */
14639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Found 29 /* jump, synopsis: key=r[P3@P4] */
14640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekRowid 30 /* jump, synopsis: intkey=r[P3] */
14641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NotExists 31 /* jump, synopsis: intkey=r[P3] */
14642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Last 32 /* jump */
14643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfSmaller 33 /* jump */
14644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterSort 34 /* jump */
14645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Sort 35 /* jump */
14646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Rewind 36 /* jump */
14647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxLE 37 /* jump, synopsis: key=r[P3@P4] */
14648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxGT 38 /* jump, synopsis: key=r[P3@P4] */
14649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxLT 39 /* jump, synopsis: key=r[P3@P4] */
14650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxGE 40 /* jump, synopsis: key=r[P3@P4] */
14651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowSetRead 41 /* jump, synopsis: r[P3]=rowset(P1) */
14652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowSetTest 42 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */
14523 14653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Or 43 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */
14524 14654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_And 44 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */
14525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowSetTest 45 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */
14526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Program 46 /* jump */
14527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_FkIfZero 47 /* jump, synopsis: if fkctr[P1]==0 goto P2 */
14528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfPos 48 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */
14529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfNotZero 49 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */
14655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Program 45 /* jump */
14656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_FkIfZero 46 /* jump, synopsis: if fkctr[P1]==0 goto P2 */
14657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfPos 47 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */
14658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfNotZero 48 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */
14659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_DecrJumpZero 49 /* jump, synopsis: if (--r[P1])==0 goto P2 */
14530 14660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_IsNull 50 /* jump, same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */
14531 14661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_NotNull 51 /* jump, same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */
14532 14662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Ne 52 /* jump, same as TK_NE, synopsis: IF r[P3]!=r[P1] */
14533 14663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Eq 53 /* jump, same as TK_EQ, synopsis: IF r[P3]==r[P1] */
14534 14664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Gt 54 /* jump, same as TK_GT, synopsis: IF r[P3]>r[P1] */
14535 14665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Le 55 /* jump, same as TK_LE, synopsis: IF r[P3]<=r[P1] */
14536 14666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Lt 56 /* jump, same as TK_LT, synopsis: IF r[P3]<r[P1] */
14537 14667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Ge 57 /* jump, same as TK_GE, synopsis: IF r[P3]>=r[P1] */
14538 14668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_ElseNotEq 58 /* jump, same as TK_ESCAPE */
14539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_DecrJumpZero 59 /* jump, synopsis: if (--r[P1])==0 goto P2 */
14540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IncrVacuum 60 /* jump */
14541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VNext 61 /* jump */
14542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Init 62 /* jump, synopsis: Start at P2 */
14543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Return 63
14544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_EndCoroutine 64
14545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_HaltIfNull 65 /* synopsis: if r[P3]=null halt */
14546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Halt 66
14547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Integer 67 /* synopsis: r[P2]=P1 */
14548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Int64 68 /* synopsis: r[P2]=P4 */
14549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_String 69 /* synopsis: r[P2]='P4' (len=P1) */
14550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Null 70 /* synopsis: r[P2..P3]=NULL */
14551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SoftNull 71 /* synopsis: r[P1]=NULL */
14552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Blob 72 /* synopsis: r[P2]=P4 (len=P1) */
14553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Variable 73 /* synopsis: r[P2]=parameter(P1,P4) */
14554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Move 74 /* synopsis: r[P2@P3]=r[P1@P3] */
14555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Copy 75 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */
14556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SCopy 76 /* synopsis: r[P2]=r[P1] */
14557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IntCopy 77 /* synopsis: r[P2]=r[P1] */
14558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ResultRow 78 /* synopsis: output=r[P1@P2] */
14559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_CollSeq 79
14560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AddImm 80 /* synopsis: r[P1]=r[P1]+P2 */
14561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RealAffinity 81
14562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Cast 82 /* synopsis: affinity(r[P1]) */
14563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Permutation 83
14564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Compare 84 /* synopsis: r[P1@P3] <-> r[P2@P3] */
14565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_BitAnd 85 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */
14566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_BitOr 86 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */
14567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ShiftLeft 87 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<<r[P1] */
14568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ShiftRight 88 /* same as TK_RSHIFT, synopsis: r[P3]=r[P2]>>r[P1] */
14569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Add 89 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */
14570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Subtract 90 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */
14571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Multiply 91 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */
14572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Divide 92 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */
14573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Remainder 93 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */
14574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Concat 94 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */
14575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IsTrue 95 /* synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4 */
14576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_BitNot 96 /* same as TK_BITNOT, synopsis: r[P1]= ~r[P1] */
14577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Offset 97 /* synopsis: r[P3] = sqlite_offset(P1) */
14578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Column 98 /* synopsis: r[P3]=PX */
14579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_String8 99 /* same as TK_STRING, synopsis: r[P2]='P4' */
14580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Affinity 100 /* synopsis: affinity(r[P1@P2]) */
14581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_MakeRecord 101 /* synopsis: r[P3]=mkrec(r[P1@P2]) */
14582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Count 102 /* synopsis: r[P2]=count() */
14583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ReadCookie 103
14584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SetCookie 104
14585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ReopenIdx 105 /* synopsis: root=P2 iDb=P3 */
14586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenRead 106 /* synopsis: root=P2 iDb=P3 */
14587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenWrite 107 /* synopsis: root=P2 iDb=P3 */
14588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenDup 108
14589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenAutoindex 109 /* synopsis: nColumn=P2 */
14590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenEphemeral 110 /* synopsis: nColumn=P2 */
14591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterOpen 111
14592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SequenceTest 112 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */
14593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenPseudo 113 /* synopsis: P3 columns in r[P2] */
14594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Close 114
14595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ColumnsUsed 115
14669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IncrVacuum 59 /* jump */
14670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VNext 60 /* jump */
14671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Init 61 /* jump, synopsis: Start at P2 */
14672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Return 62
14673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_EndCoroutine 63
14674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_HaltIfNull 64 /* synopsis: if r[P3]=null halt */
14675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Halt 65
14676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Integer 66 /* synopsis: r[P2]=P1 */
14677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Int64 67 /* synopsis: r[P2]=P4 */
14678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_String 68 /* synopsis: r[P2]='P4' (len=P1) */
14679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Null 69 /* synopsis: r[P2..P3]=NULL */
14680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SoftNull 70 /* synopsis: r[P1]=NULL */
14681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Blob 71 /* synopsis: r[P2]=P4 (len=P1) */
14682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Variable 72 /* synopsis: r[P2]=parameter(P1,P4) */
14683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Move 73 /* synopsis: r[P2@P3]=r[P1@P3] */
14684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Copy 74 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */
14685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SCopy 75 /* synopsis: r[P2]=r[P1] */
14686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IntCopy 76 /* synopsis: r[P2]=r[P1] */
14687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ResultRow 77 /* synopsis: output=r[P1@P2] */
14688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_CollSeq 78
14689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AddImm 79 /* synopsis: r[P1]=r[P1]+P2 */
14690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RealAffinity 80
14691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Cast 81 /* synopsis: affinity(r[P1]) */
14692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Permutation 82
14693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Compare 83 /* synopsis: r[P1@P3] <-> r[P2@P3] */
14694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IsTrue 84 /* synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4 */
14695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Offset 85 /* synopsis: r[P3] = sqlite_offset(P1) */
14696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Column 86 /* synopsis: r[P3]=PX */
14697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Affinity 87 /* synopsis: affinity(r[P1@P2]) */
14698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_MakeRecord 88 /* synopsis: r[P3]=mkrec(r[P1@P2]) */
14699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Count 89 /* synopsis: r[P2]=count() */
14700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ReadCookie 90
14701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SetCookie 91
14702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_BitAnd 92 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */
14703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_BitOr 93 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */
14704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ShiftLeft 94 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<<r[P1] */
14705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ShiftRight 95 /* same as TK_RSHIFT, synopsis: r[P3]=r[P2]>>r[P1] */
14706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Add 96 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */
14707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Subtract 97 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */
14708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Multiply 98 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */
14709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Divide 99 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */
14710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Remainder 100 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */
14711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Concat 101 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */
14712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ReopenIdx 102 /* synopsis: root=P2 iDb=P3 */
14713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_BitNot 103 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */
14714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenRead 104 /* synopsis: root=P2 iDb=P3 */
14715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenWrite 105 /* synopsis: root=P2 iDb=P3 */
14716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_String8 106 /* same as TK_STRING, synopsis: r[P2]='P4' */
14717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenDup 107
14718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenAutoindex 108 /* synopsis: nColumn=P2 */
14719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenEphemeral 109 /* synopsis: nColumn=P2 */
14720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterOpen 110
14721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SequenceTest 111 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */
14722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenPseudo 112 /* synopsis: P3 columns in r[P2] */
14723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Close 113
14724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ColumnsUsed 114
14725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekHit 115 /* synopsis: seekHit=P2 */
14596 14726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Sequence 116 /* synopsis: r[P2]=cursor[P1].ctr++ */
14597 14727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_NewRowid 117 /* synopsis: r[P2]=rowid */
14598 14728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Insert 118 /* synopsis: intkey=r[P3] data=r[P2] */
14599 14729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_InsertInt 119 /* synopsis: intkey=P3 data=r[P2] */
14600 14730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Delete 120
@@ -14609,48 +14739,52 @@
14609 14739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_IdxInsert 129 /* synopsis: key=r[P2] */
14610 14740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_IdxDelete 130 /* synopsis: key=r[P2@P3] */
14611 14741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_DeferredSeek 131 /* synopsis: Move P3 to P1.rowid if needed */
14612 14742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_IdxRowid 132 /* synopsis: r[P2]=rowid */
14613 14743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Destroy 133
14614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Real 134 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
14615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Clear 135
14616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ResetSorter 136
14617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_CreateBtree 137 /* synopsis: r[P2]=root iDb=P1 flags=P3 */
14618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SqlExec 138
14619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ParseSchema 139
14620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_LoadAnalysis 140
14621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_DropTable 141
14744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Clear 134
14745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ResetSorter 135
14746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_CreateBtree 136 /* synopsis: r[P2]=root iDb=P1 flags=P3 */
14747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SqlExec 137
14748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ParseSchema 138
14749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_LoadAnalysis 139
14750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_DropTable 140
14751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Real 141 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
14622 14752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_DropIndex 142
14623 14753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_DropTrigger 143
14624 14754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_IntegrityCk 144
14625 14755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_RowSetAdd 145 /* synopsis: rowset(P1)=r[P2] */
14626 14756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Param 146
14627 14757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_FkCounter 147 /* synopsis: fkctr[P1]+=P2 */
14628 14758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_MemMax 148 /* synopsis: r[P1]=max(r[P1],r[P2]) */
14629 14759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_OffsetLimit 149 /* synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1) */
14630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AggStep0 150 /* synopsis: accum=r[P3] step(r[P2@P5]) */
14760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AggInverse 150 /* synopsis: accum=r[P3] inverse(r[P2@P5]) */
14631 14761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_AggStep 151 /* synopsis: accum=r[P3] step(r[P2@P5]) */
14632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AggFinal 152 /* synopsis: accum=r[P1] N=P2 */
14633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Expire 153
14634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_TableLock 154 /* synopsis: iDb=P1 root=P2 write=P3 */
14635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VBegin 155
14636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VCreate 156
14637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VDestroy 157
14638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VOpen 158
14639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VColumn 159 /* synopsis: r[P3]=vcolumn(P2) */
14640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VRename 160
14641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Pagecount 161
14642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_MaxPgcnt 162
14643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_PureFunc0 163
14644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Function0 164 /* synopsis: r[P3]=func(r[P2@P5]) */
14645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_PureFunc 165
14646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Function 166 /* synopsis: r[P3]=func(r[P2@P5]) */
14647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Trace 167
14648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_CursorHint 168
14649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Noop 169
14650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Explain 170
14651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Abortable 171
14762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AggStep1 152 /* synopsis: accum=r[P3] step(r[P2@P5]) */
14763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AggValue 153 /* synopsis: r[P3]=value N=P2 */
14764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AggFinal 154 /* synopsis: accum=r[P1] N=P2 */
14765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Expire 155
14766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_TableLock 156 /* synopsis: iDb=P1 root=P2 write=P3 */
14767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VBegin 157
14768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VCreate 158
14769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VDestroy 159
14770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VOpen 160
14771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VColumn 161 /* synopsis: r[P3]=vcolumn(P2) */
14772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VRename 162
14773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Pagecount 163
14774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_MaxPgcnt 164
14775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_PureFunc0 165
14776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Function0 166 /* synopsis: r[P3]=func(r[P2@P5]) */
14777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_PureFunc 167
14778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Function 168 /* synopsis: r[P3]=func(r[P2@P5]) */
14779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Trace 169
14780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_CursorHint 170
14781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SetTabCol 171
14782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VerifyTabCol 172
14783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Noop 173
14784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Explain 174
14785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Abortable 175
14652 14786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14653 14787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Properties such as "out2" or "jump" that are specified in
14654 14788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** comments following the "case" for each opcode in the vdbe.c
14655 14789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are encoded into bitvectors as follows:
14656 14790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -14659,40 +14793,41 @@
14659 14793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_IN2 0x04 /* in2: P2 is an input */
14660 14794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_IN3 0x08 /* in3: P3 is an input */
14661 14795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_OUT2 0x10 /* out2: P2 is an output */
14662 14796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_OUT3 0x20 /* out3: P3 is an output */
14663 14797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_INITIALIZER {\
14664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,\
14665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 8 */ 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01,\
14666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 16 */ 0x03, 0x03, 0x01, 0x12, 0x01, 0x03, 0x03, 0x01,\
14798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x10,\
14799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 8 */ 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03,\
14800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 16 */ 0x01, 0x01, 0x03, 0x12, 0x03, 0x01, 0x09, 0x09,\
14667 14801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 24 */ 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,\
14668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 32 */ 0x09, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\
14669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 0x01, 0x01, 0x23, 0x26, 0x26, 0x0b, 0x01, 0x01,\
14802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 32 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\
14803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 0x01, 0x23, 0x0b, 0x26, 0x26, 0x01, 0x01, 0x03,\
14670 14804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 48 */ 0x03, 0x03, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\
14671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x01, 0x01, 0x01, 0x02,\
14672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 64 */ 0x02, 0x08, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00,\
14673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 72 */ 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\
14674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 0x02, 0x02, 0x02, 0x00, 0x00, 0x26, 0x26, 0x26,\
14675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 88 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x12,\
14676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 96 */ 0x12, 0x20, 0x00, 0x10, 0x00, 0x00, 0x10, 0x10,\
14677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 104 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
14805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 56 */ 0x0b, 0x0b, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,\
14806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 64 */ 0x08, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10,\
14807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 72 */ 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x02,\
14808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 0x02, 0x02, 0x00, 0x00, 0x12, 0x20, 0x00, 0x00,\
14809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 88 */ 0x00, 0x10, 0x10, 0x00, 0x26, 0x26, 0x26, 0x26,\
14810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 96 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x00, 0x12,\
14811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 104 */ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\
14678 14812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 112 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\
14679 14813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,\
14680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 128 */ 0x04, 0x04, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00,\
14681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 136 */ 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
14814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 128 */ 0x04, 0x04, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\
14815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 136 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,\
14682 14816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 144 */ 0x00, 0x06, 0x10, 0x00, 0x04, 0x1a, 0x00, 0x00,\
14683 14817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 152 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
14684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\
14685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 168 */ 0x00, 0x00, 0x00, 0x00,}
14818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00,\
14819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
14820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
14686 14821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14687 14822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The sqlite3P2Values() routine is able to run faster if it knows
14688 14823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the value of the largest JUMP opcode. The smaller the maximum
14689 14824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** JUMP opcode the better, so the mkopcodeh.tcl script that
14690 14825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** generated this include file strives to group all JUMP opcodes
14691 14826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** together near the beginning of the list.
14692 14827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
14693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_MX_JUMP_OPCODE 62 /* Maximum JUMP opcode */
14828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_MX_JUMP_OPCODE 61 /* Maximum JUMP opcode */
14694 14829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14695 14830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of opcodes.h *********************************************/
14696 14831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Continuing where we left off in vdbe.h ***********************/
14697 14832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14698 14833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -14786,10 +14921,11 @@
14786 14921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe*, int);
14787 14922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TRACE
14788 14923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE char *sqlite3VdbeExpandSql(Vdbe*, const char*);
14789 14924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
14790 14925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3MemCompare(const Mem*, const Mem*, const CollSeq*);
14926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3BlobCompare(const Mem*, const Mem*);
14791 14927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14792 14928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeRecordUnpack(KeyInfo*,int,const void*,UnpackedRecord*);
14793 14929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeRecordCompare(int,const void*,UnpackedRecord*);
14794 14930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip(int, const void *, UnpackedRecord *, int);
14795 14931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(KeyInfo*);
@@ -14841,35 +14977,68 @@
14841 14977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
14842 14978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken
14843 14979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
14844 14980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** VdbeCoverageNeverTaken(v) // Previous branch is never taken
14845 14981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
14982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** VdbeCoverageNeverNull(v) // Previous three-way branch is only
14983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** // taken on the first two ways. The
14984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** // NULL option is not possible
14985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
14986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested
14987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** // in distingishing equal and not-equal.
14988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
14846 14989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Every VDBE branch operation must be tagged with one of the macros above.
14847 14990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and
14848 14991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch()
14849 14992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** routine in vdbe.c, alerting the developer to the missed tag.
14993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
14994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** During testing, the test application will invoke
14995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback
14996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routine that is invoked as each bytecode branch is taken. The callback
14997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** contains the sqlite3.c source line number ov the VdbeCoverage macro and
14998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flags to indicate whether or not the branch was taken. The test application
14999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is responsible for keeping track of this and reporting byte-code branches
15000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that are never taken.
15001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
15002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the
15003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** vdbe.c source file for additional information.
14850 15004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
14851 15005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_VDBE_COVERAGE
14852 15006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetLineNumber(Vdbe*,int);
14853 15007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeCoverage(v) sqlite3VdbeSetLineNumber(v,__LINE__)
14854 15008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeCoverageIf(v,x) if(x)sqlite3VdbeSetLineNumber(v,__LINE__)
14855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define VdbeCoverageAlwaysTaken(v) sqlite3VdbeSetLineNumber(v,2);
14856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define VdbeCoverageNeverTaken(v) sqlite3VdbeSetLineNumber(v,1);
15009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageAlwaysTaken(v) \
15010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeSetLineNumber(v,__LINE__|0x5000000);
15011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageNeverTaken(v) \
15012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeSetLineNumber(v,__LINE__|0x6000000);
15013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageNeverNull(v) \
15014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeSetLineNumber(v,__LINE__|0x4000000);
15015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageNeverNullIf(v,x) \
15016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(x)sqlite3VdbeSetLineNumber(v,__LINE__|0x4000000);
15017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageEqNe(v) \
15018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeSetLineNumber(v,__LINE__|0x8000000);
14857 15019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VDBE_OFFSET_LINENO(x) (__LINE__+x)
14858 15020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
14859 15021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeCoverage(v)
14860 15022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeCoverageIf(v,x)
14861 15023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeCoverageAlwaysTaken(v)
14862 15024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeCoverageNeverTaken(v)
15025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageNeverNull(v)
15026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageNeverNullIf(v,x)
15027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define VdbeCoverageEqNe(v)
14863 15028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VDBE_OFFSET_LINENO(x) 0
14864 15029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
14865 15030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14866 15031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STMT_SCANSTATUS
14867 15032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeScanStatus(Vdbe*, int, int, int, LogEst, const char*);
14868 15033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
14869 15034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VdbeScanStatus(a,b,c,d,e)
14870 15035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
15036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
15037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE)
15038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, VdbeOp*);
15039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
14871 15040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14872 15041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_VDBE_H */
14873 15042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14874 15043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of vdbe.h ************************************************/
14875 15044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Continuing where we left off in sqliteInt.h ******************/
@@ -16082,10 +16251,11 @@
16082 16251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CursorHints 0x0400 /* Add OP_CursorHint opcodes */
16083 16252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_Stat34 0x0800 /* Use STAT3 or STAT4 data */
16084 16253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* TH3 expects the Stat34 ^^^^^^ value to be 0x0800. Don't change it */
16085 16254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_PushDown 0x1000 /* The push-down optimization */
16086 16255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_SimplifyJoin 0x2000 /* Convert LEFT JOIN to JOIN */
16256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SkipScan 0x4000 /* Skip-scans */
16087 16257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_AllOpts 0xffff /* All optimizations */
16088 16258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16089 16259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16090 16260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Macros for testing whether or not optimizations are enabled or disabled.
16091 16261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -16120,15 +16290,17 @@
16120 16290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The u.pHash field is used by the global built-ins. The u.pDestructor
16121 16291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** field is used by per-connection app-def functions.
16122 16292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
16123 16293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct FuncDef {
16124 16294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i8 nArg; /* Number of arguments. -1 means unlimited */
16125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 funcFlags; /* Some combination of SQLITE_FUNC_* */
16295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 funcFlags; /* Some combination of SQLITE_FUNC_* */
16126 16296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pUserData; /* User data parameter */
16127 16297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDef *pNext; /* Next function with same name */
16128 16298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xSFunc)(sqlite3_context*,int,sqlite3_value**); /* func or agg-step */
16129 16299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFinalize)(sqlite3_context*); /* Agg finalizer */
16300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xValue)(sqlite3_context*); /* Current agg value */
16301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xInverse)(sqlite3_context*,int,sqlite3_value**); /* inverse agg-step */
16130 16302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName; /* SQL name of the function. */
16131 16303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
union {
16132 16304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDef *pHash; /* Next with a different name but the same hash */
16133 16305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDestructor *pDestructor; /* Reference counted destructor function */
16134 16306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} u;
@@ -16181,10 +16353,12 @@
16181 16353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_FUNC_MINMAX 0x1000 /* True for min() and max() aggregates */
16182 16354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_FUNC_SLOCHNG 0x2000 /* "Slow Change". Value constant during a
16183 16355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** single query - might change over time */
16184 16356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_FUNC_AFFINITY 0x4000 /* Built-in affinity() function */
16185 16357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_FUNC_OFFSET 0x8000 /* Built-in sqlite_offset() function */
16358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_FUNC_WINDOW 0x10000 /* Built-in window-only function */
16359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_FUNC_WINDOW_SIZE 0x20000 /* Requires partition size as arg. */
16186 16360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16187 16361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16188 16362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are
16189 16363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** used to create the initializers for the FuncDef structures.
16190 16364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -16214,10 +16388,16 @@
16214 16388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal)
16215 16389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Used to create an aggregate function definition implemented by
16216 16390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the C functions xStep and xFinal. The first four parameters
16217 16391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are interpreted in the same way as the first 4 parameters to
16218 16392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** FUNCTION().
16393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
16394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** WFUNCTION(zName, nArg, iArg, xStep, xFinal, xValue, xInverse)
16395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Used to create an aggregate function definition implemented by
16396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the C functions xStep and xFinal. The first four parameters
16397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** are interpreted in the same way as the first 4 parameters to
16398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FUNCTION().
16219 16399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
16220 16400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** LIKEFUNC(zName, nArg, pArg, flags)
16221 16401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Used to create a scalar function definition of a function zName
16222 16402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that accepts nArg arguments and is implemented by a call to C
16223 16403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function likeFunc. Argument pArg is cast to a (void *) and made
@@ -16225,35 +16405,39 @@
16225 16405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** FuncDef.flags variable is set to the value passed as the flags
16226 16406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** parameter.
16227 16407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
16228 16408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define FUNCTION(zName, nArg, iArg, bNC, xFunc) \
16229 16409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_FUNC_CONSTANT|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \
16230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, #zName, {0} }
16410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} }
16231 16411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define VFUNCTION(zName, nArg, iArg, bNC, xFunc) \
16232 16412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \
16233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, #zName, {0} }
16413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} }
16234 16414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define DFUNCTION(zName, nArg, iArg, bNC, xFunc) \
16235 16415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8, \
16236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, 0, xFunc, 0, #zName, {0} }
16416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, xFunc, 0, 0, 0, #zName, {0} }
16237 16417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define PURE_DATE(zName, nArg, iArg, bNC, xFunc) \
16238 16418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8|SQLITE_FUNC_CONSTANT, \
16239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (void*)&sqlite3Config, 0, xFunc, 0, #zName, {0} }
16419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (void*)&sqlite3Config, 0, xFunc, 0, 0, 0, #zName, {0} }
16240 16420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags) \
16241 16421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg,SQLITE_FUNC_CONSTANT|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL)|extraFlags,\
16242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, #zName, {0} }
16422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} }
16243 16423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc) \
16244 16424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \
16245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pArg, 0, xFunc, 0, #zName, }
16425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pArg, 0, xFunc, 0, 0, 0, #zName, }
16246 16426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define LIKEFUNC(zName, nArg, arg, flags) \
16247 16427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_FUNC_CONSTANT|SQLITE_UTF8|flags, \
16248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (void *)arg, 0, likeFunc, 0, #zName, {0} }
16249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal) \
16428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (void *)arg, 0, likeFunc, 0, 0, 0, #zName, {0} }
16429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue) \
16250 16430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL), \
16251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,#zName, {0}}
16431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,xValue,0,#zName, {0}}
16252 16432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define AGGREGATE2(zName, nArg, arg, nc, xStep, xFinal, extraFlags) \
16253 16433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL)|extraFlags, \
16254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,#zName, {0}}
16434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,xFinal,0,#zName, {0}}
16435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
16436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define WAGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue, xInverse, f) \
16437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL)|f, \
16438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,xValue,xInverse,#zName, {0}}
16255 16439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16256 16440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16257 16441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** All current savepoints are stored in a linked list starting at
16258 16442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3.pSavepoint. The first element in the list is the most recently
16259 16443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** opened savepoint. Savepoints are added to the list by the vdbe
@@ -16735,10 +16919,11 @@
16735 16919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tRowcnt *aAvgEq; /* Average nEq values for keys not in aSample */
16736 16920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
IndexSample *aSample; /* Samples of the left-most key */
16737 16921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tRowcnt *aiRowEst; /* Non-logarithmic stat1 data for this index */
16738 16922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tRowcnt nRowEst0; /* Non-logarithmic number of rows in the index */
16739 16923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
16924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bitmask colNotIdxed; /* 0 for unindexed columns in pTab */
16740 16925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
16741 16926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16742 16927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16743 16928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Allowed values for Index.idxType
16744 16929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -16950,10 +17135,13 @@
16950 17135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TK_COLUMN: the value of p5 for OP_Column
16951 17136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TK_AGG_FUNCTION: nesting depth */
16952 17137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
AggInfo *pAggInfo; /* Used by TK_AGG_COLUMN and TK_AGG_FUNCTION */
16953 17138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab; /* Table for TK_COLUMN expressions. Can be NULL
16954 17139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for a column of an index on an expression */
17140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
17141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin; /* Window definition for window functions */
17142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
16955 17143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
16956 17144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16957 17145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16958 17146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following are the meanings of bits in the Expr.flags field.
16959 17147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -17080,35 +17268,10 @@
17080 17268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx; /* Index in some Table.aCol[] of a column named zName */
17081 17269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} *a;
17082 17270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nId; /* Number of identifiers on the list */
17083 17271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
17084 17272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The bitmask datatype defined below is used for various optimizations.
17087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Changing this from a 64-bit to a 32-bit type limits the number of
17089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** tables in a join to 32 instead of 64. But it also reduces the size
17090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the library by 738 bytes on ix86.
17091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_BITMASK_TYPE
17093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef SQLITE_BITMASK_TYPE Bitmask;
17094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
17095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef u64 Bitmask;
17096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The number of bits in a Bitmask. "BMS" means "BitMask Size".
17100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define BMS ((int)(sizeof(Bitmask)*8))
17102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A bit in a Bitmask
17105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MASKBIT(n) (((Bitmask)1)<<(n))
17107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MASKBIT32(n) (((unsigned int)1)<<(n))
17108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define ALLBITS ((Bitmask)-1)
17109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17110 17273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17111 17274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following structure describes the FROM clause of a SELECT statement.
17112 17275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Each table or subquery in the FROM clause is a separate element of
17113 17276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the SrcList.a[] array.
17114 17277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -17236,10 +17399,11 @@
17236 17399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} uNC;
17237 17400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
NameContext *pNext; /* Next outer name context. NULL for outermost */
17238 17401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nRef; /* Number of names resolved by this context */
17239 17402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nErr; /* Number of errors encountered while resolving names */
17240 17403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u16 ncFlags; /* Zero or more NC_* flags defined below */
17404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pWinSelect; /* SELECT statement for any window functions */
17241 17405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
17242 17406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17243 17407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17244 17408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Allowed values for the NameContext, ncFlags field.
17245 17409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -17258,10 +17422,11 @@
17258 17422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_UEList 0x0080 /* True if uNC.pEList is used */
17259 17423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_UAggInfo 0x0100 /* True if uNC.pAggInfo is used */
17260 17424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_UUpsert 0x0200 /* True if uNC.pUpsert is used */
17261 17425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_MinMaxAgg 0x1000 /* min/max aggregates seen. See note above */
17262 17426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_Complex 0x2000 /* True if a function or subquery seen */
17427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define NC_AllowWin 0x4000 /* Window functions are allowed here */
17263 17428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17264 17429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17265 17430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of the following object describes a single ON CONFLICT
17266 17431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** clause in an upsert.
17267 17432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -17312,13 +17477,11 @@
17312 17477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pEList; /* The fields of the result */
17313 17478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 op; /* One of: TK_UNION TK_ALL TK_INTERSECT TK_EXCEPT */
17314 17479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LogEst nSelectRow; /* Estimated number of result rows */
17315 17480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 selFlags; /* Various SF_* values */
17316 17481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iLimit, iOffset; /* Memory registers holding LIMIT & OFFSET counters */
17317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
17318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zSelName[12]; /* Symbolic name of this SELECT use for debugging */
17319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 selId; /* Unique identifier number for this SELECT */
17320 17483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrOpenEphm[2]; /* OP_OpenEphem opcodes related to this select */
17321 17484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SrcList *pSrc; /* The FROM clause */
17322 17485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pWhere; /* The WHERE clause */
17323 17486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pGroupBy; /* The GROUP BY clause */
17324 17487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pHaving; /* The HAVING clause */
@@ -17325,10 +17488,14 @@
17325 17488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pOrderBy; /* The ORDER BY clause */
17326 17489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Select *pPrior; /* Prior select in a compound select statement */
17327 17490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Select *pNext; /* Next select to the left in a compound */
17328 17491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pLimit; /* LIMIT expression. NULL means not used. */
17329 17492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
With *pWith; /* WITH clause attached to this select. Or NULL. */
17493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
17494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin; /* List of window functions */
17495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWinDefn; /* List of named window definitions */
17496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
17330 17497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
17331 17498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17332 17499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17333 17500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Allowed values for Select.selFlags. The "SF" prefix stands for
17334 17501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "Select Flag".
@@ -17571,13 +17738,11 @@
17571 17738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yDbMask writeMask; /* Start a write transaction on these databases */
17572 17739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yDbMask cookieMask; /* Bitmask of schema verified databases */
17573 17740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regRowid; /* Register holding rowid of CREATE TABLE entry */
17574 17741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regRoot; /* Register holding root page number for new objects */
17575 17742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nMaxArg; /* Max args passed to user function by sub-program */
17576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
17577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nSelect; /* Number of SELECT statements seen */
17578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nSelect; /* Number of SELECT stmts. Counter for Select.selId */
17579 17744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_SHARED_CACHE
17580 17745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nTableLock; /* Number of locks in aTableLock */
17581 17746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TableLock *aTableLock; /* Required table locks for shared-cache mode */
17582 17747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
17583 17748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
AutoincInfo *pAinc; /* Information about AUTOINCREMENT counters */
@@ -17887,11 +18052,11 @@
17887 18052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
17888 18053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_VDBE_COVERAGE
17889 18054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The following callback (if not NULL) is invoked on every VDBE branch
17890 18055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** operation. Set the callback using SQLITE_TESTCTRL_VDBE_COVERAGE.
17891 18056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
17892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xVdbeBranch)(void*,int iSrcLine,u8 eThis,u8 eMx); /* Callback */
18057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xVdbeBranch)(void*,unsigned iSrcLine,u8 eThis,u8 eMx); /* Callback */
17893 18058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pVdbeBranchArg; /* 1st argument */
17894 18059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
17895 18060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_UNTESTABLE
17896 18061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int (*xTestCallback)(int); /* Invoked by sqlite3FaultSim() */
17897 18062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -17938,10 +18103,11 @@
17938 18103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *aiCol; /* array of column indexes */
17939 18104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct IdxCover *pIdxCover; /* Check for index coverage */
17940 18105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct IdxExprTrans *pIdxTrans; /* Convert idxed expr to column */
17941 18106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pGroupBy; /* GROUP BY clause */
17942 18107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Select *pSelect; /* HAVING to WHERE clause ctx */
18108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WindowRewrite *pRewrite; /* Window rewrite context */
17943 18109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} u;
17944 18110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
17945 18111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17946 18112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Forward declarations */
17947 18113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3WalkExpr(Walker*, Expr*);
@@ -17988,10 +18154,72 @@
17988 18154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iLevel; /* Which level of the tree we are on */
17989 18155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 bLine[100]; /* Draw vertical in column i if bLine[i] is true */
17990 18156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
17991 18157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_DEBUG */
17992 18158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
18160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This object is used in varioius ways, all related to window functions
18161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
18162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (1) A single instance of this structure is attached to the
18163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the Expr.pWin field for each window function in an expression tree.
18164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This object holds the information contained in the OVER clause,
18165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** plus additional fields used during code generation.
18166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
18167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (2) All window functions in a single SELECT form a linked-list
18168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** attached to Select.pWin. The Window.pFunc and Window.pExpr
18169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** fields point back to the expression that is the window function.
18170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
18171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (3) The terms of the WINDOW clause of a SELECT are instances of this
18172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** object on a linked list attached to Select.pWinDefn.
18173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
18174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The uses (1) and (2) are really the same Window object that just happens
18175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to be accessible in two different ways. Use (3) is are separate objects.
18176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
18177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Window {
18178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zName; /* Name of window (may be NULL) */
18179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pPartition; /* PARTITION BY clause */
18180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pOrderBy; /* ORDER BY clause */
18181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 eType; /* TK_RANGE or TK_ROWS */
18182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 eStart; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */
18183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 eEnd; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */
18184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pStart; /* Expression for "<expr> PRECEDING" */
18185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pEnd; /* Expression for "<expr> FOLLOWING" */
18186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pNextWin; /* Next window function belonging to this SELECT */
18187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pFilter; /* The FILTER expression */
18188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc; /* The function */
18189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iEphCsr; /* Partition buffer or Peer buffer */
18190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regAccum;
18191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regResult;
18192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csrApp; /* Function cursor (used by min/max) */
18193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regApp; /* Function register (also used by min/max) */
18194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regPart; /* First in a set of registers holding PARTITION BY
18195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and ORDER BY values for the window */
18196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pOwner; /* Expression object this window is attached to */
18197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nBufferCol; /* Number of columns in buffer table */
18198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iArgCol; /* Offset of first argument for this function */
18199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
18200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
18201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
18202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowDelete(sqlite3*, Window*);
18203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowListDelete(sqlite3 *db, Window *p);
18204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Window *sqlite3WindowAlloc(Parse*, int, int, Expr*, int , Expr*);
18205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowAttach(Parse*, Expr*, Window*);
18206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3WindowCompare(Parse*, Window*, Window*);
18207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowCodeInit(Parse*, Window*);
18208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowCodeStep(Parse*, Select*, WhereInfo*, int, int);
18209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3WindowRewrite(Parse*, Select*);
18210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExpandSubquery(Parse*, struct SrcList_item*);
18211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowUpdate(Parse*, Window*, Window*, FuncDef*);
18212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p);
18213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Window *sqlite3WindowListDup(sqlite3 *db, Window *p);
18214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowFunctions(void);
18215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
18216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3WindowDelete(a,b)
18217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3WindowFunctions()
18218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3WindowAttach(a,b,c)
18219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
18220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
17993 18221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17994 18222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Assuming zIn points to the first byte of a UTF-8 character,
17995 18223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** advance zIn to point to the first byte of the next UTF-8 character.
17996 18224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
17997 18225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_SKIP_UTF8(zIn) { \
@@ -18202,10 +18430,14 @@
18202 18430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView*, const Expr*, u8);
18203 18431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3TreeViewBareExprList(TreeView*, const ExprList*, const char*);
18204 18432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3TreeViewExprList(TreeView*, const ExprList*, u8, const char*);
18205 18433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView*, const Select*, u8);
18206 18434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3TreeViewWith(TreeView*, const With*, u8);
18435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
18436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView*, const Window*, u8);
18437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3TreeViewWinFunc(TreeView*, const Window*, u8);
18438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
18207 18439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
18208 18440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18209 18441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18210 18442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*);
18211 18443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...);
@@ -18457,15 +18689,10 @@
18457 18689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Expr *sqlite3ExprDup(sqlite3*,Expr*,int);
18458 18690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE ExprList *sqlite3ExprListDup(sqlite3*,ExprList*,int);
18459 18691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE SrcList *sqlite3SrcListDup(sqlite3*,SrcList*,int);
18460 18692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE IdList *sqlite3IdListDup(sqlite3*,IdList*);
18461 18693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3*,Select*,int);
18462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
18463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3SelectSetName(Select*,const char*);
18464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
18465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define sqlite3SelectSetName(A,B)
18466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18467 18694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs(FuncDef*,int);
18468 18695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE FuncDef *sqlite3FindFunction(sqlite3*,const char*,int,u8,u8);
18469 18696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void);
18470 18697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void);
18471 18698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3*);
@@ -18695,16 +18922,21 @@
18695 18922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *);
18696 18923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoAlloc(sqlite3*,int,int);
18697 18924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3KeyInfoUnref(KeyInfo*);
18698 18925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoRef(KeyInfo*);
18699 18926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoOfIndex(Parse*, Index*);
18927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoFromExprList(Parse*, ExprList*, int, int);
18928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
18700 18929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
18701 18930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3KeyInfoIsWriteable(KeyInfo*);
18702 18931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
18703 18932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *,
18704 18933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*)(sqlite3_context*,int,sqlite3_value **),
18705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*)(sqlite3_context*,int,sqlite3_value **), void (*)(sqlite3_context*),
18934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*)(sqlite3_context*,int,sqlite3_value **),
18935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*)(sqlite3_context*),
18936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*)(sqlite3_context*),
18937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*)(sqlite3_context*,int,sqlite3_value **),
18706 18938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDestructor *pDestructor
18707 18939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
18708 18940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3NoopDestructor(void*);
18709 18941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3OomFault(sqlite3*);
18710 18942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3OomClear(sqlite3*);
@@ -18741,10 +18973,11 @@
18741 18973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_AMALGAMATION
18742 18974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void *sqlite3ParserAlloc(void*(*)(u64), Parse*);
18743 18975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ParserFree(void*, void(*)(void*));
18744 18976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
18745 18977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3Parser(void*, int, Token);
18978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ParserFallback(int);
18746 18979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef YYTRACKMAXSTACKDEPTH
18747 18980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ParserStackPeak(void*);
18748 18981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
18749 18982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18750 18983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AutoLoadExtensions(sqlite3*);
@@ -19441,10 +19674,11 @@
19441 19674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 wrFlag; /* The wrFlag argument to sqlite3BtreeCursor() */
19442 19675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
19443 19676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bool isEphemeral:1; /* True for an ephemeral table */
19444 19677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bool useRandomRowid:1; /* Generate new record numbers semi-randomly */
19445 19678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bool isOrdered:1; /* True if the table is not BTREE_UNORDERED */
19679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool seekHit:1; /* See the OP_SeekHit and OP_IfNoHope opcodes */
19446 19680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBtx; /* Separate file holding temporary table */
19447 19681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 seqCount; /* Sequence counter */
19448 19682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *aAltMap; /* Mapping from table to index column numbers */
19449 19683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19450 19684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Cached OP_Column parse information is only valid if cacheStatus matches
@@ -19564,11 +19798,15 @@
19564 19798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 uTemp; /* Transient storage for serial_type in OP_MakeRecord */
19565 19799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db; /* The associated database connection */
19566 19800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xDel)(void*);/* Destructor for Mem.z - only valid if MEM_Dyn */
19567 19801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
19568 19802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pScopyFrom; /* This Mem is a shallow copy of pScopyFrom */
19569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *pFiller; /* So that sizeof(Mem) is a multiple of 8 */
19803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 mScopyFlags; /* flags value immediately after the shallow copy */
19804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
19805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
19806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 iTabColHash; /* Hash of table.column that is origin of this value */
19807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 iPadding; /* sqlite3_value objects must be 8-byte aligned */
19570 19808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
19571 19809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
19572 19810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19573 19811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
19574 19812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Size of struct Mem not including the Mem.zMalloc member or anything that
@@ -19804,13 +20042,10 @@
19804 20042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeError(Vdbe*, const char *, ...);
19805 20043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeFreeCursor(Vdbe *, VdbeCursor*);
19806 20044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void sqliteVdbePopStack(Vdbe*,int);
19807 20045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeCursorMoveto(VdbeCursor**, int*);
19808 20046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeCursorRestore(VdbeCursor*);
19809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE)
19810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, Op*);
19811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
19812 20047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen(u32);
19813 20048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u8 sqlite3VdbeOneByteSerialTypeLen(u8);
19814 20049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialType(Mem*, int, u32*);
19815 20050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialPut(unsigned char*, Mem*, u32);
19816 20051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialGet(const unsigned char*, u32, Mem*);
@@ -19851,10 +20086,13 @@
19851 20086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeMemNumerify(Mem*);
19852 20087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeMemCast(Mem*,u8,u8);
19853 20088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeMemFromBtree(BtCursor*,u32,u32,Mem*);
19854 20089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeMemRelease(Mem *p);
19855 20090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeMemFinalize(Mem*, FuncDef*);
20091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
20092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemAggValue(Mem*, Mem*, FuncDef*);
20093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
19856 20094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE const char *sqlite3OpcodeName(int);
19857 20095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeMemGrow(Mem *pMem, int n, int preserve);
19858 20096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeMemClearAndResize(Mem *pMem, int n);
19859 20097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeCloseStatement(Vdbe *, int);
19860 20098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame*);
@@ -21953,13 +22191,16 @@
21953 22191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21954 22192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
21955 22193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Unregister a VFS so that it is no longer accessible.
21956 22194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
21957 22195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs *pVfs){
21958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SQLITE_THREADSAFE
21959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
22196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC(sqlite3_mutex *mutex;)
22197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_AUTOINIT
22198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = sqlite3_initialize();
22199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc ) return rc;
21960 22200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
22201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); )
21961 22202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(mutex);
21962 22203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vfsUnlink(pVfs);
21963 22204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(mutex);
21964 22205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
21965 22206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -27984,25 +28225,17 @@
27984 28225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewWith(pView, p->pWith, 1);
27985 28226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cnt = 1;
27986 28227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewPush(pView, 1);
27987 28228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
27988 28229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
27989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
27990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3TreeViewLine(pView,
27991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "SELECT%s%s (%s/%p) selFlags=0x%x nSelectRow=%d",
27992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""),
27993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""),
27994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zSelName, p, p->selFlags,
27995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (int)p->nSelectRow
27996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
27997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
27998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3TreeViewLine(pView, "SELECT%s%s (0x%p) selFlags=0x%x nSelectRow=%d",
27999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""),
28000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""), p, p->selFlags,
28001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (int)p->nSelectRow
28002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
28003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
28230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewLine(pView,
28231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "SELECT%s%s (%u/%p) selFlags=0x%x nSelectRow=%d",
28232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""),
28233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""),
28234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->selId, p, p->selFlags,
28235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (int)p->nSelectRow
28236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
28004 28237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( cnt++ ) sqlite3TreeViewPop(pView);
28005 28238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pPrior ){
28006 28239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = 1000;
28007 28240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
28008 28241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = 0;
@@ -28010,12 +28243,27 @@
28010 28243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pWhere ) n++;
28011 28244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pGroupBy ) n++;
28012 28245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pHaving ) n++;
28013 28246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pOrderBy ) n++;
28014 28247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pLimit ) n++;
28248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pWin ) n++;
28250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pWinDefn ) n++;
28251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
28015 28252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28016 28253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewExprList(pView, p->pEList, (n--)>0, "result-set");
28254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pWin ){
28256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pX;
28257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pView = sqlite3TreeViewPush(pView, (n--)>0);
28258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewLine(pView, "window-functions");
28259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pX=p->pWin; pX; pX=pX->pNextWin){
28260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewWinFunc(pView, pX, pX->pNextWin!=0);
28261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
28017 28265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pSrc && p->pSrc->nSrc ){
28018 28266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
28019 28267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pView = sqlite3TreeViewPush(pView, (n--)>0);
28020 28268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewLine(pView, "FROM");
28021 28269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<p->pSrc->nSrc; i++){
@@ -28061,10 +28309,20 @@
28061 28309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pHaving ){
28062 28310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewItem(pView, "HAVING", (n--)>0);
28063 28311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewExpr(pView, p->pHaving, 0);
28064 28312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewPop(pView);
28065 28313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pWinDefn ){
28316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pX;
28317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewItem(pView, "WINDOW", (n--)>0);
28318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pX=p->pWinDefn; pX; pX=pX->pNextWin){
28319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewWindow(pView, pX, pX->pNextWin!=0);
28320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
28066 28324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pOrderBy ){
28067 28325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewExprList(pView, p->pOrderBy, (n--)>0, "ORDERBY");
28068 28326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28069 28327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pLimit ){
28070 28328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewItem(pView, "LIMIT", (n--)>0);
@@ -28088,10 +28346,87 @@
28088 28346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = p->pPrior;
28089 28347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}while( p!=0 );
28090 28348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewPop(pView);
28091 28349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28092 28350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
28351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
28353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Generate a description of starting or stopping bounds
28354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
28355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3TreeViewBound(
28356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TreeView *pView, /* View context */
28357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 eBound, /* UNBOUNDED, CURRENT, PRECEDING, FOLLOWING */
28358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pExpr, /* Value for PRECEDING or FOLLOWING */
28359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 moreToFollow /* True if more to follow */
28360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
28361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( eBound ){
28362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_UNBOUNDED: {
28363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewItem(pView, "UNBOUNDED", moreToFollow);
28364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
28366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_CURRENT: {
28368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewItem(pView, "CURRENT", moreToFollow);
28369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
28371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_PRECEDING: {
28373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewItem(pView, "PRECEDING", moreToFollow);
28374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewExpr(pView, pExpr, 0);
28375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
28377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_FOLLOWING: {
28379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewItem(pView, "FOLLOWING", moreToFollow);
28380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewExpr(pView, pExpr, 0);
28381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
28383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
28387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
28388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
28390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Generate a human-readable explanation for a Window object
28391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
28392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView *pView, const Window *pWin, u8 more){
28393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pView = sqlite3TreeViewPush(pView, more);
28394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->zName ){
28395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewLine(pView, "OVER %s", pWin->zName);
28396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
28397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewLine(pView, "OVER");
28398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->pPartition ){
28400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewExprList(pView, pWin->pPartition, 1, "PARTITION-BY");
28401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->pOrderBy ){
28403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewExprList(pView, pWin->pOrderBy, 1, "ORDER-BY");
28404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->eType ){
28406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewItem(pView, pWin->eType==TK_RANGE ? "RANGE" : "ROWS", 0);
28407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewBound(pView, pWin->eStart, pWin->pStart, 1);
28408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewBound(pView, pWin->eEnd, pWin->pEnd, 0);
28409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
28414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
28415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
28417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Generate a human-readable explanation for a Window Function object
28418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
28419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3TreeViewWinFunc(TreeView *pView, const Window *pWin, u8 more){
28420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pView = sqlite3TreeViewPush(pView, more);
28421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewLine(pView, "WINFUNC %s(%d)",
28422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pFunc->zName, pWin->pFunc->nArg);
28423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewWindow(pView, pWin, 0);
28424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewPop(pView);
28425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
28427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
28093 28428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
28094 28429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate a human-readable explanation of an expression tree.
28095 28430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
28096 28431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 moreToFollow){
28097 28432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zBinOp = 0; /* Binary operator */
@@ -28238,24 +28573,36 @@
28238 28573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28239 28574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
28240 28575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_AGG_FUNCTION:
28241 28576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_FUNCTION: {
28242 28577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pFarg; /* List of function arguments */
28578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
28243 28579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pExpr, EP_TokenOnly) ){
28244 28580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFarg = 0;
28581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin = 0;
28245 28582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
28246 28583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFarg = pExpr->x.pList;
28584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin = pExpr->pWin;
28586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
28587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin = 0;
28588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
28247 28589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28248 28590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pExpr->op==TK_AGG_FUNCTION ){
28249 28591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewLine(pView, "AGG_FUNCTION%d %Q",
28250 28592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pExpr->op2, pExpr->u.zToken);
28251 28593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
28252 28594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewLine(pView, "FUNCTION %Q", pExpr->u.zToken);
28253 28595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28254 28596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pFarg ){
28255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3TreeViewExprList(pView, pFarg, 0, 0);
28597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewExprList(pView, pFarg, pWin!=0, 0);
28256 28598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITe_OMIT_WINDOWFUNC
28600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin ){
28601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewWindow(pView, pWin, 0);
28602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
28603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
28257 28604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
28258 28605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28259 28606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_SUBQUERY
28260 28607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_EXISTS: {
28261 28608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewLine(pView, "EXISTS-expr flags=0x%x", pExpr->flags);
@@ -31283,122 +31630,122 @@
31283 31630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const char *const azName[] = {
31284 31631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 0 */ "Savepoint" OpHelp(""),
31285 31632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1 */ "AutoCommit" OpHelp(""),
31286 31633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 2 */ "Transaction" OpHelp(""),
31287 31634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 3 */ "SorterNext" OpHelp(""),
31288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 4 */ "PrevIfOpen" OpHelp(""),
31289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 5 */ "NextIfOpen" OpHelp(""),
31290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 6 */ "Prev" OpHelp(""),
31291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 7 */ "Next" OpHelp(""),
31292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 8 */ "Checkpoint" OpHelp(""),
31293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 9 */ "JournalMode" OpHelp(""),
31294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ "Vacuum" OpHelp(""),
31295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 11 */ "VFilter" OpHelp("iplan=r[P3] zplan='P4'"),
31296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 12 */ "VUpdate" OpHelp("data=r[P3@P2]"),
31297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 13 */ "Goto" OpHelp(""),
31298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 14 */ "Gosub" OpHelp(""),
31299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 15 */ "InitCoroutine" OpHelp(""),
31300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 16 */ "Yield" OpHelp(""),
31301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 17 */ "MustBeInt" OpHelp(""),
31302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 18 */ "Jump" OpHelp(""),
31635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 4 */ "Prev" OpHelp(""),
31636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 5 */ "Next" OpHelp(""),
31637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 6 */ "Checkpoint" OpHelp(""),
31638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 7 */ "JournalMode" OpHelp(""),
31639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 8 */ "Vacuum" OpHelp(""),
31640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 9 */ "VFilter" OpHelp("iplan=r[P3] zplan='P4'"),
31641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ "VUpdate" OpHelp("data=r[P3@P2]"),
31642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 11 */ "Goto" OpHelp(""),
31643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 12 */ "Gosub" OpHelp(""),
31644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 13 */ "InitCoroutine" OpHelp(""),
31645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 14 */ "Yield" OpHelp(""),
31646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 15 */ "MustBeInt" OpHelp(""),
31647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 16 */ "Jump" OpHelp(""),
31648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 17 */ "Once" OpHelp(""),
31649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 18 */ "If" OpHelp(""),
31303 31650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 19 */ "Not" OpHelp("r[P2]= !r[P1]"),
31304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ "Once" OpHelp(""),
31305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 21 */ "If" OpHelp(""),
31306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 22 */ "IfNot" OpHelp(""),
31307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 23 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"),
31308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 24 */ "SeekLT" OpHelp("key=r[P3@P4]"),
31309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 25 */ "SeekLE" OpHelp("key=r[P3@P4]"),
31310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 26 */ "SeekGE" OpHelp("key=r[P3@P4]"),
31311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 27 */ "SeekGT" OpHelp("key=r[P3@P4]"),
31312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 28 */ "NoConflict" OpHelp("key=r[P3@P4]"),
31313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 29 */ "NotFound" OpHelp("key=r[P3@P4]"),
31314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ "Found" OpHelp("key=r[P3@P4]"),
31315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 31 */ "SeekRowid" OpHelp("intkey=r[P3]"),
31316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 32 */ "NotExists" OpHelp("intkey=r[P3]"),
31317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 33 */ "Last" OpHelp(""),
31318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 34 */ "IfSmaller" OpHelp(""),
31319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 35 */ "SorterSort" OpHelp(""),
31320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 36 */ "Sort" OpHelp(""),
31321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 37 */ "Rewind" OpHelp(""),
31322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 38 */ "IdxLE" OpHelp("key=r[P3@P4]"),
31323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 39 */ "IdxGT" OpHelp("key=r[P3@P4]"),
31324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ "IdxLT" OpHelp("key=r[P3@P4]"),
31325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 41 */ "IdxGE" OpHelp("key=r[P3@P4]"),
31326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 42 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"),
31651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ "IfNot" OpHelp(""),
31652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 21 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"),
31653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 22 */ "SeekLT" OpHelp("key=r[P3@P4]"),
31654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 23 */ "SeekLE" OpHelp("key=r[P3@P4]"),
31655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 24 */ "SeekGE" OpHelp("key=r[P3@P4]"),
31656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 25 */ "SeekGT" OpHelp("key=r[P3@P4]"),
31657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 26 */ "IfNoHope" OpHelp("key=r[P3@P4]"),
31658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 27 */ "NoConflict" OpHelp("key=r[P3@P4]"),
31659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 28 */ "NotFound" OpHelp("key=r[P3@P4]"),
31660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 29 */ "Found" OpHelp("key=r[P3@P4]"),
31661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ "SeekRowid" OpHelp("intkey=r[P3]"),
31662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 31 */ "NotExists" OpHelp("intkey=r[P3]"),
31663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 32 */ "Last" OpHelp(""),
31664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 33 */ "IfSmaller" OpHelp(""),
31665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 34 */ "SorterSort" OpHelp(""),
31666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 35 */ "Sort" OpHelp(""),
31667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 36 */ "Rewind" OpHelp(""),
31668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 37 */ "IdxLE" OpHelp("key=r[P3@P4]"),
31669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 38 */ "IdxGT" OpHelp("key=r[P3@P4]"),
31670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 39 */ "IdxLT" OpHelp("key=r[P3@P4]"),
31671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ "IdxGE" OpHelp("key=r[P3@P4]"),
31672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 41 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"),
31673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 42 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"),
31327 31674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 43 */ "Or" OpHelp("r[P3]=(r[P1] || r[P2])"),
31328 31675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 44 */ "And" OpHelp("r[P3]=(r[P1] && r[P2])"),
31329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 45 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"),
31330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 46 */ "Program" OpHelp(""),
31331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 47 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"),
31332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 48 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"),
31333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 49 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"),
31676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 45 */ "Program" OpHelp(""),
31677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 46 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"),
31678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 47 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"),
31679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 48 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"),
31680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 49 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"),
31334 31681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 50 */ "IsNull" OpHelp("if r[P1]==NULL goto P2"),
31335 31682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 51 */ "NotNull" OpHelp("if r[P1]!=NULL goto P2"),
31336 31683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 52 */ "Ne" OpHelp("IF r[P3]!=r[P1]"),
31337 31684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 53 */ "Eq" OpHelp("IF r[P3]==r[P1]"),
31338 31685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 54 */ "Gt" OpHelp("IF r[P3]>r[P1]"),
31339 31686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 55 */ "Le" OpHelp("IF r[P3]<=r[P1]"),
31340 31687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 56 */ "Lt" OpHelp("IF r[P3]<r[P1]"),
31341 31688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 57 */ "Ge" OpHelp("IF r[P3]>=r[P1]"),
31342 31689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 58 */ "ElseNotEq" OpHelp(""),
31343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 59 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"),
31344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ "IncrVacuum" OpHelp(""),
31345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 61 */ "VNext" OpHelp(""),
31346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 62 */ "Init" OpHelp("Start at P2"),
31347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 63 */ "Return" OpHelp(""),
31348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 64 */ "EndCoroutine" OpHelp(""),
31349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 65 */ "HaltIfNull" OpHelp("if r[P3]=null halt"),
31350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 66 */ "Halt" OpHelp(""),
31351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 67 */ "Integer" OpHelp("r[P2]=P1"),
31352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 68 */ "Int64" OpHelp("r[P2]=P4"),
31353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 69 */ "String" OpHelp("r[P2]='P4' (len=P1)"),
31354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ "Null" OpHelp("r[P2..P3]=NULL"),
31355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 71 */ "SoftNull" OpHelp("r[P1]=NULL"),
31356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 72 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"),
31357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 73 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"),
31358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 74 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"),
31359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 75 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"),
31360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 76 */ "SCopy" OpHelp("r[P2]=r[P1]"),
31361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 77 */ "IntCopy" OpHelp("r[P2]=r[P1]"),
31362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 78 */ "ResultRow" OpHelp("output=r[P1@P2]"),
31363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 79 */ "CollSeq" OpHelp(""),
31364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ "AddImm" OpHelp("r[P1]=r[P1]+P2"),
31365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 81 */ "RealAffinity" OpHelp(""),
31366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 82 */ "Cast" OpHelp("affinity(r[P1])"),
31367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 83 */ "Permutation" OpHelp(""),
31368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 84 */ "Compare" OpHelp("r[P1@P3] <-> r[P2@P3]"),
31369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 85 */ "BitAnd" OpHelp("r[P3]=r[P1]&r[P2]"),
31370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 86 */ "BitOr" OpHelp("r[P3]=r[P1]|r[P2]"),
31371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 87 */ "ShiftLeft" OpHelp("r[P3]=r[P2]<<r[P1]"),
31372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 88 */ "ShiftRight" OpHelp("r[P3]=r[P2]>>r[P1]"),
31373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 89 */ "Add" OpHelp("r[P3]=r[P1]+r[P2]"),
31374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ "Subtract" OpHelp("r[P3]=r[P2]-r[P1]"),
31375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 91 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"),
31376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 92 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"),
31377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 93 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"),
31378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 94 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"),
31379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 95 */ "IsTrue" OpHelp("r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4"),
31380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 96 */ "BitNot" OpHelp("r[P1]= ~r[P1]"),
31381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 97 */ "Offset" OpHelp("r[P3] = sqlite_offset(P1)"),
31382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 98 */ "Column" OpHelp("r[P3]=PX"),
31383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 99 */ "String8" OpHelp("r[P2]='P4'"),
31384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ "Affinity" OpHelp("affinity(r[P1@P2])"),
31385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 101 */ "MakeRecord" OpHelp("r[P3]=mkrec(r[P1@P2])"),
31386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 102 */ "Count" OpHelp("r[P2]=count()"),
31387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 103 */ "ReadCookie" OpHelp(""),
31388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 104 */ "SetCookie" OpHelp(""),
31389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 105 */ "ReopenIdx" OpHelp("root=P2 iDb=P3"),
31390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 106 */ "OpenRead" OpHelp("root=P2 iDb=P3"),
31391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 107 */ "OpenWrite" OpHelp("root=P2 iDb=P3"),
31392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 108 */ "OpenDup" OpHelp(""),
31393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 109 */ "OpenAutoindex" OpHelp("nColumn=P2"),
31394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ "OpenEphemeral" OpHelp("nColumn=P2"),
31395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 111 */ "SorterOpen" OpHelp(""),
31396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 112 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"),
31397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 113 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"),
31398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 114 */ "Close" OpHelp(""),
31399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 115 */ "ColumnsUsed" OpHelp(""),
31690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 59 */ "IncrVacuum" OpHelp(""),
31691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ "VNext" OpHelp(""),
31692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 61 */ "Init" OpHelp("Start at P2"),
31693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 62 */ "Return" OpHelp(""),
31694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 63 */ "EndCoroutine" OpHelp(""),
31695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 64 */ "HaltIfNull" OpHelp("if r[P3]=null halt"),
31696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 65 */ "Halt" OpHelp(""),
31697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 66 */ "Integer" OpHelp("r[P2]=P1"),
31698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 67 */ "Int64" OpHelp("r[P2]=P4"),
31699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 68 */ "String" OpHelp("r[P2]='P4' (len=P1)"),
31700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 69 */ "Null" OpHelp("r[P2..P3]=NULL"),
31701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ "SoftNull" OpHelp("r[P1]=NULL"),
31702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 71 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"),
31703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 72 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"),
31704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 73 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"),
31705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 74 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"),
31706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 75 */ "SCopy" OpHelp("r[P2]=r[P1]"),
31707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 76 */ "IntCopy" OpHelp("r[P2]=r[P1]"),
31708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 77 */ "ResultRow" OpHelp("output=r[P1@P2]"),
31709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 78 */ "CollSeq" OpHelp(""),
31710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 79 */ "AddImm" OpHelp("r[P1]=r[P1]+P2"),
31711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ "RealAffinity" OpHelp(""),
31712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 81 */ "Cast" OpHelp("affinity(r[P1])"),
31713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 82 */ "Permutation" OpHelp(""),
31714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 83 */ "Compare" OpHelp("r[P1@P3] <-> r[P2@P3]"),
31715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 84 */ "IsTrue" OpHelp("r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4"),
31716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 85 */ "Offset" OpHelp("r[P3] = sqlite_offset(P1)"),
31717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 86 */ "Column" OpHelp("r[P3]=PX"),
31718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 87 */ "Affinity" OpHelp("affinity(r[P1@P2])"),
31719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 88 */ "MakeRecord" OpHelp("r[P3]=mkrec(r[P1@P2])"),
31720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 89 */ "Count" OpHelp("r[P2]=count()"),
31721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ "ReadCookie" OpHelp(""),
31722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 91 */ "SetCookie" OpHelp(""),
31723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 92 */ "BitAnd" OpHelp("r[P3]=r[P1]&r[P2]"),
31724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 93 */ "BitOr" OpHelp("r[P3]=r[P1]|r[P2]"),
31725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 94 */ "ShiftLeft" OpHelp("r[P3]=r[P2]<<r[P1]"),
31726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 95 */ "ShiftRight" OpHelp("r[P3]=r[P2]>>r[P1]"),
31727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 96 */ "Add" OpHelp("r[P3]=r[P1]+r[P2]"),
31728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 97 */ "Subtract" OpHelp("r[P3]=r[P2]-r[P1]"),
31729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 98 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"),
31730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 99 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"),
31731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"),
31732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 101 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"),
31733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 102 */ "ReopenIdx" OpHelp("root=P2 iDb=P3"),
31734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 103 */ "BitNot" OpHelp("r[P2]= ~r[P1]"),
31735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 104 */ "OpenRead" OpHelp("root=P2 iDb=P3"),
31736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 105 */ "OpenWrite" OpHelp("root=P2 iDb=P3"),
31737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 106 */ "String8" OpHelp("r[P2]='P4'"),
31738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 107 */ "OpenDup" OpHelp(""),
31739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 108 */ "OpenAutoindex" OpHelp("nColumn=P2"),
31740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 109 */ "OpenEphemeral" OpHelp("nColumn=P2"),
31741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ "SorterOpen" OpHelp(""),
31742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 111 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"),
31743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 112 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"),
31744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 113 */ "Close" OpHelp(""),
31745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 114 */ "ColumnsUsed" OpHelp(""),
31746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 115 */ "SeekHit" OpHelp("seekHit=P2"),
31400 31747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 116 */ "Sequence" OpHelp("r[P2]=cursor[P1].ctr++"),
31401 31748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 117 */ "NewRowid" OpHelp("r[P2]=rowid"),
31402 31749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 118 */ "Insert" OpHelp("intkey=r[P3] data=r[P2]"),
31403 31750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 119 */ "InsertInt" OpHelp("intkey=P3 data=r[P2]"),
31404 31751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 120 */ "Delete" OpHelp(""),
@@ -31413,48 +31760,52 @@
31413 31760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 129 */ "IdxInsert" OpHelp("key=r[P2]"),
31414 31761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 130 */ "IdxDelete" OpHelp("key=r[P2@P3]"),
31415 31762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 131 */ "DeferredSeek" OpHelp("Move P3 to P1.rowid if needed"),
31416 31763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 132 */ "IdxRowid" OpHelp("r[P2]=rowid"),
31417 31764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 133 */ "Destroy" OpHelp(""),
31418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 134 */ "Real" OpHelp("r[P2]=P4"),
31419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 135 */ "Clear" OpHelp(""),
31420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 136 */ "ResetSorter" OpHelp(""),
31421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 137 */ "CreateBtree" OpHelp("r[P2]=root iDb=P1 flags=P3"),
31422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 138 */ "SqlExec" OpHelp(""),
31423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 139 */ "ParseSchema" OpHelp(""),
31424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ "LoadAnalysis" OpHelp(""),
31425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 141 */ "DropTable" OpHelp(""),
31765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 134 */ "Clear" OpHelp(""),
31766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 135 */ "ResetSorter" OpHelp(""),
31767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 136 */ "CreateBtree" OpHelp("r[P2]=root iDb=P1 flags=P3"),
31768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 137 */ "SqlExec" OpHelp(""),
31769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 138 */ "ParseSchema" OpHelp(""),
31770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 139 */ "LoadAnalysis" OpHelp(""),
31771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ "DropTable" OpHelp(""),
31772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 141 */ "Real" OpHelp("r[P2]=P4"),
31426 31773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 142 */ "DropIndex" OpHelp(""),
31427 31774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 143 */ "DropTrigger" OpHelp(""),
31428 31775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 144 */ "IntegrityCk" OpHelp(""),
31429 31776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 145 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"),
31430 31777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 146 */ "Param" OpHelp(""),
31431 31778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 147 */ "FkCounter" OpHelp("fkctr[P1]+=P2"),
31432 31779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 148 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"),
31433 31780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 149 */ "OffsetLimit" OpHelp("if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)"),
31434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ "AggStep0" OpHelp("accum=r[P3] step(r[P2@P5])"),
31781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ "AggInverse" OpHelp("accum=r[P3] inverse(r[P2@P5])"),
31435 31782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 151 */ "AggStep" OpHelp("accum=r[P3] step(r[P2@P5])"),
31436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 152 */ "AggFinal" OpHelp("accum=r[P1] N=P2"),
31437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 153 */ "Expire" OpHelp(""),
31438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 154 */ "TableLock" OpHelp("iDb=P1 root=P2 write=P3"),
31439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 155 */ "VBegin" OpHelp(""),
31440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 156 */ "VCreate" OpHelp(""),
31441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 157 */ "VDestroy" OpHelp(""),
31442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 158 */ "VOpen" OpHelp(""),
31443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 159 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"),
31444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ "VRename" OpHelp(""),
31445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 161 */ "Pagecount" OpHelp(""),
31446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 162 */ "MaxPgcnt" OpHelp(""),
31447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 163 */ "PureFunc0" OpHelp(""),
31448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 164 */ "Function0" OpHelp("r[P3]=func(r[P2@P5])"),
31449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 165 */ "PureFunc" OpHelp(""),
31450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 166 */ "Function" OpHelp("r[P3]=func(r[P2@P5])"),
31451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 167 */ "Trace" OpHelp(""),
31452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 168 */ "CursorHint" OpHelp(""),
31453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 169 */ "Noop" OpHelp(""),
31454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ "Explain" OpHelp(""),
31455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 171 */ "Abortable" OpHelp(""),
31783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 152 */ "AggStep1" OpHelp("accum=r[P3] step(r[P2@P5])"),
31784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 153 */ "AggValue" OpHelp("r[P3]=value N=P2"),
31785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 154 */ "AggFinal" OpHelp("accum=r[P1] N=P2"),
31786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 155 */ "Expire" OpHelp(""),
31787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 156 */ "TableLock" OpHelp("iDb=P1 root=P2 write=P3"),
31788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 157 */ "VBegin" OpHelp(""),
31789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 158 */ "VCreate" OpHelp(""),
31790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 159 */ "VDestroy" OpHelp(""),
31791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ "VOpen" OpHelp(""),
31792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 161 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"),
31793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 162 */ "VRename" OpHelp(""),
31794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 163 */ "Pagecount" OpHelp(""),
31795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 164 */ "MaxPgcnt" OpHelp(""),
31796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 165 */ "PureFunc0" OpHelp(""),
31797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 166 */ "Function0" OpHelp("r[P3]=func(r[P2@P5])"),
31798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 167 */ "PureFunc" OpHelp(""),
31799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 168 */ "Function" OpHelp("r[P3]=func(r[P2@P5])"),
31800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 169 */ "Trace" OpHelp(""),
31801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ "CursorHint" OpHelp(""),
31802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 171 */ "SetTabCol" OpHelp(""),
31803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 172 */ "VerifyTabCol" OpHelp(""),
31804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 173 */ "Noop" OpHelp(""),
31805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 174 */ "Explain" OpHelp(""),
31806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 175 */ "Abortable" OpHelp(""),
31456 31807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
31457 31808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return azName[i];
31458 31809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
31459 31810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
31460 31811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -58091,53 +58442,56 @@
58091 58442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (iPage*HASHTABLE_HASH_1) & (HASHTABLE_NSLOT-1);
58092 58443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58093 58444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int walNextHash(int iPriorHash){
58094 58445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (iPriorHash+1)&(HASHTABLE_NSLOT-1);
58095 58446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
58448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
58449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** An instance of the WalHashLoc object is used to describe the location
58450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of a page hash table in the wal-index. This becomes the return value
58451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** from walHashGet().
58452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
58453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct WalHashLoc WalHashLoc;
58454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WalHashLoc {
58455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ volatile ht_slot *aHash; /* Start of the wal-index hash table */
58456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ volatile u32 *aPgno; /* aPgno[1] is the page of first frame indexed */
58457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 iZero; /* One less than the frame number of first indexed*/
58458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
58096 58459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58097 58460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
58098 58461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return pointers to the hash table and page number array stored on
58099 58462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page iHash of the wal-index. The wal-index is broken into 32KB pages
58100 58463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** numbered starting from 0.
58101 58464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
58102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Set output variable *paHash to point to the start of the hash table
58103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in the wal-index file. Set *piZero to one less than the frame
58465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Set output variable pLoc->aHash to point to the start of the hash table
58466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the wal-index file. Set pLoc->iZero to one less than the frame
58104 58467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** number of the first frame indexed by this hash table. If a
58105 58468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** slot in the hash table is set to N, it refers to frame number
58106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (*piZero+N) in the log.
58469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (pLoc->iZero+N) in the log.
58107 58470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
58108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Finally, set *paPgno so that *paPgno[1] is the page number of the
58109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** first frame indexed by the hash table, frame (*piZero+1).
58471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Finally, set pLoc->aPgno so that pLoc->aPgno[1] is the page number of the
58472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** first frame indexed by the hash table, frame (pLoc->iZero+1).
58110 58473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58111 58474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int walHashGet(
58112 58475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Wal *pWal, /* WAL handle */
58113 58476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iHash, /* Find the iHash'th table */
58114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot **paHash, /* OUT: Pointer to hash index */
58115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 **paPgno, /* OUT: Pointer to page number array */
58116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 *piZero /* OUT: Frame associated with *paPgno[0] */
58477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WalHashLoc *pLoc /* OUT: Hash table location */
58117 58478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
58118 58479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc; /* Return code */
58119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 *aPgno;
58120 58480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = walIndexPage(pWal, iHash, &aPgno);
58481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = walIndexPage(pWal, iHash, &pLoc->aPgno);
58122 58482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK || iHash>0 );
58123 58483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58124 58484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
58125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iZero;
58126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot *aHash;
58127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
58128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aHash = (volatile ht_slot *)&aPgno[HASHTABLE_NPAGE];
58485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pLoc->aHash = (volatile ht_slot *)&pLoc->aPgno[HASHTABLE_NPAGE];
58129 58486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iHash==0 ){
58130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aPgno = &aPgno[WALINDEX_HDR_SIZE/sizeof(u32)];
58131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iZero = 0;
58487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pLoc->aPgno = &pLoc->aPgno[WALINDEX_HDR_SIZE/sizeof(u32)];
58488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pLoc->iZero = 0;
58132 58489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
58133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iZero = HASHTABLE_NPAGE_ONE + (iHash-1)*HASHTABLE_NPAGE;
58490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pLoc->iZero = HASHTABLE_NPAGE_ONE + (iHash-1)*HASHTABLE_NPAGE;
58134 58491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
58136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *paPgno = &aPgno[-1];
58137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *paHash = aHash;
58138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *piZero = iZero;
58492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pLoc->aPgno = &pLoc->aPgno[-1];
58139 58493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58140 58494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
58141 58495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58142 58496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58143 58497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -58179,13 +58533,11 @@
58179 58533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** updated. Any later hash tables will be automatically cleared when
58180 58534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pWal->hdr.mxFrame advances to the point where those hash tables are
58181 58535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** actually needed.
58182 58536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58183 58537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void walCleanupHash(Wal *pWal){
58184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot *aHash = 0; /* Pointer to hash table to clear */
58185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 *aPgno = 0; /* Page number array for hash table */
58186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iZero = 0; /* frame == (aHash[x]+iZero) */
58538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WalHashLoc sLoc; /* Hash table location */
58187 58539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iLimit = 0; /* Zero values greater than this */
58188 58540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nByte; /* Number of bytes to zero in aPgno[] */
58189 58541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i; /* Used to iterate through aHash[] */
58190 58542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58191 58543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pWal->writeLock );
@@ -58199,41 +58551,41 @@
58199 58551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the entry that corresponds to frame pWal->hdr.mxFrame. It is guaranteed
58200 58552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that the page said hash-table and array reside on is already mapped.
58201 58553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58202 58554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pWal->nWiData>walFramePage(pWal->hdr.mxFrame) );
58203 58555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pWal->apWiData[walFramePage(pWal->hdr.mxFrame)] );
58204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &aHash, &aPgno, &iZero);
58556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &sLoc);
58205 58557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58206 58558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Zero all hash-table entries that correspond to frame numbers greater
58207 58559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** than pWal->hdr.mxFrame.
58208 58560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iLimit = pWal->hdr.mxFrame - iZero;
58561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iLimit = pWal->hdr.mxFrame - sLoc.iZero;
58210 58562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iLimit>0 );
58211 58563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<HASHTABLE_NSLOT; i++){
58212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( aHash[i]>iLimit ){
58213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aHash[i] = 0;
58564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sLoc.aHash[i]>iLimit ){
58565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sLoc.aHash[i] = 0;
58214 58566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58215 58567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58216 58568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58217 58569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Zero the entries in the aPgno array that correspond to frames with
58218 58570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** frame numbers greater than pWal->hdr.mxFrame.
58219 58571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nByte = (int)((char *)aHash - (char *)&aPgno[iLimit+1]);
58221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset((void *)&aPgno[iLimit+1], 0, nByte);
58572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nByte = (int)((char *)sLoc.aHash - (char *)&sLoc.aPgno[iLimit+1]);
58573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset((void *)&sLoc.aPgno[iLimit+1], 0, nByte);
58222 58574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58223 58575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
58224 58576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the every entry in the mapping region is still reachable
58225 58577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** via the hash table even after the cleanup.
58226 58578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58227 58579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iLimit ){
58228 58580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j; /* Loop counter */
58229 58581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iKey; /* Hash key */
58230 58582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=1; j<=iLimit; j++){
58231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(iKey=walHash(aPgno[j]); aHash[iKey]; iKey=walNextHash(iKey)){
58232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( aHash[iKey]==j ) break;
58583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(iKey=walHash(sLoc.aPgno[j]);sLoc.aHash[iKey];iKey=walNextHash(iKey)){
58584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sLoc.aHash[iKey]==j ) break;
58233 58585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( aHash[iKey]==j );
58586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sLoc.aHash[iKey]==j );
58235 58587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58236 58588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58237 58589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_ENABLE_EXPENSIVE_ASSERT */
58238 58590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58239 58591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -58242,62 +58594,61 @@
58242 58594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Set an entry in the wal-index that will map database page number
58243 58595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pPage into WAL frame iFrame.
58244 58596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58245 58597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage){
58246 58598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc; /* Return code */
58247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iZero = 0; /* One less than frame number of aPgno[1] */
58248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 *aPgno = 0; /* Page number array */
58249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot *aHash = 0; /* Hash table */
58599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WalHashLoc sLoc; /* Wal-index hash table location */
58250 58600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = walHashGet(pWal, walFramePage(iFrame), &aHash, &aPgno, &iZero);
58601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = walHashGet(pWal, walFramePage(iFrame), &sLoc);
58252 58602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58253 58603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Assuming the wal-index file was successfully mapped, populate the
58254 58604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page number array and hash table entry.
58255 58605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58256 58606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
58257 58607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iKey; /* Hash table key */
58258 58608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx; /* Value to write to hash-table slot */
58259 58609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCollide; /* Number of hash collisions */
58260 58610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- idx = iFrame - iZero;
58611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ idx = iFrame - sLoc.iZero;
58262 58612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( idx <= HASHTABLE_NSLOT/2 + 1 );
58263 58613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58264 58614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this is the first entry to be added to this hash-table, zero the
58265 58615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** entire hash table and aPgno[] array before proceeding.
58266 58616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58267 58617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( idx==1 ){
58268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nByte = (int)((u8 *)&aHash[HASHTABLE_NSLOT] - (u8 *)&aPgno[1]);
58269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset((void*)&aPgno[1], 0, nByte);
58618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nByte = (int)((u8 *)&sLoc.aHash[HASHTABLE_NSLOT]
58619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - (u8 *)&sLoc.aPgno[1]);
58620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset((void*)&sLoc.aPgno[1], 0, nByte);
58270 58621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58271 58622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58272 58623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the entry in aPgno[] is already set, then the previous writer
58273 58624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** must have exited unexpectedly in the middle of a transaction (after
58274 58625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** writing one or more dirty pages to the WAL to free up memory).
58275 58626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Remove the remnants of that writers uncommitted transaction from
58276 58627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the hash-table before writing any new entries.
58277 58628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( aPgno[idx] ){
58629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sLoc.aPgno[idx] ){
58279 58630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
walCleanupHash(pWal);
58280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( !aPgno[idx] );
58631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( !sLoc.aPgno[idx] );
58281 58632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58282 58633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58283 58634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Write the aPgno[] array entry and the hash-table slot. */
58284 58635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCollide = idx;
58285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(iKey=walHash(iPage); aHash[iKey]; iKey=walNextHash(iKey)){
58636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){
58286 58637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT;
58287 58638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aPgno[idx] = iPage;
58289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aHash[iKey] = (ht_slot)idx;
58639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sLoc.aPgno[idx] = iPage;
58640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sLoc.aHash[iKey] = (ht_slot)idx;
58290 58641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58291 58642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
58292 58643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the number of entries in the hash table exactly equals
58293 58644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the number of entries in the mapping region.
58294 58645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58295 58646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
58296 58647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i; /* Loop counter */
58297 58648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nEntry = 0; /* Number of entries in the hash table */
58298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<HASHTABLE_NSLOT; i++){ if( aHash[i] ) nEntry++; }
58649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<HASHTABLE_NSLOT; i++){ if( sLoc.aHash[i] ) nEntry++; }
58299 58650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nEntry==idx );
58300 58651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58301 58652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58302 58653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the every entry in the mapping region is reachable
58303 58654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** via the hash table. This turns out to be a really, really expensive
@@ -58305,14 +58656,16 @@
58305 58656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** iteration.
58306 58657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58307 58658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (idx&0x3ff)==0 ){
58308 58659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i; /* Loop counter */
58309 58660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=1; i<=idx; i++){
58310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(iKey=walHash(aPgno[i]); aHash[iKey]; iKey=walNextHash(iKey)){
58311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( aHash[iKey]==i ) break;
58661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(iKey=walHash(sLoc.aPgno[i]);
58662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sLoc.aHash[iKey];
58663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iKey=walNextHash(iKey)){
58664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sLoc.aHash[iKey]==i ) break;
58312 58665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( aHash[iKey]==i );
58666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sLoc.aHash[iKey]==i );
58314 58667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58315 58668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58316 58669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_ENABLE_EXPENSIVE_ASSERT */
58317 58670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58318 58671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -58846,37 +59199,35 @@
58846 59199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !aTmp ){
58847 59200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM_BKPT;
58848 59201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58849 59202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58850 59203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=walFramePage(nBackfill+1); rc==SQLITE_OK && i<nSegment; i++){
58851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot *aHash;
58852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iZero;
58853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 *aPgno;
59204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WalHashLoc sLoc;
58854 59205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = walHashGet(pWal, i, &aHash, &aPgno, &iZero);
59206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = walHashGet(pWal, i, &sLoc);
58856 59207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
58857 59208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j; /* Counter variable */
58858 59209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nEntry; /* Number of entries in this segment */
58859 59210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ht_slot *aIndex; /* Sorted index for this segment */
58860 59211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aPgno++;
59212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sLoc.aPgno++;
58862 59213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (i+1)==nSegment ){
58863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nEntry = (int)(iLast - iZero);
59214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nEntry = (int)(iLast - sLoc.iZero);
58864 59215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
58865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nEntry = (int)((u32*)aHash - (u32*)aPgno);
59216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nEntry = (int)((u32*)sLoc.aHash - (u32*)sLoc.aPgno);
58866 59217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aIndex = &((ht_slot *)&p->aSegment[p->nSegment])[iZero];
58868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iZero++;
59218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aIndex = &((ht_slot *)&p->aSegment[p->nSegment])[sLoc.iZero];
59219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sLoc.iZero++;
58869 59220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58870 59221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<nEntry; j++){
58871 59222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aIndex[j] = (ht_slot)j;
58872 59223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- walMergesort((u32 *)aPgno, aTmp, aIndex, &nEntry);
58874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->aSegment[i].iZero = iZero;
59224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ walMergesort((u32 *)sLoc.aPgno, aTmp, aIndex, &nEntry);
59225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aSegment[i].iZero = sLoc.iZero;
58875 59226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aSegment[i].nEntry = nEntry;
58876 59227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aSegment[i].aIndex = aIndex;
58877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->aSegment[i].aPgno = (u32 *)aPgno;
59228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aSegment[i].aPgno = (u32 *)sLoc.aPgno;
58878 59229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58879 59230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58880 59231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(aTmp);
58881 59232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58882 59233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
@@ -59885,20 +60236,18 @@
59885 60236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBuf1==0 || pBuf2==0 ){
59886 60237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
59887 60238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
59888 60239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 i = pInfo->nBackfillAttempted;
59889 60240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=pInfo->nBackfillAttempted; i>pInfo->nBackfill; i--){
59890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot *dummy;
59891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 *aPgno; /* Array of page numbers */
59892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iZero; /* Frame corresponding to aPgno[0] */
60241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WalHashLoc sLoc; /* Hash table location */
59893 60242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 pgno; /* Page number in db file */
59894 60243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 iDbOff; /* Offset of db file entry */
59895 60244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 iWalOff; /* Offset of wal file entry */
59896 60245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = walHashGet(pWal, walFramePage(i), &dummy, &aPgno, &iZero);
60246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = walHashGet(pWal, walFramePage(i), &sLoc);
59898 60247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ) break;
59899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pgno = aPgno[i-iZero];
60248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pgno = sLoc.aPgno[i-sLoc.iZero];
59900 60249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iDbOff = (i64)(pgno-1) * szPage;
59901 60250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59902 60251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iDbOff+szPage<=szDb ){
59903 60252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iWalOff = walFrameOffset(i, szPage) + WAL_FRAME_HDRSIZE;
59904 60253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3OsRead(pWal->pWalFd, pBuf1, szPage, iWalOff);
@@ -60095,25 +60444,24 @@
60095 60444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This condition filters out entries that were added to the hash
60096 60445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** table after the current read-transaction had started.
60097 60446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
60098 60447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iMinHash = walFramePage(pWal->minFrame);
60099 60448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(iHash=walFramePage(iLast); iHash>=iMinHash; iHash--){
60100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile ht_slot *aHash; /* Pointer to hash table */
60101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- volatile u32 *aPgno; /* Pointer to array of page numbers */
60102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iZero; /* Frame number corresponding to aPgno[0] */
60449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WalHashLoc sLoc; /* Hash table location */
60103 60450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iKey; /* Hash slot index */
60104 60451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCollide; /* Number of hash collisions remaining */
60105 60452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc; /* Error code */
60106 60453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = walHashGet(pWal, iHash, &aHash, &aPgno, &iZero);
60454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = walHashGet(pWal, iHash, &sLoc);
60108 60455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
60109 60456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
60110 60457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60111 60458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCollide = HASHTABLE_NSLOT;
60112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(iKey=walHash(pgno); aHash[iKey]; iKey=walNextHash(iKey)){
60113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 iFrame = aHash[iKey] + iZero;
60114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iFrame<=iLast && iFrame>=pWal->minFrame && aPgno[aHash[iKey]]==pgno ){
60459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(iKey=walHash(pgno); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){
60460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 iFrame = sLoc.aHash[iKey] + sLoc.iZero;
60461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iFrame<=iLast && iFrame>=pWal->minFrame
60462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && sLoc.aPgno[sLoc.aHash[iKey]]==pgno ){
60115 60463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iFrame>iRead || CORRUPT_DB );
60116 60464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iRead = iFrame;
60117 60465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60118 60466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (nCollide--)==0 ){
60119 60467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_CORRUPT_BKPT;
@@ -65329,11 +65677,11 @@
65329 65677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** One or the other of the two processes must give way or there can be
65330 65678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** no progress. By returning SQLITE_BUSY and not invoking the busy callback
65331 65679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** when A already has a read lock, we encourage A to give up and let B
65332 65680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** proceed.
65333 65681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
65334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag){
65682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion){
65335 65683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
BtShared *pBt = p->pBt;
65336 65684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK;
65337 65685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
65338 65686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeEnter(p);
65339 65687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btreeIntegrity(p);
@@ -65404,10 +65752,15 @@
65404 65752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_READONLY;
65405 65753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
65406 65754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3PagerBegin(pBt->pPager,wrflag>1,sqlite3TempInMemory(p->db));
65407 65755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
65408 65756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = newDatabase(pBt);
65757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( rc==SQLITE_BUSY_SNAPSHOT && pBt->inTransaction==TRANS_NONE ){
65758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* if there was no transaction opened when this function was
65759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** called and SQLITE_BUSY_SNAPSHOT is returned, change the error
65760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** code to SQLITE_BUSY. */
65761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_BUSY;
65409 65762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65410 65763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65411 65764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65412 65765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
65413 65766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
@@ -65455,18 +65808,22 @@
65455 65808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65456 65809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65457 65810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65458 65811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65459 65812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
65460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
65461 65813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
trans_begun:
65462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK && wrflag ){
65463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* This call makes sure that the pager has the correct number of
65464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** open savepoints. If the second parameter is greater than 0 and
65465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the sub-journal is not already open, then it will be opened here.
65466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
65467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3PagerOpenSavepoint(pBt->pPager, p->db->nSavepoint);
65814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK ){
65815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSchemaVersion ){
65816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pSchemaVersion = get4byte(&pBt->pPage1->aData[40]);
65817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
65818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( wrflag ){
65819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* This call makes sure that the pager has the correct number of
65820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** open savepoints. If the second parameter is greater than 0 and
65821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the sub-journal is not already open, then it will be opened here.
65822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
65823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3PagerOpenSavepoint(pBt->pPager, p->db->nSavepoint);
65824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
65468 65825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65469 65826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
65470 65827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btreeIntegrity(p);
65471 65828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeave(p);
65472 65829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
@@ -67209,10 +67566,27 @@
67209 67566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_OK;
67210 67567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67211 67568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
67212 67569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67213 67570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
67571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
67572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function is a no-op if cursor pCur does not point to a valid row.
67573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Otherwise, if pCur is valid, configure it so that the next call to
67574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3BtreeNext() is a no-op.
67575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
67576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
67577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3BtreeSkipNext(BtCursor *pCur){
67578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* We believe that the cursor must always be in the valid state when
67579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this routine is called, but the proof is difficult, so we add an
67580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ALWaYS() test just in case we are wrong. */
67581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(pCur->eState==CURSOR_VALID) ){
67582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pCur->eState = CURSOR_SKIPNEXT;
67583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pCur->skipNext = 1;
67584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
67585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
67586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
67587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
67214 67588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Move the cursor to the last entry in the table. Return SQLITE_OK
67215 67589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on success. Set *pRes to 0 if the cursor actually points to something
67216 67590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or set *pRes to 1 if the table is empty.
67217 67591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
67218 67592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor *pCur, int *pRes){
@@ -67613,11 +67987,20 @@
67613 67987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67614 67988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67615 67989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
67616 67990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPage = pCur->pPage;
67617 67991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idx = ++pCur->ix;
67618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pPage->isInit );
67992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pPage->isInit ){
67993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The only known way for this to happen is for there to be a
67994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** recursive SQL function that does a DELETE operation as part of a
67995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT which deletes content out from under an active cursor
67996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in a corrupt database file where the table being DELETE-ed from
67997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** has pages in common with the table being queried. See TH3
67998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** module cov1/btree78.test testcase 220 (2018-06-08) for an
67999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** example. */
68000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_CORRUPT_BKPT;
68001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
67619 68002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
67620 68003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the database file is corrupt, it is possible for the value of idx
67621 68004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to be invalid here. This can only occur if a second cursor modifies
67622 68005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the page while cursor pCur is holding a reference to it. Which can
67623 68006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** only happen if the database is corrupt in such a way as to link the
@@ -72113,15 +72496,15 @@
72113 72496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WAL connection, even if the version fields are currently set to 2.
72114 72497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
72115 72498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->btsFlags &= ~BTS_NO_WAL;
72116 72499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iVersion==1 ) pBt->btsFlags |= BTS_NO_WAL;
72117 72500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBtree, 0);
72501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBtree, 0, 0);
72119 72502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
72120 72503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 *aData = pBt->pPage1->aData;
72121 72504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aData[18]!=(u8)iVersion || aData[19]!=(u8)iVersion ){
72122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBtree, 2);
72505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBtree, 2, 0);
72123 72506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
72124 72507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3PagerWrite(pBt->pPage1->pDbPage);
72125 72508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
72126 72509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aData[18] = (u8)iVersion;
72127 72510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aData[19] = (u8)iVersion;
@@ -72557,11 +72940,11 @@
72557 72940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there is no open read-transaction on the source database, open
72558 72941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** one now. If a transaction is opened here, then it will be closed
72559 72942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** before this function exits.
72560 72943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
72561 72944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK && 0==sqlite3BtreeIsInReadTrans(p->pSrc) ){
72562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(p->pSrc, 0);
72945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(p->pSrc, 0, 0);
72563 72946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bCloseTrans = 1;
72564 72947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
72565 72948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72566 72949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the destination database has not yet been locked (i.e. if this
72567 72950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is the first call to backup_step() for the current backup operation),
@@ -72573,14 +72956,14 @@
72573 72956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
72574 72957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
72575 72958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72576 72959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Lock the destination database, if it is not locked already. */
72577 72960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK==rc && p->bDestLocked==0
72578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2))
72961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2,
72962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (int*)&p->iDestSchema))
72579 72963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
72580 72964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->bDestLocked = 1;
72581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3BtreeGetMeta(p->pDest, BTREE_SCHEMA_VERSION, &p->iDestSchema);
72582 72965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
72583 72966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72584 72967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do not allow backup if the destination database is in WAL mode
72585 72968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and the page sizes are different between source and destination */
72586 72969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pgszSrc = sqlite3BtreeGetPageSize(p->pSrc);
@@ -73393,10 +73776,39 @@
73393 73776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pMem->szMalloc>0 ) sqlite3DbFreeNN(pMem->db, pMem->zMalloc);
73394 73777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pMem, &t, sizeof(t));
73395 73778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return ctx.isError;
73396 73779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73397 73780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
73782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Memory cell pAccum contains the context of an aggregate function.
73783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This routine calls the xValue method for that function and stores
73784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the results in memory cell pMem.
73785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
73786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_ERROR is returned if xValue() reports an error. SQLITE_OK
73787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** otherwise.
73788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
73789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
73790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemAggValue(Mem *pAccum, Mem *pOut, FuncDef *pFunc){
73791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context ctx;
73792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem t;
73793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pFunc!=0 );
73794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pFunc->xValue!=0 );
73795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (pAccum->flags & MEM_Null)!=0 || pFunc==pAccum->u.pDef );
73796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pAccum->db==0 || sqlite3_mutex_held(pAccum->db->mutex) );
73797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&ctx, 0, sizeof(ctx));
73798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&t, 0, sizeof(t));
73799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.flags = MEM_Null;
73800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.db = pAccum->db;
73801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeMemSetNull(pOut);
73802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ctx.pOut = pOut;
73803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ctx.pMem = pAccum;
73804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ctx.pFunc = pFunc;
73805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pFunc->xValue(&ctx);
73806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return ctx.isError;
73807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
73808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
73809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
73398 73810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73399 73811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the memory cell contains a value that must be freed by
73400 73812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** invoking the external callback in Mem.xDel, then this routine
73401 73813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will free that value. It also sets Mem.flags to MEM_Null.
73402 73814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -73864,15 +74276,32 @@
73864 74276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeMemAboutToChange(Vdbe *pVdbe, Mem *pMem){
73865 74277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
73866 74278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pX;
73867 74279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pX=pVdbe->aMem; i<pVdbe->nMem; i++, pX++){
73868 74280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pX->pScopyFrom==pMem ){
73869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pX->flags |= MEM_Undefined;
74281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If pX is marked as a shallow copy of pMem, then verify that
74282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** no significant changes have been made to pX since the OP_SCopy.
74283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A significant change would indicated a missed call to this
74284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function for pX. Minor changes, such as adding or removing a
74285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** dual type, are allowed, as long as the underlying value is the
74286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** same. */
74287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 mFlags = pMem->flags & pX->flags & pX->mScopyFlags;
74288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (mFlags&MEM_Int)==0 || pMem->u.i==pX->u.i );
74289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (mFlags&MEM_Real)==0 || pMem->u.r==pX->u.r );
74290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (mFlags&MEM_Str)==0 || (pMem->n==pX->n && pMem->z==pX->z) );
74291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (mFlags&MEM_Blob)==0 || sqlite3BlobCompare(pMem,pX)==0 );
74292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
74293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* pMem is the register that is changing. But also mark pX as
74294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** undefined so that we can quickly detect the shallow-copy error */
74295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pX->flags = MEM_Undefined;
73870 74296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pX->pScopyFrom = 0;
73871 74297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73872 74298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73873 74299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pMem->pScopyFrom = 0;
74300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMN_CACHE
74301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pMem->iTabColHash = 0;
74302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
73874 74303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73875 74304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_DEBUG */
73876 74305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73877 74306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73878 74307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -73889,10 +74318,13 @@
73889 74318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy(Mem *pTo, const Mem *pFrom, int srcType){
73890 74319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pFrom->flags & MEM_RowSet)==0 );
73891 74320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTo->db==pFrom->db );
73892 74321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( VdbeMemDynamic(pTo) ){ vdbeClrCopy(pTo,pFrom,srcType); return; }
73893 74322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pTo, pFrom, MEMCELLSIZE);
74323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
74324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTo->iTabColHash = pFrom->iTabColHash;
74325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
73894 74326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pFrom->flags&MEM_Static)==0 ){
73895 74327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTo->flags &= ~(MEM_Dyn|MEM_Static|MEM_Ephem);
73896 74328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( srcType==MEM_Ephem || srcType==MEM_Static );
73897 74329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTo->flags |= srcType;
73898 74330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -73906,10 +74338,13 @@
73906 74338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK;
73907 74339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73908 74340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pFrom->flags & MEM_RowSet)==0 );
73909 74341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( VdbeMemDynamic(pTo) ) vdbeMemClearExternAndSetNull(pTo);
73910 74342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pTo, pFrom, MEMCELLSIZE);
74343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
74344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTo->iTabColHash = pFrom->iTabColHash;
74345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
73911 74346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTo->flags &= ~MEM_Dyn;
73912 74347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTo->flags&(MEM_Str|MEM_Blob) ){
73913 74348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==(pFrom->flags&MEM_Static) ){
73914 74349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTo->flags |= MEM_Ephem;
73915 74350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VdbeMemMakeWriteable(pTo);
@@ -75510,22 +75945,20 @@
75510 75945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->readOnly = 0;
75511 75946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->bIsReader = 1;
75512 75947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
75513 75948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75514 75949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Next:
75515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_NextIfOpen:
75516 75950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_SorterNext: {
75517 75951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4.xAdvance = sqlite3BtreeNext;
75518 75952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_ADVANCE;
75519 75953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The code generator never codes any of these opcodes as a jump
75520 75954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to a label. They are always coded as a jump backwards to a
75521 75955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** known address */
75522 75956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p2>=0 );
75523 75957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
75524 75958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_Prev:
75526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_PrevIfOpen: {
75959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Prev: {
75527 75960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4.xAdvance = sqlite3BtreePrevious;
75528 75961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_ADVANCE;
75529 75962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The code generator never codes any of these opcodes as a jump
75530 75963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to a label. They are always coded as a jump backwards to a
75531 75964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** known address */
@@ -76436,11 +76869,11 @@
76436 76869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76437 76870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(VDBE_PROFILE) || defined(SQLITE_DEBUG)
76438 76871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
76439 76872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Print a single opcode. This routine is used for debugging only.
76440 76873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
76441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE *pOut, int pc, Op *pOp){
76874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE *pOut, int pc, VdbeOp *pOp){
76442 76875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zP4;
76443 76876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zPtr[50];
76444 76877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zCom[100];
76445 76878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const char *zFormat1 = "%4d %-13s %4d %4d %4d %-13s %.2X %s\n";
76446 76879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOut==0 ) pOut = stdout;
@@ -76469,10 +76902,13 @@
76469 76902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->db = db;
76470 76903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->flags = flags;
76471 76904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->szMalloc = 0;
76472 76905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
76473 76906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pScopyFrom = 0;
76907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
76908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
76909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->iTabColHash = 0;
76474 76910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
76475 76911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p++;
76476 76912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76477 76913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76478 76914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -78735,11 +79171,11 @@
78735 79171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
78736 79172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Compare two blobs. Return negative, zero, or positive if the first
78737 79173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is less than, equal to, or greater than the second, respectively.
78738 79174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If one blob is a prefix of the other, then the shorter is the lessor.
78739 79175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
78740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static SQLITE_NOINLINE int sqlite3BlobCompare(const Mem *pB1, const Mem *pB2){
79176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3BlobCompare(const Mem *pB1, const Mem *pB2){
78741 79177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int c;
78742 79178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n1 = pB1->n;
78743 79179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n2 = pB2->n;
78744 79180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
78745 79181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* It is possible to have a Blob value that has some non-zero content
@@ -78950,11 +79386,11 @@
78950 79386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i; /* Index of next field to compare */
78951 79387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 szHdr1; /* Size of record header in bytes */
78952 79388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 idx1; /* Offset of first type in header */
78953 79389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0; /* Return value */
78954 79390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pRhs = pPKey2->aMem; /* Next field of pPKey2 to compare */
78955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- KeyInfo *pKeyInfo = pPKey2->pKeyInfo;
79391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo;
78956 79392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *aKey1 = (const unsigned char *)pKey1;
78957 79393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem mem1;
78958 79394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
78959 79395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If bSkip is true, then the caller has already determined that the first
78960 79396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** two elements in the keys are equal. Fix the various stack variables so
@@ -79045,11 +79481,11 @@
79045 79481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( (d1+mem1.n)==(unsigned)nKey1 );
79046 79482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( (d1+mem1.n+1)==(unsigned)nKey1 );
79047 79483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (d1+mem1.n) > (unsigned)nKey1 ){
79048 79484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPKey2->errCode = (u8)SQLITE_CORRUPT_BKPT;
79049 79485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0; /* Corruption */
79050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( pKeyInfo->aColl[i] ){
79486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (pKeyInfo = pPKey2->pKeyInfo)->aColl[i] ){
79051 79487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mem1.enc = pKeyInfo->enc;
79052 79488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mem1.db = pKeyInfo->db;
79053 79489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mem1.flags = MEM_Str;
79054 79490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mem1.z = (char*)&aKey1[d1];
79055 79491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = vdbeCompareMemString(
@@ -79096,23 +79532,24 @@
79096 79532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
serial_type = aKey1[idx1];
79097 79533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = (serial_type!=0);
79098 79534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79099 79535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79100 79536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=0 ){
79101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pKeyInfo->aSortOrder[i] ){
79537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pPKey2->pKeyInfo->aSortOrder[i] ){
79102 79538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = -rc;
79103 79539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79104 79540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, rc) );
79105 79541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( mem1.szMalloc==0 ); /* See comment below */
79106 79542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
79107 79543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79108 79544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79109 79545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i++;
79546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i==pPKey2->nField ) break;
79110 79547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRhs++;
79111 79548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
d1 += sqlite3VdbeSerialTypeLen(serial_type);
79112 79549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idx1 += sqlite3VarintLen(serial_type);
79113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }while( idx1<(unsigned)szHdr1 && i<pPKey2->nField && d1<=(unsigned)nKey1 );
79550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 );
79114 79551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79115 79552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* No memory allocation is ever used on mem1. Prove this using
79116 79553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the following assert(). If the assert() fails, it indicates a
79117 79554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** memory leak and a need to call sqlite3VdbeMemRelease(&mem1). */
79118 79555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( mem1.szMalloc==0 );
@@ -79120,11 +79557,11 @@
79120 79557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* rc==0 here means that one or both of the keys ran out of fields and
79121 79558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** all the fields up to that point were equal. Return the default_rc
79122 79559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** value. */
79123 79560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( CORRUPT_DB
79124 79561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, pPKey2->default_rc)
79125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || pKeyInfo->db->mallocFailed
79562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pPKey2->pKeyInfo->db->mallocFailed
79126 79563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
79127 79564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPKey2->eqSeen = 1;
79128 79565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pPKey2->default_rc;
79129 79566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79130 79567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeRecordCompare(
@@ -79446,11 +79883,11 @@
79446 79883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemInit(&m, db, 0);
79447 79884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VdbeMemFromBtree(pCur, 0, (u32)nCellKey, &m);
79448 79885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ){
79449 79886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
79450 79887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *res = sqlite3VdbeRecordCompare(m.n, m.z, pUnpacked);
79888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *res = sqlite3VdbeRecordCompareWithSkip(m.n, m.z, pUnpacked, 0);
79452 79889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemRelease(&m);
79453 79890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
79454 79891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79455 79892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79456 79893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -80642,11 +81079,14 @@
80642 81079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* .uTemp = */ (u32)0,
80643 81080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* .db = */ (sqlite3*)0,
80644 81081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* .xDel = */ (void(*)(void*))0,
80645 81082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
80646 81083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* .pScopyFrom = */ (Mem*)0,
80647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* .pFiller = */ (void*)0,
81084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* .mScopyFlags= */ 0,
81085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
81086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
81087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* .iTabColHash= */ 0,
80648 81088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
80649 81089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
80650 81090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return &nullMem;
80651 81091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80652 81092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -81866,10 +82306,22 @@
81866 82306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define memAboutToChange(P,M) sqlite3VdbeMemAboutToChange(P,M)
81867 82307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
81868 82308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define memAboutToChange(P,M)
81869 82309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
81870 82310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
82311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
82312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Given a cursor number and a column for a table or index, compute a
82313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** hash value for use in the Mem.iTabColHash value. The iTabColHash
82314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** column is only used for verification - it is omitted from production
82315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** builds. Collisions are harmless in the sense that the correct answer
82316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** still results. The only harm of collisions is that they can potential
82317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** reduce column-cache error detection during SQLITE_DEBUG builds.
82318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
82319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** No valid hash should be 0.
82320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
82321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define TableColumnHash(T,C) (((u32)(T)<<16)^(u32)(C+2))
82322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
81871 82323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
81872 82324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following global variable is incremented every time a cursor
81873 82325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** moves, either by the OP_SeekXX, OP_Next, or OP_Prev opcodes. The test
81874 82326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** procedures use this information to make sure that indices are
81875 82327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** working correctly. This variable has no function other than to
@@ -81952,36 +82404,60 @@
81952 82404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
81953 82405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Invoke the VDBE coverage callback, if that callback is defined. This
81954 82406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** feature is used for test suite validation only and does not appear an
81955 82407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** production builds.
81956 82408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
81957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** M is an integer, 2 or 3, that indices how many different ways the
81958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** branch can go. It is usually 2. "I" is the direction the branch
81959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** goes. 0 means falls through. 1 means branch is taken. 2 means the
81960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** second alternative branch is taken.
82409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** M is an integer between 2 and 4. 2 indicates a ordinary two-way
82410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** branch (I=0 means fall through and I=1 means taken). 3 indicates
82411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a 3-way branch where the third way is when one of the operands is
82412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** NULL. 4 indicates the OP_Jump instruction which has three destinations
82413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** depending on whether the first operand is less than, equal to, or greater
82414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** than the second.
81961 82415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
81962 82416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** iSrcLine is the source code line (from the __LINE__ macro) that
81963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** generated the VDBE instruction. This instrumentation assumes that all
81964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** source code is in a single file (the amalgamation). Special values 1
81965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and 2 for the iSrcLine parameter mean that this particular branch is
81966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** always taken or never taken, respectively.
82417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** generated the VDBE instruction combined with flag bits. The source
82418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** code line number is in the lower 24 bits of iSrcLine and the upper
82419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 8 bytes are flags. The lower three bits of the flags indicate
82420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** values for I that should never occur. For example, if the branch is
82421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** always taken, the flags should be 0x05 since the fall-through and
82422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** alternate branch are never taken. If a branch is never taken then
82423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flags should be 0x06 since only the fall-through approach is allowed.
82424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
82425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Bit 0x04 of the flags indicates an OP_Jump opcode that is only
82426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** interested in equal or not-equal. In other words, I==0 and I==2
82427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** should be treated the same.
82428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
82429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Since only a line number is retained, not the filename, this macro
82430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** only works for amalgamation builds. But that is ok, since these macros
82431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** should be no-ops except for special builds used to measure test coverage.
81967 82432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
81968 82433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_VDBE_COVERAGE)
81969 82434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeBranchTaken(I,M)
81970 82435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
81971 82436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeBranchTaken(I,M) vdbeTakeBranch(pOp->iSrcLine,I,M)
81972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void vdbeTakeBranch(int iSrcLine, u8 I, u8 M){
81973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iSrcLine<=2 && ALWAYS(iSrcLine>0) ){
81974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- M = iSrcLine;
81975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Assert the truth of VdbeCoverageAlwaysTaken() and
81976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** VdbeCoverageNeverTaken() */
81977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (M & I)==I );
81978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
81979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3GlobalConfig.xVdbeBranch==0 ) return; /*NO_TEST*/
81980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3GlobalConfig.xVdbeBranch(sqlite3GlobalConfig.pVdbeBranchArg,
81981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iSrcLine,I,M);
81982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
82437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void vdbeTakeBranch(u32 iSrcLine, u8 I, u8 M){
82438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 mNever;
82439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( I<=2 ); /* 0: fall through, 1: taken, 2: alternate taken */
82440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( M<=4 ); /* 2: two-way branch, 3: three-way branch, 4: OP_Jump */
82441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( I<M ); /* I can only be 2 if M is 3 or 4 */
82442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Transform I from a integer [0,1,2] into a bitmask of [1,2,4] */
82443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ I = 1<<I;
82444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The upper 8 bits of iSrcLine are flags. The lower three bits of
82445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the flags indicate directions that the branch can never go. If
82446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a branch really does go in one of those directions, assert right
82447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** away. */
82448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mNever = iSrcLine >> 24;
82449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (I & mNever)==0 );
82450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3GlobalConfig.xVdbeBranch==0 ) return; /*NO_TEST*/
82451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ I |= mNever;
82452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( M==2 ) I |= 0x04;
82453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( M==4 ){
82454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ I |= 0x08;
82455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (mNever&0x08)!=0 && (I&0x05)!=0) I |= 0x05; /*NO_TEST*/
82456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
82457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3GlobalConfig.xVdbeBranch(sqlite3GlobalConfig.pVdbeBranchArg,
82458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iSrcLine&0xffffff, I, M);
81983 82459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81984 82460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
81985 82461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
81986 82462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
81987 82463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Convert the given register into a string if it isn't one
@@ -83062,10 +83538,13 @@
83062 83538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut = out2Prerelease(p, pOp);
83063 83539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cnt = pOp->p3-pOp->p2;
83064 83540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p3<=(p->nMem+1 - p->nCursor) );
83065 83541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut->flags = nullFlag = pOp->p1 ? (MEM_Null|MEM_Cleared) : MEM_Null;
83066 83542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut->n = 0;
83543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
83544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOut->uTemp = 0;
83545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
83067 83546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( cnt>0 ){
83068 83547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut++;
83069 83548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memAboutToChange(p, pOut);
83070 83549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemSetNull(pOut);
83071 83550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut->flags = nullFlag;
@@ -83183,14 +83662,16 @@
83183 83662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = pOp->p3;
83184 83663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn1 = &aMem[pOp->p1];
83185 83664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut = &aMem[pOp->p2];
83186 83665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOut!=pIn1 );
83187 83666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( 1 ){
83667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memAboutToChange(p, pOut);
83188 83668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemShallowCopy(pOut, pIn1, MEM_Ephem);
83189 83669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Deephemeralize(pOut);
83190 83670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
83191 83671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut->pScopyFrom = 0;
83672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOut->iTabColHash = 0;
83192 83673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
83193 83674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
REGISTER_TRACE(pOp->p2+pOp->p3-n, pOut);
83194 83675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (n--)==0 ) break;
83195 83676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut++;
83196 83677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn1++;
@@ -83215,11 +83696,12 @@
83215 83696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn1 = &aMem[pOp->p1];
83216 83697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOut = &aMem[pOp->p2];
83217 83698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOut!=pIn1 );
83218 83699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemShallowCopy(pOut, pIn1, MEM_Ephem);
83219 83700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
83220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOut->pScopyFrom==0 ) pOut->pScopyFrom = pIn1;
83701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOut->pScopyFrom = pIn1;
83702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOut->mScopyFlags = pIn1->flags;
83221 83703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
83222 83704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
83223 83705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83224 83706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
83225 83707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: IntCopy P1 P2 * * *
@@ -84063,15 +84545,15 @@
84063 84545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the most recent OP_Compare instruction the P1 vector was less than
84064 84546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** equal to, or greater than the P2 vector, respectively.
84065 84547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
84066 84548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Jump: { /* jump */
84067 84549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iCompare<0 ){
84068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeBranchTaken(0,3); pOp = &aOp[pOp->p1 - 1];
84550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeBranchTaken(0,4); pOp = &aOp[pOp->p1 - 1];
84069 84551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( iCompare==0 ){
84070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeBranchTaken(1,3); pOp = &aOp[pOp->p2 - 1];
84552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeBranchTaken(1,4); pOp = &aOp[pOp->p2 - 1];
84071 84553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
84072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeBranchTaken(2,3); pOp = &aOp[pOp->p3 - 1];
84554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeBranchTaken(2,4); pOp = &aOp[pOp->p3 - 1];
84073 84555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84074 84556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
84075 84557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84076 84558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
84077 84559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: And P1 P2 P3 * *
@@ -84164,11 +84646,11 @@
84164 84646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84165 84647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
84166 84648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84167 84649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
84168 84650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: BitNot P1 P2 * * *
84169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Synopsis: r[P1]= ~r[P1]
84651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Synopsis: r[P2]= ~r[P1]
84170 84652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
84171 84653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Interpret the content of register P1 as an integer. Store the
84172 84654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ones-complement of the P1 value into register P2. If P1 holds
84173 84655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a NULL then store a NULL in P2.
84174 84656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -85121,12 +85603,11 @@
85121 85603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** halts. The sqlite3_step() wrapper function might then reprepare the
85122 85604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** statement and rerun it from the beginning.
85123 85605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85124 85606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Transaction: {
85125 85607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt;
85126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iMeta;
85127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iGen;
85608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iMeta = 0;
85128 85609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85129 85610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->bIsReader );
85130 85611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->readOnly==0 || pOp->p2==0 );
85131 85612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p1>=0 && pOp->p1<db->nDb );
85132 85613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( DbMaskTest(p->btreeMask, pOp->p1) );
@@ -85135,11 +85616,11 @@
85135 85616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto abort_due_to_error;
85136 85617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85137 85618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt = db->aDb[pOp->p1].pBt;
85138 85619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85139 85620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt ){
85140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBt, pOp->p2);
85621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBt, pOp->p2, &iMeta);
85141 85622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( rc==SQLITE_BUSY_SNAPSHOT );
85142 85623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( rc==SQLITE_BUSY_RECOVERY );
85143 85624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
85144 85625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (rc&0xff)==SQLITE_BUSY ){
85145 85626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pc = (int)(pOp - aOp);
@@ -85168,23 +85649,21 @@
85168 85649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** counter. If the statement transaction needs to be rolled back,
85169 85650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the value of this counter needs to be restored too. */
85170 85651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nStmtDefCons = db->nDeferredCons;
85171 85652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nStmtDefImmCons = db->nDeferredImmCons;
85172 85653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
85174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Gather the schema version number for checking:
85654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
85655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p5==0 || pOp->p4type==P4_INT32 );
85656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p5
85657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (iMeta!=pOp->p3
85658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || db->aDb[pOp->p1].pSchema->iGeneration!=pOp->p4.i)
85659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
85660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
85175 85661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** IMPLEMENTATION-OF: R-03189-51135 As each SQL statement runs, the schema
85176 85662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** version is checked to ensure that the schema has not changed since the
85177 85663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQL statement was prepared.
85178 85664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&iMeta);
85180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iGen = db->aDb[pOp->p1].pSchema->iGeneration;
85181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
85182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iGen = iMeta = 0;
85183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
85184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp->p5==0 || pOp->p4type==P4_INT32 );
85185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOp->p5 && (iMeta!=pOp->p3 || iGen!=pOp->p4.i) ){
85186 85665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p->zErrMsg);
85187 85666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zErrMsg = sqlite3DbStrDup(db, "database schema has changed");
85188 85667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the schema-cookie from the database file matches the cookie
85189 85668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** stored with the in-memory representation of the schema, do
85190 85669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** not reload the schema from the database file.
@@ -85289,63 +85768,82 @@
85289 85768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** temporary tables, and P3>1 means used the corresponding attached
85290 85769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database. Give the new cursor an identifier of P1. The P1
85291 85770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** values need not be contiguous but all P1 values should be small integers.
85292 85771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** It is an error for P1 to be negative.
85293 85772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If P5!=0 then use the content of register P2 as the root page, not
85295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the value of P2 itself.
85296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
85297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** There will be a read lock on the database whenever there is an
85298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** open cursor. If the database was unlocked prior to this instruction
85299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then a read lock is acquired as part of this instruction. A read
85300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** lock allows other processes to read the database but prohibits
85301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** any other process from modifying the database. The read lock is
85302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** released when all cursors are closed. If this instruction attempts
85303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to get a read lock but fails, the script terminates with an
85304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_BUSY error code.
85773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Allowed P5 bits:
85774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <ul>
85775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> <b>0x02 OPFLAG_SEEKEQ</b>: This cursor will only be used for
85776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** equality lookups (implemented as a pair of opcodes OP_SeekGE/OP_IdxGT
85777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of OP_SeekLE/OP_IdxGT)
85778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </ul>
85305 85779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85306 85780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The P4 value may be either an integer (P4_INT32) or a pointer to
85307 85781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a KeyInfo structure (P4_KEYINFO). If it is a pointer to a KeyInfo
85308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** structure, then said structure defines the content and collating
85309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sequence of the index being opened. Otherwise, if P4 is an integer
85310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** value, it is set to the number of columns in the table.
85782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** object, then table being opened must be an [index b-tree] where the
85783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** KeyInfo object defines the content and collating
85784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sequence of that index b-tree. Otherwise, if P4 is an integer
85785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** value, then the table being opened must be a [table b-tree] with a
85786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** number of columns no less than the value of P4.
85311 85787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85312 85788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** See also: OpenWrite, ReopenIdx
85313 85789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85314 85790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: ReopenIdx P1 P2 P3 P4 P5
85315 85791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: root=P2 iDb=P3
85316 85792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The ReopenIdx opcode works exactly like ReadOpen except that it first
85318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** checks to see if the cursor on P1 is already open with a root page
85319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** number of P2 and if it is this opcode becomes a no-op. In other words,
85793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The ReopenIdx opcode works like OP_OpenRead except that it first
85794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** checks to see if the cursor on P1 is already open on the same
85795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** b-tree and if it is this opcode becomes a no-op. In other words,
85320 85796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** if the cursor is already open, do not reopen it.
85321 85797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The ReopenIdx opcode may only be used with P5==0 and with P4 being
85323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a P4_KEYINFO object. Furthermore, the P3 value must be the same as
85324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** every other ReopenIdx or OpenRead for the same cursor number.
85798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The ReopenIdx opcode may only be used with P5==0 or P5==OPFLAG_SEEKEQ
85799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and with P4 being a P4_KEYINFO object. Furthermore, the P3 value must
85800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be the same as every other ReopenIdx or OpenRead for the same cursor
85801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** number.
85325 85802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** See the OpenRead opcode documentation for additional information.
85803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Allowed P5 bits:
85804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <ul>
85805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> <b>0x02 OPFLAG_SEEKEQ</b>: This cursor will only be used for
85806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** equality lookups (implemented as a pair of opcodes OP_SeekGE/OP_IdxGT
85807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of OP_SeekLE/OP_IdxGT)
85808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </ul>
85809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
85810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See also: OP_OpenRead, OP_OpenWrite
85327 85811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85328 85812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: OpenWrite P1 P2 P3 P4 P5
85329 85813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: root=P2 iDb=P3
85330 85814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85331 85815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Open a read/write cursor named P1 on the table or index whose root
85332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** page is P2. Or if P5!=0 use the content of register P2 to find the
85333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** root page.
85816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** page is P2 (or whose root page is held in register P2 if the
85817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OPFLAG_P2ISREG bit is set in P5 - see below).
85334 85818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85335 85819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The P4 value may be either an integer (P4_INT32) or a pointer to
85336 85820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a KeyInfo structure (P4_KEYINFO). If it is a pointer to a KeyInfo
85337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** structure, then said structure defines the content and collating
85338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sequence of the index being opened. Otherwise, if P4 is an integer
85339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** value, it is set to the number of columns in the table, or to the
85340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** largest index of any column of the table that is actually used.
85341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
85342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This instruction works just like OpenRead except that it opens the cursor
85343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in read/write mode. For a given table, there can be one or more read-only
85344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** cursors or a single read/write cursor but not both.
85345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
85346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** See also OpenRead.
85821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** object, then table being opened must be an [index b-tree] where the
85822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** KeyInfo object defines the content and collating
85823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sequence of that index b-tree. Otherwise, if P4 is an integer
85824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** value, then the table being opened must be a [table b-tree] with a
85825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** number of columns no less than the value of P4.
85826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
85827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Allowed P5 bits:
85828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <ul>
85829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> <b>0x02 OPFLAG_SEEKEQ</b>: This cursor will only be used for
85830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** equality lookups (implemented as a pair of opcodes OP_SeekGE/OP_IdxGT
85831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of OP_SeekLE/OP_IdxGT)
85832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> <b>0x08 OPFLAG_FORDELETE</b>: This cursor is used only to seek
85833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and subsequently delete entries in an index btree. This is a
85834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** hint to the storage engine that the storage engine is allowed to
85835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ignore. The hint is not used by the official SQLite b*tree storage
85836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** engine, but is used by COMDB2.
85837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> <b>0x10 OPFLAG_P2ISREG</b>: Use the content of register P2
85838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** as the root page, not the value of P2 itself.
85839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </ul>
85840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
85841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This instruction works like OpenRead except that it opens the cursor
85842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in read/write mode.
85843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
85844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See also: OP_OpenRead, OP_ReopenIdx
85347 85845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85348 85846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_ReopenIdx: {
85349 85847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nField;
85350 85848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKeyInfo;
85351 85849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int p2;
@@ -85397,10 +85895,11 @@
85397 85895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wrFlag = 0;
85398 85896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85399 85897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOp->p5 & OPFLAG_P2ISREG ){
85400 85898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p2>0 );
85401 85899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p2<=(p->nMem+1 - p->nCursor) );
85900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->opcode==OP_OpenWrite );
85402 85901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn2 = &aMem[p2];
85403 85902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( memIsValid(pIn2) );
85404 85903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pIn2->flags & MEM_Int)!=0 );
85405 85904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemIntegerify(pIn2);
85406 85905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p2 = (int)pIn2->u.i;
@@ -85525,11 +86024,11 @@
85525 86024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCx->nullRow = 1;
85526 86025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCx->isEphemeral = 1;
85527 86026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3BtreeOpen(db->pVfs, 0, db, &pCx->pBtx,
85528 86027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
BTREE_OMIT_JOURNAL | BTREE_SINGLE | pOp->p5, vfsFlags);
85529 86028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
85530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pCx->pBtx, 1);
86029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pCx->pBtx, 1, 0);
85531 86030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85532 86031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
85533 86032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If a transient index is required, create it by calling
85534 86033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3BtreeCreateTable() with the BTREE_BLOBKEY flag before
85535 86034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** opening it. If a transient table is required, just use the
@@ -85932,10 +86431,29 @@
85932 86431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp[1].opcode==OP_IdxLT || pOp[1].opcode==OP_IdxGT );
85933 86432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp++; /* Skip the OP_IdxLt or OP_IdxGT that follows */
85934 86433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85935 86434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
85936 86435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
86436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
86437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: SeekHit P1 P2 * * *
86438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Synopsis: seekHit=P2
86439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Set the seekHit flag on cursor P1 to the value in P2.
86441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The seekHit flag is used by the IfNoHope opcode.
86442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** P1 must be a valid b-tree cursor. P2 must be a boolean value,
86444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** either 0 or 1.
86445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
86446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_SeekHit: {
86447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCursor *pC;
86448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p1>=0 && pOp->p1<p->nCursor );
86449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pC = p->apCsr[pOp->p1];
86450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pC!=0 );
86451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p2==0 || pOp->p2==1 );
86452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pC->seekHit = pOp->p2 & 1;
86453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
86454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
85937 86455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85938 86456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: Found P1 P2 P3 P4 *
85939 86457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: key=r[P3@P4]
85940 86458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85941 86459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If P4==0 then register P3 holds a blob constructed by MakeRecord. If
@@ -85967,11 +86485,38 @@
85967 86485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85968 86486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This operation leaves the cursor in a state where it cannot be
85969 86487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** advanced in either direction. In other words, the Next and Prev
85970 86488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** opcodes do not work after this operation.
85971 86489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** See also: Found, NotExists, NoConflict
86490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See also: Found, NotExists, NoConflict, IfNoHope
86491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
86492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: IfNoHope P1 P2 P3 P4 *
86493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Synopsis: key=r[P3@P4]
86494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Register P3 is the first of P4 registers that form an unpacked
86496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** record.
86497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Cursor P1 is on an index btree. If the seekHit flag is set on P1, then
86499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this opcode is a no-op. But if the seekHit flag of P1 is clear, then
86500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** check to see if there is any entry in P1 that matches the
86501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** prefix identified by P3 and P4. If no entry matches the prefix,
86502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** jump to P2. Otherwise fall through.
86503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This opcode behaves like OP_NotFound if the seekHit
86505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flag is clear and it behaves like OP_Noop if the seekHit flag is set.
86506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This opcode is used in IN clause processing for a multi-column key.
86508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If an IN clause is attached to an element of the key other than the
86509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** left-most element, and if there are no matches on the most recent
86510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** seek over the whole key, then it might be that one of the key element
86511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the left is prohibiting a match, and hence there is "no hope" of
86512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** any match regardless of how many IN clause elements are checked.
86513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** In such a case, we abandon the IN clause search early, using this
86514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** opcode. The opcode name comes from the fact that the
86515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** jump is taken if there is "no hope" of achieving a match.
86516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
86517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See also: NotFound, SeekHit
85973 86518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85974 86519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: NoConflict P1 P2 P3 P4 *
85975 86520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: key=r[P3@P4]
85976 86521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85977 86522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If P4==0 then register P3 holds a blob constructed by MakeRecord. If
@@ -85992,10 +86537,18 @@
85992 86537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** advanced in either direction. In other words, the Next and Prev
85993 86538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** opcodes do not work after this operation.
85994 86539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
85995 86540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** See also: NotFound, Found, NotExists
85996 86541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
86542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_IfNoHope: { /* jump, in3 */
86543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCursor *pC;
86544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p1>=0 && pOp->p1<p->nCursor );
86545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pC = p->apCsr[pOp->p1];
86546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pC!=0 );
86547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pC->seekHit ) break;
86548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Fall through into OP_NotFound */
86549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
85997 86550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_NoConflict: /* jump, in3 */
85998 86551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_NotFound: /* jump, in3 */
85999 86552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Found: { /* jump, in3 */
86000 86553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int alreadyExists;
86001 86554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int takeJump;
@@ -86140,11 +86693,11 @@
86140 86693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pIn3->flags & MEM_Int );
86141 86694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
86142 86695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC = p->apCsr[pOp->p1];
86143 86696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC!=0 );
86144 86697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
86145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pC->seekOp = 0;
86698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pC->seekOp = OP_SeekRowid;
86146 86699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
86147 86700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC->isTable );
86148 86701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC->eCurType==CURTYPE_BTREE );
86149 86702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCrsr = pC->uc.pCursor;
86150 86703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pCrsr!=0 );
@@ -86794,10 +87347,13 @@
86794 87347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC->cacheStatus = CACHE_STALE;
86795 87348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pC->eCurType==CURTYPE_BTREE ){
86796 87349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC->uc.pCursor!=0 );
86797 87350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeClearCursor(pC->uc.pCursor);
86798 87351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
87353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pC->seekOp==0 ) pC->seekOp = OP_NullRow;
87354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
86799 87355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
86800 87356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
86801 87357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
86802 87358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: SeekEnd P1 * * * *
86803 87359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -86912,17 +87468,21 @@
86912 87468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_search_count--;
86913 87469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
86914 87470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aCounter[SQLITE_STMTSTATUS_SORT]++;
86915 87471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Fall through into OP_Rewind */
86916 87472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
86917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opcode: Rewind P1 P2 * * *
87473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: Rewind P1 P2 * * P5
86918 87474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
86919 87475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The next use of the Rowid or Column or Next instruction for P1
86920 87476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will refer to the first entry in the database table or index.
86921 87477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the table or index is empty, jump immediately to P2.
86922 87478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the table or index is not empty, fall through to the following
86923 87479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** instruction.
87480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
87481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If P5 is non-zero and the table is not empty, then the "skip-next"
87482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flag is set on the cursor so that the next OP_Next instruction
87483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** executed on it is a no-op.
86924 87484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
86925 87485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This opcode leaves the cursor configured to move in forward order,
86926 87486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** from the beginning toward the end. In other words, the cursor is
86927 87487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** configured to use Next, not Prev.
86928 87488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -86944,10 +87504,13 @@
86944 87504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
86945 87505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC->eCurType==CURTYPE_BTREE );
86946 87506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCrsr = pC->uc.pCursor;
86947 87507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pCrsr );
86948 87508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3BtreeFirst(pCrsr, &res);
87509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
87510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p5 ) sqlite3BtreeSkipNext(pCrsr);
87511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
86949 87512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC->deferredMoveto = 0;
86950 87513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC->cacheStatus = CACHE_STALE;
86951 87514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
86952 87515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ) goto abort_due_to_error;
86953 87516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC->nullRow = (u8)res;
@@ -86980,16 +87543,11 @@
86980 87543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3BtreeNext().
86981 87544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
86982 87545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If P5 is positive and the jump is taken, then event counter
86983 87546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** number P5-1 in the prepared statement is incremented.
86984 87547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
86985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** See also: Prev, NextIfOpen
86986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
86987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opcode: NextIfOpen P1 P2 P3 P4 P5
86988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
86989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This opcode works just like Next except that if cursor P1 is not
86990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** open it behaves a no-op.
87548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See also: Prev
86991 87549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
86992 87550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: Prev P1 P2 P3 P4 P5
86993 87551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
86994 87552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Back up cursor P1 so that it points to the previous key/data pair in its
86995 87553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** table or index. If there is no previous key/value pairs then fall through
@@ -87013,15 +87571,10 @@
87013 87571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3BtreePrevious().
87014 87572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
87015 87573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If P5 is positive and the jump is taken, then event counter
87016 87574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** number P5-1 in the prepared statement is incremented.
87017 87575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
87018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opcode: PrevIfOpen P1 P2 P3 P4 P5
87019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
87020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This opcode works just like Prev except that if cursor P1 is not
87021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** open it behaves a no-op.
87022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
87023 87576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: SorterNext P1 P2 * * P5
87024 87577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
87025 87578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This opcode works just like OP_Next except that P1 must be a
87026 87579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sorter object for which the OP_SorterSort opcode has been
87027 87580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** invoked. This opcode advances the cursor to the next sorted
@@ -87032,14 +87585,10 @@
87032 87585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87033 87586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC = p->apCsr[pOp->p1];
87034 87587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( isSorter(pC) );
87035 87588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VdbeSorterNext(db, pC);
87036 87589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto next_tail;
87037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_PrevIfOpen: /* jump */
87038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_NextIfOpen: /* jump */
87039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->apCsr[pOp->p1]==0 ) break;
87040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Fall through */
87041 87590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Prev: /* jump */
87042 87591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Next: /* jump */
87043 87592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
87044 87593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p5<ArraySize(p->aCounter) );
87045 87594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC = p->apCsr[pOp->p1];
@@ -87046,21 +87595,21 @@
87046 87595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC!=0 );
87047 87596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC->deferredMoveto==0 );
87048 87597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pC->eCurType==CURTYPE_BTREE );
87049 87598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->opcode!=OP_Next || pOp->p4.xAdvance==sqlite3BtreeNext );
87050 87599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->opcode!=OP_Prev || pOp->p4.xAdvance==sqlite3BtreePrevious );
87051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp->opcode!=OP_NextIfOpen || pOp->p4.xAdvance==sqlite3BtreeNext );
87052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp->opcode!=OP_PrevIfOpen || pOp->p4.xAdvance==sqlite3BtreePrevious);
87053 87600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* The Next opcode is only used after SeekGT, SeekGE, and Rewind.
87601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The Next opcode is only used after SeekGT, SeekGE, Rewind, and Found.
87055 87602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The Prev opcode is only used after SeekLT, SeekLE, and Last. */
87056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp->opcode!=OP_Next || pOp->opcode!=OP_NextIfOpen
87603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->opcode!=OP_Next
87057 87604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pC->seekOp==OP_SeekGT || pC->seekOp==OP_SeekGE
87058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found);
87059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp->opcode!=OP_Prev || pOp->opcode!=OP_PrevIfOpen
87605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found
87606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pC->seekOp==OP_NullRow);
87607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->opcode!=OP_Prev
87060 87608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pC->seekOp==OP_SeekLT || pC->seekOp==OP_SeekLE
87061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || pC->seekOp==OP_Last );
87609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pC->seekOp==OP_Last
87610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pC->seekOp==OP_NullRow);
87062 87611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87063 87612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = pOp->p4.xAdvance(pC->uc.pCursor, pOp->p3);
87064 87613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
next_tail:
87065 87614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pC->cacheStatus = CACHE_STALE;
87066 87615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeBranchTaken(rc==SQLITE_OK,2);
@@ -88125,28 +88674,39 @@
88125 88674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIn1->u.i==0 ) goto jump_to_p2;
88126 88675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
88127 88676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
88128 88677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88129 88678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opcode: AggStep0 * P2 P3 P4 P5
88679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: AggStep * P2 P3 P4 P5
88131 88680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: accum=r[P3] step(r[P2@P5])
88132 88681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Execute the step function for an aggregate. The
88134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function has P5 arguments. P4 is a pointer to the FuncDef
88135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** structure that specifies the function. Register P3 is the
88682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Execute the xStep function for an aggregate.
88683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The function has P5 arguments. P4 is a pointer to the
88684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FuncDef structure that specifies the function. Register P3 is the
88685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** accumulator.
88686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
88687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The P5 arguments are taken from register P2 and its
88688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** successors.
88689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
88690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: AggInverse * P2 P3 P4 P5
88691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Synopsis: accum=r[P3] inverse(r[P2@P5])
88692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
88693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Execute the xInverse function for an aggregate.
88694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The function has P5 arguments. P4 is a pointer to the
88695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FuncDef structure that specifies the function. Register P3 is the
88136 88696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** accumulator.
88137 88697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88138 88698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The P5 arguments are taken from register P2 and its
88139 88699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** successors.
88140 88700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
88141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opcode: AggStep * P2 P3 P4 P5
88701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: AggStep1 P1 P2 P3 P4 P5
88142 88702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: accum=r[P3] step(r[P2@P5])
88143 88703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Execute the step function for an aggregate. The
88145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function has P5 arguments. P4 is a pointer to an sqlite3_context
88146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** object that is used to run the function. Register P3 is
88147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** as the accumulator.
88704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Execute the xStep (if P1==0) or xInverse (if P1!=0) function for an
88705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** aggregate. The function has P5 arguments. P4 is a pointer to the
88706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FuncDef structure that specifies the function. Register P3 is the
88707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** accumulator.
88148 88708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88149 88709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The P5 arguments are taken from register P2 and its
88150 88710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** successors.
88151 88711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88152 88712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This opcode is initially coded as OP_AggStep0. On first evaluation,
@@ -88153,11 +88713,12 @@
88153 88713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the FuncDef stored in P4 is converted into an sqlite3_context and
88154 88714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the opcode is changed. In this way, the initialization of the
88155 88715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_context only happens once, instead of on each call to the
88156 88716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** step function.
88157 88717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
88158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_AggStep0: {
88718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_AggInverse:
88719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_AggStep: {
88159 88720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n;
88160 88721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_context *pCtx;
88161 88722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88162 88723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p4type==P4_FUNCDEF );
88163 88724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = pOp->p5;
@@ -88176,21 +88737,36 @@
88176 88737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCtx->skipFlag = 0;
88177 88738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCtx->isError = 0;
88178 88739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCtx->argc = n;
88179 88740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_FUNCCTX;
88180 88741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4.pCtx = pCtx;
88181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->opcode = OP_AggStep;
88742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
88743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* OP_AggInverse must have P1==1 and OP_AggStep must have P1==0 */
88744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p1==(pOp->opcode==OP_AggInverse) );
88745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
88746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->opcode = OP_AggStep1;
88182 88747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Fall through into OP_AggStep */
88183 88748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
88184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case OP_AggStep: {
88749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_AggStep1: {
88185 88750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
88186 88751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_context *pCtx;
88187 88752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pMem;
88188 88753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88189 88754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p4type==P4_FUNCCTX );
88190 88755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCtx = pOp->p4.pCtx;
88191 88756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pMem = &aMem[pOp->p3];
88757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
88758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
88759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p1 ){
88760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* This is an OP_AggInverse call. Verify that xStep has always
88761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** been called at least once prior to any xInverse call. */
88762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMem->uTemp==0x1122e0e3 );
88763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
88764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* This is an OP_AggStep call. Mark it as such. */
88765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pMem->uTemp = 0x1122e0e3;
88766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
88767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
88192 88768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88193 88769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this function is inside of a trigger, the register array in aMem[]
88194 88770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** might change from one evaluation to the next. The next block of code
88195 88771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** checks to see if the register array has changed, and if so it
88196 88772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** reinitializes the relavant parts of the sqlite3_context object */
@@ -88208,11 +88784,17 @@
88208 88784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88209 88785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pMem->n++;
88210 88786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pCtx->pOut->flags==MEM_Null );
88211 88787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pCtx->isError==0 );
88212 88788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pCtx->skipFlag==0 );
88789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
88790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p1 ){
88791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (pCtx->pFunc->xInverse)(pCtx,pCtx->argc,pCtx->argv);
88792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
88793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
88213 88794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(pCtx->pFunc->xSFunc)(pCtx,pCtx->argc,pCtx->argv); /* IMP: R-24505-23230 */
88795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
88214 88796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pCtx->isError ){
88215 88797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pCtx->isError>0 ){
88216 88798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeError(p, "%s", sqlite3_value_text(pCtx->pOut));
88217 88799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = pCtx->isError;
88218 88800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -88233,26 +88815,50 @@
88233 88815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
88234 88816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88235 88817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: AggFinal P1 P2 * P4 *
88236 88818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Synopsis: accum=r[P1] N=P2
88237 88819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Execute the finalizer function for an aggregate. P1 is
88239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the memory location that is the accumulator for the aggregate.
88820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** P1 is the memory location that is the accumulator for an aggregate
88821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or window function. Execute the finalizer function
88822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for an aggregate and store the result in P1.
88823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
88824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** P2 is the number of arguments that the step function takes and
88825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** P4 is a pointer to the FuncDef for this function. The P2
88826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argument is not used by this opcode. It is only there to disambiguate
88827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** functions that can take varying numbers of arguments. The
88828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** P4 argument is only needed for the case where
88829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the step function was not previously called.
88830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
88831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: AggValue * P2 P3 P4 *
88832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Synopsis: r[P3]=value N=P2
88833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
88834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Invoke the xValue() function and store the result in register P3.
88240 88835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
88241 88836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** P2 is the number of arguments that the step function takes and
88242 88837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** P4 is a pointer to the FuncDef for this function. The P2
88243 88838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument is not used by this opcode. It is only there to disambiguate
88244 88839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** functions that can take varying numbers of arguments. The
88245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** P4 argument is only needed for the degenerate case where
88840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** P4 argument is only needed for the case where
88246 88841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the step function was not previously called.
88247 88842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
88843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_AggValue:
88248 88844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_AggFinal: {
88249 88845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pMem;
88250 88846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) );
88847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p3==0 || pOp->opcode==OP_AggValue );
88251 88848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pMem = &aMem[pOp->p1];
88252 88849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pMem->flags & ~(MEM_Null|MEM_Agg))==0 );
88253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3VdbeMemFinalize(pMem, pOp->p4.pFunc);
88850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
88851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p3 ){
88852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3VdbeMemAggValue(pMem, &aMem[pOp->p3], pOp->p4.pFunc);
88853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pMem = &aMem[pOp->p3];
88854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
88855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
88856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
88857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3VdbeMemFinalize(pMem, pOp->p4.pFunc);
88858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
88859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
88254 88860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ){
88255 88861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeError(p, "%s", sqlite3_value_text(pMem));
88256 88862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto abort_due_to_error;
88257 88863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
88258 88864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeEncoding(pMem, encoding);
@@ -88843,10 +89449,11 @@
88843 89449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
88844 89450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p2==1 || pOp->p5==OE_Fail || pOp->p5==OE_Rollback
88845 89451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pOp->p5==OE_Abort || pOp->p5==OE_Ignore || pOp->p5==OE_Replace
88846 89452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
88847 89453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->readOnly==0 );
89454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->mallocFailed ) goto no_mem;
88848 89455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeIncrWriteCounter(p, 0);
88849 89456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pVtab = pOp->p4.pVtab->pVtab;
88850 89457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pVtab==0 || NEVER(pVtab->pModule==0) ){
88851 89458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_LOCKED;
88852 89459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto abort_due_to_error;
@@ -89176,10 +89783,38 @@
89176 89783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Abortable: {
89177 89784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAssertAbortable(p);
89178 89785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
89179 89786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89180 89787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
89788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
89789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
89790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: SetTabCol P1 P2 P3 * *
89791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
89792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Set a flag in register REG[P3] indicating that it holds the value
89793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of column P2 from the table on cursor P1. This flag is checked
89794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** by a subsequent VerifyTabCol opcode.
89795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
89796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This opcode only appears SQLITE_DEBUG builds. It is used to verify
89797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that the expression table column cache is working correctly.
89798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
89799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_SetTabCol: {
89800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aMem[pOp->p3].iTabColHash = TableColumnHash(pOp->p1,pOp->p2);
89801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
89802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
89803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: VerifyTabCol P1 P2 P3 * *
89804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
89805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Verify that register REG[P3] contains the value of column P2 from
89806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cursor P1. Assert() if this is not the case.
89807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
89808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This opcode only appears SQLITE_DEBUG builds. It is used to verify
89809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that the expression table column cache is working correctly.
89810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
89811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_VerifyTabCol: {
89812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( aMem[pOp->p3].iTabColHash == TableColumnHash(pOp->p1,pOp->p2) );
89813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
89814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
89815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
89181 89816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
89182 89817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: Noop * * * * *
89183 89818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
89184 89819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Do nothing. This instruction is often useful as a jump
89185 89820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** destination.
@@ -93052,10 +93687,18 @@
93052 93687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( ExprHasProperty(pExpr, EP_xIsSelect) ){
93053 93688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3WalkSelect(pWalker, pExpr->x.pSelect) ) return WRC_Abort;
93054 93689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pExpr->x.pList ){
93055 93690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3WalkExprList(pWalker, pExpr->x.pList) ) return WRC_Abort;
93056 93691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
93693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !ExprHasProperty(pExpr, EP_Reduced) && pExpr->pWin ){
93694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin = pExpr->pWin;
93695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3WalkExprList(pWalker, pWin->pPartition) ) return WRC_Abort;
93696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3WalkExprList(pWalker, pWin->pOrderBy) ) return WRC_Abort;
93697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3WalkExpr(pWalker, pWin->pFilter) ) return WRC_Abort;
93698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
93057 93700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93058 93701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
93059 93702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93060 93703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return WRC_Continue;
93061 93704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -93916,15 +94559,44 @@
93916 94559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in an index. */
93917 94560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
notValid(pParse, pNC, "non-deterministic functions",
93918 94561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
NC_IdxExpr|NC_PartIdx);
93919 94562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93920 94563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( is_agg && (pNC->ncFlags & NC_AllowAgg)==0 ){
94564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
94565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
94566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( is_agg==0 || (pDef->funcFlags & SQLITE_FUNC_MINMAX)
94567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pDef->xValue==0 && pDef->xInverse==0)
94568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pDef->xValue && pDef->xInverse && pDef->xSFunc && pDef->xFinalize)
94569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
94570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pDef && pDef->xValue==0 && pExpr->pWin ){
94571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse,
94572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "%.*s() may not be used as a window function", nId, zId
94573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
94574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC->nErr++;
94575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(
94576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (is_agg && (pNC->ncFlags & NC_AllowAgg)==0)
94577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (is_agg && (pDef->funcFlags & SQLITE_FUNC_WINDOW) && !pExpr->pWin)
94578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (is_agg && pExpr->pWin && (pNC->ncFlags & NC_AllowWin)==0)
94579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
94580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zType;
94581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pDef->funcFlags & SQLITE_FUNC_WINDOW) || pExpr->pWin ){
94582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zType = "window";
94583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
94584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zType = "aggregate";
94585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
94586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse, "misuse of %s function %.*s()", zType, nId,zId);
94587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC->nErr++;
94588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ is_agg = 0;
94589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
94590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
94591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (is_agg && (pNC->ncFlags & NC_AllowAgg)==0) ){
93922 94592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId);
93923 94593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNC->nErr++;
93924 94594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
is_agg = 0;
93925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( no_such_func && pParse->db->init.busy==0
94595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
94596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
94597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( no_such_func && pParse->db->init.busy==0
93926 94598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
93927 94599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& pParse->explain==0
93928 94600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
93929 94601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
93930 94602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId);
@@ -93932,28 +94604,52 @@
93932 94604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( wrong_num_args ){
93933 94605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()",
93934 94606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nId, zId);
93935 94607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNC->nErr++;
93936 94608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( is_agg ) pNC->ncFlags &= ~NC_AllowAgg;
94609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( is_agg ){
94610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
94611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC->ncFlags &= ~(pExpr->pWin ? NC_AllowWin : NC_AllowAgg);
94612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
94613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC->ncFlags &= ~NC_AllowAgg;
94614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
94615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93938 94616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3WalkExprList(pWalker, pList);
93939 94617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( is_agg ){
93940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- NameContext *pNC2 = pNC;
93941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->op = TK_AGG_FUNCTION;
93942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->op2 = 0;
93943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( pNC2 && !sqlite3FunctionUsesThisSrc(pExpr, pNC2->pSrcList) ){
93944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->op2++;
93945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNC2 = pNC2->pNext;
93946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
93947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pDef!=0 );
93948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pNC2 ){
93949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( SQLITE_FUNC_MINMAX==NC_MinMaxAgg );
93950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( (pDef->funcFlags & SQLITE_FUNC_MINMAX)!=0 );
93951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNC2->ncFlags |= NC_HasAgg | (pDef->funcFlags & SQLITE_FUNC_MINMAX);
93952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
93953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
93954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNC->ncFlags |= NC_AllowAgg;
94618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
94619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pExpr->pWin ){
94620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pSel = pNC->pWinSelect;
94621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WalkExprList(pWalker, pExpr->pWin->pPartition);
94622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WalkExprList(pWalker, pExpr->pWin->pOrderBy);
94623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WalkExpr(pWalker, pExpr->pWin->pFilter);
94624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowUpdate(pParse, pSel->pWinDefn, pExpr->pWin, pDef);
94625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0==pSel->pWin
94626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || 0==sqlite3WindowCompare(pParse, pSel->pWin, pExpr->pWin)
94627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
94628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->pWin->pNextWin = pSel->pWin;
94629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSel->pWin = pExpr->pWin;
94630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
94631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC->ncFlags |= NC_AllowWin;
94632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
94633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
94634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
94635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ NameContext *pNC2 = pNC;
94636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->op = TK_AGG_FUNCTION;
94637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->op2 = 0;
94638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( pNC2 && !sqlite3FunctionUsesThisSrc(pExpr, pNC2->pSrcList) ){
94639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->op2++;
94640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC2 = pNC2->pNext;
94641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
94642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pDef!=0 );
94643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pNC2 ){
94644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( SQLITE_FUNC_MINMAX==NC_MinMaxAgg );
94645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( (pDef->funcFlags & SQLITE_FUNC_MINMAX)!=0 );
94646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC2->ncFlags |= NC_HasAgg | (pDef->funcFlags & SQLITE_FUNC_MINMAX);
94647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
94648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
94649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNC->ncFlags |= NC_AllowAgg;
94650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93955 94651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93956 94652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* FIX ME: Compute pExpr->affinity based on the expected return
93957 94653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** type of the function
93958 94654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
93959 94655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return WRC_Prune;
@@ -94350,10 +95046,23 @@
94350 95046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ResolveExprNames(pNC, pE) ){
94351 95047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
94352 95048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94353 95049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<pSelect->pEList->nExpr; j++){
94354 95050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ExprCompare(0, pE, pSelect->pEList->a[j].pExpr, -1)==0 ){
95051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
95052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pE->pWin ){
95053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Since this window function is being changed into a reference
95054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the same window function the result set, remove the instance
95055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of this window function from the Select.pWin list. */
95056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window **pp;
95057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pp=&pSelect->pWin; *pp; pp=&(*pp)->pNextWin){
95058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( *pp==pE->pWin ){
95059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pp = (*pp)->pNextWin;
95060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
95061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
95062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
95063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
94355 95064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->u.x.iOrderByCol = j+1;
94356 95065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94357 95066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94358 95067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94359 95068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3ResolveOrderGroupBy(pParse, pSelect, pOrderBy, zType);
@@ -94406,10 +95115,11 @@
94406 95115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Resolve the expressions in the LIMIT and OFFSET clauses. These
94407 95116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are not allowed to refer to any names, so pass an empty NameContext.
94408 95117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94409 95118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(&sNC, 0, sizeof(sNC));
94410 95119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sNC.pParse = pParse;
95120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.pWinSelect = p;
94411 95121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ResolveExprNames(&sNC, p->pLimit) ){
94412 95122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return WRC_Abort;
94413 95123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94414 95124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94415 95125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the SF_Converted flags is set, then this Select object was
@@ -94454,16 +95164,17 @@
94454 95164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94455 95165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94456 95166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Set up the local name-context to pass to sqlite3ResolveExprNames() to
94457 95167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** resolve the result-set expression list.
94458 95168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sNC.ncFlags = NC_AllowAgg;
95169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.ncFlags = NC_AllowAgg|NC_AllowWin;
94460 95170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sNC.pSrcList = p->pSrc;
94461 95171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sNC.pNext = pOuterNC;
94462 95172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94463 95173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Resolve names in the result set. */
94464 95174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ResolveExprListNames(&sNC, p->pEList) ) return WRC_Abort;
95175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.ncFlags &= ~NC_AllowWin;
94465 95176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94466 95177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there are no aggregate functions in the result-set, and no GROUP BY
94467 95178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expression, do not allow aggregates in any of the other expressions.
94468 95179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94469 95180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (p->selFlags & SF_Aggregate)==0 );
@@ -94508,11 +95219,11 @@
94508 95219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94509 95220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The ORDER BY and GROUP BY clauses may not refer to terms in
94510 95221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** outer queries
94511 95222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94512 95223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sNC.pNext = 0;
94513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sNC.ncFlags |= NC_AllowAgg;
95224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.ncFlags |= NC_AllowAgg|NC_AllowWin;
94514 95225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94515 95226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this is a converted compound query, move the ORDER BY clause from
94516 95227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the sub-query back to the parent query. At this point each term
94517 95228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** within the ORDER BY clause has been transformed to an integer value.
94518 95229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These integers will be replaced by copies of the corresponding result
@@ -94539,10 +95250,11 @@
94539 95250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return WRC_Abort;
94540 95251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94541 95252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed ){
94542 95253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return WRC_Abort;
94543 95254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
95255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.ncFlags &= ~NC_AllowWin;
94544 95256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94545 95257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Resolve the GROUP BY clause. At the same time, make sure
94546 95258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the GROUP BY clause does not contain aggregate functions.
94547 95259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94548 95260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pGroupBy ){
@@ -95809,10 +96521,13 @@
95809 96521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( ExprHasProperty(p, EP_xIsSelect) ){
95810 96522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDelete(db, p->x.pSelect);
95811 96523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
95812 96524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, p->x.pList);
95813 96525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !ExprHasProperty(p, EP_Reduced) ){
96527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowDelete(db, p->pWin);
96528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
95814 96529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
95815 96530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken);
95816 96531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !ExprHasProperty(p, EP_Static) ){
95817 96532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFreeNN(db, p);
95818 96533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -95857,11 +96572,11 @@
95857 96572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** return value with EP_Reduced|EP_TokenOnly.
95858 96573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
95859 96574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Note that with flags==EXPRDUP_REDUCE, this routines works on full-size
95860 96575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (unreduced) Expr objects as they or originally constructed by the parser.
95861 96576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** During expression analysis, extra information is computed and moved into
95862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** later parts of teh Expr object and that extra information might get chopped
96577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** later parts of the Expr object and that extra information might get chopped
95863 96578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** off if the expression is reduced. Note also that it does not work to
95864 96579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** make an EXPRDUP_REDUCE copy of a reduced expression. It is only legal
95865 96580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to reduce a pristine expression tree from the parser. The implementation
95866 96581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of dupedExprStructSize() contain multiple assert() statements that attempt
95867 96582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to enforce this constraint.
@@ -95869,11 +96584,15 @@
95869 96584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int dupedExprStructSize(Expr *p, int flags){
95870 96585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nSize;
95871 96586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( flags==EXPRDUP_REDUCE || flags==0 ); /* Only one flag value allowed */
95872 96587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( EXPR_FULLSIZE<=0xfff );
95873 96588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (0xfff & (EP_Reduced|EP_TokenOnly))==0 );
95874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( 0==flags || p->op==TK_SELECT_COLUMN ){
96589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0==flags || p->op==TK_SELECT_COLUMN
96590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
96591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || p->pWin
96592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
96593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
95875 96594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nSize = EXPR_FULLSIZE;
95876 96595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
95877 96596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) );
95878 96597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasProperty(p, EP_FromJoin) );
95879 96598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasProperty(p, EP_MemToken) );
@@ -96009,10 +96728,17 @@
96009 96728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96010 96729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pzBuffer ){
96011 96730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pzBuffer = zAlloc;
96012 96731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96013 96732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
96733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
96734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ExprHasProperty(p, EP_Reduced|EP_TokenOnly) ){
96735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pWin = 0;
96736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
96737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pWin = sqlite3WindowDup(db, pNew, p->pWin);
96738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
96739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
96014 96740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){
96015 96741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pNew->op==TK_SELECT_COLUMN ){
96016 96742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pLeft = p->pLeft;
96017 96743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->iColumn==0 || p->pRight==0 );
96018 96744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->pRight==0 || p->pRight==p->pLeft );
@@ -96215,11 +96941,15 @@
96215 96941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->selFlags = p->selFlags & ~SF_UsesEphemeral;
96216 96942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->addrOpenEphm[0] = -1;
96217 96943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->addrOpenEphm[1] = -1;
96218 96944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->nSelectRow = p->nSelectRow;
96219 96945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pWith = withDup(db, p->pWith);
96220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SelectSetName(pNew, p->zSelName);
96946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
96947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pWin = 0;
96948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pWinDefn = sqlite3WindowListDup(db, p->pWinDefn);
96949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
96950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->selId = p->selId;
96221 96951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pp = pNew;
96222 96952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pp = &pNew->pPrior;
96223 96953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNext = pNew;
96224 96954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96225 96955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -97945,10 +98675,17 @@
97945 98675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
97946 98676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, p=pParse->aColCache; i<pParse->nColCache; i++, p++){
97947 98677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->iTable!=iTab || p->iColumn!=iCol );
97948 98678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
97949 98679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
98680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
98681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
98682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Add a SetTabCol opcode for run-time verification that the column
98683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cache is working correctly.
98684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
98685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(pParse->pVdbe, OP_SetTabCol, iTab, iCol, iReg);
98686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
97950 98687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97951 98688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the cache is already full, delete the least recently used entry */
97952 98689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->nColCache>=SQLITE_N_COLCACHE ){
97953 98690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
minLru = 0x7fffffff;
97954 98691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idxLru = -1;
@@ -98119,10 +98856,13 @@
98119 98856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
98120 98857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, p=pParse->aColCache; i<pParse->nColCache; i++, p++){
98121 98858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->iTable==iTable && p->iColumn==iColumn ){
98122 98859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->lru = pParse->iCacheCnt++;
98123 98860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCachePinRegister(pParse, p->iReg);
98861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG_COLUMNCACHE
98862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_VerifyTabCol, iTable, iColumn, p->iReg);
98863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
98124 98864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return p->iReg;
98125 98865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98126 98866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98127 98867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( v!=0 );
98128 98868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCodeGetColumnOfTable(v, pTab, iTable, iColumn, iReg);
@@ -98523,10 +99263,16 @@
98523 99263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 constMask = 0; /* Mask of function arguments that are constant */
98524 99264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i; /* Loop counter */
98525 99265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pParse->db; /* The database connection */
98526 99266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 enc = ENC(db); /* The text encoding used by this database */
98527 99267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl = 0; /* A collating sequence */
99268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
99269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
99270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) && pExpr->pWin ){
99271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pExpr->pWin->regResult;
99272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
99273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
98528 99274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
98529 99275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){
98530 99276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* SQL functions can be expensive. So try to move constant functions
98531 99277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** out of the inner loop, even if that means an extra OP_Copy. */
98532 99278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3ExprCodeAtInit(pParse, pExpr, -1);
@@ -99663,10 +100409,25 @@
99663 100409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA->op!=TK_STRING && pA->op!=TK_TRUEFALSE ){
99664 100410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA->iColumn!=pB->iColumn ) return 2;
99665 100411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA->iTable!=pB->iTable
99666 100412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (pA->iTable!=iTab || NEVER(pB->iTable>=0)) ) return 2;
99667 100413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
100415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Justification for the assert():
100416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window functions have p->op==TK_FUNCTION but aggregate functions
100417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** have p->op==TK_AGG_FUNCTION. So any comparison between an aggregate
100418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function and a window function should have failed before reaching
100419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this point. And, it is not possible to have a window function and
100420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a scalar function with the same name and number of arguments. So
100421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if we reach this point, either A and B both window functions or
100422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** neither are a window functions. */
100423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (pA->pWin==0)==(pB->pWin==0) );
100424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
100425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pA->pWin!=0 ){
100426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3WindowCompare(pParse,pA->pWin,pB->pWin)!=0 ) return 2;
100427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
100428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
99668 100429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99669 100430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
99670 100431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99671 100432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
99672 100433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -100342,11 +101103,11 @@
100342 101103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
100343 101104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do {
100344 101105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCsr += len;
100345 101106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
len = sqlite3GetToken(zCsr, &token);
100346 101107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} while( token==TK_SPACE );
100347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( len>0 );
101108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( len>0 || !*zCsr );
100348 101109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} while( token!=TK_LP && token!=TK_USING );
100349 101110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
100350 101111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zRet = sqlite3MPrintf(db, "%.*s\"%w\"%s", (int)(((u8*)tname.z) - zSql),
100351 101112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSql, zTableName, tname.z+tname.n);
100352 101113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(context, zRet, -1, SQLITE_DYNAMIC);
@@ -100410,11 +101171,11 @@
100410 101171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100411 101172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zParent);
100412 101173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100413 101174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100414 101175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
100415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zResult = sqlite3MPrintf(db, "%s%s", (zOutput?zOutput:""), zInput),
101176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zResult = sqlite3MPrintf(db, "%s%s", (zOutput?zOutput:""), zInput);
100416 101177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(context, zResult, -1, SQLITE_DYNAMIC);
100417 101178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zOutput);
100418 101179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100419 101180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
100420 101181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -100466,11 +101227,11 @@
100466 101227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
100467 101228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do {
100468 101229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCsr += len;
100469 101230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
len = sqlite3GetToken(zCsr, &token);
100470 101231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}while( token==TK_SPACE );
100471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( len>0 );
101232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( len>0 || !*zCsr );
100472 101233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
100473 101234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Variable 'dist' stores the number of tokens read since the most
100474 101235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** recent TK_DOT or TK_ON. This means that when a WHEN, FOR or BEGIN
100475 101236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** token is read and 'dist' equals 2, the condition stated above
100476 101237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to be met.
@@ -101564,10 +102325,11 @@
101564 102325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8, /* funcFlags */
101565 102326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pUserData */
101566 102327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pNext */
101567 102328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
statInit, /* xSFunc */
101568 102329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* xFinalize */
102330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, /* xValue, xInverse */
101569 102331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"stat_init", /* zName */
101570 102332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0}
101571 102333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
101572 102334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
101573 102335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT4
@@ -101880,10 +102642,11 @@
101880 102642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8, /* funcFlags */
101881 102643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pUserData */
101882 102644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pNext */
101883 102645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
statPush, /* xSFunc */
101884 102646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* xFinalize */
102647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, /* xValue, xInverse */
101885 102648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"stat_push", /* zName */
101886 102649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0}
101887 102650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
101888 102651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
101889 102652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define STAT_GET_STAT1 0 /* "stat" column of stat1 table */
@@ -102031,10 +102794,11 @@
102031 102794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8, /* funcFlags */
102032 102795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pUserData */
102033 102796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pNext */
102034 102797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
statGet, /* xSFunc */
102035 102798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* xFinalize */
102799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, /* xValue, xInverse */
102036 102800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"stat_get", /* zName */
102037 102801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0}
102038 102802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
102039 102803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
102040 102804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void callStatGet(Vdbe *v, int regStat4, int iParam, int regOut){
@@ -102350,14 +103114,11 @@
102350 103114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverage(v);
102351 103115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
callStatGet(v, regStat4, STAT_GET_NEQ, regEq);
102352 103116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
callStatGet(v, regStat4, STAT_GET_NLT, regLt);
102353 103117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
callStatGet(v, regStat4, STAT_GET_NDLT, regDLt);
102354 103118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4Int(v, seekOp, iTabCur, addrNext, regSampleRowid, 0);
102355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* We know that the regSampleRowid row exists because it was read by
102356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the previous loop. Thus the not-found jump of seekOp will never
102357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be taken */
102358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeCoverageNeverTaken(v);
103119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
102359 103120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT3
102360 103121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iTabCur, 0, regSample);
102361 103122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
102362 103123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<nCol; i++){
102363 103124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iTabCur, i, regCol+i);
@@ -103432,10 +104193,11 @@
103432 104193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8, /* funcFlags */
103433 104194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pUserData */
103434 104195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pNext */
103435 104196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
detachFunc, /* xSFunc */
103436 104197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* xFinalize */
104198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, /* xValue, xInverse */
103437 104199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"sqlite_detach", /* zName */
103438 104200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0}
103439 104201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
103440 104202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
codeAttach(pParse, SQLITE_DETACH, &detach_func, pDbname, 0, 0, pDbname);
103441 104203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -103451,10 +104213,11 @@
103451 104213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8, /* funcFlags */
103452 104214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pUserData */
103453 104215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pNext */
103454 104216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
attachFunc, /* xSFunc */
103455 104217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* xFinalize */
104218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, /* xValue, xInverse */
103456 104219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"sqlite_attach", /* zName */
103457 104220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0}
103458 104221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
103459 104222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
codeAttach(pParse, SQLITE_ATTACH, &attach_func, p, p, pDbname, pKey);
103460 104223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -105613,10 +106376,35 @@
105613 106376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
105614 106377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int hasColumn(const i16 *aiCol, int nCol, int x){
105615 106378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( nCol-- > 0 ) if( x==*(aiCol++) ) return 1;
105616 106379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
105617 106380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
106382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Recompute the colNotIdxed field of the Index.
106383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
106384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** colNotIdxed is a bitmask that has a 0 bit representing each indexed
106385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** columns that are within the first 63 columns of the table. The
106386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** high-order bit of colNotIdxed is always 1. All unindexed columns
106387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the table have a 1.
106388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
106389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The colNotIdxed mask is AND-ed with the SrcList.a[].colUsed mask
106390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to determine if the index is covering index.
106391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
106392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void recomputeColumnsNotIndexed(Index *pIdx){
106393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bitmask m = 0;
106394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int j;
106395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=pIdx->nColumn-1; j>=0; j--){
106396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int x = pIdx->aiColumn[j];
106397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x>=0 ){
106398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( x==BMS-1 );
106399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( x==BMS-2 );
106400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x<BMS-1 ) m |= MASKBIT(x);
106401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
106402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
106403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIdx->colNotIdxed = ~m;
106404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (pIdx->colNotIdxed>>63)==1 );
106405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105618 106406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
105619 106407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
105620 106408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine runs at the end of parsing a CREATE TABLE statement that
105621 106409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** has a WITHOUT ROWID clause. The job of this routine is to convert both
105622 106410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** internal schema data structures and the generated VDBE code so that they
@@ -105682,11 +106470,11 @@
105682 106470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pList==0 ) return;
105683 106471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pList->a[0].sortOrder = pParse->iPkSortOrder;
105684 106472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->pNewTable==pTab );
105685 106473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CreateIndex(pParse, 0, 0, 0, pList, pTab->keyConf, 0, 0, 0, 0,
105686 106474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_IDXTYPE_PRIMARYKEY);
105687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db->mallocFailed ) return;
106475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->mallocFailed || pParse->nErr ) return;
105688 106476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPk = sqlite3PrimaryKeyIndex(pTab);
105689 106477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->iPKey = -1;
105690 106478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
105691 106479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPk = sqlite3PrimaryKeyIndex(pTab);
105692 106480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -105762,10 +106550,11 @@
105762 106550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pPk->nColumn==j );
105763 106551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTab->nCol==j );
105764 106552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
105765 106553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPk->nColumn = pTab->nCol;
105766 106554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ recomputeColumnsNotIndexed(pPk);
105767 106556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105768 106557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
105769 106558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
105770 106559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine is called to report the final ")" that terminates
105771 106560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a CREATE TABLE statement.
@@ -106212,10 +107001,15 @@
106212 107001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->lookaside.bDisable--;
106213 107002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
106214 107003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nErr++;
106215 107004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106216 107005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->pSchema->schemaFlags |= DB_UnresetViews;
107006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->mallocFailed ){
107007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteColumnNames(db, pTable);
107008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTable->aCol = 0;
107009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTable->nCol = 0;
107010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
106217 107011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_VIEW */
106218 107012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return nErr;
106219 107013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106220 107014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) */
106221 107015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -107195,10 +107989,11 @@
107195 107989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
107196 107990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this index contains every column of its table, then mark
107197 107991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** it as a covering index */
107198 107992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( HasRowid(pTab)
107199 107993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pTab->iPKey<0 || sqlite3ColumnOfIndex(pIndex, pTab->iPKey)>=0 );
107994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ recomputeColumnsNotIndexed(pIndex);
107200 107995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){
107201 107996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->isCovering = 1;
107202 107997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<pTab->nCol; j++){
107203 107998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( j==pTab->iPKey ) continue;
107204 107999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ColumnOfIndex(pIndex,j)>=0 ) continue;
@@ -111366,18 +112161,44 @@
111366 112161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->cnt++;
111367 112162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( type==SQLITE_INTEGER ){
111368 112163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 v = sqlite3_value_int64(argv[0]);
111369 112164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rSum += v;
111370 112165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){
111371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->overflow = 1;
112166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->approx = p->overflow = 1;
111372 112167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111373 112168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
111374 112169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rSum += sqlite3_value_double(argv[0]);
111375 112170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->approx = 1;
111376 112171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111377 112172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111378 112173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
112175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void sumInverse(sqlite3_context *context, int argc, sqlite3_value**argv){
112176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SumCtx *p;
112177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int type;
112178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( argc==1 );
112179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(argc);
112180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = sqlite3_aggregate_context(context, sizeof(*p));
112181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ type = sqlite3_value_numeric_type(argv[0]);
112182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* p is always non-NULL because sumStep() will have been called first
112183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to initialize it */
112184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(p) && type!=SQLITE_NULL ){
112185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->cnt>0 );
112186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->cnt--;
112187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( type==SQLITE_INTEGER || p->approx );
112188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( type==SQLITE_INTEGER && p->approx==0 ){
112189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 v = sqlite3_value_int64(argv[0]);
112190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->rSum -= v;
112191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->iSum -= v;
112192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
112193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->rSum -= sqlite3_value_double(argv[0]);
112194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
112198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sumInverse 0
112199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
111379 112200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void sumFinalize(sqlite3_context *context){
111380 112201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SumCtx *p;
111381 112202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3_aggregate_context(context, 0);
111382 112203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p && p->cnt>0 ){
111383 112204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->overflow ){
@@ -111408,10 +112229,13 @@
111408 112229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** count() aggregate function.
111409 112230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
111410 112231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct CountCtx CountCtx;
111411 112232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct CountCtx {
111412 112233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 n;
112234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
112235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bInverse; /* True if xInverse() ever called */
112236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
111413 112237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
111414 112238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111415 112239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
111416 112240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Routines to implement the count() aggregate function.
111417 112241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -111425,19 +112249,34 @@
111425 112249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_DEPRECATED
111426 112250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The sqlite3_aggregate_count() function is deprecated. But just to make
111427 112251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sure it still operates correctly, verify that its count agrees with our
111428 112252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** internal count when using count(*) and when the total count can be
111429 112253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expressed as a 32-bit integer. */
111430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( argc==1 || p==0 || p->n>0x7fffffff
112254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( argc==1 || p==0 || p->n>0x7fffffff || p->bInverse
111431 112255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| p->n==sqlite3_aggregate_count(context) );
111432 112256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
111433 112257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111434 112258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void countFinalize(sqlite3_context *context){
111435 112259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CountCtx *p;
111436 112260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3_aggregate_context(context, 0);
111437 112261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_int64(context, p ? p->n : 0);
111438 112262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
112264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void countInverse(sqlite3_context *ctx, int argc, sqlite3_value **argv){
112265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CountCtx *p;
112266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = sqlite3_aggregate_context(ctx, sizeof(*p));
112267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* p is always non-NULL since countStep() will have been called first */
112268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && ALWAYS(p) ){
112269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->n--;
112270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
112271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->bInverse = 1;
112272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
112273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
112276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define countInverse 0
112277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
111439 112278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111440 112279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
111441 112280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Routines to implement min() and max() aggregate functions.
111442 112281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
111443 112282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void minmaxStep(
@@ -111450,11 +112289,11 @@
111450 112289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(NotUsed);
111451 112290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111452 112291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBest = (Mem *)sqlite3_aggregate_context(context, sizeof(*pBest));
111453 112292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pBest ) return;
111454 112293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3_value_type(argv[0])==SQLITE_NULL ){
112294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3_value_type(pArg)==SQLITE_NULL ){
111456 112295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBest->flags ) sqlite3SkipAccumulatorLoad(context);
111457 112296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pBest->flags ){
111458 112297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int max;
111459 112298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cmp;
111460 112299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl = sqlite3GetFuncCollSeq(context);
@@ -111476,20 +112315,30 @@
111476 112315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
111477 112316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBest->db = sqlite3_context_db_handle(context);
111478 112317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemCopy(pBest, pArg);
111479 112318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111480 112319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void minMaxFinalize(sqlite3_context *context){
112320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void minMaxValueFinalize(sqlite3_context *context, int bValue){
111482 112321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value *pRes;
111483 112322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRes = (sqlite3_value *)sqlite3_aggregate_context(context, 0);
111484 112323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pRes ){
111485 112324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pRes->flags ){
111486 112325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_value(context, pRes);
111487 112326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeMemRelease(pRes);
112327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bValue==0 ) sqlite3VdbeMemRelease(pRes);
111489 112328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111490 112329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
112331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void minMaxValue(sqlite3_context *context){
112332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ minMaxValueFinalize(context, 1);
112333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
112335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define minMaxValue 0
112336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
112337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void minMaxFinalize(sqlite3_context *context){
112338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ minMaxValueFinalize(context, 0);
112339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
111491 112340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111492 112341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
111493 112342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** group_concat(EXPR, ?SEPARATOR?)
111494 112343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
111495 112344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void groupConcatStep(
@@ -111522,10 +112371,42 @@
111522 112371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zVal = (char*)sqlite3_value_text(argv[0]);
111523 112372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nVal = sqlite3_value_bytes(argv[0]);
111524 112373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zVal ) sqlite3_str_append(pAccum, zVal, nVal);
111525 112374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111526 112375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
112377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void groupConcatInverse(
112378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *context,
112379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argc,
112380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **argv
112381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
112382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n;
112383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ StrAccum *pAccum;
112384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( argc==1 || argc==2 );
112385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;
112386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAccum = (StrAccum*)sqlite3_aggregate_context(context, sizeof(*pAccum));
112387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* pAccum is always non-NULL since groupConcatStep() will have always
112388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** run frist to initialize it */
112389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(pAccum) ){
112390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = sqlite3_value_bytes(argv[0]);
112391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc==2 ){
112392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n += sqlite3_value_bytes(argv[1]);
112393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
112394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n++;
112395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n>=(int)pAccum->nChar ){
112397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAccum->nChar = 0;
112398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
112399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAccum->nChar -= n;
112400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memmove(pAccum->zText, &pAccum->zText[n], pAccum->nChar);
112401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAccum->nChar==0 ) pAccum->mxAlloc = 0;
112403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
112406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define groupConcatInverse 0
112407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
111527 112408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void groupConcatFinalize(sqlite3_context *context){
111528 112409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
StrAccum *pAccum;
111529 112410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAccum = sqlite3_aggregate_context(context, 0);
111530 112411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAccum ){
111531 112412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAccum->accError==SQLITE_TOOBIG ){
@@ -111536,10 +112417,28 @@
111536 112417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(context, sqlite3StrAccumFinish(pAccum), -1,
111537 112418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free);
111538 112419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111539 112420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111540 112421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
112423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void groupConcatValue(sqlite3_context *context){
112424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_str *pAccum;
112425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAccum = (sqlite3_str*)sqlite3_aggregate_context(context, 0);
112426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAccum ){
112427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAccum->accError==SQLITE_TOOBIG ){
112428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_error_toobig(context);
112429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pAccum->accError==SQLITE_NOMEM ){
112430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_error_nomem(context);
112431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
112432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zText = sqlite3_str_value(pAccum);
112433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(context, zText, -1, SQLITE_TRANSIENT);
112434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
112438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define groupConcatValue 0
112439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
111541 112440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111542 112441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
111543 112442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine does per-connection function registration. Most
111544 112443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of the built-in functions above are part of the global function set.
111545 112444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine only deals with those that are not global.
@@ -111573,14 +112472,14 @@
111573 112472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( caseSensitive ){
111574 112473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInfo = (struct compareInfo*)&likeInfoAlt;
111575 112474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
111576 112475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInfo = (struct compareInfo*)&likeInfoNorm;
111577 112476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0);
111579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0);
112477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0);
112478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0);
111580 112479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CreateFunc(db, "glob", 2, SQLITE_UTF8,
111581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (struct compareInfo*)&globInfo, likeFunc, 0, 0, 0);
112480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (struct compareInfo*)&globInfo, likeFunc, 0, 0, 0, 0, 0);
111582 112481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
setLikeOptFlag(db, "glob", SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE);
111583 112482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
setLikeOptFlag(db, "like",
111584 112483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
caseSensitive ? (SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE) : SQLITE_FUNC_LIKE);
111585 112484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111586 112485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -111685,15 +112584,15 @@
111685 112584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(rtrim, 2, 2, 0, trimFunc ),
111686 112585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(trim, 1, 3, 0, trimFunc ),
111687 112586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(trim, 2, 3, 0, trimFunc ),
111688 112587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(min, -1, 0, 1, minmaxFunc ),
111689 112588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(min, 0, 0, 1, 0 ),
111690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE2(min, 1, 0, 1, minmaxStep, minMaxFinalize,
112589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(min, 1, 0, 1, minmaxStep, minMaxFinalize, minMaxValue, 0,
111691 112590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_FUNC_MINMAX ),
111692 112591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(max, -1, 1, 1, minmaxFunc ),
111693 112592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(max, 0, 1, 1, 0 ),
111694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE2(max, 1, 1, 1, minmaxStep, minMaxFinalize,
112593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize, minMaxValue, 0,
111695 112594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_FUNC_MINMAX ),
111696 112595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF),
111697 112596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION2(length, 1, 0, 0, lengthFunc, SQLITE_FUNC_LENGTH),
111698 112597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(instr, 2, 0, 0, instrFunc ),
111699 112598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(printf, -1, 0, 0, printfFunc ),
@@ -111720,18 +112619,21 @@
111720 112619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VFUNCTION(total_changes, 0, 0, 0, total_changes ),
111721 112620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(replace, 3, 0, 0, replaceFunc ),
111722 112621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(zeroblob, 1, 0, 0, zeroblobFunc ),
111723 112622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(substr, 2, 0, 0, substrFunc ),
111724 112623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION(substr, 3, 0, 0, substrFunc ),
111725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE(sum, 1, 0, 0, sumStep, sumFinalize ),
111726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE(total, 1, 0, 0, sumStep, totalFinalize ),
111727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE(avg, 1, 0, 0, sumStep, avgFinalize ),
111728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE2(count, 0, 0, 0, countStep, countFinalize,
111729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_FUNC_COUNT ),
111730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE(count, 1, 0, 0, countStep, countFinalize ),
111731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE(group_concat, 1, 0, 0, groupConcatStep, groupConcatFinalize),
111732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- AGGREGATE(group_concat, 2, 0, 0, groupConcatStep, groupConcatFinalize),
112624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(sum, 1,0,0, sumStep, sumFinalize, sumFinalize, sumInverse, 0),
112625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(total, 1,0,0, sumStep,totalFinalize,totalFinalize,sumInverse, 0),
112626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(avg, 1,0,0, sumStep, avgFinalize, avgFinalize, sumInverse, 0),
112627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(count, 0,0,0, countStep,
112628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ countFinalize, countFinalize, countInverse, SQLITE_FUNC_COUNT ),
112629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(count, 1,0,0, countStep,
112630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ countFinalize, countFinalize, countInverse, 0 ),
112631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(group_concat, 1, 0, 0, groupConcatStep,
112632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ groupConcatFinalize, groupConcatValue, groupConcatInverse, 0),
112633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WAGGREGATE(group_concat, 2, 0, 0, groupConcatStep,
112634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ groupConcatFinalize, groupConcatValue, groupConcatInverse, 0),
111733 112635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111734 112636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LIKEFUNC(glob, 2, &globInfo, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
111735 112637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_CASE_SENSITIVE_LIKE
111736 112638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LIKEFUNC(like, 2, &likeInfoAlt, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
111737 112639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LIKEFUNC(like, 3, &likeInfoAlt, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
@@ -111747,10 +112649,11 @@
111747 112649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FUNCTION2(coalesce, -1, 0, 0, noopFunc, SQLITE_FUNC_COALESCE),
111748 112650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
111749 112651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_ALTERTABLE
111750 112652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3AlterFunctions();
111751 112653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
112654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowFunctions();
111752 112655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(SQLITE_ENABLE_STAT3) || defined(SQLITE_ENABLE_STAT4)
111753 112656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3AnalyzeFunctions();
111754 112657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
111755 112658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3RegisterDateTimeFunctions();
111756 112659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3InsertBuiltinFuncs(aBuiltinFunc, ArraySize(aBuiltinFunc));
@@ -114738,10 +115641,11 @@
114738 115641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the following conflict logic if it does not. */
114739 115642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeNoopComment((v, "uniqueness check for ROWID"));
114740 115643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeVerifyAbortable(v, onError);
114741 115644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, addrRowidOk, regNewData);
114742 115645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverage(v);
115646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprCachePush(pParse);
114743 115647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114744 115648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( onError ){
114745 115649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: {
114746 115650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onError = OE_Abort;
114747 115651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Fall thru into the next case */
@@ -114814,10 +115718,11 @@
114814 115718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( onError==OE_Ignore );
114815 115719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeGoto(v, ignoreDest);
114816 115720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
114817 115721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114818 115722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprCachePop(pParse);
114819 115724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, addrRowidOk);
114820 115725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sAddr.ipkTop ){
114821 115726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sAddr.ipkBtm = sqlite3VdbeAddOp0(v, OP_Goto);
114822 115727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, sAddr.ipkTop-1);
114823 115728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -114835,23 +115740,23 @@
114835 115740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regR; /* Range of registers holding conflicting PK */
114836 115741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iThisCur; /* Cursor for this UNIQUE index */
114837 115742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrUniqueOk; /* Jump here if the UNIQUE constraint is satisfied */
114838 115743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114839 115744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aRegIdx[ix]==0 ) continue; /* Skip indices that do not change */
115745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bAffinityDone==0 ){
115746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TableAffinity(v, pTab, regNewData+1);
115747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bAffinityDone = 1;
115748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
114840 115749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pUpIdx==pIdx ){
114841 115750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrUniqueOk = sAddr.upsertBtm;
114842 115751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
upsertBypass = sqlite3VdbeGoto(v, 0);
114843 115752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "Skip upsert subroutine"));
114844 115753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, sAddr.upsertTop2);
114845 115754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
114846 115755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrUniqueOk = sqlite3VdbeMakeLabel(v);
114847 115756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114848 115757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeNoopComment((v, "uniqueness check for %s", pIdx->zName));
114849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( bAffinityDone==0 ){
114850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3TableAffinity(v, pTab, regNewData+1);
114851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- bAffinityDone = 1;
114852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
114853 115758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iThisCur = iIdxCur+ix;
114854 115759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114855 115760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114856 115761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Skip partial indices for which the WHERE clause is not true */
114857 115762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIdx->pPartIdxWhere ){
@@ -119458,10 +120363,15 @@
119458 120363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119459 120364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->nMem>=8+j );
119460 120365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3NoTempsInRange(pParse,1,7+j) );
119461 120366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Rewind, iDataCur, 0); VdbeCoverage(v);
119462 120367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
loopTop = sqlite3VdbeAddOp2(v, OP_AddImm, 7, 1);
120368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !isQuick ){
120369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Sanity check on record header decoding */
120370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, iDataCur, pTab->nCol-1, 3);
120371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG);
120372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
119463 120373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that all NOT NULL columns really are NOT NULL */
119464 120374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<pTab->nCol; j++){
119465 120375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zErr;
119466 120376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int jmp2;
119467 120377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( j==pTab->iPKey ) continue;
@@ -119500,13 +120410,10 @@
119500 120410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCachePop(pParse);
119501 120411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119502 120412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, pCheck);
119503 120413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119504 120414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isQuick ){ /* Omit the remaining tests for quick_check */
119505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Sanity check on record header decoding */
119506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp3(v, OP_Column, iDataCur, pTab->nCol-1, 3);
119507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG);
119508 120415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Validate index entries for the current row */
119509 120416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
119510 120417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int jmp2, jmp3, jmp4, jmp5;
119511 120418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ckUniq = sqlite3VdbeMakeLabel(v);
119512 120419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPk==pIdx ) continue;
@@ -120573,11 +121480,11 @@
120573 121480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there is not already a read-only (or read-write) transaction opened
120574 121481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on the b-tree database, open one now. If a transaction is opened, it
120575 121482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will be closed before this function returns. */
120576 121483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeEnter(pDb->pBt);
120577 121484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3BtreeIsInReadTrans(pDb->pBt) ){
120578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pDb->pBt, 0);
121485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pDb->pBt, 0, 0);
120579 121486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
120580 121487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SetString(pzErrMsg, db, sqlite3ErrStr(rc));
120581 121488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto initone_error_out;
120582 121489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
120583 121490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
openedTransaction = 1;
@@ -120818,11 +121725,11 @@
120818 121725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
120819 121726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there is not already a read-only (or read-write) transaction opened
120820 121727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on the b-tree database, open one now. If a transaction is opened, it
120821 121728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will be closed immediately after reading the meta-value. */
120822 121729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3BtreeIsInReadTrans(pBt) ){
120823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBt, 0);
121730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBt, 0, 0);
120824 121731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
120825 121732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OomFault(db);
120826 121733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
120827 121734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ) return;
120828 121735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
openedTransaction = 1;
@@ -121315,11 +122222,11 @@
121315 122222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
121316 122223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SELECTTRACE_ENABLED
121317 122224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/***/ int sqlite3SelectTrace = 0;
121318 122225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SELECTTRACE(K,P,S,X) \
121319 122226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(sqlite3SelectTrace&(K)) \
121320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DebugPrintf("%s/%d/%p: ",(S)->zSelName,(P)->addrExplain,(S)),\
122227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DebugPrintf("%u/%d/%p: ",(S)->selId,(P)->addrExplain,(S)),\
121321 122228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DebugPrintf X
121322 122229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
121323 122230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SELECTTRACE(K,P,S,X)
121324 122231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
121325 122232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -121390,10 +122297,15 @@
121390 122297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprDelete(db, p->pWhere);
121391 122298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, p->pGroupBy);
121392 122299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprDelete(db, p->pHaving);
121393 122300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, p->pOrderBy);
121394 122301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprDelete(db, p->pLimit);
122302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
122303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( OK_IF_ALWAYS_TRUE(p->pWinDefn) ){
122304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowListDelete(db, p->pWinDefn);
122305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
122306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
121395 122307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( OK_IF_ALWAYS_TRUE(p->pWith) ) sqlite3WithDelete(db, p->pWith);
121396 122308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bFree ) sqlite3DbFreeNN(db, p);
121397 122309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = pPrior;
121398 122310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bFree = 1;
121399 122311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -121440,13 +122352,11 @@
121440 122352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pEList = pEList;
121441 122353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->op = TK_SELECT;
121442 122354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->selFlags = selFlags;
121443 122355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->iLimit = 0;
121444 122356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->iOffset = 0;
121445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
121446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->zSelName[0] = 0;
121447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
122357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->selId = ++pParse->nSelect;
121448 122358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->addrOpenEphm[0] = -1;
121449 122359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->addrOpenEphm[1] = -1;
121450 122360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->nSelectRow = 0;
121451 122361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pSrc==0 ) pSrc = sqlite3DbMallocZero(pParse->db, sizeof(*pSrc));
121452 122362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pSrc = pSrc;
@@ -121456,10 +122366,14 @@
121456 122366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pOrderBy = pOrderBy;
121457 122367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pPrior = 0;
121458 122368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pNext = 0;
121459 122369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pLimit = pLimit;
121460 122370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pWith = 0;
122371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
122372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pWin = 0;
122373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pWinDefn = 0;
122374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
121461 122375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->db->mallocFailed ) {
121462 122376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
clearSelect(pParse->db, pNew, pNew!=&standin);
121463 122377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = 0;
121464 122378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
121465 122379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pNew->pSrc!=0 || pParse->nErr>0 );
@@ -121466,21 +122380,10 @@
121466 122380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
121467 122381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pNew!=&standin );
121468 122382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pNew;
121469 122383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
121470 122384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
121471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
121472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
121473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Set the name of a Select object
121474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
121475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3SelectSetName(Select *p, const char *zName){
121476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p && zName ){
121477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(sizeof(p->zSelName), p->zSelName, "%s", zName);
121478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
121479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
121480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
121481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
121482 122385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
121483 122386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
121484 122387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Delete the given Select structure and all of its substructures.
121485 122388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
121486 122389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SelectDelete(sqlite3 *db, Select *p){
@@ -121823,18 +122726,10 @@
121823 122726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
121824 122727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
121825 122728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
121826 122729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
121827 122730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
121828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Forward reference */
121829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static KeyInfo *keyInfoFromExprList(
121830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Parse *pParse, /* Parsing context */
121831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExprList *pList, /* Form the KeyInfo object from this ExprList */
121832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iStart, /* Begin with this column of pList */
121833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nExtra /* Add this many extra columns to the end */
121834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
121835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
121836 122731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
121837 122732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of this object holds information (beyond pParse and pSelect)
121838 122733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** needed to load the next result row that is to be added to the sorter.
121839 122734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
121840 122735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct RowLoadInfo RowLoadInfo;
@@ -121972,11 +122867,11 @@
121972 122867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p2 = nKey + nData;
121973 122868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKI = pOp->p4.pKeyInfo;
121974 122869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(pKI->aSortOrder, 0, pKI->nKeyField); /* Makes OP_Jump testable */
121975 122870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP4(v, -1, (char*)pKI, P4_KEYINFO);
121976 122871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pKI->nAllField > pKI->nKeyField+2 );
121977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4.pKeyInfo = keyInfoFromExprList(pParse, pSort->pOrderBy, nOBSat,
122872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->p4.pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pSort->pOrderBy,nOBSat,
121978 122873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKI->nAllField-pKI->nKeyField-1);
121979 122874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrJmp = sqlite3VdbeCurrentAddr(v);
121980 122875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Jump, addrJmp+1, 0, addrJmp+1); VdbeCoverage(v);
121981 122876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSort->labelBkOut = sqlite3VdbeMakeLabel(v);
121982 122877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSort->regReturn = ++pParse->nMem;
@@ -122642,11 +123537,11 @@
122642 123537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
122643 123538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Space to hold the KeyInfo structure is obtained from malloc. The calling
122644 123539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function is responsible for seeing that this structure is eventually
122645 123540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** freed.
122646 123541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
122647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static KeyInfo *keyInfoFromExprList(
123542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoFromExprList(
122648 123543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Parse *pParse, /* Parsing context */
122649 123544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList, /* Form the KeyInfo object from this ExprList */
122650 123545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iStart, /* Begin with this column of pList */
122651 123546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nExtra /* Add this many extra columns to the end */
122652 123547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
@@ -124970,10 +125865,14 @@
124970 125865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The subquery may not be an aggregate that uses the built-in min() or
124971 125866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or max() functions. (Without this restriction, a query like:
124972 125867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "SELECT x FROM (SELECT max(y), x FROM t1)" would not necessarily
124973 125868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** return the value X for which Y was maximal.)
124974 125869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (25) If either the subquery or the parent query contains a window
125871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function in the select list or ORDER BY clause, flattening
125872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is not attempted.
125873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
124975 125874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
124976 125875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** In this routine, the "p" parameter is a pointer to the outer query.
124977 125876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The subquery is p->pSrc->a[iFrom]. isAgg is true if the outer query
124978 125877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** uses aggregates.
124979 125878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -125012,10 +125911,14 @@
125012 125911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pSrc && iFrom>=0 && iFrom<pSrc->nSrc );
125013 125912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSubitem = &pSrc->a[iFrom];
125014 125913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iParent = pSubitem->iCursor;
125015 125914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSub = pSubitem->pSelect;
125016 125915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pSub!=0 );
125916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
125917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
125918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pWin || pSub->pWin ) return 0; /* Restriction (25) */
125919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
125017 125920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125018 125921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSubSrc = pSub->pSrc;
125019 125922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pSubSrc );
125020 125923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Prior to version 3.1.2, when LIMIT and OFFSET had to be simple constants,
125021 125924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** not arbitrary expressions, we allowed some combining of LIMIT and OFFSET
@@ -125123,12 +126026,12 @@
125123 126026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** restriction (17d3)
125124 126027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
125125 126028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (p->selFlags & SF_Recursive)==0 || pSub->pPrior==0 );
125126 126029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125127 126030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/***** If we reach this point, flattening is permitted. *****/
125128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SELECTTRACE(1,pParse,p,("flatten %s.%p from term %d\n",
125129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pSub->zSelName, pSub, iFrom));
126031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SELECTTRACE(1,pParse,p,("flatten %u.%p from term %d\n",
126032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSub->selId, pSub, iFrom));
125130 126033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125131 126034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Authorize the subquery */
125132 126035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->zAuthContext = pSubitem->zName;
125133 126036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TESTONLY(i =) sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0);
125134 126037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==SQLITE_DENY );
@@ -125175,11 +126078,10 @@
125175 126078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pOrderBy = 0;
125176 126079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pSrc = 0;
125177 126080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPrior = 0;
125178 126081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pLimit = 0;
125179 126082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = sqlite3SelectDup(db, p, 0);
125180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SelectSetName(pNew, pSub->zSelName);
125181 126083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pLimit = pLimit;
125182 126084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pOrderBy = pOrderBy;
125183 126085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pSrc = pSrc;
125184 126086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->op = TK_ALL;
125185 126087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pNew==0 ){
@@ -125188,11 +126090,11 @@
125188 126090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pPrior = pPrior;
125189 126091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPrior ) pPrior->pNext = pNew;
125190 126092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pNext = p;
125191 126093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPrior = pNew;
125192 126094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SELECTTRACE(2,pParse,p,("compound-subquery flattener"
125193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " creates %s.%p as peer\n",pNew->zSelName, pNew));
126095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " creates %u as peer\n",pNew->selId));
125194 126096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125195 126097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed ) return 1;
125196 126098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125197 126099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125198 126100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Begin flattening the iFrom-th entry of the FROM clause
@@ -125403,11 +126305,11 @@
125403 126305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to suppress it. **)
125404 126306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125405 126307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (2) The inner query is the recursive part of a common table expression.
125406 126308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125407 126309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (3) The inner query has a LIMIT clause (since the changes to the WHERE
125408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** close would change the meaning of the LIMIT).
126310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** clause would change the meaning of the LIMIT).
125409 126311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125410 126312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (4) The inner query is the right operand of a LEFT JOIN and the
125411 126313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expression to be pushed down does not come from the ON clause
125412 126314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on that LEFT JOIN.
125413 126315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -125421,10 +126323,14 @@
125421 126323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** LEFT JOIN (SELECT 8 AS c3 UNION ALL SELECT 9) AS cc ON (b2=2);
125422 126324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125423 126325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The correct answer is three rows: (1,1,NULL),(2,2,8),(2,2,9).
125424 126326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** But if the (b2=2) term were to be pushed down into the bb subquery,
125425 126327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then the (1,1,NULL) row would be suppressed.
126328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
126329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (6) The inner query features one or more window-functions (since
126330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** changes to the WHERE clause of the inner query could change the
126331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window over which window functions are calculated).
125426 126332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125427 126333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return 0 if no changes are made and non-zero if one or more WHERE clause
125428 126334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** terms are duplicated into the subquery.
125429 126335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
125430 126336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int pushDownWhereTerms(
@@ -125436,10 +126342,14 @@
125436 126342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
125437 126343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pNew;
125438 126344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nChng = 0;
125439 126345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWhere==0 ) return 0;
125440 126346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pSubq->selFlags & SF_Recursive ) return 0; /* restriction (2) */
126347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
126348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
126349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSubq->pWin ) return 0; /* restriction (6) */
126350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
125441 126351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125442 126352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
125443 126353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Only the first term of a compound can have a WITH clause. But make
125444 126354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sure no other terms are marked SF_Recursive in case something changes
125445 126355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the future.
@@ -125881,10 +126791,39 @@
125881 126791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125882 126792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125883 126793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
125884 126794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define selectPopWith 0
125885 126795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
126796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
126797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
126798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The SrcList_item structure passed as the second argument represents a
126799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sub-query in the FROM clause of a SELECT statement. This function
126800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** allocates and populates the SrcList_item.pTab object. If successful,
126801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_OK is returned. Otherwise, if an OOM error is encountered,
126802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_NOMEM.
126803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
126804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExpandSubquery(Parse *pParse, struct SrcList_item *pFrom){
126805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pSel = pFrom->pSelect;
126806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Table *pTab;
126807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
126808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pSel );
126809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pFrom->pTab = pTab = sqlite3DbMallocZero(pParse->db, sizeof(Table));
126810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTab==0 ) return SQLITE_NOMEM;
126811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->nTabRef = 1;
126812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFrom->zAlias ){
126813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->zName = sqlite3DbStrDup(pParse->db, pFrom->zAlias);
126814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
126815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->zName = sqlite3MPrintf(pParse->db, "subquery_%u", pSel->selId);
126816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
126817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( pSel->pPrior ){ pSel = pSel->pPrior; }
126818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ColumnsFromExprList(pParse, pSel->pEList,&pTab->nCol,&pTab->aCol);
126819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->iPKey = -1;
126820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) );
126821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->tabFlags |= TF_Ephemeral;
126822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
126823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_OK;
126824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
125886 126825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125887 126826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
125888 126827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine is a Walker callback for "expanding" a SELECT statement.
125889 126828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "Expanding" means to do the following:
125890 126829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -125954,23 +126893,11 @@
125954 126893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Select *pSel = pFrom->pSelect;
125955 126894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A sub-query in the FROM clause of a SELECT */
125956 126895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pSel!=0 );
125957 126896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFrom->pTab==0 );
125958 126897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3WalkSelect(pWalker, pSel) ) return WRC_Abort;
125959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFrom->pTab = pTab = sqlite3DbMallocZero(db, sizeof(Table));
125960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pTab==0 ) return WRC_Abort;
125961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->nTabRef = 1;
125962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFrom->zAlias ){
125963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->zName = sqlite3DbStrDup(db, pFrom->zAlias);
125964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
125965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->zName = sqlite3MPrintf(db, "subquery_%p", (void*)pTab);
125966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
125967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( pSel->pPrior ){ pSel = pSel->pPrior; }
125968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ColumnsFromExprList(pParse, pSel->pEList,&pTab->nCol,&pTab->aCol);
125969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->iPKey = -1;
125970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) );
125971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->tabFlags |= TF_Ephemeral;
126898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExpandSubquery(pParse, pFrom) ) return WRC_Abort;
125972 126899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
125973 126900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
125974 126901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* An ordinary table or view name in the FROM clause */
125975 126902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFrom->pTab==0 );
125976 126903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFrom->pTab = pTab = sqlite3LocateTableItem(pParse, 0, pFrom);
@@ -125989,11 +126916,10 @@
125989 126916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( IsVirtual(pTab) || pTab->pSelect ){
125990 126917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i16 nCol;
125991 126918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ViewGetColumnNames(pParse, pTab) ) return WRC_Abort;
125992 126919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFrom->pSelect==0 );
125993 126920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFrom->pSelect = sqlite3SelectDup(db, pTab->pSelect, 0);
125994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SelectSetName(pFrom->pSelect, pTab->zName);
125995 126921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCol = pTab->nCol;
125996 126922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->nCol = -1;
125997 126923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3WalkSelect(pWalker, pFrom->pSelect);
125998 126924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->nCol = nCol;
125999 126925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -126267,11 +127193,11 @@
126267 127193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
126268 127194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SrcList *pTabList;
126269 127195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct SrcList_item *pFrom;
126270 127196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126271 127197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->selFlags & SF_Resolved );
126272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (p->selFlags & SF_HasTypeInfo)==0 );
127198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->selFlags & SF_HasTypeInfo ) return;
126273 127199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->selFlags |= SF_HasTypeInfo;
126274 127200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse = pWalker->pParse;
126275 127201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTabList = p->pSrc;
126276 127202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pFrom=pTabList->a; i<pTabList->nSrc; i++, pFrom++){
126277 127203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = pFrom->pTab;
@@ -126370,11 +127296,11 @@
126370 127296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pE->x.pList==0 || pE->x.pList->nExpr!=1 ){
126371 127297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "DISTINCT aggregates must have exactly one "
126372 127298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"argument");
126373 127299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFunc->iDistinct = -1;
126374 127300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
126375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- KeyInfo *pKeyInfo = keyInfoFromExprList(pParse, pE->x.pList, 0, 0);
127301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pE->x.pList,0,0);
126376 127302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_OpenEphemeral, pFunc->iDistinct, 0, 0,
126377 127303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(char*)pKeyInfo, P4_KEYINFO);
126378 127304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126379 127305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126380 127306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -126393,16 +127319,22 @@
126393 127319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasProperty(pF->pExpr, EP_xIsSelect) );
126394 127320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_AggFinal, pF->iMem, pList ? pList->nExpr : 0);
126395 127321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF);
126396 127322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126397 127323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
126398 127325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126399 127326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
126400 127327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Update the accumulator memory cells for an aggregate based on
126401 127328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the current cursor position.
127329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
127330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If regAcc is non-zero and there are no min() or max() aggregates
127331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in pAggInfo, then only populate the pAggInfo->nAccumulator accumulator
127332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** registers i register regAcc contains 0. The caller will take care
127333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of setting and clearing regAcc.
126402 127334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
126403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void updateAccumulator(Parse *pParse, AggInfo *pAggInfo){
127335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void updateAccumulator(Parse *pParse, int regAcc, AggInfo *pAggInfo){
126404 127336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v = pParse->pVdbe;
126405 127337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
126406 127338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regHit = 0;
126407 127339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrHitTest = 0;
126408 127340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct AggInfo_func *pF;
@@ -126441,11 +127373,11 @@
126441 127373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pColl = pParse->db->pDfltColl;
126442 127374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126443 127375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem;
126444 127376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_CollSeq, regHit, 0, 0, (char *)pColl, P4_COLLSEQ);
126445 127377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp3(v, OP_AggStep0, 0, regAgg, pF->iMem);
127378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, pF->iMem);
126447 127379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF);
126448 127380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, (u8)nArg);
126449 127381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCacheAffinityChange(pParse, regAgg, nArg);
126450 127382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempRange(pParse, regAgg, nArg);
126451 127383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( addrNext ){
@@ -126462,10 +127394,13 @@
126462 127394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** text or blob value. See ticket [883034dcb5].
126463 127395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
126464 127396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Another solution would be to change the OP_SCopy used to copy cached
126465 127397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** values to an OP_Copy.
126466 127398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( regHit==0 && pAggInfo->nAccumulator ){
127400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regHit = regAcc;
127401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
126467 127402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( regHit ){
126468 127403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrHitTest = sqlite3VdbeAddOp1(v, OP_If, regHit); VdbeCoverage(v);
126469 127404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126470 127405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCacheClear(pParse);
126471 127406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pC=pAggInfo->aCol; i<pAggInfo->nAccumulator; i++, pC++){
@@ -126735,18 +127670,14 @@
126735 127670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, p->pOrderBy);
126736 127671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pOrderBy = 0;
126737 127672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->selFlags &= ~SF_Distinct;
126738 127673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126739 127674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectPrep(pParse, p, 0);
126740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&sSort, 0, sizeof(sSort));
126741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sSort.pOrderBy = p->pOrderBy;
126742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTabList = p->pSrc;
126743 127675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->nErr || db->mallocFailed ){
126744 127676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto select_end;
126745 127677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126746 127678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->pEList!=0 );
126747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isAgg = (p->selFlags & SF_Aggregate)!=0;
126748 127679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SELECTTRACE_ENABLED
126749 127680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3SelectTrace & 0x104 ){
126750 127681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SELECTTRACE(0x104,pParse,p, ("after name resolution:\n"));
126751 127682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewSelect(0, p, 0);
126752 127683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -126754,10 +127685,26 @@
126754 127685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126755 127686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pDest->eDest==SRT_Output ){
126756 127687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
generateColumnNames(pParse, p);
126757 127688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126758 127689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
127691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3WindowRewrite(pParse, p) ){
127692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto select_end;
127693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
127694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if SELECTTRACE_ENABLED
127695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3SelectTrace & 0x108 ){
127696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SELECTTRACE(0x104,pParse,p, ("after window rewrite:\n"));
127697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3TreeViewSelect(0, p, 0);
127698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
127699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
127700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
127701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTabList = p->pSrc;
127702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ isAgg = (p->selFlags & SF_Aggregate)!=0;
127703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&sSort, 0, sizeof(sSort));
127704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSort.pOrderBy = p->pOrderBy;
127705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
126759 127706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Try to various optimizations (flattening subqueries, and strength
126760 127707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** reduction of join operators) in the FROM clause up into the main query
126761 127708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
126762 127709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW)
126763 127710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; !p->pPrior && i<pTabList->nSrc; i++){
@@ -126960,11 +127907,11 @@
126960 127907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->regReturn = ++pParse->nMem;
126961 127908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_InitCoroutine, pItem->regReturn, 0, addrTop);
126962 127909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "%s", pItem->pTab->zName));
126963 127910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->addrFillSub = addrTop;
126964 127911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDestInit(&dest, SRT_Coroutine, pItem->regReturn);
126965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExplainQueryPlan((pParse, 1, "CO-ROUTINE 0x%p", pSub));
127912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExplainQueryPlan((pParse, 1, "CO-ROUTINE %u", pSub->selId));
126966 127913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Select(pParse, pSub, &dest);
126967 127914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->pTab->nRowLogEst = pSub->nSelectRow;
126968 127915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->fg.viaCoroutine = 1;
126969 127916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->regResult = dest.iSdst;
126970 127917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeEndCoroutine(v, pItem->regReturn);
@@ -126999,11 +127946,11 @@
126999 127946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pPrior->iCursor);
127000 127947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pPrior->pSelect!=0 );
127001 127948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSub->nSelectRow = pPrior->pSelect->nSelectRow;
127002 127949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
127003 127950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDestInit(&dest, SRT_EphemTab, pItem->iCursor);
127004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExplainQueryPlan((pParse, 1, "MATERIALIZE 0x%p", pSub));
127951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExplainQueryPlan((pParse, 1, "MATERIALIZE %u", pSub->selId));
127005 127952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Select(pParse, pSub, &dest);
127006 127953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127007 127954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->pTab->nRowLogEst = pSub->nSelectRow;
127008 127955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( onceAddr ) sqlite3VdbeJumpHere(v, onceAddr);
127009 127956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
retAddr = sqlite3VdbeAddOp1(v, OP_Return, pItem->regReturn);
@@ -127083,11 +128030,12 @@
127083 128030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** not needed. The sSort.addrSortIndex variable is used to facilitate
127084 128031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that change.
127085 128032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127086 128033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sSort.pOrderBy ){
127087 128034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKeyInfo;
127088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo = keyInfoFromExprList(pParse, sSort.pOrderBy, 0, pEList->nExpr);
128035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo = sqlite3KeyInfoFromExprList(
128036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse, sSort.pOrderBy, 0, pEList->nExpr);
127089 128037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSort.iECursor = pParse->nTab++;
127090 128038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSort.addrSortIndex =
127091 128039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_OpenEphemeral,
127092 128040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSort.iECursor, sSort.pOrderBy->nExpr+1+pEList->nExpr, 0,
127093 128041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(char*)pKeyInfo, P4_KEYINFO
@@ -127117,24 +128065,31 @@
127117 128065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Open an ephemeral index to use for the distinct set.
127118 128066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127119 128067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->selFlags & SF_Distinct ){
127120 128068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sDistinct.tabTnct = pParse->nTab++;
127121 128069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sDistinct.addrTnct = sqlite3VdbeAddOp4(v, OP_OpenEphemeral,
127122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sDistinct.tabTnct, 0, 0,
127123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (char*)keyInfoFromExprList(pParse, p->pEList,0,0),
127124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P4_KEYINFO);
128070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sDistinct.tabTnct, 0, 0,
128071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (char*)sqlite3KeyInfoFromExprList(pParse, p->pEList,0,0),
128072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P4_KEYINFO);
127125 128073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, BTREE_UNORDERED);
127126 128074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sDistinct.eTnctType = WHERE_DISTINCT_UNORDERED;
127127 128075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
127128 128076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sDistinct.eTnctType = WHERE_DISTINCT_NOOP;
127129 128077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127130 128078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127131 128079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isAgg && pGroupBy==0 ){
127132 128080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* No aggregate functions and no GROUP BY clause */
127133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 wctrlFlags = (sDistinct.isTnct ? WHERE_WANT_DISTINCT : 0);
128081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 wctrlFlags = (sDistinct.isTnct ? WHERE_WANT_DISTINCT : 0)
128082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | (p->selFlags & SF_FixedLimit);
128083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
128084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin = p->pWin; /* Master window object (or NULL) */
128085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin ){
128086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowCodeInit(pParse, pWin);
128087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
128088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
127134 128089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( WHERE_USE_LIMIT==SF_FixedLimit );
127135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wctrlFlags |= p->selFlags & SF_FixedLimit;
128090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
127136 128091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127137 128092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Begin the database scan. */
127138 128093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SELECTTRACE(1,pParse,p,("WhereBegin\n"));
127139 128094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, sSort.pOrderBy,
127140 128095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pEList, wctrlFlags, p->nSelectRow);
@@ -127159,19 +128114,40 @@
127159 128114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127160 128115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sSort.addrSortIndex>=0 && sSort.pOrderBy==0 ){
127161 128116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeToNoop(v, sSort.addrSortIndex);
127162 128117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127163 128118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Use the standard inner loop. */
127165 128119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->pEList==pEList );
127166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- selectInnerLoop(pParse, p, -1, &sSort, &sDistinct, pDest,
127167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WhereContinueLabel(pWInfo),
127168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WhereBreakLabel(pWInfo));
128120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
128121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin ){
128122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub = sqlite3VdbeMakeLabel(v);
128123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCont = sqlite3VdbeMakeLabel(v);
128124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iBreak = sqlite3VdbeMakeLabel(v);
128125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub = ++pParse->nMem;
127169 128126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* End the database scan loop.
127171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
127172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WhereEnd(pWInfo);
128127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowCodeStep(pParse, p, pWInfo, regGosub, addrGosub);
128128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
128129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, iBreak);
128130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, addrGosub);
128131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeNoopComment((v, "inner-loop subroutine"));
128132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selectInnerLoop(pParse, p, -1, &sSort, &sDistinct, pDest, iCont, iBreak);
128133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, iCont);
128134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_Return, regGosub);
128135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "end inner-loop subroutine"));
128136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, iBreak);
128137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
128138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
128139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
128140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Use the standard inner loop. */
128141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selectInnerLoop(pParse, p, -1, &sSort, &sDistinct, pDest,
128142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WhereContinueLabel(pWInfo),
128143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WhereBreakLabel(pWInfo));
128144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
128145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* End the database scan loop.
128146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
128147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WhereEnd(pWInfo);
128148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
127173 128149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
127174 128150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This case when there exist aggregate functions or a GROUP BY clause
127175 128151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or both */
127176 128152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
NameContext sNC; /* Name context for processing aggregate information */
127177 128153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iAMem; /* First Mem address for storing current GROUP BY */
@@ -127296,11 +128272,11 @@
127296 128272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** implement it. Allocate that sorting index now. If it turns out
127297 128273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that we do not need it after all, the OP_SorterOpen instruction
127298 128274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will be converted into a Noop.
127299 128275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127300 128276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sAggInfo.sortingIdx = pParse->nTab++;
127301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo = keyInfoFromExprList(pParse, pGroupBy, 0, sAggInfo.nColumn);
128277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pGroupBy,0,sAggInfo.nColumn);
127302 128278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrSortingIdx = sqlite3VdbeAddOp4(v, OP_SorterOpen,
127303 128279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sAggInfo.sortingIdx, sAggInfo.nSortingColumn,
127304 128280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, (char*)pKeyInfo, P4_KEYINFO);
127305 128281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127306 128282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Initialize memory locations used by GROUP BY aggregate processing
@@ -127315,12 +128291,10 @@
127315 128291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->nMem += pGroupBy->nExpr;
127316 128292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iBMem = pParse->nMem + 1;
127317 128293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->nMem += pGroupBy->nExpr;
127318 128294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Integer, 0, iAbortFlag);
127319 128295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "clear abort flag"));
127320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag);
127321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeComment((v, "indicate accumulator empty"));
127322 128296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Null, 0, iAMem, iAMem+pGroupBy->nExpr-1);
127323 128297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127324 128298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Begin a loop that will extract all source rows in GROUP BY order.
127325 128299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This might involve two separate loops with an OP_Sort in between, or
127326 128300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** it might be a single loop that uses an index to extract information
@@ -127449,11 +128423,11 @@
127449 128423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127450 128424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Update the aggregate accumulators based on the content of
127451 128425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the current row
127452 128426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127453 128427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr1);
127454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- updateAccumulator(pParse, &sAggInfo);
128428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ updateAccumulator(pParse, iUseFlag, &sAggInfo);
127455 128429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Integer, 1, iUseFlag);
127456 128430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "indicate data in accumulator"));
127457 128431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127458 128432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* End of the loop
127459 128433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -127501,10 +128475,12 @@
127501 128475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127502 128476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Generate a subroutine that will reset the group-by accumulator
127503 128477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127504 128478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, addrReset);
127505 128479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
resetAccumulator(pParse, &sAggInfo);
128480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag);
128481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "indicate accumulator empty"));
127506 128482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp1(v, OP_Return, regReset);
127507 128483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
127508 128484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} /* endif pGroupBy. Begin aggregate queries without GROUP BY: */
127509 128485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else {
127510 128486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_BTREECOUNT
@@ -127566,10 +128542,27 @@
127566 128542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp1(v, OP_Close, iCsr);
127567 128543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
explainSimpleCount(pParse, pTab, pBest);
127568 128544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
127569 128545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_BTREECOUNT */
127570 128546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
128547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regAcc = 0; /* "populate accumulators" flag */
128548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
128549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If there are accumulator registers but no min() or max() functions,
128550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** allocate register regAcc. Register regAcc will contain 0 the first
128551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** time the inner loop runs, and 1 thereafter. The code generated
128552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** by updateAccumulator() only updates the accumulator registers if
128553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regAcc contains 0. */
128554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sAggInfo.nAccumulator ){
128555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<sAggInfo.nFunc; i++){
128556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sAggInfo.aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ) break;
128557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
128558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i==sAggInfo.nFunc ){
128559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regAcc = ++pParse->nMem;
128560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, regAcc);
128561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
128562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
128563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
127571 128564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This case runs if the aggregate has no GROUP BY clause. The
127572 128565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** processing is much simpler since there is only a single row
127573 128566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of output.
127574 128567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
127575 128568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->pGroupBy==0 );
@@ -127587,11 +128580,12 @@
127587 128580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pMinMaxOrderBy,
127588 128581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, minMaxFlag, 0);
127589 128582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWInfo==0 ){
127590 128583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto select_end;
127591 128584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- updateAccumulator(pParse, &sAggInfo);
128585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ updateAccumulator(pParse, regAcc, &sAggInfo);
128586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc);
127593 128587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3WhereIsOrdered(pWInfo)>0 ){
127594 128588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeGoto(v, sqlite3WhereBreakLabel(pWInfo));
127595 128589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "%s() by index",
127596 128590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(minMaxFlag==WHERE_ORDERBY_MIN?"min":"max")));
127597 128591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -129520,11 +130514,11 @@
129520 130514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Top of the update loop */
129521 130515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( eOnePass!=ONEPASS_OFF ){
129522 130516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isView && aiCurOnePass[0]!=iDataCur && aiCurOnePass[1]!=iDataCur ){
129523 130517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pPk );
129524 130518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelBreak, regKey,nKey);
129525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeCoverageNeverTaken(v);
130519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
129526 130520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129527 130521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( eOnePass!=ONEPASS_SINGLE ){
129528 130522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
labelContinue = sqlite3VdbeMakeLabel(v);
129529 130523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129530 130524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_IsNull, pPk ? regKey : regOldRowid, labelBreak);
@@ -130423,11 +131417,11 @@
130423 131417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below,
130424 131418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to ensure that we do not try to change the page-size on a WAL database.
130425 131419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
130426 131420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = execSql(db, pzErrMsg, "BEGIN");
130427 131421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ) goto end_of_vacuum;
130428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pMain, 2);
131422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pMain, 2, 0);
130429 131423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ) goto end_of_vacuum;
130430 131424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
130431 131425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do not attempt to change the page size for a WAL database */
130432 131426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3PagerGetJournalMode(sqlite3BtreePager(pMain))
130433 131427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
==PAGER_JOURNALMODE_WAL ){
@@ -131932,10 +132926,12 @@
131932 132926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct {
131933 132927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nIn; /* Number of entries in aInLoop[] */
131934 132928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct InLoop {
131935 132929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCur; /* The VDBE cursor used by this IN operator */
131936 132930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrInTop; /* Top of the IN loop */
132931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iBase; /* Base register of multi-key index record */
132932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nPrefix; /* Number of prior entires in the key */
131937 132933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 eEndLoopOp; /* IN Loop terminator. OP_Next or OP_Prev */
131938 132934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} *aInLoop; /* Information about each nested IN operator */
131939 132935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} in; /* Used when pWLoop->wsFlags&WHERE_IN_ABLE */
131940 132936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pCovidx; /* Possible covering index for WHERE_MULTI_OR */
131941 132937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} u;
@@ -132170,10 +133166,11 @@
132170 133166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
132171 133167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct WhereClause {
132172 133168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereInfo *pWInfo; /* WHERE clause processing context */
132173 133169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereClause *pOuter; /* Outer conjunction */
132174 133170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 op; /* Split operator. TK_AND or TK_OR */
133171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 hasOr; /* True if any a[].eOperator is WO_OR */
132175 133172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nTerm; /* Number of terms */
132176 133173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nSlot; /* Number of entries in a[] */
132177 133174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *a; /* Each a[] describes a term of the WHERE cluase */
132178 133175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(SQLITE_SMALL_STACK)
132179 133176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm aStatic[1]; /* Initial static space for a[] */
@@ -132343,10 +133340,11 @@
132343 133340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* whereexpr.c: */
132344 133341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereClauseInit(WhereClause*,WhereInfo*);
132345 133342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereClauseClear(WhereClause*);
132346 133343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereSplit(WhereClause*,Expr*,u8);
132347 133344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet*, Expr*);
133345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Bitmask sqlite3WhereExprUsageNN(WhereMaskSet*, Expr*);
132348 133346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage(WhereMaskSet*, ExprList*);
132349 133347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereExprAnalyze(SrcList*, WhereClause*);
132350 133348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereTabFuncArgs(Parse*, struct SrcList_item*, WhereClause*);
132351 133349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
132352 133350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -132405,10 +133403,11 @@
132405 133403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WHERE_MULTI_OR 0x00002000 /* OR using multiple indices */
132406 133404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WHERE_AUTO_INDEX 0x00004000 /* Uses an ephemeral index */
132407 133405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WHERE_SKIPSCAN 0x00008000 /* Uses the skip-scan algorithm */
132408 133406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WHERE_UNQ_WANTED 0x00010000 /* WHERE_ONEROW would have been helpful*/
132409 133407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WHERE_PARTIALIDX 0x00020000 /* The automatic index is partial */
133408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define WHERE_IN_EARLYOUT 0x00040000 /* Perhaps quit IN loops early */
132410 133409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
132411 133410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of whereInt.h ********************************************/
132412 133411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Continuing where we left off in wherecode.c ******************/
132413 133412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
132414 133413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_EXPLAIN
@@ -132539,11 +133538,11 @@
132539 133538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX));
132540 133539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
132541 133540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StrAccumInit(&str, db, zBuf, sizeof(zBuf), SQLITE_MAX_LENGTH);
132542 133541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_str_appendall(&str, isSearch ? "SEARCH" : "SCAN");
132543 133542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pItem->pSelect ){
132544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_str_appendf(&str, " SUBQUERY 0x%p", pItem->pSelect);
133543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_str_appendf(&str, " SUBQUERY %u", pItem->pSelect->selId);
132545 133544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
132546 133545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_str_appendf(&str, " TABLE %s", pItem->zName);
132547 133546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
132548 133547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
132549 133548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pItem->zAlias ){
@@ -132980,11 +133979,18 @@
132980 133979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn->addrInTop = sqlite3VdbeAddOp3(v,OP_Column,iTab, iCol, iOut);
132981 133980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
132982 133981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp1(v, OP_IsNull, iOut); VdbeCoverage(v);
132983 133982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i==iEq ){
132984 133983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn->iCur = iTab;
132985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pIn->eEndLoopOp = bRev ? OP_PrevIfOpen : OP_NextIfOpen;
133984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIn->eEndLoopOp = bRev ? OP_Prev : OP_Next;
133985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iEq>0 && (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 ){
133986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIn->iBase = iReg - i;
133987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIn->nPrefix = i;
133988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pLoop->wsFlags |= WHERE_IN_EARLYOUT;
133989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
133990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIn->nPrefix = 0;
133991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
132986 133992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
132987 133993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn->eEndLoopOp = OP_Noop;
132988 133994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
132989 133995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn++;
132990 133996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -133624,11 +134630,11 @@
133624 134630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTabItem->fg.viaCoroutine ){
133625 134631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regYield = pTabItem->regReturn;
133626 134632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub);
133627 134633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel->p2 = sqlite3VdbeAddOp2(v, OP_Yield, regYield, addrBrk);
133628 134634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverage(v);
133629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeComment((v, "next row of \"%s\"", pTabItem->pTab->zName));
134635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "next row of %s", pTabItem->pTab->zName));
133630 134636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel->op = OP_Goto;
133631 134637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
133632 134638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133633 134639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
133634 134640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)!=0 ){
@@ -134047,10 +135053,13 @@
134047 135053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pLoop->nSkip>0 && nConstraint==pLoop->nSkip ){
134048 135054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The skip-scan logic inside the call to codeAllEqualityConstraints()
134049 135055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** above has already left the cursor sitting on the correct row,
134050 135056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** so no further seeking is needed */
134051 135057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
135058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pLoop->wsFlags & WHERE_IN_EARLYOUT ){
135059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_SeekHit, iIdxCur);
135060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
134052 135061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev];
134053 135062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( op!=0 );
134054 135063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
134055 135064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverage(v);
134056 135065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverageIf(v, op==OP_Rewind); testcase( op==OP_Rewind );
@@ -134109,10 +135118,14 @@
134109 135118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( op==OP_IdxGT ); VdbeCoverageIf(v, op==OP_IdxGT );
134110 135119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( op==OP_IdxGE ); VdbeCoverageIf(v, op==OP_IdxGE );
134111 135120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( op==OP_IdxLT ); VdbeCoverageIf(v, op==OP_IdxLT );
134112 135121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( op==OP_IdxLE ); VdbeCoverageIf(v, op==OP_IdxLE );
134113 135122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
135123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
135124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pLoop->wsFlags & WHERE_IN_EARLYOUT ){
135125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_SeekHit, iIdxCur, 1);
135126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
134114 135127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
134115 135128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Seek the table cursor, if required */
134116 135129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( omitTable ){
134117 135130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* pIdx is a covering index. No need to access the main table. */
134118 135131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( HasRowid(pIdx->pTable) ){
@@ -134882,15 +135895,17 @@
134882 135895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( c==wc[3] && z[cnt]!=0 ) cnt++;
134883 135896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
134884 135897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
134885 135898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The optimization is possible only if (1) the pattern does not begin
134886 135899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** with a wildcard and if (2) the non-wildcard prefix does not end with
134887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** an (illegal 0xff) character. The second condition is necessary so
135900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** an (illegal 0xff) character, or (3) the pattern does not consist of
135901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a single escape character. The second condition is necessary so
134888 135902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that we can increment the prefix key to find an upper bound for the
134889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** range search.
134890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
134891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( cnt!=0 && 255!=(u8)z[cnt-1] ){
135903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** range search. The third is because the caller assumes that the pattern
135904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** consists of at least one character after all escapes have been
135905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** removed. */
135906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){
134892 135907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pPrefix;
134893 135908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
134894 135909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A "complete" match if the pattern ends with "*" or "%" */
134895 135910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pisComplete = c==wc[0] && z[cnt+1]==0;
134896 135911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -135298,11 +136313,16 @@
135298 136313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
135299 136314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Record the set of tables that satisfy case 3. The set might be
135300 136315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** empty.
135301 136316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
135302 136317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOrInfo->indexable = indexable;
135303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTerm->eOperator = indexable==0 ? 0 : WO_OR;
136318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( indexable ){
136319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTerm->eOperator = WO_OR;
136320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWC->hasOr = 1;
136321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
136322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTerm->eOperator = WO_OR;
136323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
135304 136324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
135305 136325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* For a two-way OR, attempt to implementation case 2.
135306 136326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
135307 136327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( indexable && pOrWc->nTerm==2 ){
135308 136328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iOne = 0;
@@ -135637,11 +136657,11 @@
135637 136657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm->prereqRight = 0;
135638 136658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
135639 136659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm->prereqRight = sqlite3WhereExprUsage(pMaskSet, pExpr->pRight);
135640 136660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
135641 136661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pMaskSet->bVarSelect = 0;
135642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- prereqAll = sqlite3WhereExprUsage(pMaskSet, pExpr);
136662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ prereqAll = sqlite3WhereExprUsageNN(pMaskSet, pExpr);
135643 136663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pMaskSet->bVarSelect ) pTerm->wtFlags |= TERM_VARSELECT;
135644 136664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pExpr, EP_FromJoin) ){
135645 136665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bitmask x = sqlite3WhereGetMask(pMaskSet, pExpr->iRightJoinTable);
135646 136666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
prereqAll |= x;
135647 136667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
extraRight = x-1; /* ON clause terms may not be used with an index
@@ -136030,10 +137050,11 @@
136030 137050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereClauseInit(
136031 137051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereClause *pWC, /* The WhereClause to be initialized */
136032 137052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereInfo *pWInfo /* The WHERE processing context */
136033 137053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
136034 137054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->pWInfo = pWInfo;
137055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWC->hasOr = 0;
136035 137056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->pOuter = 0;
136036 137057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->nTerm = 0;
136037 137058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->nSlot = ArraySize(pWC->aStatic);
136038 137059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->a = pWC->aStatic;
136039 137060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -136066,29 +137087,33 @@
136066 137087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
136067 137088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These routines walk (recursively) an expression tree and generate
136068 137089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a bitmask indicating which tables are used in that expression
136069 137090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** tree.
136070 137091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
136071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){
137092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Bitmask sqlite3WhereExprUsageNN(WhereMaskSet *pMaskSet, Expr *p){
136072 137093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bitmask mask;
136073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p==0 ) return 0;
136074 137094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->op==TK_COLUMN ){
136075 137095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3WhereGetMask(pMaskSet, p->iTable);
137096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){
137097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->op!=TK_IF_NULL_ROW );
137098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
136076 137099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
136077 137100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask = (p->op==TK_IF_NULL_ROW) ? sqlite3WhereGetMask(pMaskSet, p->iTable) : 0;
136078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( !ExprHasProperty(p, EP_TokenOnly) );
136079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->pLeft ) mask |= sqlite3WhereExprUsage(pMaskSet, p->pLeft);
137101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pLeft ) mask |= sqlite3WhereExprUsageNN(pMaskSet, p->pLeft);
136080 137102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pRight ){
136081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mask |= sqlite3WhereExprUsage(pMaskSet, p->pRight);
137103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mask |= sqlite3WhereExprUsageNN(pMaskSet, p->pRight);
136082 137104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->x.pList==0 );
136083 137105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( ExprHasProperty(p, EP_xIsSelect) ){
136084 137106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(p, EP_VarSelect) ) pMaskSet->bVarSelect = 1;
136085 137107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask |= exprSelectUsage(pMaskSet, p->x.pSelect);
136086 137108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( p->x.pList ){
136087 137109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask |= sqlite3WhereExprListUsage(pMaskSet, p->x.pList);
136088 137110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
136089 137111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return mask;
137112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
137113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){
137114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return p ? sqlite3WhereExprUsageNN(pMaskSet,p) : 0;
136090 137115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
136091 137116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage(WhereMaskSet *pMaskSet, ExprList *pList){
136092 137117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
136093 137118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bitmask mask = 0;
136094 137119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pList ){
@@ -136970,11 +137995,11 @@
136970 137995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regYield = pTabItem->regReturn;
136971 137996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrCounter = sqlite3VdbeAddOp2(v, OP_Integer, 0, 0);
136972 137997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub);
136973 137998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrTop = sqlite3VdbeAddOp1(v, OP_Yield, regYield);
136974 137999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverage(v);
136975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeComment((v, "next row of \"%s\"", pTabItem->pTab->zName));
138000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "next row of %s", pTabItem->pTab->zName));
136976 138001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
136977 138002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur); VdbeCoverage(v);
136978 138003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
136979 138004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPartial ){
136980 138005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iContinue = sqlite3VdbeMakeLabel(v);
@@ -138611,11 +139636,10 @@
138611 139636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (pNew->wsFlags & WHERE_SKIPSCAN)!=0
138612 139637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
138613 139638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138614 139639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( eOp & WO_IN ){
138615 139640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pExpr = pTerm->pExpr;
138616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->wsFlags |= WHERE_COLUMN_IN;
138617 139641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pExpr, EP_xIsSelect) ){
138618 139642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* "x IN (SELECT ...)": TUNING: the SELECT returns 25 rows */
138619 139643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
138620 139644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nIn = 46; assert( 46==sqlite3LogEst(25) );
138621 139645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -138631,10 +139655,46 @@
138631 139655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* "x IN (value, value, ...)" */
138632 139656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nIn = sqlite3LogEst(pExpr->x.pList->nExpr);
138633 139657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nIn>0 ); /* RHS always has 2 or more terms... The parser
138634 139658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** changes "x IN (?)" into "x=?". */
138635 139659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
139660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pProbe->hasStat1 ){
139661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ LogEst M, logK, safetyMargin;
139662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Let:
139663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** N = the total number of rows in the table
139664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** K = the number of entries on the RHS of the IN operator
139665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** M = the number of rows in the table that match terms to the
139666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the left in the same index. If the IN operator is on
139667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the left-most index column, M==N.
139668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
139669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Given the definitions above, it is better to omit the IN operator
139670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** from the index lookup and instead do a scan of the M elements,
139671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** testing each scanned row against the IN operator separately, if:
139672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
139673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** M*log(K) < K*log(N)
139674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
139675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Our estimates for M, K, and N might be inaccurate, so we build in
139676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a safety margin of 2 (LogEst: 10) that favors using the IN operator
139677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with the index, as using an index has better worst-case behavior.
139678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If we do not have real sqlite_stat1 data, always prefer to use
139679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the index.
139680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
139681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ M = pProbe->aiRowLogEst[saved_nEq];
139682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ logK = estLog(nIn);
139683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ safetyMargin = 10; /* TUNING: extra weight for indexed IN */
139684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( M + logK + safetyMargin < nIn + rLogSize ){
139685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WHERETRACE(0x40,
139686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ("Scan preferred over IN operator on column %d of \"%s\" (%d<%d)\n",
139687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ saved_nEq, pProbe->zName, M+logK+10, nIn+rLogSize));
139688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
139689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
139690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WHERETRACE(0x40,
139691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ("IN operator preferred on column %d of \"%s\" (%d>=%d)\n",
139692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ saved_nEq, pProbe->zName, M+logK+10, nIn+rLogSize));
139693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
139694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
139695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->wsFlags |= WHERE_COLUMN_IN;
138636 139696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( eOp & (WO_EQ|WO_IS) ){
138637 139697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCol = pProbe->aiColumn[saved_nEq];
138638 139698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->wsFlags |= WHERE_COLUMN_EQ;
138639 139699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( saved_nEq==pNew->u.btree.nEq );
138640 139700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iCol==XN_ROWID
@@ -138797,10 +139857,11 @@
138797 139857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** more expensive. */
138798 139858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( 42==sqlite3LogEst(18) );
138799 139859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( saved_nEq==saved_nSkip
138800 139860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& saved_nEq+1<pProbe->nKeyCol
138801 139861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& pProbe->noSkipScan==0
139862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && OptimizationEnabled(db, SQLITE_SkipScan)
138802 139863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& pProbe->aiRowLogEst[saved_nEq+1]>=42 /* TUNING: Minimum for skip-scan */
138803 139864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (rc = whereLoopResize(db, pNew, pNew->nLTerm+1))==SQLITE_OK
138804 139865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
138805 139866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LogEst nIter;
138806 139867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->u.btree.nEq++;
@@ -138860,28 +139921,10 @@
138860 139921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
138861 139922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
138862 139923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
138863 139924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
138864 139925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
138866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Return a bitmask where 1s indicate that the corresponding column of
138867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the table is used by an index. Only the first 63 columns are considered.
138868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
138869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static Bitmask columnsInIndex(Index *pIdx){
138870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bitmask m = 0;
138871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int j;
138872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(j=pIdx->nColumn-1; j>=0; j--){
138873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int x = pIdx->aiColumn[j];
138874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( x>=0 ){
138875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( x==BMS-1 );
138876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( x==BMS-2 );
138877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( x<BMS-1 ) m |= MASKBIT(x);
138878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
138879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
138880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return m;
138881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
138882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
138883 139926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check to see if a partial index with pPartIndexWhere can be used
138884 139927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the current query. Return true if it can be and false if not.
138885 139928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
138886 139929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int whereUsablePartialIndex(int iTab, WhereClause *pWC, Expr *pWhere){
138887 139930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
@@ -139093,11 +140136,11 @@
139093 140136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bitmask m;
139094 140137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pProbe->isCovering ){
139095 140138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED;
139096 140139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
m = 0;
139097 140140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
139098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- m = pSrc->colUsed & ~columnsInIndex(pProbe);
140141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ m = pSrc->colUsed & pProbe->colNotIdxed;
139099 140142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->wsFlags = (m==0) ? (WHERE_IDX_ONLY|WHERE_INDEXED) : WHERE_INDEXED;
139100 140143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
139101 140144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
139102 140145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Full scan via index */
139103 140146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( b
@@ -139660,11 +140703,11 @@
139660 140703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
139661 140704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_VIRTUALTABLE */
139662 140705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
139663 140706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereLoopAddBtree(pBuilder, mPrereq);
139664 140707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
139665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ){
140708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){
139666 140709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereLoopAddOr(pBuilder, mPrereq, mUnusable);
139667 140710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
139668 140711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mPrior |= pNew->maskSelf;
139669 140712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc || db->mallocFailed ) break;
139670 140713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -140496,11 +141539,11 @@
140496 141539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pTerm->eOperator & WO_IS );
140497 141540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->aLTerm[j] = pTerm;
140498 141541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
140499 141542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( j!=pIdx->nKeyCol ) continue;
140500 141543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->wsFlags = WHERE_COLUMN_EQ|WHERE_ONEROW|WHERE_INDEXED;
140501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pIdx->isCovering || (pItem->colUsed & ~columnsInIndex(pIdx))==0 ){
141544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){
140502 141545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->wsFlags |= WHERE_IDX_ONLY;
140503 141546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
140504 141547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->nLTerm = j;
140505 141548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->u.btree.nEq = j;
140506 141549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->u.btree.pIndex = pIdx;
@@ -141176,10 +142219,30 @@
141176 142219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereInfoFree(db, pWInfo);
141177 142220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141178 142221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
141179 142222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141180 142223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
142224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Part of sqlite3WhereEnd() will rewrite opcodes to reference the
142226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** index rather than the main table. In SQLITE_DEBUG mode, we want
142227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to trace those changes if PRAGMA vdbe_addoptrace=on. This routine
142228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** does that.
142229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_DEBUG
142231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define OpcodeRewriteTrace(D,K,P) /* no-op */
142232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
142233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define OpcodeRewriteTrace(D,K,P) sqlite3WhereOpcodeRewriteTrace(D,K,P)
142234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void sqlite3WhereOpcodeRewriteTrace(
142235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db,
142236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int pc,
142237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeOp *pOp
142238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (db->flags & SQLITE_VdbeAddopTrace)==0 ) return;
142240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbePrintOp(0, pc, pOp);
142241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
142243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
141181 142244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
141182 142245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate the end of the WHERE loop. See comments on
141183 142246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3WhereBegin() for additional information.
141184 142247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
141185 142248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
@@ -141243,14 +142306,21 @@
141243 142306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j;
141244 142307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, pLevel->addrNxt);
141245 142308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){
141246 142309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, pIn->addrInTop+1);
141247 142310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIn->eEndLoopOp!=OP_Noop ){
142311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIn->nPrefix ){
142312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pLoop->wsFlags & WHERE_IN_EARLYOUT );
142313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp4Int(v, OP_IfNoHope, pLevel->iIdxCur,
142314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeCurrentAddr(v)+2,
142315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIn->iBase, pIn->nPrefix);
142316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
142317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
141248 142318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, pIn->eEndLoopOp, pIn->iCur, pIn->addrInTop);
141249 142319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCoverage(v);
141250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeCoverageIf(v, pIn->eEndLoopOp==OP_PrevIfOpen);
141251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeCoverageIf(v, pIn->eEndLoopOp==OP_NextIfOpen);
142320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageIf(v, pIn->eEndLoopOp==OP_Prev);
142321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageIf(v, pIn->eEndLoopOp==OP_Next);
141252 142322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141253 142323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, pIn->addrInTop-1);
141254 142324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141255 142325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141256 142326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, pLevel->addrBrk);
@@ -141337,10 +142407,15 @@
141337 142407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (pWInfo->eOnePass==ONEPASS_OFF || !HasRowid(pIdx->pTable))
141338 142408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !db->mallocFailed
141339 142409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
141340 142410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
last = sqlite3VdbeCurrentAddr(v);
141341 142411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
k = pLevel->addrBody;
142412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
142413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->flags & SQLITE_VdbeAddopTrace ){
142414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ printf("TRANSLATE opcodes in range %d..%d\n", k, last-1);
142415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
141342 142417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp = sqlite3VdbeGetOp(v, k);
141343 142418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(; k<last; k++, pOp++){
141344 142419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOp->p1!=pLevel->iTabCur ) continue;
141345 142420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOp->opcode==OP_Column
141346 142421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC
@@ -141356,20 +142431,26 @@
141356 142431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141357 142432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
x = sqlite3ColumnOfIndex(pIdx, x);
141358 142433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( x>=0 ){
141359 142434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p2 = x;
141360 142435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p1 = pLevel->iIdxCur;
142436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpcodeRewriteTrace(db, k, pOp);
141361 142437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141362 142438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 || x>=0
141363 142439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pWInfo->eOnePass );
141364 142440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pOp->opcode==OP_Rowid ){
141365 142441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p1 = pLevel->iIdxCur;
141366 142442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->opcode = OP_IdxRowid;
142443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpcodeRewriteTrace(db, k, pOp);
141367 142444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pOp->opcode==OP_IfNullRow ){
141368 142445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p1 = pLevel->iIdxCur;
142446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpcodeRewriteTrace(db, k, pOp);
141369 142447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141370 142448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
142449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
142450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->flags & SQLITE_VdbeAddopTrace ) printf("TRANSLATE complete\n");
142451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
141371 142452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141372 142453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141373 142454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
141374 142455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Final cleanup
141375 142456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -141377,10 +142458,2262 @@
141377 142458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereInfoFree(db, pWInfo);
141378 142459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
141379 142460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
141380 142461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
141381 142462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of where.c ***********************************************/
142463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************** Begin file window.c ******************************************/
142464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 2018 May 08
142466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The author disclaims copyright to this source code. In place of
142468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a legal notice, here is a blessing:
142469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** May you do good and not evil.
142471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** May you find forgiveness for yourself and forgive others.
142472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** May you share freely, never taking more than you give.
142473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *************************************************************************
142475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* #include "sqliteInt.h" */
142477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
142479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT REWRITING
142482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Any SELECT statement that contains one or more window functions in
142484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** either the select list or ORDER BY clause (the only two places window
142485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** functions may be used) is transformed by function sqlite3WindowRewrite()
142486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in order to support window function processing. For example, with the
142487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** schema:
142488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** CREATE TABLE t1(a, b, c, d, e, f, g);
142490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the statement:
142492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT a+1, max(b) OVER (PARTITION BY c ORDER BY d) FROM t1 ORDER BY e;
142494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is transformed to:
142496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT a+1, max(b) OVER (PARTITION BY c ORDER BY d) FROM (
142498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT a, e, c, d, b FROM t1 ORDER BY c, d
142499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ) ORDER BY e;
142500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The flattening optimization is disabled when processing this transformed
142502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT statement. This allows the implementation of the window function
142503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (in this case max()) to process rows sorted in order of (c, d), which
142504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** makes things easier for obvious reasons. More generally:
142505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * FROM, WHERE, GROUP BY and HAVING clauses are all moved to
142507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the sub-query.
142508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * ORDER BY, LIMIT and OFFSET remain part of the parent query.
142510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Terminals from each of the expression trees that make up the
142512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** select-list and ORDER BY expressions in the parent query are
142513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** selected by the sub-query. For the purposes of the transformation,
142514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** terminals are column references and aggregate functions.
142515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If there is more than one window function in the SELECT that uses
142517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the same window declaration (the OVER bit), then a single scan may
142518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be used to process more than one window function. For example:
142519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT max(b) OVER (PARTITION BY c ORDER BY d),
142521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** min(e) OVER (PARTITION BY c ORDER BY d)
142522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FROM t1;
142523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is transformed in the same way as the example above. However:
142525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT max(b) OVER (PARTITION BY c ORDER BY d),
142527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** min(e) OVER (PARTITION BY a ORDER BY b)
142528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FROM t1;
142529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Must be transformed to:
142531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT max(b) OVER (PARTITION BY c ORDER BY d) FROM (
142533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT e, min(e) OVER (PARTITION BY a ORDER BY b), c, d, b FROM
142534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT a, e, c, d, b FROM t1 ORDER BY a, b
142535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ) ORDER BY c, d
142536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ) ORDER BY e;
142537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** so that both min() and max() may process rows in the order defined by
142539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** their respective window declarations.
142540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** INTERFACE WITH SELECT.C
142542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When processing the rewritten SELECT statement, code in select.c calls
142544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WhereBegin() to begin iterating through the results of the
142545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sub-query, which is always implemented as a co-routine. It then calls
142546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WindowCodeStep() to process rows and finish the scan by calling
142547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WhereEnd().
142548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WindowCodeStep() generates VM code so that, for each row returned
142550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** by the sub-query a sub-routine (OP_Gosub) coded by select.c is invoked.
142551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When the sub-routine is invoked:
142552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * The results of all window-functions for the row are stored
142554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the associated Window.regResult registers.
142555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * The required terminal values are stored in the current row of
142557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** temp table Window.iEphCsr.
142558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** In some cases, depending on the window frame and the specific window
142560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** functions invoked, sqlite3WindowCodeStep() caches each entire partition
142561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in a temp table before returning any rows. In other cases it does not.
142562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This detail is encapsulated within this file, the code generated by
142563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** select.c is the same in either case.
142564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** BUILT-IN WINDOW FUNCTIONS
142566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This implementation features the following built-in window functions:
142568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** row_number()
142570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** rank()
142571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** dense_rank()
142572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** percent_rank()
142573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cume_dist()
142574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ntile(N)
142575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** lead(expr [, offset [, default]])
142576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** lag(expr [, offset [, default]])
142577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** first_value(expr)
142578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** last_value(expr)
142579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** nth_value(expr, N)
142580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** These are the same built-in window functions supported by Postgres.
142582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Although the behaviour of aggregate window functions (functions that
142583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** can be used as either aggregates or window funtions) allows them to
142584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be implemented using an API, built-in window functions are much more
142585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** esoteric. Additionally, some window functions (e.g. nth_value())
142586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** may only be implemented by caching the entire partition in memory.
142587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As such, some built-in window functions use the same API as aggregate
142588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window functions and some are implemented directly using VDBE
142589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** instructions. Additionally, for those functions that use the API, the
142590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window frame is sometimes modified before the SELECT statement is
142591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** rewritten. For example, regardless of the specified window frame, the
142592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** row_number() function always uses:
142593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
142595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See sqlite3WindowUpdate() for details.
142597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As well as some of the built-in window functions, aggregate window
142599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** functions min() and max() are implemented using VDBE instructions if
142600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the start of the window frame is declared as anything other than
142601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** UNBOUNDED PRECEDING.
142602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of built-in window function row_number(). Assumes that the
142606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window frame has been coerced to:
142607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
142609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void row_numberStepFunc(
142611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 *p = (i64*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ) (*p)++;
142617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(nArg);
142618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(apArg);
142619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void row_numberValueFunc(sqlite3_context *pCtx){
142621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 *p = (i64*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int64(pCtx, (p ? *p : 0));
142623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Context object type used by rank(), dense_rank(), percent_rank() and
142627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cume_dist().
142628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount {
142630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nValue;
142631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nStep;
142632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nTotal;
142633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
142634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of built-in window function dense_rank(). Assumes that
142637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the window frame has been set to:
142638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
142640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dense_rankStepFunc(
142642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ) p->nStep = 1;
142649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(nArg);
142650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(apArg);
142651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dense_rankValueFunc(sqlite3_context *pCtx){
142653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nStep ){
142657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nValue++;
142658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nStep = 0;
142659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int64(pCtx, p->nValue);
142661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of built-in window function rank(). Assumes that
142666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the window frame has been set to:
142667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
142669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void rankStepFunc(
142671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nStep++;
142679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nValue==0 ){
142680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nValue = p->nStep;
142681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(nArg);
142684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(apArg);
142685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void rankValueFunc(sqlite3_context *pCtx){
142687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int64(pCtx, p->nValue);
142691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nValue = 0;
142692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of built-in window function percent_rank(). Assumes that
142697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the window frame has been set to:
142698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
142700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void percent_rankStepFunc(
142702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(nArg); assert( nArg==1 );
142708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nTotal==0 ){
142712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nTotal = sqlite3_value_int64(apArg[0]);
142713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nStep++;
142715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nValue==0 ){
142716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nValue = p->nStep;
142717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void percent_rankValueFunc(sqlite3_context *pCtx){
142721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nTotal>1 ){
142725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ double r = (double)(p->nValue-1) / (double)(p->nTotal-1);
142726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_double(pCtx, r);
142727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
142728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_double(pCtx, 0.0);
142729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nValue = 0;
142731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of built-in window function cume_dist(). Assumes that
142736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the window frame has been set to:
142737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
142739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void cume_distStepFunc(
142741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nArg==1 ); UNUSED_PARAMETER(nArg);
142747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nTotal==0 ){
142751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nTotal = sqlite3_value_int64(apArg[0]);
142752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nStep++;
142754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void cume_distValueFunc(sqlite3_context *pCtx){
142757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct CallCount *p;
142758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p && p->nTotal ){
142760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ double r = (double)(p->nStep) / (double)(p->nTotal);
142761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_double(pCtx, r);
142762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Context object for ntile() window function.
142767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct NtileCtx {
142769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nTotal; /* Total rows in partition */
142770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nParam; /* Parameter passed to ntile(N) */
142771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 iRow; /* Current row */
142772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
142773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of ntile(). This assumes that the window frame has
142776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** been coerced to:
142777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS UNBOUNDED PRECEDING AND CURRENT ROW
142779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void ntileStepFunc(
142781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct NtileCtx *p;
142786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nArg==2 ); UNUSED_PARAMETER(nArg);
142787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nTotal==0 ){
142790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nParam = sqlite3_value_int64(apArg[0]);
142791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nTotal = sqlite3_value_int64(apArg[1]);
142792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nParam<=0 ){
142793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_error(
142794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pCtx, "argument of ntile must be a positive integer", -1
142795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
142796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->iRow++;
142799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void ntileValueFunc(sqlite3_context *pCtx){
142802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct NtileCtx *p;
142803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p && p->nParam>0 ){
142805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nSize = (p->nTotal / p->nParam);
142806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nSize==0 ){
142807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int64(pCtx, p->iRow);
142808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
142809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nLarge = p->nTotal - p->nParam*nSize;
142810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 iSmall = nLarge*(nSize+1);
142811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 iRow = p->iRow-1;
142812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (nLarge*(nSize+1) + (p->nParam-nLarge)*nSize)==p->nTotal );
142814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iRow<iSmall ){
142816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int64(pCtx, 1 + iRow/(nSize+1));
142817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
142818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int64(pCtx, 1 + nLarge + (iRow-iSmall)/nSize);
142819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Context object for last_value() window function.
142826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct LastValueCtx {
142828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value *pVal;
142829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nVal;
142830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
142831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Implementation of last_value().
142834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void last_valueStepFunc(
142836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct LastValueCtx *p;
142841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(nArg);
142842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
142844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value_free(p->pVal);
142845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pVal = sqlite3_value_dup(apArg[0]);
142846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pVal==0 ){
142847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_error_nomem(pCtx);
142848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
142849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nVal++;
142850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void last_valueInvFunc(
142854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *pCtx,
142855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
142856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **apArg
142857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
142858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct LastValueCtx *p;
142859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(nArg);
142860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(apArg);
142861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(p) ){
142863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nVal--;
142864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nVal==0 ){
142865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value_free(p->pVal);
142866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pVal = 0;
142867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void last_valueValueFunc(sqlite3_context *pCtx){
142871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct LastValueCtx *p;
142872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p && p->pVal ){
142874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_value(pCtx, p->pVal);
142875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void last_valueFinalizeFunc(sqlite3_context *pCtx){
142878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct LastValueCtx *p;
142879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
142880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p && p->pVal ){
142881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_value(pCtx, p->pVal);
142882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value_free(p->pVal);
142883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pVal = 0;
142884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Static names for the built-in window function names. These static
142889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** names are used, rather than string literals, so that FuncDef objects
142890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** can be associated with a particular window function by direct
142891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** comparison of the zName pointer. Example:
142892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( pFuncDef->zName==row_valueName ){ ... }
142894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char row_numberName[] = "row_number";
142896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char dense_rankName[] = "dense_rank";
142897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char rankName[] = "rank";
142898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char percent_rankName[] = "percent_rank";
142899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char cume_distName[] = "cume_dist";
142900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char ntileName[] = "ntile";
142901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char last_valueName[] = "last_value";
142902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char nth_valueName[] = "nth_value";
142903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char first_valueName[] = "first_value";
142904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char leadName[] = "lead";
142905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char lagName[] = "lag";
142906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** No-op implementations of xStep() and xFinalize(). Used as place-holders
142909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for built-in window functions that never call those interfaces.
142910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The noopValueFunc() is called but is expected to do nothing. The
142912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** noopStepFunc() is never called, and so it is marked with NO_TEST to
142913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** let the test coverage routine know not to expect this function to be
142914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** invoked.
142915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void noopStepFunc( /*NO_TEST*/
142917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *p, /*NO_TEST*/
142918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n, /*NO_TEST*/
142919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **a /*NO_TEST*/
142920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){ /*NO_TEST*/
142921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(p); /*NO_TEST*/
142922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(n); /*NO_TEST*/
142923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAMETER(a); /*NO_TEST*/
142924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert(0); /*NO_TEST*/
142925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } /*NO_TEST*/
142926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void noopValueFunc(sqlite3_context *p){ UNUSED_PARAMETER(p); /*no-op*/ }
142927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Window functions that use all window interfaces: xStep, xFinal,
142929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** xValue, and xInverse */
142930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define WINDOWFUNCALL(name,nArg,extra) { \
142931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nArg, (SQLITE_UTF8|SQLITE_FUNC_WINDOW|extra), 0, 0, \
142932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name ## StepFunc, name ## FinalizeFunc, name ## ValueFunc, \
142933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name ## InvFunc, name ## Name, {0} \
142934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Window functions that are implemented using bytecode and thus have
142937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** no-op routines for their methods */
142938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define WINDOWFUNCNOOP(name,nArg,extra) { \
142939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nArg, (SQLITE_UTF8|SQLITE_FUNC_WINDOW|extra), 0, 0, \
142940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ noopStepFunc, noopValueFunc, noopValueFunc, \
142941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ noopStepFunc, name ## Name, {0} \
142942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Window functions that use all window interfaces: xStep, the
142945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** same routine for xFinalize and xValue and which never call
142946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** xInverse. */
142947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define WINDOWFUNCX(name,nArg,extra) { \
142948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nArg, (SQLITE_UTF8|SQLITE_FUNC_WINDOW|extra), 0, 0, \
142949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name ## StepFunc, name ## ValueFunc, name ## ValueFunc, \
142950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ noopStepFunc, name ## Name, {0} \
142951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Register those built-in window functions that are not also aggregates.
142956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowFunctions(void){
142958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static FuncDef aWindowFuncs[] = {
142959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCX(row_number, 0, 0),
142960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCX(dense_rank, 0, 0),
142961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCX(rank, 0, 0),
142962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCX(percent_rank, 0, SQLITE_FUNC_WINDOW_SIZE),
142963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCX(cume_dist, 0, SQLITE_FUNC_WINDOW_SIZE),
142964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCX(ntile, 1, SQLITE_FUNC_WINDOW_SIZE),
142965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCALL(last_value, 1, 0),
142966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(nth_value, 2, 0),
142967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(first_value, 1, 0),
142968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(lead, 1, 0),
142969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(lead, 2, 0),
142970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(lead, 3, 0),
142971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(lag, 1, 0),
142972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(lag, 2, 0),
142973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WINDOWFUNCNOOP(lag, 3, 0),
142974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
142975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3InsertBuiltinFuncs(aWindowFuncs, ArraySize(aWindowFuncs));
142976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
142977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
142979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function is called immediately after resolving the function name
142980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for a window function within a SELECT statement. Argument pList is a
142981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** linked list of WINDOW definitions for the current SELECT statement.
142982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Argument pFunc is the function definition just resolved and pWin
142983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is the Window object representing the associated OVER clause. This
142984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function updates the contents of pWin as follows:
142985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * If the OVER clause refered to a named window (as in "max(x) OVER win"),
142987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** search list pList for a matching WINDOW definition, and update pWin
142988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** accordingly. If no such WINDOW clause can be found, leave an error
142989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in pParse.
142990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
142991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * If the function is a built-in window function that requires the
142992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window to be coerced (see "BUILT-IN WINDOW FUNCTIONS" at the top
142993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of this file), pWin is updated here.
142994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
142995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowUpdate(
142996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
142997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pList, /* List of named windows for this SELECT */
142998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin, /* Window frame to update */
142999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc /* Window function definition */
143000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->zName && pWin->eType==0 ){
143002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *p;
143003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(p=pList; p; p=p->pNextWin){
143004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3StrICmp(p->zName, pWin->zName)==0 ) break;
143005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p==0 ){
143007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse, "no such window: %s", pWin->zName);
143008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
143009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pPartition = sqlite3ExprListDup(pParse->db, p->pPartition, 0);
143011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pOrderBy = sqlite3ExprListDup(pParse->db, p->pOrderBy, 0);
143012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pStart = sqlite3ExprDup(pParse->db, p->pStart, 0);
143013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pEnd = sqlite3ExprDup(pParse->db, p->pEnd, 0);
143014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eStart = p->eStart;
143015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eEnd = p->eEnd;
143016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eType = p->eType;
143017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFunc->funcFlags & SQLITE_FUNC_WINDOW ){
143019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db = pParse->db;
143020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->pFilter ){
143021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse,
143022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "FILTER clause may only be used with aggregate window functions"
143023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
143024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
143025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFunc->zName==row_numberName || pFunc->zName==ntileName ){
143026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, pWin->pStart);
143027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, pWin->pEnd);
143028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pStart = pWin->pEnd = 0;
143029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eType = TK_ROWS;
143030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eStart = TK_UNBOUNDED;
143031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eEnd = TK_CURRENT;
143032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
143033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFunc->zName==dense_rankName || pFunc->zName==rankName
143035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pFunc->zName==percent_rankName || pFunc->zName==cume_distName
143036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, pWin->pStart);
143038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, pWin->pEnd);
143039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pStart = pWin->pEnd = 0;
143040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eType = TK_RANGE;
143041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eStart = TK_UNBOUNDED;
143042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eEnd = TK_CURRENT;
143043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pFunc = pFunc;
143046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Context object passed through sqlite3WalkExprList() to
143050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** selectWindowRewriteExprCb() by selectWindowRewriteEList().
143051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct WindowRewrite WindowRewrite;
143053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WindowRewrite {
143054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SrcList *pSrc;
143056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pSub;
143057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pSubSelect; /* Current sub-select, if any */
143058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
143059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Callback function used by selectWindowRewriteEList(). If necessary,
143062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this function appends to the output expression-list and updates
143063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** expression (*ppExpr) in place.
143064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr){
143066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WindowRewrite *p = pWalker->u.pRewrite;
143067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse = pWalker->pParse;
143068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If this function is being called from within a scalar sub-select
143070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that used by the SELECT statement being processed, only process
143071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** TK_COLUMN expressions that refer to it (the outer SELECT). Do
143072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** not process aggregates or window functions at all, as they belong
143073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the scalar sub-select. */
143074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pSubSelect ){
143075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pExpr->op!=TK_COLUMN ){
143076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return WRC_Continue;
143077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nSrc = p->pSrc->nSrc;
143079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
143080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<nSrc; i++){
143081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pExpr->iTable==p->pSrc->a[i].iCursor ) break;
143082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i==nSrc ) return WRC_Continue;
143084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( pExpr->op ){
143088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_FUNCTION:
143090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pExpr->pWin==0 ){
143091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
143092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=p->pWin; pWin; pWin=pWin->pNextWin){
143095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pExpr->pWin==pWin ){
143096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pWin->pOwner==pExpr );
143097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return WRC_Prune;
143098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Fall through. */
143102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_AGG_FUNCTION:
143104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case TK_COLUMN: {
143105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pDup = sqlite3ExprDup(pParse->db, pExpr, 0);
143106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pSub = sqlite3ExprListAppend(pParse, p->pSub, pDup);
143107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pSub ){
143108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( ExprHasProperty(pExpr, EP_Static)==0 );
143109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprSetProperty(pExpr, EP_Static);
143110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, pExpr);
143111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprClearProperty(pExpr, EP_Static);
143112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(pExpr, 0, sizeof(Expr));
143113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->op = TK_COLUMN;
143115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->iColumn = p->pSub->nExpr-1;
143116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->iTable = p->pWin->iEphCsr;
143117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
143120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: /* no-op */
143123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
143124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return WRC_Continue;
143127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int selectWindowRewriteSelectCb(Walker *pWalker, Select *pSelect){
143129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WindowRewrite *p = pWalker->u.pRewrite;
143130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pSave = p->pSubSelect;
143131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSave==pSelect ){
143132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return WRC_Continue;
143133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pSubSelect = pSelect;
143135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WalkSelect(pWalker, pSelect);
143136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pSubSelect = pSave;
143137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return WRC_Prune;
143139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Iterate through each expression in expression-list pEList. For each:
143144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * TK_COLUMN,
143146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * aggregate function, or
143147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * window function with a Window object that is not a member of the
143148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Window list passed as the second argument (pWin).
143149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Append the node to output expression-list (*ppSub). And replace it
143151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with a TK_COLUMN that reads the (N-1)th element of table
143152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pWin->iEphCsr, where N is the number of elements in (*ppSub) after
143153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** appending the new one.
143154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void selectWindowRewriteEList(
143156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
143157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin,
143158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SrcList *pSrc,
143159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pEList, /* Rewrite expressions in this list */
143160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList **ppSub /* IN/OUT: Sub-select expression-list */
143161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Walker sWalker;
143163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WindowRewrite sRewrite;
143164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&sWalker, 0, sizeof(Walker));
143166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&sRewrite, 0, sizeof(WindowRewrite));
143167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sRewrite.pSub = *ppSub;
143169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sRewrite.pWin = pWin;
143170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sRewrite.pSrc = pSrc;
143171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sWalker.pParse = pParse;
143173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sWalker.xExprCallback = selectWindowRewriteExprCb;
143174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sWalker.xSelectCallback = selectWindowRewriteSelectCb;
143175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sWalker.u.pRewrite = &sRewrite;
143176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (void)sqlite3WalkExprList(&sWalker, pEList);
143178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *ppSub = sRewrite.pSub;
143180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Append a copy of each expression in expression-list pAppend to
143184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** expression list pList. Return a pointer to the result list.
143185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static ExprList *exprListAppendList(
143187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Parsing context */
143188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pList, /* List to which to append. Might be NULL */
143189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pAppend /* List of values to append. Might be NULL */
143190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAppend ){
143192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
143193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nInit = pList ? pList->nExpr : 0;
143194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<pAppend->nExpr; i++){
143195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pDup = sqlite3ExprDup(pParse->db, pAppend->a[i].pExpr, 0);
143196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse, pList, pDup);
143197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pList ) pList->a[nInit+i].sortOrder = pAppend->a[i].sortOrder;
143198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pList;
143201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the SELECT statement passed as the second argument does not invoke
143205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** any SQL window functions, this function is a no-op. Otherwise, it
143206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** rewrites the SELECT statement so that window function xStep functions
143207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** are invoked in the correct order as described under "SELECT REWRITING"
143208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** at the top of this file.
143209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3WindowRewrite(Parse *pParse, Select *p){
143211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK;
143212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pWin ){
143213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db = pParse->db;
143215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pSub = 0; /* The subquery */
143216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SrcList *pSrc = p->pSrc;
143217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pWhere = p->pWhere;
143218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pGroupBy = p->pGroupBy;
143219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pHaving = p->pHaving;
143220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pSort = 0;
143221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pSublist = 0; /* Expression list for sub-query */
143223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin = p->pWin; /* Master window object */
143224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin; /* Window object iterator */
143225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pSrc = 0;
143227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pWhere = 0;
143228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pGroupBy = 0;
143229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pHaving = 0;
143230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Create the ORDER BY clause for the sub-select. This is the concatenation
143232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the window PARTITION and ORDER BY clauses. Then, if this makes it
143233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** redundant, remove the ORDER BY from the parent SELECT. */
143234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSort = sqlite3ExprListDup(db, pMWin->pPartition, 0);
143235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSort = exprListAppendList(pParse, pSort, pMWin->pOrderBy);
143236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSort && p->pOrderBy ){
143237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprListCompare(pSort, p->pOrderBy, -1)==0 ){
143238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(db, p->pOrderBy);
143239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pOrderBy = 0;
143240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Assign a cursor number for the ephemeral table used to buffer rows.
143244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The OpenEphemeral instruction is coded later, after it is known how
143245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** many columns the table will have. */
143246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pMWin->iEphCsr = pParse->nTab++;
143247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selectWindowRewriteEList(pParse, pMWin, pSrc, p->pEList, &pSublist);
143249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selectWindowRewriteEList(pParse, pMWin, pSrc, p->pOrderBy, &pSublist);
143250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pMWin->nBufferCol = (pSublist ? pSublist->nExpr : 0);
143251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Append the PARTITION BY and ORDER BY expressions to the to the
143253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sub-select expression list. They are required to figure out where
143254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** boundaries for partitions and sets of peer rows lie. */
143255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSublist = exprListAppendList(pParse, pSublist, pMWin->pPartition);
143256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSublist = exprListAppendList(pParse, pSublist, pMWin->pOrderBy);
143257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Append the arguments passed to each window function to the
143259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sub-select expression list. Also allocate two registers for each
143260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window function - one for the accumulator, another for interim
143261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** results. */
143262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
143263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->iArgCol = (pSublist ? pSublist->nExpr : 0);
143264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSublist = exprListAppendList(pParse, pSublist, pWin->pOwner->x.pList);
143265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->pFilter ){
143266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pFilter = sqlite3ExprDup(db, pWin->pFilter, 0);
143267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSublist = sqlite3ExprListAppend(pParse, pSublist, pFilter);
143268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->regAccum = ++pParse->nMem;
143270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->regResult = ++pParse->nMem;
143271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum);
143272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If there is no ORDER BY or PARTITION BY clause, and the window
143275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function accepts zero arguments, and there are no other columns
143276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** selected (e.g. "SELECT row_number() OVER () FROM t1"), it is possible
143277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that pSublist is still NULL here. Add a constant expression here to
143278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** keep everything legal in this case.
143279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSublist==0 ){
143281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSublist = sqlite3ExprListAppend(pParse, 0,
143282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprAlloc(db, TK_INTEGER, &sqlite3IntTokens[0], 0)
143283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
143284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSub = sqlite3SelectNew(
143287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0
143288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
143289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pSrc = sqlite3SrcListAppend(db, 0, 0, 0);
143290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->pSrc || db->mallocFailed );
143291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->pSrc ){
143292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pSrc->a[0].pSelect = pSub;
143293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListAssignCursors(pParse, p->pSrc);
143294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExpandSubquery(pParse, &p->pSrc->a[0]) ){
143295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_NOMEM;
143296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSub->selFlags |= SF_Expanded;
143298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->selFlags &= ~SF_Aggregate;
143299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SelectPrep(pParse, pSub, 0);
143300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pMWin->iEphCsr, pSublist->nExpr);
143303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SelectDelete(db, pSub);
143305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->mallocFailed ) rc = SQLITE_NOMEM;
143307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
143310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Free the Window object passed as the second argument.
143314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowDelete(sqlite3 *db, Window *p){
143316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
143317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, p->pFilter);
143318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(db, p->pPartition);
143319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(db, p->pOrderBy);
143320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, p->pEnd);
143321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, p->pStart);
143322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->zName);
143323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p);
143324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Free the linked list of Window objects starting at the second argument.
143329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowListDelete(sqlite3 *db, Window *p){
143331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( p ){
143332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pNext = p->pNextWin;
143333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowDelete(db, p);
143334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = pNext;
143335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The argument expression is an PRECEDING or FOLLOWING offset. The
143340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** value should be a non-negative integer. If the value is not a
143341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** constant, change it to NULL. The fact that it is then a non-negative
143342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** integer will be caught later. But it is important not to leave
143343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** variable values in the expression tree.
143344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr){
143346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0==sqlite3ExprIsConstant(pExpr) ){
143347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, pExpr);
143348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr = sqlite3ExprAlloc(pParse->db, TK_NULL, 0, 0);
143349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pExpr;
143351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Allocate and return a new Window object describing a Window Definition.
143355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Window *sqlite3WindowAlloc(
143357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Parsing context */
143358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int eType, /* Frame type. TK_RANGE or TK_ROWS */
143359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int eStart, /* Start type: CURRENT, PRECEDING, FOLLOWING, UNBOUNDED */
143360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pStart, /* Start window size if TK_PRECEDING or FOLLOWING */
143361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int eEnd, /* End type: CURRENT, FOLLOWING, TK_UNBOUNDED, PRECEDING */
143362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pEnd /* End window size if TK_FOLLOWING or PRECEDING */
143363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin = 0;
143365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Parser assures the following: */
143367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( eType==TK_RANGE || eType==TK_ROWS );
143368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( eStart==TK_CURRENT || eStart==TK_PRECEDING
143369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || eStart==TK_UNBOUNDED || eStart==TK_FOLLOWING );
143370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( eEnd==TK_CURRENT || eEnd==TK_FOLLOWING
143371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || eEnd==TK_UNBOUNDED || eEnd==TK_PRECEDING );
143372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (eStart==TK_PRECEDING || eStart==TK_FOLLOWING)==(pStart!=0) );
143373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (eEnd==TK_FOLLOWING || eEnd==TK_PRECEDING)==(pEnd!=0) );
143374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If a frame is declared "RANGE" (not "ROWS"), then it may not use
143377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** either "<expr> PRECEDING" or "<expr> FOLLOWING".
143378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( eType==TK_RANGE && (pStart!=0 || pEnd!=0) ){
143380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse, "RANGE must use only UNBOUNDED or CURRENT ROW");
143381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto windowAllocErr;
143382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Additionally, the
143385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** starting boundary type may not occur earlier in the following list than
143386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the ending boundary type:
143387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** UNBOUNDED PRECEDING
143389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <expr> PRECEDING
143390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** CURRENT ROW
143391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <expr> FOLLOWING
143392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** UNBOUNDED FOLLOWING
143393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The parser ensures that "UNBOUNDED PRECEDING" cannot be used as an ending
143395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** boundary, and than "UNBOUNDED FOLLOWING" cannot be used as a starting
143396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** frame boundary.
143397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING)
143399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (eStart==TK_FOLLOWING && (eEnd==TK_PRECEDING || eEnd==TK_CURRENT))
143400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse, "unsupported frame delimiter for ROWS");
143402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto windowAllocErr;
143403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
143406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin==0 ) goto windowAllocErr;
143407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eType = eType;
143408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eStart = eStart;
143409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->eEnd = eEnd;
143410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pEnd = sqlite3WindowOffsetExpr(pParse, pEnd);
143411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pStart = sqlite3WindowOffsetExpr(pParse, pStart);
143412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pWin;
143413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAllocErr:
143415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, pEnd);
143416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, pStart);
143417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
143418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Attach window object pWin to expression p.
143422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowAttach(Parse *pParse, Expr *p, Window *pWin){
143424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
143425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin ){
143426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pWin = pWin;
143427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->pOwner = p;
143428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->flags & EP_Distinct ){
143429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse,
143430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "DISTINCT is not supported for window functions");
143431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowDelete(pParse->db, pWin);
143435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return 0 if the two window objects are identical, or non-zero otherwise.
143440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Identical window objects can be processed in a single scan.
143441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3WindowCompare(Parse *pParse, Window *p1, Window *p2){
143443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p1->eType!=p2->eType ) return 1;
143444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p1->eStart!=p2->eStart ) return 1;
143445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p1->eEnd!=p2->eEnd ) return 1;
143446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pParse, p1->pStart, p2->pStart, -1) ) return 1;
143447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pParse, p1->pEnd, p2->pEnd, -1) ) return 1;
143448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprListCompare(p1->pPartition, p2->pPartition, -1) ) return 1;
143449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprListCompare(p1->pOrderBy, p2->pOrderBy, -1) ) return 1;
143450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
143451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This is called by code in select.c before it calls sqlite3WhereBegin()
143456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to begin iterating through the sub-query results. It is used to allocate
143457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and initialize registers and cursors used by sqlite3WindowCodeStep().
143458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowCodeInit(Parse *pParse, Window *pMWin){
143460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nPart = (pMWin->pPartition ? pMWin->pPartition->nExpr : 0);
143463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nPart += (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0);
143464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nPart ){
143465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pMWin->regPart = pParse->nMem+1;
143466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += nPart;
143467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Null, 0, pMWin->regPart, pMWin->regPart+nPart-1);
143468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
143471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *p = pWin->pFunc;
143472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
143473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The inline versions of min() and max() require a single ephemeral
143474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** table and 3 registers. The registers are used as follows:
143475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regApp+0: slot to copy min()/max() argument to for MakeRecord
143477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regApp+1: integer value used to ensure keys are unique
143478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regApp+2: output of MakeRecord
143479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pList = pWin->pOwner->x.pList;
143481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pList, 0, 0);
143482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->csrApp = pParse->nTab++;
143483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->regApp = pParse->nMem+1;
143484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += 3;
143485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pKeyInfo && pWin->pFunc->zName[1]=='i' ){
143486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pKeyInfo->aSortOrder[0]==0 );
143487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo->aSortOrder[0] = 1;
143488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pWin->csrApp, 2);
143490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO);
143491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
143492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( p->zName==nth_valueName || p->zName==first_valueName ){
143494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Allocate two registers at pWin->regApp. These will be used to
143495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** store the start and end index of the current frame. */
143496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->iEphCsr );
143497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->regApp = pParse->nMem+1;
143498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->csrApp = pParse->nTab++;
143499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += 2;
143500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr);
143501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( p->zName==leadName || p->zName==lagName ){
143503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->iEphCsr );
143504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->csrApp = pParse->nTab++;
143505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr);
143506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A "PRECEDING <expr>" (eCond==0) or "FOLLOWING <expr>" (eCond==1) or the
143512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** value of the second argument to nth_value() (eCond==2) has just been
143513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** evaluated and the result left in register reg. This function generates VM
143514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** code to check that the value is a non-negative integer and throws an
143515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** exception if it is not.
143516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowCheckIntValue(Parse *pParse, int reg, int eCond){
143518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char *azErr[] = {
143519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "frame starting offset must be a non-negative integer",
143520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "frame ending offset must be a non-negative integer",
143521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "second argument to nth_value must be a positive integer"
143522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
143523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int aOp[] = { OP_Ge, OP_Ge, OP_Gt };
143524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regZero = sqlite3GetTempReg(pParse);
143526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( eCond==0 || eCond==1 || eCond==2 );
143527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, regZero);
143528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2);
143529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageIf(v, eCond==0);
143530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageIf(v, eCond==1);
143531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageIf(v, eCond==2);
143532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg);
143533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverNullIf(v, eCond==0);
143534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverNullIf(v, eCond==1);
143535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverNullIf(v, eCond==2);
143536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Halt, SQLITE_ERROR, OE_Abort);
143537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, (void*)azErr[eCond], P4_STATIC);
143538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ReleaseTempReg(pParse, regZero);
143539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return the number of arguments passed to the window-function associated
143543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with the object passed as the only argument to this function.
143544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int windowArgCount(Window *pWin){
143546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pList = pWin->pOwner->x.pList;
143547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (pList ? pList->nExpr : 0);
143548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Generate VM code to invoke either xStep() (if bInverse is 0) or
143552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** xInverse (if bInverse is non-zero) for each window function in the
143553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** linked list starting at pMWin. Or, for built-in window functions
143554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that do not use the standard function API, generate the required
143555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** inline VM code.
143556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If argument csr is greater than or equal to 0, then argument reg is
143558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the first register in an array of registers guaranteed to be large
143559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** enough to hold the array of arguments for each function. In this case
143560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the arguments are extracted from the current row of csr into the
143561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** array of registers before invoking OP_AggStep or OP_AggInverse
143562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Or, if csr is less than zero, then the array of registers at reg is
143564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** already populated with all columns from the current row of the sub-query.
143565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If argument regPartSize is non-zero, then it is a register containing the
143567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** number of rows in the current partition.
143568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowAggStep(
143570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
143571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin, /* Linked list of window functions */
143572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csr, /* Read arguments from this cursor */
143573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bInverse, /* True to invoke xInverse instead of xStep */
143574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int reg, /* Array of registers */
143575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regPartSize /* Register containing size of partition */
143576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
143580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int flags = pWin->pFunc->funcFlags;
143581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regArg;
143582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg = windowArgCount(pWin);
143583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( csr>=0 ){
143585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
143586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<nArg; i++){
143587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+i, reg+i);
143588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regArg = reg;
143590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( flags & SQLITE_FUNC_WINDOW_SIZE ){
143591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nArg==0 ){
143592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regArg = regPartSize;
143593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_SCopy, regPartSize, reg+nArg);
143595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nArg++;
143597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( !(flags & SQLITE_FUNC_WINDOW_SIZE) );
143600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regArg = reg + pWin->iArgCol;
143601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX)
143604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && pWin->eStart!=TK_UNBOUNDED
143605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, regArg);
143607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
143608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bInverse==0 ){
143609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1, 1);
143610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_SCopy, regArg, pWin->regApp);
143611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_MakeRecord, pWin->regApp, 2, pWin->regApp+2);
143612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_IdxInsert, pWin->csrApp, pWin->regApp+2);
143613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp4Int(v, OP_SeekGE, pWin->csrApp, 0, regArg, 1);
143615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverTaken(v);
143616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp);
143617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
143618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addrIsNull);
143620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pWin->regApp ){
143621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pWin->pFunc->zName==nth_valueName
143622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pWin->pFunc->zName==first_valueName
143623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
143624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( bInverse==0 || bInverse==1 );
143625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1);
143626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pWin->pFunc->zName==leadName
143627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pWin->pFunc->zName==lagName
143628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* no-op */
143630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrIf = 0;
143632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->pFilter ){
143633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regTmp;
143634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nArg==0 || nArg==pWin->pOwner->x.pList->nExpr );
143635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nArg || pWin->pOwner->x.pList==0 );
143636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( csr>0 ){
143637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regTmp = sqlite3GetTempReg(pParse);
143638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp);
143639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regTmp = regArg + nArg;
143641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1);
143643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
143644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( csr>0 ){
143645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ReleaseTempReg(pParse, regTmp);
143646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWin->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){
143649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CollSeq *pColl;
143650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nArg>0 );
143651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pColl = sqlite3ExprNNCollSeq(pParse, pWin->pOwner->x.pList->a[0].pExpr);
143652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp4(v, OP_CollSeq, 0,0,0, (const char*)pColl, P4_COLLSEQ);
143653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, bInverse? OP_AggInverse : OP_AggStep,
143655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bInverse, regArg, pWin->regAccum);
143656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF);
143657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP5(v, (u8)nArg);
143658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addrIf ) sqlite3VdbeJumpHere(v, addrIf);
143659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Generate VM code to invoke either xValue() (bFinal==0) or xFinalize()
143665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (bFinal==1) for each window function in the linked list starting at
143666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pMWin. Or, for built-in window-functions that do not use the standard
143667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** API, generate the equivalent VM code.
143668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowAggFinal(Parse *pParse, Window *pMWin, int bFinal){
143670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
143674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX)
143675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && pWin->eStart!=TK_UNBOUNDED
143676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
143678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_Last, pWin->csrApp);
143679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
143680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult);
143681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
143682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bFinal ){
143683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp);
143684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pWin->regApp ){
143686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bFinal ){
143688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AggFinal, pWin->regAccum, windowArgCount(pWin));
143689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF);
143690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Copy, pWin->regAccum, pWin->regResult);
143691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum);
143692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_AggValue, pWin->regAccum, windowArgCount(pWin),
143694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWin->regResult);
143695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF);
143696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function generates VM code to invoke the sub-routine at address
143703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** lblFlushPart once for each partition with the entire partition cached in
143704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the Window.iEphCsr temp table.
143705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowPartitionCache(
143707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
143708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p, /* The rewritten SELECT statement */
143709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereInfo *pWInfo, /* WhereInfo to call WhereEnd() on */
143710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regFlushPart, /* Register to use with Gosub lblFlushPart */
143711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lblFlushPart, /* Subroutine to Gosub to */
143712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *pRegSize /* OUT: Register containing partition size */
143713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin = p->pWin;
143715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iSubCsr = p->pSrc->a[0].iCursor;
143717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nSub = p->pSrc->a[0].pTab->nCol;
143718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int k;
143719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int reg = pParse->nMem+1;
143721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regRecord = reg+nSub;
143722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regRowid = regRecord+1;
143723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pRegSize = regRowid;
143725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += nSub + 2;
143726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Load the column values for the row returned by the sub-select
143728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** into an array of registers starting at reg. */
143729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(k=0; k<nSub; k++){
143730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, iSubCsr, k, reg+k);
143731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_MakeRecord, reg, nSub, regRecord);
143733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Check if this is the start of a new partition. If so, call the
143735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flush_partition sub-routine. */
143736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->pPartition ){
143737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addr;
143738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pPart = pMWin->pPartition;
143739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nPart = pPart->nExpr;
143740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regNewPart = reg + pMWin->nBufferCol;
143741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0);
143742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart,nPart);
143744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
143745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Jump, addr+2, addr+4, addr+2);
143746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageEqNe(v);
143747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Copy, regNewPart, pMWin->regPart, nPart-1);
143748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart);
143749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "call flush_partition"));
143750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Buffer the current row in the ephemeral table. */
143753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_NewRowid, pMWin->iEphCsr, regRowid);
143754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Insert, pMWin->iEphCsr, regRecord, regRowid);
143755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* End of the input loop */
143757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WhereEnd(pWInfo);
143758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Invoke "flush_partition" to deal with the final (or only) partition */
143760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart);
143761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "call flush_partition"));
143762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Invoke the sub-routine at regGosub (generated by code in select.c) to
143766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** return the current row of Window.iEphCsr. If all window functions are
143767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** aggregate window functions that use the standard API, a single
143768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OP_Gosub instruction is all that this routine generates. Extra VM code
143769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for per-row processing is only generated for the following built-in window
143770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** functions:
143771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** nth_value()
143773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** first_value()
143774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** lag()
143775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** lead()
143776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowReturnOneRow(
143778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
143779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin,
143780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub,
143781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub
143782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
143786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc = pWin->pFunc;
143787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFunc->zName==nth_valueName
143788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pFunc->zName==first_valueName
143789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csr = pWin->csrApp;
143791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lbl = sqlite3VdbeMakeLabel(v);
143792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int tmpReg = sqlite3GetTempReg(pParse);
143793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
143794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFunc->zName==nth_valueName ){
143796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, pMWin->iEphCsr, pWin->iArgCol+1,tmpReg);
143797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowCheckIntValue(pParse, tmpReg, 2);
143798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 1, tmpReg);
143800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Add, tmpReg, pWin->regApp, tmpReg);
143802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Gt, pWin->regApp+1, lbl, tmpReg);
143803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverNull(v);
143804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, 0, tmpReg);
143805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverTaken(v);
143806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult);
143807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lbl);
143808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ReleaseTempReg(pParse, tmpReg);
143809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( pFunc->zName==leadName || pFunc->zName==lagName ){
143811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg = pWin->pOwner->x.pList->nExpr;
143812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iEph = pMWin->iEphCsr;
143813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csr = pWin->csrApp;
143814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lbl = sqlite3VdbeMakeLabel(v);
143815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int tmpReg = sqlite3GetTempReg(pParse);
143816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nArg<3 ){
143818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
143819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+2, pWin->regResult);
143821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rowid, iEph, tmpReg);
143823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nArg<2 ){
143824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int val = (pFunc->zName==leadName ? 1 : -1);
143825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AddImm, tmpReg, val);
143826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
143827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int op = (pFunc->zName==leadName ? OP_Add : OP_Subtract);
143828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int tmpReg2 = sqlite3GetTempReg(pParse);
143829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+1, tmpReg2);
143830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, op, tmpReg2, tmpReg, tmpReg);
143831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ReleaseTempReg(pParse, tmpReg2);
143832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, lbl, tmpReg);
143835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
143836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult);
143837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lbl);
143838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ReleaseTempReg(pParse, tmpReg);
143839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
143842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Invoke the code generated by windowReturnOneRow() and, optionally, the
143846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** xInverse() function for each window function, for one or more rows
143847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** from the Window.iEphCsr temp table. This routine generates VM code
143848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** similar to:
143849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** while( regCtr>0 ){
143851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regCtr--;
143852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** windowReturnOneRow()
143853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( bInverse ){
143854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse
143855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next (Window.iEphCsr)
143857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowReturnRows(
143860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
143861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin, /* List of window functions */
143862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regCtr, /* Register containing number of rows */
143863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub, /* Register for Gosub addrGosub */
143864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub, /* Address of sub-routine for ReturnOneRow */
143865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regInvArg, /* Array of registers for xInverse args */
143866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regInvSize /* Register containing size of partition */
143867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addr;
143869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggFinal(pParse, pMWin, 0);
143871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 ,1);
143872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
143873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, 0);
143874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowReturnOneRow(pParse, pMWin, regGosub, addrGosub);
143875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( regInvArg ){
143876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggStep(pParse, pMWin, pMWin->iEphCsr, 1, regInvArg, regInvSize);
143877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, addr);
143879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
143880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addr+1); /* The OP_Goto */
143881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Generate code to set the accumulator register for each window function
143885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the linked list passed as the second argument to NULL. And perform
143886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** any equivalent initialization required by any built-in window functions
143887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the list.
143888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
143889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int windowInitAccum(Parse *pParse, Window *pMWin){
143890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
143891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regArg;
143892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg = 0;
143893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
143894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
143895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc = pWin->pFunc;
143896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum);
143897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nArg = MAX(nArg, windowArgCount(pWin));
143898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFunc->zName==nth_valueName
143899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pFunc->zName==first_valueName
143900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
143901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp);
143902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
143903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){
143906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pWin->eStart!=TK_UNBOUNDED );
143907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp);
143908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
143909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regArg = pParse->nMem+1;
143912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += nArg;
143913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return regArg;
143914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
143918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function does the work of sqlite3WindowCodeStep() for all "ROWS"
143919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window frame types except for "BETWEEN UNBOUNDED PRECEDING AND CURRENT
143920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROW". Pseudo-code for each follows.
143921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN <expr1> PRECEDING AND <expr2> FOLLOWING
143923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ...
143925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( new partition ){
143926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub flush_partition
143927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Insert (record in eph-table)
143929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WhereEnd()
143930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub flush_partition
143931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flush_partition:
143933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Once {
143934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OpenDup (iEphCsr -> csrStart)
143935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OpenDup (iEphCsr -> csrEnd)
143936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regStart = <expr1> // PRECEDING expression
143938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regEnd = <expr2> // FOLLOWING expression
143939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( regStart<0 || regEnd<0 ){ error! }
143940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done
143941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csrEnd) // if EOF skip Aggstep
143942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Aggstep (csrEnd)
143943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regEnd--)<=0 ){
143944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
143945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
143946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csr) // if EOF goto flush_partition_done
143947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regStart--)<=0 ){
143948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (csrStart)
143949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csrStart)
143950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flush_partition_done:
143953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ResetSorter (csr)
143954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return
143955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN <expr> PRECEDING AND CURRENT ROW
143957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN CURRENT ROW AND <expr> FOLLOWING
143958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND <expr> FOLLOWING
143959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** These are similar to the above. For "CURRENT ROW", intialize the
143961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** register to 0. For "UNBOUNDED PRECEDING" to infinity.
143962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN <expr> PRECEDING AND UNBOUNDED FOLLOWING
143964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
143965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done
143967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** while( 1 ){
143968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csrEnd) // Exit while(1) at EOF
143969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Aggstep (csrEnd)
143970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** while( 1 ){
143972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
143973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
143974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csr) // if EOF goto flush_partition_done
143975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regStart--)<=0 ){
143976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (csrStart)
143977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csrStart)
143978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** For the "CURRENT ROW AND UNBOUNDED FOLLOWING" case, the final if()
143982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** condition is always true (as if regStart were initialized to 0).
143983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
143985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This is the only RANGE case handled by this routine. It modifies the
143987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** second while( 1 ) loop in "ROWS BETWEEN CURRENT ... UNBOUNDED..." to
143988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be:
143989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
143990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** while( 1 ){
143991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
143992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** while( 1 ){
143993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regPeer++
143994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
143995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csr) // if EOF goto flush_partition_done
143996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( new peer ) break;
143997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
143998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** while( (regPeer--)>0 ){
143999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (csrStart)
144000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csrStart)
144001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN <expr> FOLLOWING AND <expr> FOLLOWING
144005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regEnd = regEnd - regStart
144007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done
144008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Aggstep (csrEnd)
144009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csrEnd) // if EOF fall-through
144010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regEnd--)<=0 ){
144011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regStart--)<=0 ){
144012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
144013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csr) // if EOF goto flush_partition_done
144015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (csrStart)
144017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next (csrStart)
144018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN <expr> PRECEDING AND <expr> PRECEDING
144021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Replace the bit after "Rewind" in the above with:
144023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regEnd--)<=0 ){
144025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggStep (csrEnd)
144026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next (csrEnd)
144027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
144029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next(csr) // if EOF goto flush_partition_done
144031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( (regStart--)<=0 ){
144032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (csr2)
144033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next (csr2)
144034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowCodeRowExprStep(
144038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
144039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p,
144040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereInfo *pWInfo,
144041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub,
144042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub
144043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin = p->pWin;
144045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
144046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regFlushPart; /* Register for "Gosub flush_partition" */
144047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lblFlushPart; /* Label for "Gosub flush_partition" */
144048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lblFlushDone; /* Label for "Gosub flush_partition_done" */
144049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regArg;
144051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addr;
144052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csrStart = pParse->nTab++;
144053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csrEnd = pParse->nTab++;
144054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regStart; /* Value of <expr> PRECEDING */
144055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regEnd; /* Value of <expr> FOLLOWING */
144056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGoto;
144057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrTop;
144058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrIfPos1 = 0;
144059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrIfPos2 = 0;
144060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regSize = 0;
144061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->eStart==TK_PRECEDING
144063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eStart==TK_CURRENT
144064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eStart==TK_FOLLOWING
144065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eStart==TK_UNBOUNDED
144066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->eEnd==TK_FOLLOWING
144068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eEnd==TK_CURRENT
144069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eEnd==TK_UNBOUNDED
144070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eEnd==TK_PRECEDING
144071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Allocate register and label for the "flush_partition" sub-routine. */
144074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regFlushPart = ++pParse->nMem;
144075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lblFlushPart = sqlite3VdbeMakeLabel(v);
144076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lblFlushDone = sqlite3VdbeMakeLabel(v);
144077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regStart = ++pParse->nMem;
144079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regEnd = ++pParse->nMem;
144080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowPartitionCache(pParse, p, pWInfo, regFlushPart, lblFlushPart, ®Size);
144082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrGoto = sqlite3VdbeAddOp0(v, OP_Goto);
144084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Start of "flush_partition" */
144086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lblFlushPart);
144087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Once, 0, sqlite3VdbeCurrentAddr(v)+3);
144088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "Flush_partition subroutine"));
144090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenDup, csrStart, pMWin->iEphCsr);
144091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenDup, csrEnd, pMWin->iEphCsr);
144092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If either regStart or regEnd are not non-negative integers, throw
144094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** an exception. */
144095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->pStart ){
144096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprCode(pParse, pMWin->pStart, regStart);
144097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowCheckIntValue(pParse, regStart, 0);
144098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->pEnd ){
144100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprCode(pParse, pMWin->pEnd, regEnd);
144101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowCheckIntValue(pParse, regEnd, 1);
144102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If this is "ROWS <expr1> FOLLOWING AND ROWS <expr2> FOLLOWING", do:
144105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( regEnd<regStart ){
144107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** // The frame always consists of 0 rows
144108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regStart = regSize;
144109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** regEnd = regEnd - regStart;
144111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->pEnd && pMWin->eStart==TK_FOLLOWING ){
144113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->pStart!=0 );
144114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->eEnd==TK_FOLLOWING );
144115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Ge, regStart, sqlite3VdbeCurrentAddr(v)+2, regEnd);
144116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverNull(v);
144117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart);
144118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Subtract, regStart, regEnd, regEnd);
144119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){
144122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->pEnd!=0 );
144123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->eStart==TK_PRECEDING );
144124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Le, regStart, sqlite3VdbeCurrentAddr(v)+3, regEnd);
144125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverNull(v);
144126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart);
144127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Copy, regSize, regEnd);
144128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Initialize the accumulator register for each window function to NULL */
144131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regArg = windowInitAccum(pParse, pMWin);
144132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr, lblFlushDone);
144134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, csrStart, lblFlushDone);
144136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverTaken(v);
144137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP5(v, 1);
144138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, csrEnd, lblFlushDone);
144139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverTaken(v);
144140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP5(v, 1);
144141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Invoke AggStep function for each window function using the row that
144143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** csrEnd currently points to. Or, if csrEnd is already at EOF,
144144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** do nothing. */
144145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrTop = sqlite3VdbeCurrentAddr(v);
144146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eEnd==TK_PRECEDING ){
144147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrIfPos1 = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0 , 1);
144148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, csrEnd, sqlite3VdbeCurrentAddr(v)+2);
144151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeAddOp0(v, OP_Goto);
144153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggStep(pParse, pMWin, csrEnd, 0, regArg, regSize);
144154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eEnd==TK_UNBOUNDED ){
144155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop);
144156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addr);
144157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrTop = sqlite3VdbeCurrentAddr(v);
144158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addr);
144160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eEnd==TK_PRECEDING ){
144161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addrIfPos1);
144162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eEnd==TK_FOLLOWING ){
144166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrIfPos1 = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0 , 1);
144167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eStart==TK_FOLLOWING ){
144170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrIfPos2 = sqlite3VdbeAddOp3(v, OP_IfPos, regStart, 0 , 1);
144171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggFinal(pParse, pMWin, 0);
144174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowReturnOneRow(pParse, pMWin, regGosub, addrGosub);
144175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)+2);
144176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, lblFlushDone);
144178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eStart==TK_FOLLOWING ){
144179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addrIfPos2);
144180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eStart==TK_CURRENT
144183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eStart==TK_PRECEDING
144184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || pMWin->eStart==TK_FOLLOWING
144185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lblSkipInverse = sqlite3VdbeMakeLabel(v);;
144187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eStart==TK_PRECEDING ){
144188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_IfPos, regStart, lblSkipInverse, 1);
144189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eStart==TK_FOLLOWING ){
144192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, csrStart, sqlite3VdbeCurrentAddr(v)+2);
144193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, lblSkipInverse);
144195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, csrStart, sqlite3VdbeCurrentAddr(v)+1);
144197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageAlwaysTaken(v);
144198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggStep(pParse, pMWin, csrStart, 1, regArg, regSize);
144200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lblSkipInverse);
144201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eEnd==TK_FOLLOWING ){
144203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addrIfPos1);
144204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop);
144206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* flush_partition_done: */
144208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lblFlushDone);
144209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr);
144210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_Return, regFlushPart);
144211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeComment((v, "end flush_partition subroutine"));
144212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Jump to here to skip over flush_partition */
144214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addrGoto);
144215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
144218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function does the work of sqlite3WindowCodeStep() for cases that
144219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** would normally be handled by windowCodeDefaultStep() when there are
144220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** one or more built-in window-functions that require the entire partition
144221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to be cached in a temp table before any rows can be returned. Additionally.
144222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" is always handled by
144223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this function.
144224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Pseudo-code corresponding to the VM code generated by this function
144226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for each type of window follows.
144227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flush_partition:
144231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Once {
144232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OpenDup (iEphCsr -> csrLead)
144233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Integer ctr 0
144235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** foreach row (csrLead){
144236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( new peer ){
144237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
144238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for(i=0; i<ctr; i++){
144239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next iEphCsr
144241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Integer ctr 0
144243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggStep (csrLead)
144245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Incr ctr
144246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xFinalize)
144249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for(i=0; i<ctr; i++){
144250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next iEphCsr
144252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ResetSorter (csr)
144255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return
144256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As above, except that the "if( new peer )" branch is always taken.
144260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN CURRENT ROW AND CURRENT ROW
144262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As above, except that each of the for() loops becomes:
144264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for(i=0; i<ctr; i++){
144266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (iEphCsr)
144268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next iEphCsr
144269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
144272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flush_partition:
144274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Once {
144275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OpenDup (iEphCsr -> csrLead)
144276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** foreach row (csrLead) {
144278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggStep (csrLead)
144279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** foreach row (iEphCsr) {
144281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
144285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flush_partition:
144287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Once {
144288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OpenDup (iEphCsr -> csrLead)
144289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** foreach row (csrLead){
144291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggStep (csrLead)
144292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Rewind (csrLead)
144294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Integer ctr 0
144295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** foreach row (csrLead){
144296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( new peer ){
144297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
144298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for(i=0; i<ctr; i++){
144299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggInverse (iEphCsr)
144301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next iEphCsr
144302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Integer ctr 0
144304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Incr ctr
144306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xFinalize)
144309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for(i=0; i<ctr; i++){
144310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Next iEphCsr
144312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ResetSorter (csr)
144315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return
144316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowCodeCacheStep(
144318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
144319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p,
144320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereInfo *pWInfo,
144321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub,
144322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub
144323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin = p->pWin;
144325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
144326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int k;
144327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addr;
144328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pPart = pMWin->pPartition;
144329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pOrderBy = pMWin->pOrderBy;
144330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nPeer = pOrderBy ? pOrderBy->nExpr : 0;
144331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regNewPeer;
144332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGoto; /* Address of Goto used to jump flush_par.. */
144334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrNext; /* Jump here for next iteration of loop */
144335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regFlushPart;
144336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lblFlushPart;
144337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int csrLead;
144338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regCtr;
144339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regArg; /* Register array to martial function args */
144340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regSize;
144341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lblEmpty;
144342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bReverse = pMWin->pOrderBy && pMWin->eStart==TK_CURRENT
144343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && pMWin->eEnd==TK_UNBOUNDED;
144344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT)
144346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED)
144347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT)
144348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED)
144349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lblEmpty = sqlite3VdbeMakeLabel(v);
144352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regNewPeer = pParse->nMem+1;
144353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += nPeer;
144354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Allocate register and label for the "flush_partition" sub-routine. */
144356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regFlushPart = ++pParse->nMem;
144357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lblFlushPart = sqlite3VdbeMakeLabel(v);
144358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ csrLead = pParse->nTab++;
144360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regCtr = ++pParse->nMem;
144361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowPartitionCache(pParse, p, pWInfo, regFlushPart, lblFlushPart, ®Size);
144363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrGoto = sqlite3VdbeAddOp0(v, OP_Goto);
144364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Start of "flush_partition" */
144366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lblFlushPart);
144367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Once, 0, sqlite3VdbeCurrentAddr(v)+2);
144368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_OpenDup, csrLead, pMWin->iEphCsr);
144370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Initialize the accumulator register for each window function to NULL */
144372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regArg = windowInitAccum(pParse, pMWin);
144373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, regCtr);
144375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, csrLead, lblEmpty);
144376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr, lblEmpty);
144378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverTaken(v);
144379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bReverse ){
144381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addr2 = sqlite3VdbeCurrentAddr(v);
144382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize);
144383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, csrLead, addr2);
144384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, csrLead, lblEmpty);
144386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageNeverTaken(v);
144387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrNext = sqlite3VdbeCurrentAddr(v);
144389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOrderBy && (pMWin->eEnd==TK_CURRENT || pMWin->eStart==TK_CURRENT) ){
144391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bCurrent = (pMWin->eStart==TK_CURRENT);
144392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrJump = 0; /* Address of OP_Jump below */
144393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eType==TK_RANGE ){
144394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);
144395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0);
144396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0);
144397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(k=0; k<nPeer; k++){
144398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, csrLead, iOff+k, regNewPeer+k);
144399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer);
144401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
144402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
144403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, nPeer-1);
144405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowReturnRows(pParse, pMWin, regCtr, regGosub, addrGosub,
144408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (bCurrent ? regArg : 0), (bCurrent ? regSize : 0)
144409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);
144411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bReverse==0 ){
144414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize);
144415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AddImm, regCtr, 1);
144417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, csrLead, addrNext);
144418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowReturnRows(pParse, pMWin, regCtr, regGosub, addrGosub, 0, 0);
144421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, lblEmpty);
144423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr);
144424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_Return, regFlushPart);
144425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Jump to here to skip over flush_partition */
144427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, addrGoto);
144428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
144432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ...
144435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if( new partition ){
144436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xFinalize)
144437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ResetSorter eph-table
144439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** else if( new peer ){
144441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xValue)
144442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ResetSorter eph-table
144444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** }
144445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggStep
144446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Insert (record into eph-table)
144447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WhereEnd()
144448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** AggFinal (xFinalize)
144449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Gosub addrGosub
144450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
144452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As above, except take no action for a "new peer". Invoke
144454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the sub-routine once only for each partition.
144455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN CURRENT ROW AND CURRENT ROW
144457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As above, except that the "new peer" condition is handled in the
144459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** same way as "new partition" (so there is no "else if" block).
144460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As above, except assume every row is a "new peer".
144464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void windowCodeDefaultStep(
144466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse,
144467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p,
144468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereInfo *pWInfo,
144469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub,
144470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub
144471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin = p->pWin;
144473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = sqlite3GetVdbe(pParse);
144474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int k;
144475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iSubCsr = p->pSrc->a[0].iCursor;
144476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nSub = p->pSrc->a[0].pTab->nCol;
144477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int reg = pParse->nMem+1;
144478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regRecord = reg+nSub;
144479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regRowid = regRecord+1;
144480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addr;
144481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pPart = pMWin->pPartition;
144482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pOrderBy = pMWin->pOrderBy;
144483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pMWin->eType==TK_RANGE
144485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT)
144486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT)
144489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED)
144490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT)
144491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED && !pOrderBy)
144492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eEnd==TK_UNBOUNDED ){
144495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOrderBy = 0;
144496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem += nSub + 2;
144499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Load the individual column values of the row returned by
144501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the sub-select into an array of registers. */
144502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(k=0; k<nSub; k++){
144503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Column, iSubCsr, k, reg+k);
144504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Check if this is the start of a new partition or peer group. */
144507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pPart || pOrderBy ){
144508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nPart = (pPart ? pPart->nExpr : 0);
144509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGoto = 0;
144510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrJump = 0;
144511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nPeer = (pOrderBy ? pOrderBy->nExpr : 0);
144512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pPart ){
144514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regNewPart = reg + pMWin->nBufferCol;
144515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0);
144516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart,nPart);
144517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
144518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
144519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverageEqNe(v);
144520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggFinal(pParse, pMWin, 1);
144521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOrderBy ){
144522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrGoto = sqlite3VdbeAddOp0(v, OP_Goto);
144523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOrderBy ){
144527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regNewPeer = reg + pMWin->nBufferCol + nPart;
144528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regPeer = pMWin->regPart + nPart;
144529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);
144531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eType==TK_RANGE ){
144532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0);
144533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer);
144534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
144535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
144536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrJump = 0;
144539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggFinal(pParse, pMWin, pMWin->eStart==TK_CURRENT);
144541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addrGoto ) sqlite3VdbeJumpHere(v, addrGoto);
144542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr,sqlite3VdbeCurrentAddr(v)+3);
144545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
144547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-1);
144548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr);
144551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(
144552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ v, OP_Copy, reg+pMWin->nBufferCol, pMWin->regPart, nPart+nPeer-1
144553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
144554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);
144556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Invoke step function for window functions */
144559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggStep(pParse, pMWin, -1, 0, reg, 0);
144560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Buffer the current row in the ephemeral table. */
144562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->nBufferCol>0 ){
144563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_MakeRecord, reg, pMWin->nBufferCol, regRecord);
144564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Blob, 0, regRecord);
144566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAppendP4(v, (void*)"", 0);
144567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_NewRowid, pMWin->iEphCsr, regRowid);
144569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Insert, pMWin->iEphCsr, regRecord, regRowid);
144570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* End the database scan loop. */
144572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WhereEnd(pWInfo);
144573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowAggFinal(pParse, pMWin, 1);
144575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr,sqlite3VdbeCurrentAddr(v)+3);
144576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
144578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-1);
144579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCoverage(v);
144580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
144583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Allocate and return a duplicate of the Window object indicated by the
144584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** third argument. Set the Window.pOwner field of the new object to
144585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pOwner.
144586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p){
144588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pNew = 0;
144589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
144590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew = sqlite3DbMallocZero(db, sizeof(Window));
144591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pNew ){
144592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->zName = sqlite3DbStrDup(db, p->zName);
144593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pFilter = sqlite3ExprDup(db, p->pFilter, 0);
144594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pPartition = sqlite3ExprListDup(db, p->pPartition, 0);
144595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pOrderBy = sqlite3ExprListDup(db, p->pOrderBy, 0);
144596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->eType = p->eType;
144597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->eEnd = p->eEnd;
144598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->eStart = p->eStart;
144599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pStart = sqlite3ExprDup(db, p->pStart, 0);
144600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pEnd = sqlite3ExprDup(db, p->pEnd, 0);
144601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->pOwner = pOwner;
144602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pNew;
144605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
144608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return a copy of the linked list of Window objects passed as the
144609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** second argument.
144610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Window *sqlite3WindowListDup(sqlite3 *db, Window *p){
144612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
144613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pRet = 0;
144614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window **pp = &pRet;
144615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=p; pWin; pWin=pWin->pNextWin){
144617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pp = sqlite3WindowDup(db, 0, pWin);
144618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( *pp==0 ) break;
144619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pp = &((*pp)->pNextWin);
144620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pRet;
144623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
144626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3WhereBegin() has already been called for the SELECT statement
144627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** passed as the second argument when this function is invoked. It generates
144628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** code to populate the Window.regResult register for each window function and
144629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** invoke the sub-routine at instruction addrGosub once for each row.
144630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function calls sqlite3WhereEnd() before returning.
144631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3WindowCodeStep(
144633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Parse context */
144634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p, /* Rewritten SELECT statement */
144635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereInfo *pWInfo, /* Context returned by sqlite3WhereBegin() */
144636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regGosub, /* Register for OP_Gosub */
144637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrGosub /* OP_Gosub here to return each row */
144638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pMWin = p->pWin;
144640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* There are three different functions that may be used to do the work
144642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of this one, depending on the window frame and the specific built-in
144643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** window functions used (if any).
144644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** windowCodeRowExprStep() handles all "ROWS" window frames, except for:
144646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The exception is because windowCodeRowExprStep() implements all window
144650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** frame types by caching the entire partition in a temp table, and
144651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** "ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW" is easy enough to
144652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** implement without such a cache.
144653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** windowCodeCacheStep() is used for:
144655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
144657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** It is also used for anything not handled by windowCodeRowExprStep()
144659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that invokes a built-in window function that requires the entire
144660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** partition to be cached in a temp table before any rows are returned
144661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (e.g. nth_value() or percent_rank()).
144662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Finally, assuming there is no built-in window function that requires
144664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the partition to be cached, windowCodeDefaultStep() is used for:
144665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
144668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** RANGE BETWEEN CURRENT ROW AND CURRENT ROW
144669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
144670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
144671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** windowCodeDefaultStep() is the only one of the three functions that
144672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** does not cache each partition in a temp table before beginning to
144673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** return rows.
144674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
144675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eType==TK_ROWS
144676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (pMWin->eStart!=TK_UNBOUNDED||pMWin->eEnd!=TK_CURRENT||!pMWin->pOrderBy)
144677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeModuleComment((pParse->pVdbe, "Begin RowExprStep()"));
144679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowCodeRowExprStep(pParse, p, pWInfo, regGosub, addrGosub);
144680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window *pWin;
144682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bCache = 0; /* True to use CacheStep() */
144683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED ){
144685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bCache = 1;
144686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
144688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc = pWin->pFunc;
144689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE)
144690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pFunc->zName==nth_valueName)
144691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pFunc->zName==first_valueName)
144692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pFunc->zName==leadName)
144693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pFunc->zName==lagName)
144694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
144695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bCache = 1;
144696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
144697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Otherwise, call windowCodeDefaultStep(). */
144702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bCache ){
144703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeModuleComment((pParse->pVdbe, "Begin CacheStep()"));
144704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowCodeCacheStep(pParse, p, pWInfo, regGosub, addrGosub);
144705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
144706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeModuleComment((pParse->pVdbe, "Begin DefaultStep()"));
144707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ windowCodeDefaultStep(pParse, p, pWInfo, regGosub, addrGosub);
144708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
144711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
144713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************** End of window.c **********************************************/
141382 144715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file parse.c *******************************************/
141383 144716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
141384 144717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2000-05-29
141385 144718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
141386 144719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The author disclaims copyright to this source code. In place of
@@ -141453,10 +144786,12 @@
141453 144786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** UPDATE ON (a,b,c)
141454 144787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
141455 144788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Then the "b" IdList records the list "a,b,c".
141456 144789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
141457 144790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct TrigEvent { int a; IdList * b; };
144791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
144792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct FrameBound { int eType; Expr *pExpr; };
141458 144793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
141459 144794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
141460 144795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Disable lookaside memory allocation for objects that might be
141461 144796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** shared across database connections.
141462 144797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -141607,30 +144942,32 @@
141607 144942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
141608 144943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef INTERFACE
141609 144944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define INTERFACE 1
141610 144945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
141611 144946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************* Begin control #defines *****************************************/
141612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYCODETYPE unsigned char
141613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYNOCODE 255
144947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYCODETYPE unsigned short int
144948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYNOCODE 277
141614 144949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YYACTIONTYPE unsigned short int
141615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYWILDCARD 84
144950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYWILDCARD 91
141616 144951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserTOKENTYPE Token
141617 144952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef union {
141618 144953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yyinit;
141619 144954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserTOKENTYPE yy0;
141620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char* yy36;
141621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TriggerStep* yy47;
141622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- With* yy91;
141623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct {int value; int mask;} yy107;
141624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Expr* yy182;
141625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Upsert* yy198;
141626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExprList* yy232;
141627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct TrigEvent yy300;
141628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select* yy399;
141629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SrcList* yy427;
141630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int yy502;
141631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- IdList* yy510;
144955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr* yy18;
144956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct TrigEvent yy34;
144957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ IdList* yy48;
144958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int yy70;
144959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct {int value; int mask;} yy111;
144960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct FrameBound yy119;
144961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SrcList* yy135;
144962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TriggerStep* yy207;
144963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Window* yy327;
144964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Upsert* yy340;
144965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char* yy392;
144966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList* yy420;
144967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ With* yy449;
144968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select* yy489;
141632 144969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} YYMINORTYPE;
141633 144970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef YYSTACKDEPTH
141634 144971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YYSTACKDEPTH 100
141635 144972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
141636 144973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserARG_SDECL
@@ -141642,22 +144979,23 @@
141642 144979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserCTX_PDECL ,Parse *pParse
141643 144980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserCTX_PARAM ,pParse
141644 144981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;
141645 144982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
141646 144983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YYFALLBACK 1
141647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYNSTATE 490
141648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYNRULE 341
141649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYNTOKEN 145
141650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_MAX_SHIFT 489
141651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_MIN_SHIFTREDUCE 705
141652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_MAX_SHIFTREDUCE 1045
141653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_ERROR_ACTION 1046
141654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_ACCEPT_ACTION 1047
141655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_NO_ACTION 1048
141656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_MIN_REDUCE 1049
141657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_MAX_REDUCE 1389
144984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYNSTATE 516
144985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYNRULE 365
144986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYNTOKEN 155
144987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_MAX_SHIFT 515
144988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_MIN_SHIFTREDUCE 750
144989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_MAX_SHIFTREDUCE 1114
144990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_ERROR_ACTION 1115
144991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_ACCEPT_ACTION 1116
144992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_NO_ACTION 1117
144993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_MIN_REDUCE 1118
144994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_MAX_REDUCE 1482
141658 144995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************* End control #defines *******************************************/
144996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
141659 144997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
141660 144998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Define the yytestcase() macro to be a no-op if is not already defined
141661 144999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** otherwise.
141662 145000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
141663 145001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Applications can choose to define yytestcase() in the %include section
@@ -141718,507 +145056,570 @@
141718 145056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** yy_reduce_ofst[] For each state, the offset into yy_action for
141719 145057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** shifting non-terminals after a reduce.
141720 145058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** yy_default[] Default action for each state.
141721 145059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
141722 145060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*********** Begin parsing tables **********************************************/
141723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_ACTTAB_COUNT (1657)
145061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_ACTTAB_COUNT (2009)
141724 145062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const YYACTIONTYPE yy_action[] = {
141725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 349, 99, 96, 185, 99, 96, 185, 233, 1047, 1,
141726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ 1, 489, 2, 1051, 484, 477, 477, 477, 260, 351,
141727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 121, 1310, 1120, 1120, 1178, 1115, 1094, 1128, 380, 380,
141728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 380, 835, 454, 410, 1115, 59, 59, 1357, 425, 836,
141729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 710, 711, 712, 106, 107, 97, 1023, 1023, 900, 903,
141730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ 892, 892, 104, 104, 105, 105, 105, 105, 346, 238,
141731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ 238, 99, 96, 185, 238, 238, 889, 889, 901, 904,
141732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 460, 481, 351, 99, 96, 185, 481, 347, 1177, 82,
141733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 388, 214, 182, 23, 194, 103, 103, 103, 103, 102,
141734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 102, 101, 101, 101, 100, 381, 106, 107, 97, 1023,
141735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 1023, 900, 903, 892, 892, 104, 104, 105, 105, 105,
141736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ 105, 10, 385, 484, 24, 484, 1333, 489, 2, 1051,
141737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 335, 1043, 108, 893, 260, 351, 121, 99, 96, 185,
141738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ 100, 381, 386, 1128, 59, 59, 59, 59, 103, 103,
141739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 103, 103, 102, 102, 101, 101, 101, 100, 381, 106,
141740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 107, 97, 1023, 1023, 900, 903, 892, 892, 104, 104,
141741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 105, 105, 105, 105, 360, 238, 238, 170, 170, 467,
141742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 455, 467, 464, 67, 381, 329, 169, 481, 351, 343,
141743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ 338, 400, 1044, 68, 101, 101, 101, 100, 381, 393,
141744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 194, 103, 103, 103, 103, 102, 102, 101, 101, 101,
141745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 100, 381, 106, 107, 97, 1023, 1023, 900, 903, 892,
141746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 892, 104, 104, 105, 105, 105, 105, 483, 385, 103,
141747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 103, 103, 103, 102, 102, 101, 101, 101, 100, 381,
141748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 268, 351, 946, 946, 422, 296, 102, 102, 101, 101,
141749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 101, 100, 381, 861, 103, 103, 103, 103, 102, 102,
141750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 101, 101, 101, 100, 381, 106, 107, 97, 1023, 1023,
141751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 900, 903, 892, 892, 104, 104, 105, 105, 105, 105,
141752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 484, 983, 1383, 206, 1353, 1383, 438, 435, 434, 281,
141753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 396, 269, 1089, 941, 351, 1002, 433, 861, 743, 401,
141754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 282, 57, 57, 482, 145, 791, 791, 103, 103, 103,
141755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 103, 102, 102, 101, 101, 101, 100, 381, 106, 107,
141756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 97, 1023, 1023, 900, 903, 892, 892, 104, 104, 105,
141757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 105, 105, 105, 281, 1002, 1003, 1004, 206, 879, 319,
141758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 438, 435, 434, 981, 259, 474, 360, 351, 1118, 1118,
141759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 433, 736, 379, 378, 872, 1002, 1356, 322, 871, 766,
141760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 103, 103, 103, 103, 102, 102, 101, 101, 101, 100,
141761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 360 */ 381, 106, 107, 97, 1023, 1023, 900, 903, 892, 892,
141762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 104, 104, 105, 105, 105, 105, 484, 801, 484, 871,
141763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 871, 873, 401, 282, 1002, 1003, 1004, 1030, 360, 1030,
141764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 351, 983, 1384, 213, 880, 1384, 145, 59, 59, 59,
141765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 59, 1002, 244, 103, 103, 103, 103, 102, 102, 101,
141766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 101, 101, 100, 381, 106, 107, 97, 1023, 1023, 900,
141767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 420 */ 903, 892, 892, 104, 104, 105, 105, 105, 105, 274,
141768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 430 */ 484, 110, 467, 479, 467, 444, 259, 474, 232, 232,
141769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 440 */ 1002, 1003, 1004, 351, 210, 335, 982, 866, 1385, 336,
141770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 450 */ 481, 59, 59, 981, 245, 307, 103, 103, 103, 103,
141771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 460 */ 102, 102, 101, 101, 101, 100, 381, 106, 107, 97,
141772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 470 */ 1023, 1023, 900, 903, 892, 892, 104, 104, 105, 105,
141773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 480 */ 105, 105, 453, 459, 484, 408, 377, 259, 474, 271,
141774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 490 */ 183, 273, 209, 208, 207, 356, 351, 307, 178, 177,
141775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 500 */ 127, 1006, 1098, 14, 14, 43, 43, 1044, 425, 103,
141776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 510 */ 103, 103, 103, 102, 102, 101, 101, 101, 100, 381,
141777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 520 */ 106, 107, 97, 1023, 1023, 900, 903, 892, 892, 104,
141778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 530 */ 104, 105, 105, 105, 105, 294, 1132, 408, 160, 484,
141779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 540 */ 408, 1006, 129, 962, 1209, 239, 239, 481, 307, 425,
141780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 550 */ 1309, 1097, 351, 235, 243, 272, 820, 481, 963, 425,
141781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 560 */ 11, 11, 103, 103, 103, 103, 102, 102, 101, 101,
141782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 570 */ 101, 100, 381, 964, 362, 1002, 106, 107, 97, 1023,
141783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 580 */ 1023, 900, 903, 892, 892, 104, 104, 105, 105, 105,
141784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 590 */ 105, 1275, 161, 126, 777, 289, 1209, 292, 1072, 357,
141785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 600 */ 1209, 1127, 476, 357, 778, 425, 247, 425, 351, 248,
141786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 610 */ 414, 364, 414, 171, 1002, 1003, 1004, 84, 103, 103,
141787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 620 */ 103, 103, 102, 102, 101, 101, 101, 100, 381, 1002,
141788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 630 */ 184, 484, 106, 107, 97, 1023, 1023, 900, 903, 892,
141789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 640 */ 892, 104, 104, 105, 105, 105, 105, 1123, 1209, 287,
141790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 650 */ 484, 1209, 11, 11, 179, 820, 259, 474, 307, 237,
141791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 660 */ 182, 351, 321, 365, 414, 308, 367, 366, 1002, 1003,
141792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 670 */ 1004, 44, 44, 87, 103, 103, 103, 103, 102, 102,
141793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 680 */ 101, 101, 101, 100, 381, 106, 107, 97, 1023, 1023,
141794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 690 */ 900, 903, 892, 892, 104, 104, 105, 105, 105, 105,
141795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 700 */ 246, 368, 280, 128, 10, 358, 146, 796, 835, 258,
141796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 710 */ 1020, 88, 795, 86, 351, 421, 836, 943, 376, 348,
141797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 720 */ 191, 943, 1318, 267, 308, 279, 456, 103, 103, 103,
141798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 730 */ 103, 102, 102, 101, 101, 101, 100, 381, 106, 95,
141799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 740 */ 97, 1023, 1023, 900, 903, 892, 892, 104, 104, 105,
141800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 750 */ 105, 105, 105, 420, 249, 238, 238, 238, 238, 79,
141801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 760 */ 375, 125, 305, 29, 262, 978, 351, 481, 337, 481,
141802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 770 */ 756, 755, 304, 278, 415, 15, 81, 940, 1126, 940,
141803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 780 */ 103, 103, 103, 103, 102, 102, 101, 101, 101, 100,
141804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 790 */ 381, 107, 97, 1023, 1023, 900, 903, 892, 892, 104,
141805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 800 */ 104, 105, 105, 105, 105, 457, 263, 484, 174, 484,
141806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 810 */ 238, 238, 863, 407, 402, 216, 216, 351, 409, 193,
141807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 820 */ 283, 216, 481, 81, 763, 764, 266, 5, 13, 13,
141808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 830 */ 34, 34, 103, 103, 103, 103, 102, 102, 101, 101,
141809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 840 */ 101, 100, 381, 97, 1023, 1023, 900, 903, 892, 892,
141810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 850 */ 104, 104, 105, 105, 105, 105, 93, 475, 1002, 4,
141811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 860 */ 403, 1002, 340, 431, 1002, 297, 212, 1277, 81, 746,
141812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 870 */ 1163, 152, 926, 478, 166, 212, 757, 829, 930, 939,
141813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 880 */ 216, 939, 858, 103, 103, 103, 103, 102, 102, 101,
141814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 890 */ 101, 101, 100, 381, 238, 238, 382, 1002, 1003, 1004,
141815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 900 */ 1002, 1003, 1004, 1002, 1003, 1004, 481, 439, 472, 746,
141816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 910 */ 105, 105, 105, 105, 98, 758, 1162, 145, 930, 412,
141817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 920 */ 879, 406, 793, 81, 395, 89, 90, 91, 105, 105,
141818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 930 */ 105, 105, 1323, 92, 484, 382, 486, 485, 240, 275,
141819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 940 */ 871, 103, 103, 103, 103, 102, 102, 101, 101, 101,
141820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 950 */ 100, 381, 1096, 371, 355, 45, 45, 259, 474, 103,
141821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 960 */ 103, 103, 103, 102, 102, 101, 101, 101, 100, 381,
141822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 970 */ 1150, 871, 871, 873, 874, 21, 1332, 991, 384, 730,
141823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 980 */ 722, 242, 123, 1298, 124, 875, 333, 333, 332, 227,
141824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 990 */ 330, 991, 384, 719, 256, 242, 484, 391, 413, 1297,
141825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1000 */ 333, 333, 332, 227, 330, 748, 187, 719, 265, 470,
141826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1010 */ 1279, 1002, 484, 417, 391, 390, 264, 11, 11, 284,
141827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1020 */ 187, 732, 265, 93, 475, 875, 4, 1279, 1281, 419,
141828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1030 */ 264, 369, 416, 11, 11, 1159, 288, 484, 399, 1346,
141829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1040 */ 478, 379, 378, 291, 484, 293, 189, 250, 295, 1027,
141830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1050 */ 1002, 1003, 1004, 190, 1029, 1111, 140, 188, 11, 11,
141831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1060 */ 189, 732, 1028, 382, 923, 46, 46, 190, 1095, 230,
141832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1070 */ 140, 188, 462, 93, 475, 472, 4, 300, 309, 391,
141833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1080 */ 373, 6, 1069, 217, 739, 310, 1030, 879, 1030, 1171,
141834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1090 */ 478, 352, 1279, 90, 91, 800, 259, 474, 1208, 484,
141835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1100 */ 92, 1268, 382, 486, 485, 352, 1002, 871, 879, 426,
141836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1110 */ 259, 474, 172, 382, 238, 238, 1146, 170, 1021, 389,
141837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1120 */ 47, 47, 1157, 739, 872, 472, 481, 469, 871, 350,
141838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1130 */ 1214, 83, 475, 389, 4, 1078, 1071, 879, 871, 871,
141839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1140 */ 873, 874, 21, 90, 91, 1002, 1003, 1004, 478, 251,
141840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1150 */ 92, 251, 382, 486, 485, 443, 370, 871, 1021, 871,
141841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1160 */ 871, 873, 224, 241, 306, 441, 301, 440, 211, 1060,
141842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1170 */ 820, 382, 822, 447, 299, 1059, 484, 1061, 1143, 962,
141843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1180 */ 430, 796, 484, 472, 1340, 312, 795, 465, 871, 871,
141844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1190 */ 873, 874, 21, 314, 963, 879, 316, 59, 59, 1002,
141845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1200 */ 9, 90, 91, 48, 48, 238, 238, 210, 92, 964,
141846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1210 */ 382, 486, 485, 176, 334, 871, 242, 481, 1193, 238,
141847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1220 */ 238, 333, 333, 332, 227, 330, 394, 270, 719, 277,
141848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1230 */ 471, 481, 467, 466, 484, 145, 217, 1201, 1002, 1003,
141849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1240 */ 1004, 187, 3, 265, 184, 445, 871, 871, 873, 874,
141850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1250 */ 21, 264, 1337, 450, 1051, 39, 39, 392, 356, 260,
141851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1260 */ 342, 121, 468, 411, 436, 821, 180, 1094, 1128, 820,
141852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1270 */ 303, 1021, 1272, 1271, 299, 259, 474, 238, 238, 1002,
141853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1280 */ 473, 189, 484, 318, 327, 238, 238, 484, 190, 481,
141854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1290 */ 446, 140, 188, 1343, 238, 238, 1038, 481, 148, 175,
141855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1300 */ 238, 238, 484, 49, 49, 219, 481, 484, 35, 35,
141856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1310 */ 1317, 1021, 481, 484, 1035, 484, 1315, 484, 1002, 1003,
141857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1320 */ 1004, 484, 66, 36, 36, 194, 352, 484, 38, 38,
141858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1330 */ 484, 259, 474, 69, 50, 50, 51, 51, 52, 52,
141859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1340 */ 359, 484, 12, 12, 484, 1198, 484, 158, 53, 53,
141860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1350 */ 405, 112, 112, 385, 389, 484, 26, 484, 143, 484,
141861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1360 */ 150, 484, 54, 54, 397, 40, 40, 55, 55, 484,
141862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1370 */ 79, 484, 153, 1190, 484, 154, 56, 56, 41, 41,
141863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1380 */ 58, 58, 133, 133, 484, 398, 484, 429, 484, 155,
141864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1390 */ 134, 134, 135, 135, 484, 63, 63, 484, 341, 484,
141865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1400 */ 339, 484, 196, 484, 156, 42, 42, 113, 113, 60,
141866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1410 */ 60, 484, 404, 484, 27, 114, 114, 1204, 115, 115,
141867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1420 */ 111, 111, 132, 132, 131, 131, 1266, 418, 484, 162,
141868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1430 */ 484, 200, 119, 119, 118, 118, 484, 74, 424, 484,
141869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1440 */ 1286, 484, 231, 484, 202, 484, 167, 286, 427, 116,
141870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1450 */ 116, 117, 117, 290, 203, 442, 1062, 62, 62, 204,
141871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1460 */ 64, 64, 61, 61, 33, 33, 37, 37, 344, 372,
141872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1470 */ 1114, 1105, 748, 1113, 374, 1112, 254, 458, 1086, 255,
141873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1480 */ 345, 1085, 302, 1084, 1355, 78, 1154, 311, 1104, 449,
141874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1490 */ 452, 1155, 1153, 218, 7, 313, 315, 320, 1152, 85,
141875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1500 */ 1252, 317, 109, 80, 463, 225, 461, 1068, 25, 487,
141876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1510 */ 997, 323, 257, 226, 229, 228, 1136, 324, 325, 326,
141877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1520 */ 488, 136, 1057, 1052, 1302, 1303, 1301, 706, 1300, 137,
141878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1530 */ 122, 138, 383, 173, 1082, 261, 186, 252, 1081, 65,
141879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1540 */ 387, 120, 938, 936, 855, 353, 149, 1079, 139, 151,
141880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1550 */ 192, 780, 195, 276, 952, 157, 141, 361, 70, 363,
141881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1560 */ 859, 159, 71, 72, 142, 73, 955, 354, 147, 197,
141882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1570 */ 198, 951, 130, 16, 199, 285, 216, 1032, 201, 423,
141883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1580 */ 164, 944, 163, 28, 721, 428, 304, 165, 205, 759,
141884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1590 */ 75, 432, 298, 17, 18, 437, 76, 253, 878, 144,
141885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1600 */ 877, 906, 77, 986, 30, 448, 987, 31, 451, 181,
141886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1610 */ 234, 236, 168, 828, 823, 89, 910, 921, 81, 907,
141887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1620 */ 215, 905, 909, 961, 960, 19, 221, 20, 220, 22,
141888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1630 */ 32, 331, 876, 731, 94, 790, 794, 8, 992, 222,
141889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1640 */ 480, 328, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
141890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1650 */ 223, 1048, 1048, 1048, 1048, 1348, 1347,
145063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 510, 423, 364, 105, 102, 196, 14, 244, 1116, 1,
145064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ 1, 515, 2, 1120, 510, 361, 1247, 362, 271, 366,
145065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 127, 37, 37, 1378, 105, 102, 196, 1197, 178, 472,
145066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ 1246, 880, 1184, 1163, 423, 37, 37, 1189, 1189, 881,
145067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 353, 1184, 425, 112, 113, 103, 1092, 1092, 944, 947,
145068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ 937, 937, 110, 110, 111, 111, 111, 111, 278, 249,
145069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ 249, 249, 249, 105, 102, 196, 510, 105, 102, 196,
145070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ 1071, 254, 507, 177, 507, 1187, 1187, 491, 415, 225,
145071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 193, 105, 102, 196, 510, 205, 906, 65, 65, 318,
145072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 249, 249, 109, 109, 109, 109, 108, 108, 107, 107,
145073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 107, 106, 396, 507, 258, 15, 15, 394, 393, 249,
145074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ 249, 1413, 366, 1408, 400, 1096, 1071, 1072, 1073, 377,
145075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 1098, 178, 507, 493, 492, 1411, 1407, 396, 1097, 292,
145076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 411, 280, 366, 365, 134, 152, 112, 113, 103, 1092,
145077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ 1092, 944, 947, 937, 937, 110, 110, 111, 111, 111,
145078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ 111, 1450, 1099, 262, 1099, 262, 112, 113, 103, 1092,
145079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 1092, 944, 947, 937, 937, 110, 110, 111, 111, 111,
145080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 111, 107, 107, 107, 106, 396, 1049, 486, 1047, 509,
145081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 73, 270, 500, 416, 293, 109, 109, 109, 109, 108,
145082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ 108, 107, 107, 107, 106, 396, 366, 111, 111, 111,
145083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 111, 104, 330, 89, 486, 109, 109, 109, 109, 108,
145084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 108, 107, 107, 107, 106, 396, 111, 111, 111, 111,
145085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 112, 113, 103, 1092, 1092, 944, 947, 937, 937, 110,
145086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 110, 111, 111, 111, 111, 109, 109, 109, 109, 108,
145087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 108, 107, 107, 107, 106, 396, 114, 108, 108, 107,
145088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 107, 107, 106, 396, 109, 109, 109, 109, 108, 108,
145089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 107, 107, 107, 106, 396, 394, 393, 106, 396, 109,
145090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 109, 109, 109, 108, 108, 107, 107, 107, 106, 396,
145091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 217, 487, 1400, 453, 450, 449, 510, 1278, 423, 366,
145092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 503, 503, 503, 448, 74, 1071, 109, 109, 109, 109,
145093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 108, 108, 107, 107, 107, 106, 396, 37, 37, 1401,
145094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 1099, 440, 1099, 112, 113, 103, 1092, 1092, 944, 947,
145095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 937, 937, 110, 110, 111, 111, 111, 111, 1426, 515,
145096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 2, 1120, 934, 934, 945, 948, 271, 1071, 127, 477,
145097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 924, 1071, 1072, 1073, 217, 1197, 906, 453, 450, 449,
145098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 388, 167, 510, 1377, 152, 379, 917, 448, 259, 510,
145099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 916, 285, 109, 109, 109, 109, 108, 108, 107, 107,
145100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 107, 106, 396, 15, 15, 429, 846, 249, 249, 224,
145101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 15, 15, 366, 1071, 1072, 1073, 307, 382, 1071, 292,
145102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 507, 916, 916, 918, 384, 27, 938, 1411, 484, 408,
145103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 270, 500, 508, 205, 836, 836, 112, 113, 103, 1092,
145104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 1092, 944, 947, 937, 937, 110, 110, 111, 111, 111,
145105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 420 */ 111, 1430, 282, 1120, 284, 1071, 28, 510, 271, 318,
145106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 430 */ 127, 1422, 400, 385, 1071, 1072, 1073, 1197, 159, 235,
145107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 440 */ 252, 317, 456, 312, 455, 222, 784, 375, 65, 65,
145108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 450 */ 332, 310, 194, 243, 243, 109, 109, 109, 109, 108,
145109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 460 */ 108, 107, 107, 107, 106, 396, 507, 257, 510, 249,
145110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 470 */ 249, 1071, 1072, 1073, 136, 366, 335, 924, 440, 788,
145111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 480 */ 270, 500, 507, 1446, 493, 473, 319, 1071, 429, 65,
145112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 490 */ 65, 1158, 784, 917, 283, 205, 510, 916, 440, 112,
145113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 500 */ 113, 103, 1092, 1092, 944, 947, 937, 937, 110, 110,
145114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 510 */ 111, 111, 111, 111, 279, 1027, 1476, 15, 15, 1476,
145115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 520 */ 403, 510, 383, 1071, 400, 493, 1404, 1386, 916, 916,
145116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 530 */ 918, 261, 463, 1071, 1072, 1073, 173, 1421, 510, 1071,
145117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 540 */ 1343, 510, 45, 45, 168, 990, 990, 437, 109, 109,
145118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 550 */ 109, 109, 108, 108, 107, 107, 107, 106, 396, 63,
145119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 560 */ 63, 510, 15, 15, 249, 249, 375, 510, 366, 1071,
145120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 570 */ 1072, 1073, 781, 5, 401, 355, 488, 507, 464, 3,
145121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 580 */ 291, 1071, 65, 65, 1025, 1071, 1072, 1073, 65, 65,
145122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 590 */ 350, 1112, 112, 113, 103, 1092, 1092, 944, 947, 937,
145123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 600 */ 937, 110, 110, 111, 111, 111, 111, 249, 249, 510,
145124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 610 */ 1071, 1042, 867, 395, 395, 395, 1071, 336, 493, 490,
145125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 620 */ 507, 1041, 1006, 318, 493, 505, 178, 1071, 1072, 1073,
145126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 630 */ 65, 65, 1071, 255, 344, 421, 273, 1007, 358, 290,
145127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 640 */ 88, 109, 109, 109, 109, 108, 108, 107, 107, 107,
145128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 650 */ 106, 396, 1008, 510, 375, 1071, 1071, 1072, 1073, 1113,
145129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 660 */ 510, 366, 1071, 1072, 1073, 1056, 493, 462, 133, 1478,
145130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 670 */ 351, 249, 249, 822, 65, 65, 152, 440, 1071, 1072,
145131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 680 */ 1073, 65, 65, 823, 507, 112, 113, 103, 1092, 1092,
145132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 690 */ 944, 947, 937, 937, 110, 110, 111, 111, 111, 111,
145133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 700 */ 274, 1071, 1072, 1073, 407, 866, 471, 1219, 1027, 1477,
145134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 710 */ 478, 767, 1477, 406, 1195, 1347, 1138, 392, 465, 1196,
145135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 720 */ 987, 256, 270, 500, 987, 445, 1075, 18, 18, 793,
145136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 730 */ 406, 405, 1347, 1349, 109, 109, 109, 109, 108, 108,
145137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 740 */ 107, 107, 107, 106, 396, 510, 249, 249, 249, 249,
145138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 750 */ 249, 249, 221, 510, 366, 251, 435, 246, 925, 507,
145139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 760 */ 865, 507, 468, 507, 318, 429, 49, 49, 494, 9,
145140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 770 */ 414, 228, 802, 1075, 50, 50, 277, 1025, 112, 113,
145141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 780 */ 103, 1092, 1092, 944, 947, 937, 937, 110, 110, 111,
145142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 790 */ 111, 111, 111, 1006, 249, 249, 510, 406, 1345, 1347,
145143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 800 */ 249, 249, 967, 454, 1141, 372, 1090, 507, 1007, 135,
145144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 810 */ 371, 803, 440, 507, 220, 219, 218, 17, 17, 1423,
145145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 820 */ 460, 510, 440, 1008, 510, 1232, 310, 109, 109, 109,
145146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 830 */ 109, 108, 108, 107, 107, 107, 106, 396, 510, 1336,
145147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 840 */ 510, 195, 39, 39, 497, 51, 51, 366, 510, 485,
145148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 850 */ 1278, 911, 6, 1090, 1192, 985, 386, 260, 221, 52,
145149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 860 */ 52, 53, 53, 1439, 298, 510, 865, 366, 510, 54,
145150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 870 */ 54, 112, 113, 103, 1092, 1092, 944, 947, 937, 937,
145151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 880 */ 110, 110, 111, 111, 111, 111, 55, 55, 865, 40,
145152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 890 */ 40, 112, 113, 103, 1092, 1092, 944, 947, 937, 937,
145153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 900 */ 110, 110, 111, 111, 111, 111, 250, 250, 755, 756,
145154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 910 */ 757, 510, 95, 510, 93, 510, 371, 510, 380, 507,
145155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 920 */ 109, 109, 109, 109, 108, 108, 107, 107, 107, 106,
145156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 930 */ 396, 510, 41, 41, 43, 43, 44, 44, 56, 56,
145157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 940 */ 109, 109, 109, 109, 108, 108, 107, 107, 107, 106,
145158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 950 */ 396, 510, 57, 57, 510, 1231, 510, 370, 510, 410,
145159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 960 */ 510, 416, 293, 510, 1291, 510, 1290, 510, 190, 195,
145160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 970 */ 510, 319, 58, 58, 1391, 16, 16, 59, 59, 118,
145161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 980 */ 118, 60, 60, 458, 46, 46, 61, 61, 62, 62,
145162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 990 */ 510, 47, 47, 1201, 865, 91, 510, 474, 510, 461,
145163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1000 */ 510, 461, 510, 228, 510, 507, 510, 390, 510, 841,
145164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1010 */ 510, 64, 64, 1449, 840, 366, 811, 140, 140, 141,
145165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1020 */ 141, 69, 69, 48, 48, 119, 119, 66, 66, 120,
145166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1030 */ 120, 121, 121, 510, 434, 366, 510, 431, 1090, 112,
145167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1040 */ 113, 103, 1092, 1092, 944, 947, 937, 937, 110, 110,
145168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1050 */ 111, 111, 111, 111, 117, 117, 510, 139, 139, 112,
145169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1060 */ 113, 103, 1092, 1092, 944, 947, 937, 937, 110, 110,
145170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1070 */ 111, 111, 111, 111, 305, 427, 116, 138, 138, 510,
145171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1080 */ 86, 510, 131, 475, 510, 1090, 350, 1026, 109, 109,
145172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1090 */ 109, 109, 108, 108, 107, 107, 107, 106, 396, 510,
145173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1100 */ 125, 125, 124, 124, 510, 122, 122, 510, 109, 109,
145174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1110 */ 109, 109, 108, 108, 107, 107, 107, 106, 396, 777,
145175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1120 */ 123, 123, 502, 372, 510, 68, 68, 510, 70, 70,
145176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1130 */ 1089, 510, 286, 14, 1278, 300, 1278, 303, 270, 500,
145177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1140 */ 373, 153, 841, 94, 202, 67, 67, 840, 38, 38,
145178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1150 */ 189, 188, 42, 42, 1278, 1113, 248, 193, 269, 880,
145179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1160 */ 132, 428, 33, 366, 418, 1366, 777, 881, 182, 363,
145180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1170 */ 1022, 289, 908, 352, 88, 227, 422, 424, 294, 227,
145181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1180 */ 227, 88, 446, 366, 19, 223, 903, 112, 113, 103,
145182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1190 */ 1092, 1092, 944, 947, 937, 937, 110, 110, 111, 111,
145183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1200 */ 111, 111, 381, 308, 436, 430, 88, 112, 101, 103,
145184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1210 */ 1092, 1092, 944, 947, 937, 937, 110, 110, 111, 111,
145185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1220 */ 111, 111, 391, 417, 791, 801, 800, 808, 809, 970,
145186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1230 */ 874, 974, 223, 227, 920, 185, 109, 109, 109, 109,
145187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1240 */ 108, 108, 107, 107, 107, 106, 396, 984, 838, 984,
145188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1250 */ 204, 96, 983, 1365, 983, 432, 109, 109, 109, 109,
145189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1260 */ 108, 108, 107, 107, 107, 106, 396, 316, 295, 775,
145190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1270 */ 1228, 791, 130, 299, 1167, 302, 366, 315, 974, 1166,
145191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1280 */ 304, 920, 306, 496, 1180, 1164, 1165, 311, 320, 321,
145192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1290 */ 1240, 267, 1277, 1215, 1226, 495, 366, 1283, 1147, 1140,
145193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1300 */ 1129, 113, 103, 1092, 1092, 944, 947, 937, 937, 110,
145194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1310 */ 110, 111, 111, 111, 111, 1128, 441, 241, 183, 1130,
145195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1320 */ 1212, 1433, 103, 1092, 1092, 944, 947, 937, 937, 110,
145196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1330 */ 110, 111, 111, 111, 111, 349, 323, 325, 327, 288,
145197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1340 */ 426, 191, 187, 99, 501, 409, 4, 499, 314, 109,
145198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1350 */ 109, 109, 109, 108, 108, 107, 107, 107, 106, 396,
145199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1360 */ 504, 13, 1163, 1262, 451, 1340, 281, 329, 1339, 109,
145200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1370 */ 109, 109, 109, 108, 108, 107, 107, 107, 106, 396,
145201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1380 */ 1270, 357, 1436, 397, 230, 342, 1107, 186, 1385, 1383,
145202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1390 */ 1104, 374, 420, 99, 501, 498, 4, 165, 30, 72,
145203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1400 */ 75, 155, 1267, 149, 157, 152, 86, 1259, 412, 160,
145204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1410 */ 504, 413, 161, 162, 924, 163, 444, 207, 356, 31,
145205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1420 */ 97, 97, 8, 354, 1273, 419, 1334, 98, 169, 397,
145206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1430 */ 512, 511, 433, 397, 916, 211, 80, 242, 1354, 439,
145207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1440 */ 297, 213, 174, 301, 442, 498, 1131, 214, 215, 359,
145208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1450 */ 457, 270, 500, 387, 360, 1183, 482, 1182, 1174, 793,
145209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1460 */ 1181, 481, 476, 1154, 924, 916, 916, 918, 919, 25,
145210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1470 */ 97, 97, 1155, 313, 1173, 1153, 265, 98, 1448, 397,
145211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1480 */ 512, 511, 467, 389, 916, 266, 470, 1223, 99, 501,
145212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1490 */ 85, 4, 1224, 229, 480, 489, 332, 331, 322, 181,
145213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1500 */ 1402, 11, 1320, 334, 92, 504, 115, 129, 337, 99,
145214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1510 */ 501, 324, 4, 1222, 1221, 916, 916, 918, 919, 25,
145215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1520 */ 1425, 1060, 399, 326, 328, 253, 504, 1205, 397, 338,
145216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1530 */ 348, 348, 347, 238, 345, 87, 339, 764, 479, 340,
145217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1540 */ 498, 268, 236, 341, 1137, 29, 1066, 237, 513, 397,
145218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1550 */ 198, 482, 276, 240, 514, 239, 483, 1126, 1121, 924,
145219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1560 */ 275, 498, 154, 142, 1370, 97, 97, 368, 369, 143,
145220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1570 */ 1371, 751, 98, 144, 397, 512, 511, 398, 184, 916,
145221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1580 */ 924, 272, 1369, 1368, 128, 197, 97, 97, 845, 1151,
145222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1590 */ 200, 1150, 263, 98, 71, 397, 512, 511, 201, 1148,
145223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1600 */ 916, 146, 402, 126, 982, 980, 900, 156, 199, 203,
145224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1610 */ 916, 916, 918, 919, 25, 145, 158, 825, 996, 206,
145225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1620 */ 287, 99, 501, 164, 4, 147, 376, 904, 378, 76,
145226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1630 */ 166, 916, 916, 918, 919, 25, 77, 78, 504, 79,
145227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1640 */ 148, 999, 367, 208, 209, 995, 137, 270, 500, 20,
145228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1650 */ 210, 296, 227, 1101, 438, 212, 988, 170, 171, 32,
145229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1660 */ 766, 397, 443, 315, 216, 447, 452, 172, 81, 21,
145230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1670 */ 404, 309, 22, 498, 82, 264, 150, 804, 179, 83,
145231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1680 */ 459, 151, 180, 950, 482, 1030, 34, 84, 1031, 481,
145232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1690 */ 466, 35, 924, 192, 469, 245, 247, 873, 97, 97,
145233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1700 */ 175, 226, 96, 868, 1044, 98, 1048, 397, 512, 511,
145234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1710 */ 1060, 399, 916, 23, 253, 10, 1046, 1035, 7, 348,
145235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1720 */ 348, 347, 238, 345, 333, 176, 764, 88, 965, 24,
145236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1730 */ 951, 99, 501, 949, 4, 954, 953, 1005, 1004, 198,
145237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1740 */ 232, 276, 231, 916, 916, 918, 919, 25, 504, 275,
145238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1750 */ 26, 36, 506, 921, 776, 100, 835, 839, 12, 233,
145239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1760 */ 234, 90, 501, 343, 4, 346, 1441, 1440, 1061, 1117,
145240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1770 */ 1117, 397, 1117, 1117, 1117, 1117, 1117, 1117, 504, 200,
145241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1780 */ 1117, 1117, 1117, 498, 1117, 1117, 1117, 201, 1117, 1117,
145242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1790 */ 146, 1117, 1117, 1117, 1117, 1117, 1117, 199, 1117, 1117,
145243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1800 */ 1117, 397, 924, 1117, 1117, 1117, 1117, 1117, 97, 97,
145244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1810 */ 1117, 1117, 1117, 498, 1117, 98, 1117, 397, 512, 511,
145245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1820 */ 1117, 1117, 916, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1830 */ 1117, 367, 924, 1117, 1117, 1117, 270, 500, 97, 97,
145247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1840 */ 1117, 1117, 1117, 1117, 1117, 98, 1117, 397, 512, 511,
145248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1850 */ 1117, 1117, 916, 916, 916, 918, 919, 25, 1117, 404,
145249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1860 */ 1117, 1117, 1117, 253, 1117, 1117, 1117, 1117, 348, 348,
145250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1870 */ 347, 238, 345, 1117, 1117, 764, 1117, 1117, 1117, 1117,
145251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1880 */ 1117, 1117, 1117, 916, 916, 918, 919, 25, 198, 1117,
145252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1890 */ 276, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 275, 1117,
145253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1900 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1910 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1920 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 200, 1117,
145256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1930 */ 1117, 1117, 1117, 1117, 1117, 1117, 201, 1117, 1117, 146,
145257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1940 */ 1117, 1117, 1117, 1117, 1117, 1117, 199, 1117, 1117, 1117,
145258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1950 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1960 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1970 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1980 */ 367, 1117, 1117, 1117, 1117, 270, 500, 1117, 1117, 1117,
145262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1990 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
145263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 2000 */ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 404,
141891 145264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
141892 145265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const YYCODETYPE yy_lookahead[] = {
141893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 174, 226, 227, 228, 226, 227, 228, 172, 145, 146,
141894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ 147, 148, 149, 150, 153, 169, 170, 171, 155, 19,
141895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 157, 246, 192, 193, 177, 181, 182, 164, 169, 170,
141896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 171, 31, 164, 153, 190, 174, 175, 187, 153, 39,
141897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 7, 8, 9, 43, 44, 45, 46, 47, 48, 49,
141898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 174, 196,
141899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ 197, 226, 227, 228, 196, 197, 46, 47, 48, 49,
141900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 209, 208, 19, 226, 227, 228, 208, 174, 177, 26,
141901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 195, 213, 214, 22, 221, 85, 86, 87, 88, 89,
141902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 90, 91, 92, 93, 94, 95, 43, 44, 45, 46,
141903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
141904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ 57, 172, 249, 153, 53, 153, 147, 148, 149, 150,
141905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 22, 23, 69, 103, 155, 19, 157, 226, 227, 228,
141906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ 94, 95, 247, 164, 174, 175, 174, 175, 85, 86,
141907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 43,
141908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
141909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 54, 55, 56, 57, 153, 196, 197, 153, 153, 209,
141910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 210, 209, 210, 67, 95, 161, 237, 208, 19, 165,
141911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ 165, 242, 84, 24, 91, 92, 93, 94, 95, 223,
141912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 221, 85, 86, 87, 88, 89, 90, 91, 92, 93,
141913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 94, 95, 43, 44, 45, 46, 47, 48, 49, 50,
141914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 51, 52, 53, 54, 55, 56, 57, 153, 249, 85,
141915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
141916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 219, 19, 109, 110, 111, 23, 89, 90, 91, 92,
141917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 93, 94, 95, 73, 85, 86, 87, 88, 89, 90,
141918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 91, 92, 93, 94, 95, 43, 44, 45, 46, 47,
141919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
141920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 153, 22, 23, 101, 173, 26, 104, 105, 106, 109,
141921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 110, 111, 181, 11, 19, 59, 114, 73, 23, 110,
141922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 111, 174, 175, 116, 80, 118, 119, 85, 86, 87,
141923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 88, 89, 90, 91, 92, 93, 94, 95, 43, 44,
141924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
141925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 55, 56, 57, 109, 98, 99, 100, 101, 83, 153,
141926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 104, 105, 106, 84, 120, 121, 153, 19, 192, 193,
141927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 114, 23, 89, 90, 99, 59, 23, 230, 103, 26,
141928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
141929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 360 */ 95, 43, 44, 45, 46, 47, 48, 49, 50, 51,
141930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 52, 53, 54, 55, 56, 57, 153, 91, 153, 134,
141931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 135, 136, 110, 111, 98, 99, 100, 134, 153, 136,
141932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 19, 22, 23, 26, 23, 26, 80, 174, 175, 174,
141933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 175, 59, 219, 85, 86, 87, 88, 89, 90, 91,
141934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 92, 93, 94, 95, 43, 44, 45, 46, 47, 48,
141935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 420 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 16,
141936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 430 */ 153, 22, 209, 210, 209, 210, 120, 121, 196, 197,
141937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 440 */ 98, 99, 100, 19, 46, 22, 23, 23, 252, 253,
141938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 450 */ 208, 174, 175, 84, 219, 153, 85, 86, 87, 88,
141939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 460 */ 89, 90, 91, 92, 93, 94, 95, 43, 44, 45,
141940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 470 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
141941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 480 */ 56, 57, 153, 153, 153, 153, 209, 120, 121, 76,
141942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 490 */ 153, 78, 109, 110, 111, 97, 19, 153, 89, 90,
141943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 500 */ 198, 59, 183, 174, 175, 174, 175, 84, 153, 85,
141944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 510 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
141945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 520 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
141946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 530 */ 53, 54, 55, 56, 57, 16, 197, 153, 22, 153,
141947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 540 */ 153, 99, 198, 12, 153, 196, 197, 208, 153, 153,
141948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 550 */ 195, 183, 19, 23, 222, 142, 26, 208, 27, 153,
141949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 560 */ 174, 175, 85, 86, 87, 88, 89, 90, 91, 92,
141950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 570 */ 93, 94, 95, 42, 188, 59, 43, 44, 45, 46,
141951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 580 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
141952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 590 */ 57, 195, 22, 198, 63, 76, 153, 78, 167, 168,
141953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 600 */ 153, 195, 167, 168, 73, 153, 222, 153, 19, 222,
141954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 610 */ 153, 220, 153, 24, 98, 99, 100, 140, 85, 86,
141955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 620 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 59,
141956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 630 */ 100, 153, 43, 44, 45, 46, 47, 48, 49, 50,
141957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 640 */ 51, 52, 53, 54, 55, 56, 57, 195, 153, 195,
141958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 650 */ 153, 153, 174, 175, 26, 125, 120, 121, 153, 213,
141959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 660 */ 214, 19, 153, 220, 153, 153, 188, 220, 98, 99,
141960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 670 */ 100, 174, 175, 140, 85, 86, 87, 88, 89, 90,
141961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 680 */ 91, 92, 93, 94, 95, 43, 44, 45, 46, 47,
145266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 163, 163, 184, 238, 239, 240, 182, 182, 155, 156,
145267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ 157, 158, 159, 160, 163, 184, 187, 184, 165, 19,
145268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 167, 184, 185, 258, 238, 239, 240, 174, 163, 174,
145269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ 187, 31, 191, 192, 163, 184, 185, 202, 203, 39,
145270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 175, 200, 163, 43, 44, 45, 46, 47, 48, 49,
145271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 174, 206,
145272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ 207, 206, 207, 238, 239, 240, 163, 238, 239, 240,
145273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ 59, 233, 219, 249, 219, 202, 203, 174, 254, 224,
145274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 225, 238, 239, 240, 163, 232, 73, 184, 185, 163,
145275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 206, 207, 92, 93, 94, 95, 96, 97, 98, 99,
145276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 100, 101, 102, 219, 233, 184, 185, 96, 97, 206,
145277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ 207, 274, 19, 276, 261, 104, 105, 106, 107, 198,
145278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 109, 163, 219, 220, 221, 274, 275, 102, 117, 116,
145279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 117, 118, 19, 175, 208, 81, 43, 44, 45, 46,
145280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
145281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ 57, 197, 141, 195, 143, 197, 43, 44, 45, 46,
145282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
145283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 57, 98, 99, 100, 101, 102, 83, 163, 85, 163,
145284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 67, 127, 128, 117, 118, 92, 93, 94, 95, 96,
145285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ 97, 98, 99, 100, 101, 102, 19, 54, 55, 56,
145286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 57, 58, 163, 26, 163, 92, 93, 94, 95, 96,
145287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 97, 98, 99, 100, 101, 102, 54, 55, 56, 57,
145288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
145289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 53, 54, 55, 56, 57, 92, 93, 94, 95, 96,
145290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 97, 98, 99, 100, 101, 102, 69, 96, 97, 98,
145291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 99, 100, 101, 102, 92, 93, 94, 95, 96, 97,
145292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 98, 99, 100, 101, 102, 96, 97, 101, 102, 92,
145293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
145294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 108, 267, 268, 111, 112, 113, 163, 163, 163, 19,
145295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 179, 180, 181, 121, 24, 59, 92, 93, 94, 95,
145296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 96, 97, 98, 99, 100, 101, 102, 184, 185, 268,
145297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 141, 163, 143, 43, 44, 45, 46, 47, 48, 49,
145298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 50, 51, 52, 53, 54, 55, 56, 57, 157, 158,
145299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 159, 160, 46, 47, 48, 49, 165, 59, 167, 163,
145300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 90, 105, 106, 107, 108, 174, 73, 111, 112, 113,
145301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 19, 22, 163, 205, 81, 231, 106, 121, 233, 163,
145302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 110, 16, 92, 93, 94, 95, 96, 97, 98, 99,
145303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 100, 101, 102, 184, 185, 163, 98, 206, 207, 26,
145304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 184, 185, 19, 105, 106, 107, 23, 198, 59, 116,
145305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 219, 141, 142, 143, 198, 22, 110, 274, 275, 234,
145306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 127, 128, 123, 232, 125, 126, 43, 44, 45, 46,
145307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
145308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 420 */ 57, 158, 77, 160, 79, 59, 53, 163, 165, 163,
145309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 430 */ 167, 163, 261, 102, 105, 106, 107, 174, 72, 108,
145310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 440 */ 109, 110, 111, 112, 113, 114, 59, 163, 184, 185,
145311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 450 */ 22, 120, 163, 206, 207, 92, 93, 94, 95, 96,
145312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 460 */ 97, 98, 99, 100, 101, 102, 219, 255, 163, 206,
145313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 470 */ 207, 105, 106, 107, 208, 19, 163, 90, 163, 23,
145314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 480 */ 127, 128, 219, 183, 220, 221, 163, 59, 163, 184,
145315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 490 */ 185, 191, 105, 106, 149, 232, 163, 110, 163, 43,
145316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 500 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
145317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 510 */ 54, 55, 56, 57, 230, 22, 23, 184, 185, 26,
145318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 520 */ 205, 163, 199, 59, 261, 220, 221, 163, 141, 142,
145319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 530 */ 143, 198, 174, 105, 106, 107, 72, 269, 163, 59,
145320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 540 */ 205, 163, 184, 185, 22, 116, 117, 118, 92, 93,
145321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 550 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 184,
145322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 560 */ 185, 163, 184, 185, 206, 207, 163, 163, 19, 105,
145323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 570 */ 106, 107, 23, 22, 259, 174, 198, 219, 220, 22,
145324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 580 */ 255, 59, 184, 185, 91, 105, 106, 107, 184, 185,
145325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 590 */ 22, 23, 43, 44, 45, 46, 47, 48, 49, 50,
145326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 600 */ 51, 52, 53, 54, 55, 56, 57, 206, 207, 163,
145327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 610 */ 59, 76, 132, 179, 180, 181, 59, 242, 220, 221,
145328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 620 */ 219, 86, 12, 163, 220, 221, 163, 105, 106, 107,
145329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 630 */ 184, 185, 59, 230, 171, 234, 163, 27, 175, 174,
145330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 640 */ 26, 92, 93, 94, 95, 96, 97, 98, 99, 100,
145331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 650 */ 101, 102, 42, 163, 163, 59, 105, 106, 107, 91,
145332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 660 */ 163, 19, 105, 106, 107, 23, 220, 221, 208, 264,
145333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 670 */ 265, 206, 207, 63, 184, 185, 81, 163, 105, 106,
145334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 680 */ 107, 184, 185, 73, 219, 43, 44, 45, 46, 47,
141962 145335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 690 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
141963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 700 */ 243, 189, 243, 198, 172, 250, 251, 117, 31, 201,
141964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 710 */ 26, 139, 122, 141, 19, 220, 39, 29, 220, 211,
141965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 720 */ 24, 33, 153, 164, 153, 164, 19, 85, 86, 87,
141966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 730 */ 88, 89, 90, 91, 92, 93, 94, 95, 43, 44,
141967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 740 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
141968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 750 */ 55, 56, 57, 65, 243, 196, 197, 196, 197, 131,
141969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 760 */ 189, 22, 103, 24, 153, 23, 19, 208, 26, 208,
141970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 770 */ 102, 103, 113, 23, 242, 22, 26, 134, 164, 136,
141971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 780 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
141972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 790 */ 95, 44, 45, 46, 47, 48, 49, 50, 51, 52,
141973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 800 */ 53, 54, 55, 56, 57, 98, 153, 153, 124, 153,
141974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 810 */ 196, 197, 23, 23, 61, 26, 26, 19, 23, 123,
141975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 820 */ 23, 26, 208, 26, 7, 8, 153, 22, 174, 175,
141976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 830 */ 174, 175, 85, 86, 87, 88, 89, 90, 91, 92,
141977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 840 */ 93, 94, 95, 45, 46, 47, 48, 49, 50, 51,
141978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 850 */ 52, 53, 54, 55, 56, 57, 19, 20, 59, 22,
141979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 860 */ 111, 59, 164, 23, 59, 23, 26, 153, 26, 59,
141980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 870 */ 153, 72, 23, 36, 72, 26, 35, 23, 59, 134,
141981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 880 */ 26, 136, 133, 85, 86, 87, 88, 89, 90, 91,
141982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 890 */ 92, 93, 94, 95, 196, 197, 59, 98, 99, 100,
141983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 900 */ 98, 99, 100, 98, 99, 100, 208, 66, 71, 99,
141984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 910 */ 54, 55, 56, 57, 58, 74, 153, 80, 99, 19,
141985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 920 */ 83, 223, 23, 26, 153, 26, 89, 90, 54, 55,
141986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 930 */ 56, 57, 153, 96, 153, 98, 99, 100, 22, 153,
141987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 940 */ 103, 85, 86, 87, 88, 89, 90, 91, 92, 93,
141988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 950 */ 94, 95, 183, 112, 158, 174, 175, 120, 121, 85,
141989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 960 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
141990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 970 */ 215, 134, 135, 136, 137, 138, 0, 1, 2, 23,
141991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 980 */ 21, 5, 26, 153, 22, 59, 10, 11, 12, 13,
141992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 990 */ 14, 1, 2, 17, 212, 5, 153, 153, 98, 153,
141993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1000 */ 10, 11, 12, 13, 14, 108, 30, 17, 32, 193,
141994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1010 */ 153, 59, 153, 153, 170, 171, 40, 174, 175, 153,
141995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1020 */ 30, 59, 32, 19, 20, 99, 22, 170, 171, 233,
141996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1030 */ 40, 188, 236, 174, 175, 153, 153, 153, 79, 123,
141997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1040 */ 36, 89, 90, 153, 153, 153, 70, 188, 153, 97,
141998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1050 */ 98, 99, 100, 77, 102, 153, 80, 81, 174, 175,
141999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1060 */ 70, 99, 110, 59, 105, 174, 175, 77, 153, 238,
142000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1070 */ 80, 81, 188, 19, 20, 71, 22, 153, 153, 235,
142001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1080 */ 19, 22, 164, 24, 59, 153, 134, 83, 136, 153,
142002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1090 */ 36, 115, 235, 89, 90, 91, 120, 121, 153, 153,
142003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1100 */ 96, 142, 98, 99, 100, 115, 59, 103, 83, 239,
142004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1110 */ 120, 121, 199, 59, 196, 197, 153, 153, 59, 143,
142005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1120 */ 174, 175, 153, 98, 99, 71, 208, 153, 103, 165,
142006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1130 */ 153, 19, 20, 143, 22, 153, 153, 83, 134, 135,
142007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1140 */ 136, 137, 138, 89, 90, 98, 99, 100, 36, 185,
142008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1150 */ 96, 187, 98, 99, 100, 91, 95, 103, 99, 134,
142009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1160 */ 135, 136, 101, 102, 103, 104, 105, 106, 107, 153,
142010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1170 */ 26, 59, 125, 164, 113, 153, 153, 153, 212, 12,
142011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1180 */ 19, 117, 153, 71, 153, 212, 122, 164, 134, 135,
142012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1190 */ 136, 137, 138, 212, 27, 83, 212, 174, 175, 59,
142013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1200 */ 200, 89, 90, 174, 175, 196, 197, 46, 96, 42,
142014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1210 */ 98, 99, 100, 172, 151, 103, 5, 208, 203, 196,
142015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1220 */ 197, 10, 11, 12, 13, 14, 216, 216, 17, 244,
142016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1230 */ 63, 208, 209, 210, 153, 80, 24, 203, 98, 99,
142017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1240 */ 100, 30, 22, 32, 100, 164, 134, 135, 136, 137,
142018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1250 */ 138, 40, 148, 164, 150, 174, 175, 102, 97, 155,
142019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1260 */ 203, 157, 164, 244, 178, 125, 186, 182, 164, 125,
142020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1270 */ 177, 59, 177, 177, 113, 120, 121, 196, 197, 59,
142021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1280 */ 232, 70, 153, 216, 202, 196, 197, 153, 77, 208,
142022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1290 */ 209, 80, 81, 156, 196, 197, 60, 208, 248, 200,
142023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1300 */ 196, 197, 153, 174, 175, 123, 208, 153, 174, 175,
142024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1310 */ 160, 99, 208, 153, 38, 153, 160, 153, 98, 99,
142025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1320 */ 100, 153, 245, 174, 175, 221, 115, 153, 174, 175,
142026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1330 */ 153, 120, 121, 245, 174, 175, 174, 175, 174, 175,
142027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1340 */ 160, 153, 174, 175, 153, 225, 153, 22, 174, 175,
142028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1350 */ 97, 174, 175, 249, 143, 153, 224, 153, 43, 153,
142029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1360 */ 191, 153, 174, 175, 18, 174, 175, 174, 175, 153,
142030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1370 */ 131, 153, 194, 203, 153, 194, 174, 175, 174, 175,
142031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1380 */ 174, 175, 174, 175, 153, 160, 153, 18, 153, 194,
142032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1390 */ 174, 175, 174, 175, 153, 174, 175, 153, 225, 153,
142033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1400 */ 203, 153, 159, 153, 194, 174, 175, 174, 175, 174,
142034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1410 */ 175, 153, 203, 153, 224, 174, 175, 191, 174, 175,
142035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1420 */ 174, 175, 174, 175, 174, 175, 203, 160, 153, 191,
142036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1430 */ 153, 159, 174, 175, 174, 175, 153, 139, 62, 153,
142037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1440 */ 241, 153, 160, 153, 159, 153, 22, 240, 179, 174,
142038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1450 */ 175, 174, 175, 160, 159, 97, 160, 174, 175, 159,
142039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1460 */ 174, 175, 174, 175, 174, 175, 174, 175, 179, 64,
142040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1470 */ 176, 184, 108, 176, 95, 176, 234, 126, 176, 234,
142041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1480 */ 179, 178, 176, 176, 176, 97, 218, 217, 184, 179,
142042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1490 */ 179, 218, 218, 160, 22, 217, 217, 160, 218, 139,
142043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1500 */ 229, 217, 130, 129, 127, 25, 128, 163, 26, 162,
142044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1510 */ 13, 206, 231, 154, 6, 154, 207, 205, 204, 203,
142045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1520 */ 152, 166, 152, 152, 172, 172, 172, 4, 172, 166,
142046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1530 */ 180, 166, 3, 22, 172, 144, 15, 180, 172, 172,
142047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1540 */ 82, 16, 23, 23, 121, 254, 132, 172, 112, 124,
142048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1550 */ 24, 20, 126, 16, 1, 124, 112, 61, 53, 37,
142049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1560 */ 133, 132, 53, 53, 112, 53, 98, 254, 251, 34,
142050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1570 */ 123, 1, 5, 22, 97, 142, 26, 75, 123, 41,
142051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1580 */ 97, 68, 68, 24, 20, 19, 113, 22, 107, 28,
142052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1590 */ 22, 67, 23, 22, 22, 67, 22, 67, 23, 37,
142053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1600 */ 23, 23, 26, 23, 22, 24, 23, 22, 24, 123,
142054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1610 */ 23, 23, 22, 98, 125, 26, 11, 23, 26, 23,
142055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1620 */ 34, 23, 23, 23, 23, 34, 22, 34, 26, 22,
142056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1630 */ 22, 15, 23, 23, 22, 117, 23, 22, 1, 123,
142057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1640 */ 26, 23, 255, 255, 255, 255, 255, 255, 255, 255,
142058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1650 */ 123, 255, 255, 255, 255, 123, 123, 255, 255, 255,
142059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1660 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1670 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1680 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1690 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1700 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1710 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1720 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1730 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1740 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1750 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1760 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1770 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1780 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1790 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
142073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1800 */ 255, 255,
142074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
142075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_SHIFT_COUNT (489)
145336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 700 */ 163, 105, 106, 107, 109, 132, 163, 226, 22, 23,
145337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 710 */ 220, 21, 26, 163, 174, 163, 174, 220, 174, 205,
145338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 720 */ 29, 230, 127, 128, 33, 19, 59, 184, 185, 115,
145339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 730 */ 180, 181, 180, 181, 92, 93, 94, 95, 96, 97,
145340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 740 */ 98, 99, 100, 101, 102, 163, 206, 207, 206, 207,
145341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 750 */ 206, 207, 46, 163, 19, 22, 65, 23, 23, 219,
145342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 760 */ 26, 219, 174, 219, 163, 163, 184, 185, 174, 22,
145343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 770 */ 80, 24, 35, 106, 184, 185, 163, 91, 43, 44,
145344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 780 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
145345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 790 */ 55, 56, 57, 12, 206, 207, 163, 247, 163, 247,
145346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 800 */ 206, 207, 112, 66, 177, 178, 59, 219, 27, 208,
145347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 810 */ 104, 74, 163, 219, 116, 117, 118, 184, 185, 153,
145348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 820 */ 154, 163, 163, 42, 163, 163, 120, 92, 93, 94,
145349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 830 */ 95, 96, 97, 98, 99, 100, 101, 102, 163, 149,
145350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 840 */ 163, 107, 184, 185, 63, 184, 185, 19, 163, 270,
145351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 850 */ 163, 23, 273, 106, 205, 11, 119, 255, 46, 184,
145352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 860 */ 185, 184, 185, 130, 205, 163, 132, 19, 163, 184,
145353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 870 */ 185, 43, 44, 45, 46, 47, 48, 49, 50, 51,
145354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 880 */ 52, 53, 54, 55, 56, 57, 184, 185, 26, 184,
145355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 890 */ 185, 43, 44, 45, 46, 47, 48, 49, 50, 51,
145356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 900 */ 52, 53, 54, 55, 56, 57, 206, 207, 7, 8,
145357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 910 */ 9, 163, 146, 163, 148, 163, 104, 163, 231, 219,
145358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 920 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
145359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 930 */ 102, 163, 184, 185, 184, 185, 184, 185, 184, 185,
145360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 940 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
145361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 950 */ 102, 163, 184, 185, 163, 163, 163, 168, 163, 163,
145362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 960 */ 163, 117, 118, 163, 237, 163, 237, 163, 26, 107,
145363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 970 */ 163, 163, 184, 185, 163, 184, 185, 184, 185, 184,
145364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 980 */ 185, 184, 185, 98, 184, 185, 184, 185, 184, 185,
145365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 990 */ 163, 184, 185, 207, 132, 147, 163, 19, 163, 272,
145366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1000 */ 163, 272, 163, 24, 163, 219, 163, 199, 163, 124,
145367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1010 */ 163, 184, 185, 23, 129, 19, 26, 184, 185, 184,
145368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1020 */ 185, 184, 185, 184, 185, 184, 185, 184, 185, 184,
145369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1030 */ 185, 184, 185, 163, 245, 19, 163, 248, 59, 43,
145370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1040 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
145371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1050 */ 54, 55, 56, 57, 184, 185, 163, 184, 185, 43,
145372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1060 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
145373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1070 */ 54, 55, 56, 57, 16, 19, 22, 184, 185, 163,
145374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1080 */ 138, 163, 22, 105, 163, 106, 22, 23, 92, 93,
145375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1090 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 163,
145376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1100 */ 184, 185, 184, 185, 163, 184, 185, 163, 92, 93,
145377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1110 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 59,
145378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1120 */ 184, 185, 177, 178, 163, 184, 185, 163, 184, 185,
145379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1130 */ 26, 163, 163, 182, 163, 77, 163, 79, 127, 128,
145380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1140 */ 262, 263, 124, 147, 24, 184, 185, 129, 184, 185,
145381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1150 */ 96, 97, 184, 185, 163, 91, 224, 225, 211, 31,
145382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1160 */ 22, 105, 24, 19, 118, 163, 106, 39, 24, 222,
145383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1170 */ 23, 23, 23, 26, 26, 26, 23, 23, 23, 26,
145384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1180 */ 26, 26, 23, 19, 22, 26, 140, 43, 44, 45,
145385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1190 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
145386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1200 */ 56, 57, 231, 23, 231, 254, 26, 43, 44, 45,
145387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1210 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
145388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1220 */ 56, 57, 231, 61, 59, 109, 110, 7, 8, 23,
145389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1230 */ 23, 59, 26, 26, 59, 131, 92, 93, 94, 95,
145390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1240 */ 96, 97, 98, 99, 100, 101, 102, 141, 23, 143,
145391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1250 */ 130, 26, 141, 163, 143, 163, 92, 93, 94, 95,
145392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1260 */ 96, 97, 98, 99, 100, 101, 102, 110, 163, 23,
145393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1270 */ 163, 106, 26, 163, 193, 163, 19, 120, 106, 193,
145394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1280 */ 163, 106, 163, 203, 163, 163, 193, 163, 163, 163,
145395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1290 */ 163, 223, 163, 163, 163, 163, 19, 163, 163, 163,
145396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1300 */ 163, 44, 45, 46, 47, 48, 49, 50, 51, 52,
145397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1310 */ 53, 54, 55, 56, 57, 163, 251, 250, 209, 163,
145398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1320 */ 223, 163, 45, 46, 47, 48, 49, 50, 51, 52,
145399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1330 */ 53, 54, 55, 56, 57, 161, 223, 223, 223, 256,
145400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1340 */ 256, 196, 182, 19, 20, 227, 22, 244, 187, 92,
145401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1350 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
145402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1360 */ 36, 210, 192, 213, 188, 187, 227, 227, 187, 92,
145403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1370 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
145404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1380 */ 213, 213, 166, 59, 130, 212, 60, 210, 170, 170,
145405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1390 */ 38, 170, 104, 19, 20, 71, 22, 22, 235, 257,
145406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1400 */ 257, 260, 236, 43, 201, 81, 138, 213, 18, 204,
145407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1410 */ 36, 170, 204, 204, 90, 204, 18, 169, 236, 235,
145408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1420 */ 96, 97, 48, 213, 201, 213, 213, 103, 201, 105,
145409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1430 */ 106, 107, 170, 59, 110, 169, 146, 170, 253, 62,
145410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1440 */ 252, 169, 22, 170, 189, 71, 170, 169, 169, 189,
145411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1450 */ 104, 127, 128, 64, 189, 186, 82, 186, 194, 115,
145412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1460 */ 186, 87, 133, 188, 90, 141, 142, 143, 144, 145,
145413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1470 */ 96, 97, 186, 186, 194, 186, 246, 103, 186, 105,
145414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1480 */ 106, 107, 189, 102, 110, 246, 189, 229, 19, 20,
145415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1490 */ 104, 22, 229, 170, 84, 134, 22, 271, 228, 217,
145416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1500 */ 269, 22, 241, 170, 146, 36, 137, 152, 217, 19,
145417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1510 */ 20, 228, 22, 229, 229, 141, 142, 143, 144, 145,
145418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1520 */ 0, 1, 2, 228, 228, 5, 36, 218, 59, 216,
145419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1530 */ 10, 11, 12, 13, 14, 136, 215, 17, 135, 214,
145420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1540 */ 71, 243, 25, 213, 173, 26, 13, 164, 172, 59,
145421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1550 */ 30, 82, 32, 6, 162, 164, 87, 162, 162, 90,
145422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1560 */ 40, 71, 263, 176, 182, 96, 97, 266, 266, 176,
145423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1570 */ 182, 4, 103, 176, 105, 106, 107, 3, 22, 110,
145424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1580 */ 90, 151, 182, 182, 190, 15, 96, 97, 98, 182,
145425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1590 */ 70, 182, 190, 103, 182, 105, 106, 107, 78, 182,
145426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1600 */ 110, 81, 89, 16, 23, 23, 128, 139, 88, 24,
145427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1610 */ 141, 142, 143, 144, 145, 119, 131, 20, 1, 133,
145428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1620 */ 16, 19, 20, 131, 22, 119, 61, 140, 37, 53,
145429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1630 */ 139, 141, 142, 143, 144, 145, 53, 53, 36, 53,
145430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1640 */ 119, 105, 122, 34, 130, 1, 5, 127, 128, 22,
145431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1650 */ 104, 149, 26, 75, 41, 130, 68, 68, 104, 24,
145432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1660 */ 20, 59, 19, 120, 114, 67, 67, 22, 22, 22,
145433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1670 */ 150, 23, 22, 71, 22, 67, 37, 28, 23, 138,
145434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1680 */ 22, 153, 23, 23, 82, 23, 22, 26, 23, 87,
145435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1690 */ 24, 22, 90, 130, 24, 23, 23, 105, 96, 97,
145436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1700 */ 22, 34, 26, 132, 85, 103, 75, 105, 106, 107,
145437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1710 */ 1, 2, 110, 34, 5, 34, 83, 23, 44, 10,
145438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1720 */ 11, 12, 13, 14, 24, 26, 17, 26, 23, 34,
145439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1730 */ 23, 19, 20, 23, 22, 11, 23, 23, 23, 30,
145440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1740 */ 22, 32, 26, 141, 142, 143, 144, 145, 36, 40,
145441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1750 */ 22, 22, 26, 23, 23, 22, 124, 23, 22, 130,
145442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1760 */ 130, 19, 20, 23, 22, 15, 130, 130, 1, 277,
145443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1770 */ 277, 59, 277, 277, 277, 277, 277, 277, 36, 70,
145444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1780 */ 277, 277, 277, 71, 277, 277, 277, 78, 277, 277,
145445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1790 */ 81, 277, 277, 277, 277, 277, 277, 88, 277, 277,
145446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1800 */ 277, 59, 90, 277, 277, 277, 277, 277, 96, 97,
145447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1810 */ 277, 277, 277, 71, 277, 103, 277, 105, 106, 107,
145448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1820 */ 277, 277, 110, 277, 277, 277, 277, 277, 277, 277,
145449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1830 */ 277, 122, 90, 277, 277, 277, 127, 128, 96, 97,
145450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1840 */ 277, 277, 277, 277, 277, 103, 277, 105, 106, 107,
145451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1850 */ 277, 277, 110, 141, 142, 143, 144, 145, 277, 150,
145452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1860 */ 277, 277, 277, 5, 277, 277, 277, 277, 10, 11,
145453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1870 */ 12, 13, 14, 277, 277, 17, 277, 277, 277, 277,
145454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1880 */ 277, 277, 277, 141, 142, 143, 144, 145, 30, 277,
145455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1890 */ 32, 277, 277, 277, 277, 277, 277, 277, 40, 277,
145456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1900 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
145457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1910 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
145458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1920 */ 277, 277, 277, 277, 277, 277, 277, 277, 70, 277,
145459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1930 */ 277, 277, 277, 277, 277, 277, 78, 277, 277, 81,
145460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1940 */ 277, 277, 277, 277, 277, 277, 88, 277, 277, 277,
145461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1950 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
145462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1960 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
145463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1970 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
145464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1980 */ 122, 277, 277, 277, 277, 127, 128, 277, 277, 277,
145465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1990 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
145466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 2000 */ 277, 277, 277, 277, 277, 277, 277, 277, 150, 277,
145467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 2010 */ 277, 277, 277, 277, 277, 277, 277, 277, 277,
145468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
145469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_SHIFT_COUNT (515)
142076 145470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_SHIFT_MIN (0)
142077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_SHIFT_MAX (1637)
145471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_SHIFT_MAX (1858)
142078 145472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const unsigned short int yy_shift_ofst[] = {
142079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 990, 976, 1211, 837, 837, 316, 1054, 1054, 1054, 1054,
142080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ 214, 0, 0, 106, 642, 1054, 1054, 1054, 1054, 1054,
142081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 1054, 1054, 1054, 952, 952, 226, 1155, 316, 316, 316,
142082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 316, 316, 316, 53, 159, 212, 265, 318, 371, 424,
142083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 477, 533, 589, 642, 642, 642, 642, 642, 642, 642,
142084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ 642, 642, 642, 642, 642, 642, 642, 642, 642, 642,
142085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ 695, 642, 747, 798, 798, 1004, 1054, 1054, 1054, 1054,
142086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054,
142087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054,
142088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1112, 1054, 1054,
142089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054,
142090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ 1054, 856, 874, 874, 874, 874, 874, 134, 147, 93,
142091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 342, 959, 1161, 253, 253, 342, 367, 367, 367, 367,
142092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ 179, 36, 79, 1657, 1657, 1657, 1061, 1061, 1061, 516,
142093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 799, 516, 516, 531, 531, 802, 249, 369, 342, 342,
142094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
142095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 342, 342, 342, 342, 342, 342, 342, 342, 342, 272,
142096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 442, 442, 536, 1657, 1657, 1657, 1025, 245, 245, 570,
142097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ 172, 286, 805, 1047, 1140, 1220, 342, 342, 342, 342,
142098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 342, 342, 342, 342, 170, 342, 342, 342, 342, 342,
142099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 342, 342, 342, 342, 342, 342, 342, 841, 841, 841,
142100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 342, 342, 342, 342, 530, 342, 342, 342, 1059, 342,
142101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 342, 1167, 342, 342, 342, 342, 342, 342, 342, 342,
142102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 123, 688, 177, 1212, 1212, 1212, 1212, 1144, 177, 177,
142103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 1064, 409, 33, 628, 707, 707, 900, 628, 628, 900,
142104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 897, 323, 398, 677, 677, 677, 707, 572, 684, 590,
142105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 739, 1236, 1182, 1182, 1276, 1276, 1182, 1253, 1325, 1315,
142106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 1239, 1346, 1346, 1346, 1346, 1182, 1369, 1239, 1239, 1253,
142107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 1325, 1315, 1315, 1239, 1182, 1369, 1298, 1376, 1182, 1369,
142108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 1424, 1182, 1369, 1182, 1369, 1424, 1358, 1358, 1358, 1405,
142109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 1424, 1358, 1364, 1358, 1405, 1358, 1358, 1424, 1379, 1379,
142110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 1424, 1351, 1388, 1351, 1388, 1351, 1388, 1351, 1388, 1182,
142111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 1472, 1182, 1360, 1372, 1377, 1374, 1378, 1239, 1480, 1482,
142112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 1497, 1497, 1508, 1508, 1508, 1657, 1657, 1657, 1657, 1657,
142113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
142114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 1657, 20, 413, 98, 423, 519, 383, 962, 742, 61,
142115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 360 */ 696, 749, 750, 753, 789, 790, 795, 797, 840, 842,
142116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 810, 668, 817, 659, 819, 849, 854, 899, 643, 745,
142117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 956, 926, 916, 1523, 1529, 1511, 1391, 1521, 1458, 1525,
142118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 1519, 1520, 1423, 1414, 1436, 1526, 1425, 1531, 1426, 1537,
142119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 1553, 1431, 1427, 1444, 1496, 1522, 1429, 1505, 1509, 1510,
142120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 1512, 1452, 1468, 1535, 1447, 1570, 1567, 1551, 1477, 1433,
142121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 420 */ 1513, 1550, 1514, 1502, 1538, 1455, 1483, 1559, 1564, 1566,
142122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 430 */ 1473, 1481, 1565, 1524, 1568, 1571, 1569, 1572, 1528, 1561,
142123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 440 */ 1574, 1530, 1562, 1575, 1577, 1578, 1576, 1580, 1582, 1581,
142124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 450 */ 1583, 1585, 1584, 1486, 1587, 1588, 1515, 1586, 1590, 1489,
142125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 460 */ 1589, 1591, 1592, 1593, 1594, 1596, 1598, 1589, 1599, 1600,
142126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 470 */ 1602, 1601, 1604, 1605, 1607, 1608, 1609, 1610, 1612, 1613,
142127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 480 */ 1615, 1614, 1518, 1516, 1527, 1532, 1533, 1618, 1616, 1637,
142128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
142129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_REDUCE_COUNT (350)
142130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_REDUCE_MIN (-225)
142131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_REDUCE_MAX (1375)
145473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 1709, 1520, 1858, 1324, 1324, 54, 1374, 1469, 1602, 1712,
145474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ 1712, 1712, 1712, 1712, 273, 0, 0, 113, 1016, 1712,
145475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 11, 11, 236,
145476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ 595, 54, 54, 54, 54, 54, 54, 93, 177, 270,
145477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 363, 456, 549, 642, 735, 828, 848, 996, 1144, 1016,
145478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
145479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ 1016, 1016, 1016, 1016, 1016, 1016, 1164, 1016, 1257, 1277,
145480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ 1277, 1490, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
145481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
145482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
145483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 1712, 1712, 1712, 1742, 1712, 1712, 1712, 1712, 1712, 1712,
145484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 143, 162, 162,
145485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 162, 162, 162, 204, 151, 73, 596, 690, 706, 596,
145486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 169, 169, 596, 353, 353, 353, 353, 66, 166, 25,
145487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ 2009, 2009, 331, 331, 331, 329, 366, 329, 329, 610,
145488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ 610, 428, 464, 493, 686, 596, 596, 596, 596, 596,
145489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
145490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 596, 596, 596, 596, 596, 596, 596, 844, 667, 666,
145491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 666, 535, 667, 1011, 2009, 2009, 2009, 387, 250, 250,
145492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ 522, 172, 278, 551, 480, 573, 557, 596, 596, 596,
145493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 596, 596, 596, 596, 596, 13, 596, 596, 596, 596,
145494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 596, 596, 596, 596, 596, 596, 596, 596, 737, 737,
145495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 737, 596, 596, 596, 596, 734, 596, 596, 596, 747,
145496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 596, 596, 781, 596, 596, 596, 596, 596, 596, 596,
145497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 596, 429, 691, 279, 979, 979, 979, 979, 862, 279,
145498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 279, 885, 1054, 901, 942, 978, 978, 1056, 942, 942,
145499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 1056, 614, 990, 812, 1128, 1128, 1128, 978, 766, 1104,
145500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 1018, 1138, 1326, 1254, 1254, 1352, 1352, 1254, 1288, 1375,
145501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 1360, 1268, 1390, 1390, 1390, 1390, 1254, 1398, 1268, 1268,
145502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 1288, 1375, 1360, 1360, 1268, 1254, 1398, 1290, 1377, 1254,
145503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 1398, 1420, 1254, 1398, 1254, 1398, 1420, 1346, 1346, 1346,
145504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 1389, 1420, 1346, 1344, 1346, 1389, 1346, 1346, 1420, 1381,
145505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 1381, 1420, 1329, 1386, 1329, 1386, 1329, 1386, 1329, 1386,
145506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 1254, 1361, 1410, 1474, 1479, 1254, 1358, 1369, 1361, 1355,
145507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 1399, 1403, 1268, 1517, 1519, 1533, 1533, 1547, 1547, 1547,
145508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
145509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 2009, 2009, 2009, 2009, 2009, 2009, 286, 345, 568, 1064,
145510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 1058, 698, 1060, 1147, 373, 1120, 1046, 1148, 1162, 1149,
145511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 1153, 1154, 1155, 1159, 1180, 1165, 1116, 1220, 1157, 1172,
145512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 1206, 1207, 1225, 1106, 1111, 1246, 1175, 733, 1567, 1574,
145513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 1556, 1430, 1570, 1513, 1587, 1581, 1582, 1478, 1468, 1496,
145514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 1585, 1485, 1597, 1486, 1604, 1617, 1492, 1487, 1506, 1565,
145515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 420 */ 1591, 1491, 1576, 1583, 1584, 1586, 1521, 1536, 1609, 1514,
145516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 430 */ 1644, 1641, 1627, 1546, 1502, 1588, 1626, 1589, 1578, 1613,
145517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 440 */ 1525, 1554, 1635, 1640, 1643, 1543, 1550, 1645, 1598, 1646,
145518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 450 */ 1647, 1648, 1650, 1599, 1649, 1652, 1608, 1639, 1655, 1541,
145519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 460 */ 1658, 1528, 1659, 1660, 1661, 1662, 1664, 1666, 1665, 1669,
145520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 470 */ 1670, 1563, 1672, 1673, 1592, 1667, 1678, 1571, 1676, 1679,
145521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 480 */ 1681, 1619, 1631, 1633, 1674, 1694, 1700, 1699, 1701, 1695,
145522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 490 */ 1705, 1707, 1710, 1676, 1713, 1714, 1716, 1715, 1718, 1724,
145523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 500 */ 1728, 1729, 1730, 1731, 1733, 1734, 1736, 1726, 1632, 1629,
145524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 510 */ 1630, 1636, 1637, 1740, 1750, 1767,
145525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
145526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_REDUCE_COUNT (365)
145527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_REDUCE_MIN (-235)
145528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_REDUCE_MAX (1417)
142132 145529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const short yy_reduce_ofst[] = {
142133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ -137, -31, 1104, 1023, 1081, -132, -40, -38, 223, 225,
142134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ 698, -153, -99, -225, -165, 386, 478, 843, 859, -139,
142135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 884, 117, 277, 844, 857, 964, 559, 561, 614, 918,
142136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 1009, 1089, 1098, -222, -222, -222, -222, -222, -222, -222,
142137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
142138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
142139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ -222, -222, -222, -222, -222, 329, 331, 497, 654, 656,
142140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 781, 891, 946, 1029, 1129, 1134, 1149, 1154, 1160, 1162,
142141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 1164, 1168, 1174, 1177, 1188, 1191, 1193, 1202, 1204, 1206,
142142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 1208, 1216, 1218, 1221, 1231, 1233, 1235, 1241, 1244, 1246,
142143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 1248, 1250, 1258, 1260, 1275, 1277, 1283, 1286, 1288, 1290,
142144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ 1292, -222, -222, -222, -222, -222, -222, -222, -222, -222,
142145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ -115, 796, -156, -154, -141, 14, 242, 349, 242, 349,
142146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ -61, -222, -222, -222, -222, -222, 101, 101, 101, 332,
142147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 302, 384, 387, -170, 146, 344, 196, 196, 15, 11,
142148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 183, 235, 395, 355, 396, 406, 452, 457, 391, 459,
142149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 443, 447, 511, 495, 454, 512, 505, 571, 498, 532,
142150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 431, 435, 339, 455, 446, 508, -174, -116, -97, -120,
142151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ -150, 64, 176, 330, 337, 509, 569, 611, 653, 673,
142152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 714, 717, 763, 771, -34, 779, 786, 830, 846, 860,
142153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 866, 882, 883, 890, 892, 895, 902, 319, 368, 769,
142154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 915, 924, 925, 932, 755, 936, 945, 963, 782, 969,
142155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 974, 816, 977, 64, 982, 983, 1016, 1022, 1024, 1031,
142156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 870, 831, 913, 966, 973, 981, 984, 755, 913, 913,
142157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 1000, 1041, 1063, 1015, 1010, 1011, 985, 1034, 1057, 1019,
142158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 1086, 1080, 1085, 1093, 1095, 1096, 1067, 1048, 1082, 1099,
142159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 1137, 1050, 1150, 1156, 1077, 1088, 1180, 1120, 1132, 1169,
142160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 1170, 1178, 1181, 1195, 1210, 1225, 1243, 1197, 1209, 1173,
142161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 1190, 1226, 1238, 1223, 1267, 1272, 1199, 1207, 1282, 1285,
142162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 1269, 1293, 1295, 1296, 1300, 1289, 1294, 1297, 1299, 1287,
142163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 1301, 1302, 1303, 1306, 1304, 1307, 1308, 1310, 1242, 1245,
142164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 1311, 1268, 1270, 1273, 1278, 1274, 1279, 1280, 1284, 1333,
142165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 1271, 1337, 1281, 1309, 1305, 1312, 1314, 1316, 1344, 1347,
142166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 1359, 1361, 1368, 1370, 1371, 1291, 1313, 1317, 1355, 1352,
142167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 1353, 1354, 1356, 1363, 1350, 1357, 1362, 1366, 1367, 1375,
142168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 1365,
145530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ -147, 171, 263, -97, 358, -145, -149, -163, 123, 264,
145531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ 305, 398, 404, 446, 401, -171, -157, -235, -175, -79,
145532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 189, 196, 333, 490, 378, 375, 497, 550, 552, -42,
145533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ -116, 465, 540, 542, 544, 588, 594, -214, -214, -214,
145534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
145535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
145536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
145537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ -214, 543, 582, 590, 633, 658, 661, 675, 677, 685,
145538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 702, 705, 748, 750, 752, 754, 768, 788, 791, 793,
145539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 795, 797, 800, 802, 804, 807, 827, 833, 835, 837,
145540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 839, 841, 843, 845, 847, 870, 873, 893, 916, 918,
145541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ 921, 936, 941, 944, 961, 964, 968, -214, -214, -214,
145542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ -214, -214, -214, -214, -214, -214, 315, 789, -159, 14,
145543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 111, 434, 463, 247, 700, 247, 700, -176, -214, -214,
145544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ -214, -214, 300, 300, 300, -162, -74, -129, 125, -165,
145545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ -127, 268, 266, 405, 405, -135, 284, 403, 491, 460,
145546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 148, 335, 514, 649, 212, 124, 325, 687, 971, 602,
145547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 973, 659, 323, 601, 808, 991, 41, 951, 627, 727,
145548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 729, 579, 945, 786, 878, 932, 947, -182, -169, -167,
145549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ -121, -46, 16, 39, 176, 289, 313, 364, 473, 537,
145550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 613, 635, 662, 792, 796, 165, 811, 969, 1002, 1090,
145551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 1092, 1105, 1107, 1110, 1112, 1117, 1119, 1121, 1081, 1086,
145552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 1093, 1122, 1124, 1125, 1126, 481, 1127, 1129, 1130, 1068,
145553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 1131, 1132, 1080, 1134, 16, 1135, 1136, 1137, 1152, 1156,
145554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 1158, 1065, 1067, 1109, 1097, 1113, 1114, 1115, 481, 1109,
145555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 1109, 1151, 1160, 1174, 1150, 1118, 1139, 1083, 1167, 1168,
145556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 1084, 1176, 1145, 1170, 1161, 1178, 1181, 1140, 1103, 1173,
145557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 1177, 1216, 1141, 1218, 1219, 1142, 1143, 1221, 1166, 1163,
145558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 1203, 1194, 1205, 1208, 1209, 1211, 1241, 1248, 1210, 1212,
145559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 1182, 1184, 1223, 1227, 1213, 1262, 1266, 1185, 1188, 1267,
145560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 1272, 1255, 1273, 1278, 1276, 1279, 1260, 1269, 1271, 1274,
145561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 1264, 1265, 1286, 1275, 1287, 1280, 1289, 1292, 1293, 1230,
145562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 1239, 1297, 1258, 1270, 1263, 1283, 1284, 1295, 1285, 1296,
145563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 1323, 1282, 1226, 1231, 1261, 1333, 1298, 1309, 1291, 1313,
145564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 1321, 1325, 1330, 1371, 1376, 1383, 1391, 1392, 1395, 1396,
145565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 1301, 1302, 1299, 1387, 1382, 1388, 1400, 1401, 1393, 1394,
145566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 1402, 1407, 1409, 1412, 1417, 1397,
142169 145567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
142170 145568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const YYACTIONTYPE yy_default[] = {
142171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 1389, 1389, 1389, 1261, 1046, 1151, 1261, 1261, 1261, 1261,
142172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ 1046, 1181, 1181, 1312, 1077, 1046, 1046, 1046, 1046, 1046,
142173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 1046, 1260, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 1046, 1046, 1046, 1187, 1046, 1046, 1046, 1046, 1262, 1263,
142175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 1046, 1046, 1046, 1311, 1313, 1197, 1196, 1195, 1194, 1294,
142176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ 1168, 1192, 1185, 1189, 1256, 1257, 1255, 1259, 1262, 1263,
142177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ 1046, 1188, 1226, 1240, 1225, 1046, 1046, 1046, 1046, 1046,
142178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ 1046, 1234, 1239, 1246, 1238, 1235, 1228, 1227, 1229, 1230,
142183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 1046, 1067, 1116, 1046, 1046, 1046, 1329, 1328, 1046, 1046,
142184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ 1077, 1231, 1232, 1243, 1242, 1241, 1319, 1345, 1344, 1046,
142185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1077,
142188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 1073, 1073, 1046, 1324, 1151, 1142, 1046, 1046, 1046, 1046,
142189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1316, 1314, 1046,
142190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 1276, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1147, 1046,
142193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1339,
142194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 1046, 1289, 1130, 1147, 1147, 1147, 1147, 1149, 1131, 1129,
142195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 1141, 1077, 1053, 1191, 1170, 1170, 1378, 1191, 1191, 1378,
142196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 1091, 1359, 1088, 1181, 1181, 1181, 1170, 1258, 1148, 1141,
142197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 1046, 1381, 1156, 1156, 1380, 1380, 1156, 1200, 1206, 1119,
142198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 1191, 1125, 1125, 1125, 1125, 1156, 1064, 1191, 1191, 1200,
142199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 1206, 1119, 1119, 1191, 1156, 1064, 1293, 1375, 1156, 1064,
142200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 1269, 1156, 1064, 1156, 1064, 1269, 1117, 1117, 1117, 1106,
142201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 1269, 1117, 1091, 1117, 1106, 1117, 1117, 1269, 1273, 1273,
142202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 1269, 1174, 1169, 1174, 1169, 1174, 1169, 1174, 1169, 1156,
142203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 1264, 1156, 1046, 1186, 1175, 1184, 1182, 1191, 1070, 1109,
142204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 1342, 1342, 1338, 1338, 1338, 1386, 1386, 1324, 1354, 1077,
142205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 1077, 1077, 1077, 1354, 1093, 1093, 1077, 1077, 1077, 1077,
142206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 1354, 1046, 1046, 1046, 1046, 1046, 1046, 1349, 1046, 1278,
142207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 360 */ 1160, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 1046, 1046, 1211, 1046, 1049, 1321, 1046, 1046, 1320, 1046,
142210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 1046, 1046, 1046, 1046, 1046, 1161, 1046, 1046, 1046, 1046,
142211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 1046, 1046, 1046, 1046, 1377, 1046, 1046, 1046, 1046, 1046,
142213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 420 */ 1046, 1292, 1291, 1046, 1046, 1158, 1046, 1046, 1046, 1046,
142214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 430 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 440 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 450 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 460 */ 1183, 1046, 1176, 1046, 1046, 1046, 1046, 1368, 1046, 1046,
142218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 470 */ 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
142219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 480 */ 1046, 1363, 1133, 1213, 1046, 1212, 1216, 1046, 1058, 1046,
145569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 1482, 1482, 1482, 1329, 1115, 1220, 1115, 1115, 1115, 1329,
145570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ 1329, 1329, 1329, 1329, 1115, 1250, 1250, 1380, 1146, 1115,
145571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 1115, 1115, 1115, 1115, 1115, 1328, 1115, 1115, 1115, 1115,
145572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1256, 1115,
145573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 1115, 1115, 1115, 1115, 1330, 1331, 1115, 1115, 1115, 1379,
145574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ 1381, 1266, 1265, 1264, 1263, 1362, 1237, 1261, 1254, 1258,
145575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ 1324, 1325, 1323, 1327, 1330, 1331, 1115, 1257, 1295, 1309,
145576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ 1294, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1303, 1308, 1314,
145581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 1307, 1304, 1297, 1296, 1298, 1299, 1115, 1136, 1185, 1115,
145582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 1115, 1115, 1115, 1397, 1396, 1115, 1115, 1146, 1300, 1301,
145583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ 1311, 1310, 1387, 1438, 1437, 1115, 1115, 1115, 1115, 1115,
145584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1146, 1142, 1420,
145587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 1420, 1406, 1142, 1115, 1392, 1220, 1211, 1115, 1115, 1115,
145588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1384, 1382,
145589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 1115, 1344, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1216,
145592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 1432, 1115, 1357, 1199, 1216, 1216, 1216, 1216, 1218, 1200,
145594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 1198, 1210, 1146, 1122, 1260, 1239, 1239, 1471, 1260, 1260,
145595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 1471, 1160, 1452, 1157, 1250, 1250, 1250, 1239, 1326, 1217,
145596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 1210, 1115, 1474, 1225, 1225, 1473, 1473, 1225, 1269, 1275,
145597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 1188, 1260, 1194, 1194, 1194, 1194, 1225, 1133, 1260, 1260,
145598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 1269, 1275, 1188, 1188, 1260, 1225, 1133, 1361, 1468, 1225,
145599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 1133, 1337, 1225, 1133, 1225, 1133, 1337, 1186, 1186, 1186,
145600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 1175, 1337, 1186, 1160, 1186, 1175, 1186, 1186, 1337, 1341,
145601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 1341, 1337, 1243, 1238, 1243, 1238, 1243, 1238, 1243, 1238,
145602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 1225, 1244, 1405, 1115, 1332, 1225, 1115, 1255, 1244, 1418,
145603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 1253, 1251, 1260, 1139, 1178, 1435, 1435, 1431, 1431, 1431,
145604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 1479, 1479, 1392, 1447, 1146, 1146, 1146, 1146, 1447, 1162,
145605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 1162, 1146, 1146, 1146, 1146, 1447, 1115, 1115, 1115, 1115,
145606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 1115, 1115, 1442, 1115, 1346, 1229, 1115, 1115, 1115, 1115,
145607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1280, 1115, 1118,
145609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 1389, 1115, 1115, 1388, 1115, 1115, 1115, 1115, 1115, 1115,
145610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 1230, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 420 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1470,
145612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 430 */ 1115, 1115, 1115, 1115, 1115, 1115, 1360, 1359, 1115, 1115,
145613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 440 */ 1227, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 450 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 460 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
145616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 470 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1252, 1115,
145617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 480 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1419, 1245, 1115,
145618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 490 */ 1115, 1115, 1115, 1461, 1115, 1115, 1115, 1115, 1115, 1115,
145619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 500 */ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1456, 1202, 1282,
145620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 510 */ 1115, 1281, 1285, 1115, 1127, 1115,
142220 145621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
142221 145622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/********** End of lemon-generated parsing tables *****************************/
142222 145623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
142223 145624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The next table maps tokens (terminal symbols) into fallback tokens.
142224 145625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If a construct like the following:
@@ -142310,15 +145711,22 @@
142310 145711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* RAISE => ID */
142311 145712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* RECURSIVE => ID */
142312 145713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* REPLACE => ID */
142313 145714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* RESTRICT => ID */
142314 145715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* ROW => ID */
145716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* ROWS => ID */
142315 145717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* TRIGGER => ID */
142316 145718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* VACUUM => ID */
142317 145719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* VIEW => ID */
142318 145720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* VIRTUAL => ID */
142319 145721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* WITH => ID */
145722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* CURRENT => ID */
145723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* FOLLOWING => ID */
145724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* PARTITION => ID */
145725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* PRECEDING => ID */
145726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* RANGE => ID */
145727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 59, /* UNBOUNDED => ID */
142320 145728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* REINDEX => ID */
142321 145729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* RENAME => ID */
142322 145730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59, /* CTIME_KW => ID */
142323 145731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
142324 145732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* YYFALLBACK */
@@ -142481,189 +145889,211 @@
142481 145889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 71 */ "RAISE",
142482 145890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 72 */ "RECURSIVE",
142483 145891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 73 */ "REPLACE",
142484 145892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 74 */ "RESTRICT",
142485 145893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 75 */ "ROW",
142486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 76 */ "TRIGGER",
142487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 77 */ "VACUUM",
142488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 78 */ "VIEW",
142489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 79 */ "VIRTUAL",
142490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ "WITH",
142491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 81 */ "REINDEX",
142492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 82 */ "RENAME",
142493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 83 */ "CTIME_KW",
142494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 84 */ "ANY",
142495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 85 */ "BITAND",
142496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 86 */ "BITOR",
142497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 87 */ "LSHIFT",
142498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 88 */ "RSHIFT",
142499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 89 */ "PLUS",
142500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ "MINUS",
142501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 91 */ "STAR",
142502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 92 */ "SLASH",
142503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 93 */ "REM",
142504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 94 */ "CONCAT",
142505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 95 */ "COLLATE",
142506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 96 */ "BITNOT",
142507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 97 */ "ON",
142508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 98 */ "INDEXED",
142509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 99 */ "STRING",
142510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ "JOIN_KW",
142511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 101 */ "CONSTRAINT",
142512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 102 */ "DEFAULT",
142513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 103 */ "NULL",
142514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 104 */ "PRIMARY",
142515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 105 */ "UNIQUE",
142516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 106 */ "CHECK",
142517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 107 */ "REFERENCES",
142518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 108 */ "AUTOINCR",
142519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 109 */ "INSERT",
142520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ "DELETE",
142521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 111 */ "UPDATE",
142522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 112 */ "SET",
142523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 113 */ "DEFERRABLE",
142524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 114 */ "FOREIGN",
142525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 115 */ "DROP",
142526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 116 */ "UNION",
142527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 117 */ "ALL",
142528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 118 */ "EXCEPT",
142529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 119 */ "INTERSECT",
142530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ "SELECT",
142531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 121 */ "VALUES",
142532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 122 */ "DISTINCT",
142533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 123 */ "DOT",
142534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 124 */ "FROM",
142535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 125 */ "JOIN",
142536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 126 */ "USING",
142537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 127 */ "ORDER",
142538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 128 */ "GROUP",
142539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 129 */ "HAVING",
142540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ "LIMIT",
142541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 131 */ "WHERE",
142542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 132 */ "INTO",
142543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 133 */ "NOTHING",
142544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 134 */ "FLOAT",
142545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 135 */ "BLOB",
142546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 136 */ "INTEGER",
142547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 137 */ "VARIABLE",
142548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 138 */ "CASE",
142549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 139 */ "WHEN",
142550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ "THEN",
142551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 141 */ "ELSE",
142552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 142 */ "INDEX",
142553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 143 */ "ALTER",
142554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 144 */ "ADD",
142555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 145 */ "input",
142556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 146 */ "cmdlist",
142557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 147 */ "ecmd",
142558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 148 */ "cmdx",
142559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 149 */ "explain",
142560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ "cmd",
142561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 151 */ "transtype",
142562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 152 */ "trans_opt",
142563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 153 */ "nm",
142564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 154 */ "savepoint_opt",
142565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 155 */ "create_table",
142566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 156 */ "create_table_args",
142567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 157 */ "createkw",
142568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 158 */ "temp",
142569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 159 */ "ifnotexists",
142570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ "dbnm",
142571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 161 */ "columnlist",
142572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 162 */ "conslist_opt",
142573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 163 */ "table_options",
142574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 164 */ "select",
142575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 165 */ "columnname",
142576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 166 */ "carglist",
142577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 167 */ "typetoken",
142578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 168 */ "typename",
142579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 169 */ "signed",
142580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ "plus_num",
142581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 171 */ "minus_num",
142582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 172 */ "scanpt",
142583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 173 */ "ccons",
142584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 174 */ "term",
142585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 175 */ "expr",
142586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 176 */ "onconf",
142587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 177 */ "sortorder",
142588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 178 */ "autoinc",
142589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 179 */ "eidlist_opt",
142590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ "refargs",
142591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 181 */ "defer_subclause",
142592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 182 */ "refarg",
142593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 183 */ "refact",
142594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 184 */ "init_deferred_pred_opt",
142595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 185 */ "conslist",
142596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 186 */ "tconscomma",
142597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 187 */ "tcons",
142598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 188 */ "sortlist",
142599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 189 */ "eidlist",
142600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ "defer_subclause_opt",
142601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 191 */ "orconf",
142602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 192 */ "resolvetype",
142603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 193 */ "raisetype",
142604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 194 */ "ifexists",
142605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 195 */ "fullname",
142606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 196 */ "selectnowith",
142607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 197 */ "oneselect",
142608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 198 */ "wqlist",
142609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 199 */ "multiselect_op",
142610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ "distinct",
142611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 201 */ "selcollist",
142612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 202 */ "from",
142613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 203 */ "where_opt",
142614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 204 */ "groupby_opt",
142615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 205 */ "having_opt",
142616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 206 */ "orderby_opt",
142617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 207 */ "limit_opt",
142618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 208 */ "values",
142619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 209 */ "nexprlist",
142620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ "exprlist",
142621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 211 */ "sclp",
142622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 212 */ "as",
142623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 213 */ "seltablist",
142624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 214 */ "stl_prefix",
142625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 215 */ "joinop",
142626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 216 */ "indexed_opt",
142627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 217 */ "on_opt",
142628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 218 */ "using_opt",
142629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 219 */ "xfullname",
142630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ "idlist",
142631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 221 */ "with",
142632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 222 */ "setlist",
142633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 223 */ "insert_cmd",
142634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 224 */ "idlist_opt",
142635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 225 */ "upsert",
142636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 226 */ "likeop",
142637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 227 */ "between_op",
142638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 228 */ "in_op",
142639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 229 */ "paren_exprlist",
142640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ "case_operand",
142641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 231 */ "case_exprlist",
142642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 232 */ "case_else",
142643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 233 */ "uniqueflag",
142644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 234 */ "collate",
142645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 235 */ "nmnum",
142646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 236 */ "trigger_decl",
142647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 237 */ "trigger_cmd_list",
142648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 238 */ "trigger_time",
142649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 239 */ "trigger_event",
142650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ "foreach_clause",
142651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 241 */ "when_clause",
142652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 242 */ "trigger_cmd",
142653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 243 */ "trnm",
142654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 244 */ "tridxby",
142655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 245 */ "database_kw_opt",
142656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 246 */ "key_opt",
142657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 247 */ "add_column_fullname",
142658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 248 */ "kwcolumn_opt",
142659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 249 */ "create_vtab",
142660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ "vtabarglist",
142661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 251 */ "vtabarg",
142662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 252 */ "vtabargtoken",
142663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 253 */ "lp",
142664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 254 */ "anylist",
145894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 76 */ "ROWS",
145895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 77 */ "TRIGGER",
145896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 78 */ "VACUUM",
145897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 79 */ "VIEW",
145898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ "VIRTUAL",
145899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 81 */ "WITH",
145900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 82 */ "CURRENT",
145901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 83 */ "FOLLOWING",
145902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 84 */ "PARTITION",
145903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 85 */ "PRECEDING",
145904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 86 */ "RANGE",
145905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 87 */ "UNBOUNDED",
145906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 88 */ "REINDEX",
145907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 89 */ "RENAME",
145908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ "CTIME_KW",
145909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 91 */ "ANY",
145910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 92 */ "BITAND",
145911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 93 */ "BITOR",
145912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 94 */ "LSHIFT",
145913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 95 */ "RSHIFT",
145914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 96 */ "PLUS",
145915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 97 */ "MINUS",
145916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 98 */ "STAR",
145917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 99 */ "SLASH",
145918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ "REM",
145919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 101 */ "CONCAT",
145920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 102 */ "COLLATE",
145921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 103 */ "BITNOT",
145922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 104 */ "ON",
145923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 105 */ "INDEXED",
145924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 106 */ "STRING",
145925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 107 */ "JOIN_KW",
145926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 108 */ "CONSTRAINT",
145927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 109 */ "DEFAULT",
145928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ "NULL",
145929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 111 */ "PRIMARY",
145930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 112 */ "UNIQUE",
145931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 113 */ "CHECK",
145932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 114 */ "REFERENCES",
145933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 115 */ "AUTOINCR",
145934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 116 */ "INSERT",
145935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 117 */ "DELETE",
145936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 118 */ "UPDATE",
145937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 119 */ "SET",
145938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ "DEFERRABLE",
145939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 121 */ "FOREIGN",
145940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 122 */ "DROP",
145941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 123 */ "UNION",
145942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 124 */ "ALL",
145943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 125 */ "EXCEPT",
145944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 126 */ "INTERSECT",
145945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 127 */ "SELECT",
145946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 128 */ "VALUES",
145947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 129 */ "DISTINCT",
145948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ "DOT",
145949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 131 */ "FROM",
145950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 132 */ "JOIN",
145951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 133 */ "USING",
145952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 134 */ "ORDER",
145953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 135 */ "GROUP",
145954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 136 */ "HAVING",
145955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 137 */ "LIMIT",
145956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 138 */ "WHERE",
145957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 139 */ "INTO",
145958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ "NOTHING",
145959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 141 */ "FLOAT",
145960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 142 */ "BLOB",
145961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 143 */ "INTEGER",
145962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 144 */ "VARIABLE",
145963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 145 */ "CASE",
145964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 146 */ "WHEN",
145965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 147 */ "THEN",
145966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 148 */ "ELSE",
145967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 149 */ "INDEX",
145968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ "ALTER",
145969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 151 */ "ADD",
145970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 152 */ "WINDOW",
145971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 153 */ "OVER",
145972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 154 */ "FILTER",
145973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 155 */ "input",
145974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 156 */ "cmdlist",
145975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 157 */ "ecmd",
145976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 158 */ "cmdx",
145977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 159 */ "explain",
145978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ "cmd",
145979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 161 */ "transtype",
145980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 162 */ "trans_opt",
145981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 163 */ "nm",
145982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 164 */ "savepoint_opt",
145983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 165 */ "create_table",
145984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 166 */ "create_table_args",
145985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 167 */ "createkw",
145986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 168 */ "temp",
145987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 169 */ "ifnotexists",
145988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ "dbnm",
145989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 171 */ "columnlist",
145990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 172 */ "conslist_opt",
145991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 173 */ "table_options",
145992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 174 */ "select",
145993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 175 */ "columnname",
145994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 176 */ "carglist",
145995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 177 */ "typetoken",
145996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 178 */ "typename",
145997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 179 */ "signed",
145998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ "plus_num",
145999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 181 */ "minus_num",
146000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 182 */ "scanpt",
146001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 183 */ "ccons",
146002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 184 */ "term",
146003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 185 */ "expr",
146004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 186 */ "onconf",
146005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 187 */ "sortorder",
146006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 188 */ "autoinc",
146007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 189 */ "eidlist_opt",
146008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ "refargs",
146009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 191 */ "defer_subclause",
146010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 192 */ "refarg",
146011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 193 */ "refact",
146012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 194 */ "init_deferred_pred_opt",
146013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 195 */ "conslist",
146014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 196 */ "tconscomma",
146015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 197 */ "tcons",
146016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 198 */ "sortlist",
146017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 199 */ "eidlist",
146018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ "defer_subclause_opt",
146019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 201 */ "orconf",
146020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 202 */ "resolvetype",
146021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 203 */ "raisetype",
146022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 204 */ "ifexists",
146023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 205 */ "fullname",
146024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 206 */ "selectnowith",
146025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 207 */ "oneselect",
146026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 208 */ "wqlist",
146027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 209 */ "multiselect_op",
146028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ "distinct",
146029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 211 */ "selcollist",
146030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 212 */ "from",
146031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 213 */ "where_opt",
146032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 214 */ "groupby_opt",
146033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 215 */ "having_opt",
146034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 216 */ "windowdefn_opt",
146035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 217 */ "orderby_opt",
146036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 218 */ "limit_opt",
146037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 219 */ "values",
146038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ "nexprlist",
146039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 221 */ "exprlist",
146040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 222 */ "sclp",
146041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 223 */ "as",
146042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 224 */ "seltablist",
146043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 225 */ "stl_prefix",
146044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 226 */ "joinop",
146045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 227 */ "indexed_opt",
146046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 228 */ "on_opt",
146047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 229 */ "using_opt",
146048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ "xfullname",
146049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 231 */ "idlist",
146050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 232 */ "with",
146051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 233 */ "setlist",
146052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 234 */ "insert_cmd",
146053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 235 */ "idlist_opt",
146054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 236 */ "upsert",
146055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 237 */ "over_opt",
146056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 238 */ "likeop",
146057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 239 */ "between_op",
146058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ "in_op",
146059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 241 */ "paren_exprlist",
146060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 242 */ "case_operand",
146061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 243 */ "case_exprlist",
146062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 244 */ "case_else",
146063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 245 */ "uniqueflag",
146064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 246 */ "collate",
146065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 247 */ "nmnum",
146066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 248 */ "trigger_decl",
146067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 249 */ "trigger_cmd_list",
146068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ "trigger_time",
146069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 251 */ "trigger_event",
146070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 252 */ "foreach_clause",
146071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 253 */ "when_clause",
146072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 254 */ "trigger_cmd",
146073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 255 */ "trnm",
146074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 256 */ "tridxby",
146075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 257 */ "database_kw_opt",
146076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 258 */ "key_opt",
146077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 259 */ "add_column_fullname",
146078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ "kwcolumn_opt",
146079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 261 */ "create_vtab",
146080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 262 */ "vtabarglist",
146081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 263 */ "vtabarg",
146082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 264 */ "vtabargtoken",
146083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 265 */ "lp",
146084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 266 */ "anylist",
146085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 267 */ "windowdefn_list",
146086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 268 */ "windowdefn",
146087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 269 */ "window",
146088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ "frame_opt",
146089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 271 */ "part_opt",
146090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 272 */ "filter_opt",
146091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 273 */ "range_or_rows",
146092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 274 */ "frame_bound",
146093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 275 */ "frame_bound_s",
146094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 276 */ "frame_bound_e",
142665 146095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
142666 146096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
142667 146097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
142668 146098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
142669 146099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* For tracing reduce actions, the names of all rules are required.
@@ -142754,11 +146184,11 @@
142754 146184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 82 */ "select ::= selectnowith",
142755 146185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 83 */ "selectnowith ::= selectnowith multiselect_op oneselect",
142756 146186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 84 */ "multiselect_op ::= UNION",
142757 146187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 85 */ "multiselect_op ::= UNION ALL",
142758 146188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 86 */ "multiselect_op ::= EXCEPT|INTERSECT",
142759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
146189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt windowdefn_opt orderby_opt limit_opt",
142760 146190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 88 */ "values ::= VALUES LP nexprlist RP",
142761 146191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 89 */ "values ::= values COMMA LP exprlist RP",
142762 146192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 90 */ "distinct ::= DISTINCT",
142763 146193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 91 */ "distinct ::= ALL",
142764 146194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 92 */ "distinct ::=",
@@ -142839,12 +146269,12 @@
142839 146269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 167 */ "term ::= STRING",
142840 146270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 168 */ "term ::= INTEGER",
142841 146271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 169 */ "expr ::= VARIABLE",
142842 146272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 170 */ "expr ::= expr COLLATE ID|STRING",
142843 146273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 171 */ "expr ::= CAST LP expr AS typetoken RP",
142844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 172 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
142845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 173 */ "expr ::= ID|INDEXED LP STAR RP",
146274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 172 */ "expr ::= ID|INDEXED LP distinct exprlist RP over_opt",
146275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 173 */ "expr ::= ID|INDEXED LP STAR RP over_opt",
142846 146276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 174 */ "term ::= CTIME_KW",
142847 146277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 175 */ "expr ::= LP nexprlist COMMA expr RP",
142848 146278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 176 */ "expr ::= expr AND expr",
142849 146279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 177 */ "expr ::= expr OR expr",
142850 146280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 178 */ "expr ::= expr LT|GT|GE|LE expr",
@@ -142860,158 +146290,182 @@
142860 146290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 188 */ "expr ::= expr NOT NULL",
142861 146291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 189 */ "expr ::= expr IS expr",
142862 146292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 190 */ "expr ::= expr IS NOT expr",
142863 146293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 191 */ "expr ::= NOT expr",
142864 146294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 192 */ "expr ::= BITNOT expr",
142865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 193 */ "expr ::= MINUS expr",
142866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 194 */ "expr ::= PLUS expr",
142867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 195 */ "between_op ::= BETWEEN",
142868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 196 */ "between_op ::= NOT BETWEEN",
142869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 197 */ "expr ::= expr between_op expr AND expr",
142870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 198 */ "in_op ::= IN",
142871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 199 */ "in_op ::= NOT IN",
142872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ "expr ::= expr in_op LP exprlist RP",
142873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 201 */ "expr ::= LP select RP",
142874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 202 */ "expr ::= expr in_op LP select RP",
142875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 203 */ "expr ::= expr in_op nm dbnm paren_exprlist",
142876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 204 */ "expr ::= EXISTS LP select RP",
142877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 205 */ "expr ::= CASE case_operand case_exprlist case_else END",
142878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 206 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
142879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 207 */ "case_exprlist ::= WHEN expr THEN expr",
142880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 208 */ "case_else ::= ELSE expr",
142881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 209 */ "case_else ::=",
142882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ "case_operand ::= expr",
142883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 211 */ "case_operand ::=",
142884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 212 */ "exprlist ::=",
142885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 213 */ "nexprlist ::= nexprlist COMMA expr",
142886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 214 */ "nexprlist ::= expr",
142887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 215 */ "paren_exprlist ::=",
142888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 216 */ "paren_exprlist ::= LP exprlist RP",
142889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 217 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
142890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 218 */ "uniqueflag ::= UNIQUE",
142891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 219 */ "uniqueflag ::=",
142892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ "eidlist_opt ::=",
142893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 221 */ "eidlist_opt ::= LP eidlist RP",
142894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 222 */ "eidlist ::= eidlist COMMA nm collate sortorder",
142895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 223 */ "eidlist ::= nm collate sortorder",
142896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 224 */ "collate ::=",
142897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 225 */ "collate ::= COLLATE ID|STRING",
142898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 226 */ "cmd ::= DROP INDEX ifexists fullname",
142899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 227 */ "cmd ::= VACUUM",
142900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 228 */ "cmd ::= VACUUM nm",
142901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 229 */ "cmd ::= PRAGMA nm dbnm",
142902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
142903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 231 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
142904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 232 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
142905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 233 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
142906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 234 */ "plus_num ::= PLUS INTEGER|FLOAT",
142907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 235 */ "minus_num ::= MINUS INTEGER|FLOAT",
142908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 236 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
142909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 237 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
142910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 238 */ "trigger_time ::= BEFORE|AFTER",
142911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 239 */ "trigger_time ::= INSTEAD OF",
142912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ "trigger_time ::=",
142913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 241 */ "trigger_event ::= DELETE|INSERT",
142914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 242 */ "trigger_event ::= UPDATE",
142915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 243 */ "trigger_event ::= UPDATE OF idlist",
142916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 244 */ "when_clause ::=",
142917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 245 */ "when_clause ::= WHEN expr",
142918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 246 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
142919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 247 */ "trigger_cmd_list ::= trigger_cmd SEMI",
142920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 248 */ "trnm ::= nm DOT nm",
142921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 249 */ "tridxby ::= INDEXED BY nm",
142922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ "tridxby ::= NOT INDEXED",
142923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 251 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
142924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 252 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt",
142925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 253 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
142926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 254 */ "trigger_cmd ::= scanpt select scanpt",
142927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 255 */ "expr ::= RAISE LP IGNORE RP",
142928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 256 */ "expr ::= RAISE LP raisetype COMMA nm RP",
142929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 257 */ "raisetype ::= ROLLBACK",
142930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 258 */ "raisetype ::= ABORT",
142931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 259 */ "raisetype ::= FAIL",
142932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ "cmd ::= DROP TRIGGER ifexists fullname",
142933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 261 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
142934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 262 */ "cmd ::= DETACH database_kw_opt expr",
142935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 263 */ "key_opt ::=",
142936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 264 */ "key_opt ::= KEY expr",
142937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 265 */ "cmd ::= REINDEX",
142938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 266 */ "cmd ::= REINDEX nm dbnm",
142939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 267 */ "cmd ::= ANALYZE",
142940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 268 */ "cmd ::= ANALYZE nm dbnm",
142941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 269 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
142942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
142943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 271 */ "add_column_fullname ::= fullname",
142944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 272 */ "cmd ::= create_vtab",
142945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 273 */ "cmd ::= create_vtab LP vtabarglist RP",
142946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 274 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
142947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 275 */ "vtabarg ::=",
142948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 276 */ "vtabargtoken ::= ANY",
142949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 277 */ "vtabargtoken ::= lp anylist RP",
142950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 278 */ "lp ::= LP",
142951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 279 */ "with ::= WITH wqlist",
142952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ "with ::= WITH RECURSIVE wqlist",
142953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 281 */ "wqlist ::= nm eidlist_opt AS LP select RP",
142954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 282 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
142955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 283 */ "input ::= cmdlist",
142956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 284 */ "cmdlist ::= cmdlist ecmd",
142957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 285 */ "cmdlist ::= ecmd",
142958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 286 */ "ecmd ::= SEMI",
142959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 287 */ "ecmd ::= cmdx SEMI",
142960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 288 */ "ecmd ::= explain cmdx",
142961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 289 */ "trans_opt ::=",
142962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ "trans_opt ::= TRANSACTION",
142963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 291 */ "trans_opt ::= TRANSACTION nm",
142964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 292 */ "savepoint_opt ::= SAVEPOINT",
142965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 293 */ "savepoint_opt ::=",
142966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 294 */ "cmd ::= create_table create_table_args",
142967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 295 */ "columnlist ::= columnlist COMMA columnname carglist",
142968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 296 */ "columnlist ::= columnname carglist",
142969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 297 */ "nm ::= ID|INDEXED",
142970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 298 */ "nm ::= STRING",
142971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 299 */ "nm ::= JOIN_KW",
142972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ "typetoken ::= typename",
142973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 301 */ "typename ::= ID|STRING",
142974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 302 */ "signed ::= plus_num",
142975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 303 */ "signed ::= minus_num",
142976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 304 */ "carglist ::= carglist ccons",
142977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 305 */ "carglist ::=",
142978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 306 */ "ccons ::= NULL onconf",
142979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 307 */ "conslist_opt ::= COMMA conslist",
142980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 308 */ "conslist ::= conslist tconscomma tcons",
142981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 309 */ "conslist ::= tcons",
142982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ "tconscomma ::=",
142983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 311 */ "defer_subclause_opt ::= defer_subclause",
142984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 312 */ "resolvetype ::= raisetype",
142985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 313 */ "selectnowith ::= oneselect",
142986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 314 */ "oneselect ::= values",
142987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 315 */ "sclp ::= selcollist COMMA",
142988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 316 */ "as ::= ID|STRING",
142989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 317 */ "expr ::= term",
142990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 318 */ "likeop ::= LIKE_KW|MATCH",
142991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 319 */ "exprlist ::= nexprlist",
142992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ "nmnum ::= plus_num",
142993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 321 */ "nmnum ::= nm",
142994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 322 */ "nmnum ::= ON",
142995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 323 */ "nmnum ::= DELETE",
142996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 324 */ "nmnum ::= DEFAULT",
142997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 325 */ "plus_num ::= INTEGER|FLOAT",
142998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 326 */ "foreach_clause ::=",
142999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 327 */ "foreach_clause ::= FOR EACH ROW",
143000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 328 */ "trnm ::= nm",
143001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 329 */ "tridxby ::=",
143002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ "database_kw_opt ::= DATABASE",
143003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 331 */ "database_kw_opt ::=",
143004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 332 */ "kwcolumn_opt ::=",
143005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 333 */ "kwcolumn_opt ::= COLUMNKW",
143006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 334 */ "vtabarglist ::= vtabarg",
143007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 335 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
143008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 336 */ "vtabarg ::= vtabarg vtabargtoken",
143009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 337 */ "anylist ::=",
143010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 338 */ "anylist ::= anylist LP anylist RP",
143011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 339 */ "anylist ::= anylist ANY",
143012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ "with ::=",
146295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 193 */ "expr ::= PLUS|MINUS expr",
146296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 194 */ "between_op ::= BETWEEN",
146297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 195 */ "between_op ::= NOT BETWEEN",
146298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 196 */ "expr ::= expr between_op expr AND expr",
146299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 197 */ "in_op ::= IN",
146300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 198 */ "in_op ::= NOT IN",
146301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 199 */ "expr ::= expr in_op LP exprlist RP",
146302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ "expr ::= LP select RP",
146303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 201 */ "expr ::= expr in_op LP select RP",
146304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 202 */ "expr ::= expr in_op nm dbnm paren_exprlist",
146305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 203 */ "expr ::= EXISTS LP select RP",
146306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 204 */ "expr ::= CASE case_operand case_exprlist case_else END",
146307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 205 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
146308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 206 */ "case_exprlist ::= WHEN expr THEN expr",
146309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 207 */ "case_else ::= ELSE expr",
146310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 208 */ "case_else ::=",
146311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 209 */ "case_operand ::= expr",
146312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ "case_operand ::=",
146313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 211 */ "exprlist ::=",
146314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 212 */ "nexprlist ::= nexprlist COMMA expr",
146315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 213 */ "nexprlist ::= expr",
146316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 214 */ "paren_exprlist ::=",
146317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 215 */ "paren_exprlist ::= LP exprlist RP",
146318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 216 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
146319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 217 */ "uniqueflag ::= UNIQUE",
146320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 218 */ "uniqueflag ::=",
146321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 219 */ "eidlist_opt ::=",
146322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ "eidlist_opt ::= LP eidlist RP",
146323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 221 */ "eidlist ::= eidlist COMMA nm collate sortorder",
146324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 222 */ "eidlist ::= nm collate sortorder",
146325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 223 */ "collate ::=",
146326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 224 */ "collate ::= COLLATE ID|STRING",
146327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 225 */ "cmd ::= DROP INDEX ifexists fullname",
146328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 226 */ "cmd ::= VACUUM",
146329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 227 */ "cmd ::= VACUUM nm",
146330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 228 */ "cmd ::= PRAGMA nm dbnm",
146331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 229 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
146332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
146333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 231 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
146334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 232 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
146335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 233 */ "plus_num ::= PLUS INTEGER|FLOAT",
146336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 234 */ "minus_num ::= MINUS INTEGER|FLOAT",
146337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 235 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
146338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 236 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
146339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 237 */ "trigger_time ::= BEFORE|AFTER",
146340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 238 */ "trigger_time ::= INSTEAD OF",
146341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 239 */ "trigger_time ::=",
146342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ "trigger_event ::= DELETE|INSERT",
146343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 241 */ "trigger_event ::= UPDATE",
146344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 242 */ "trigger_event ::= UPDATE OF idlist",
146345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 243 */ "when_clause ::=",
146346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 244 */ "when_clause ::= WHEN expr",
146347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 245 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
146348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 246 */ "trigger_cmd_list ::= trigger_cmd SEMI",
146349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 247 */ "trnm ::= nm DOT nm",
146350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 248 */ "tridxby ::= INDEXED BY nm",
146351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 249 */ "tridxby ::= NOT INDEXED",
146352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
146353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 251 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt",
146354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 252 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
146355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 253 */ "trigger_cmd ::= scanpt select scanpt",
146356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 254 */ "expr ::= RAISE LP IGNORE RP",
146357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 255 */ "expr ::= RAISE LP raisetype COMMA nm RP",
146358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 256 */ "raisetype ::= ROLLBACK",
146359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 257 */ "raisetype ::= ABORT",
146360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 258 */ "raisetype ::= FAIL",
146361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 259 */ "cmd ::= DROP TRIGGER ifexists fullname",
146362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
146363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 261 */ "cmd ::= DETACH database_kw_opt expr",
146364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 262 */ "key_opt ::=",
146365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 263 */ "key_opt ::= KEY expr",
146366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 264 */ "cmd ::= REINDEX",
146367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 265 */ "cmd ::= REINDEX nm dbnm",
146368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 266 */ "cmd ::= ANALYZE",
146369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 267 */ "cmd ::= ANALYZE nm dbnm",
146370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 268 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
146371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 269 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
146372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ "add_column_fullname ::= fullname",
146373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 271 */ "cmd ::= create_vtab",
146374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 272 */ "cmd ::= create_vtab LP vtabarglist RP",
146375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 273 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
146376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 274 */ "vtabarg ::=",
146377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 275 */ "vtabargtoken ::= ANY",
146378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 276 */ "vtabargtoken ::= lp anylist RP",
146379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 277 */ "lp ::= LP",
146380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 278 */ "with ::= WITH wqlist",
146381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 279 */ "with ::= WITH RECURSIVE wqlist",
146382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ "wqlist ::= nm eidlist_opt AS LP select RP",
146383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 281 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
146384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 282 */ "windowdefn_list ::= windowdefn",
146385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 283 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn",
146386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 284 */ "windowdefn ::= nm AS window",
146387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 285 */ "window ::= LP part_opt orderby_opt frame_opt RP",
146388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 286 */ "part_opt ::= PARTITION BY exprlist",
146389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 287 */ "part_opt ::=",
146390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 288 */ "frame_opt ::=",
146391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 289 */ "frame_opt ::= range_or_rows frame_bound_s",
146392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e",
146393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 291 */ "range_or_rows ::= RANGE",
146394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 292 */ "range_or_rows ::= ROWS",
146395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 293 */ "frame_bound_s ::= frame_bound",
146396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 294 */ "frame_bound_s ::= UNBOUNDED PRECEDING",
146397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 295 */ "frame_bound_e ::= frame_bound",
146398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 296 */ "frame_bound_e ::= UNBOUNDED FOLLOWING",
146399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 297 */ "frame_bound ::= expr PRECEDING",
146400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 298 */ "frame_bound ::= CURRENT ROW",
146401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 299 */ "frame_bound ::= expr FOLLOWING",
146402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ "windowdefn_opt ::=",
146403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 301 */ "windowdefn_opt ::= WINDOW windowdefn_list",
146404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 302 */ "over_opt ::=",
146405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 303 */ "over_opt ::= filter_opt OVER window",
146406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 304 */ "over_opt ::= filter_opt OVER nm",
146407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 305 */ "filter_opt ::=",
146408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 306 */ "filter_opt ::= FILTER LP WHERE expr RP",
146409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 307 */ "input ::= cmdlist",
146410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 308 */ "cmdlist ::= cmdlist ecmd",
146411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 309 */ "cmdlist ::= ecmd",
146412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ "ecmd ::= SEMI",
146413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 311 */ "ecmd ::= cmdx SEMI",
146414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 312 */ "ecmd ::= explain cmdx",
146415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 313 */ "trans_opt ::=",
146416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 314 */ "trans_opt ::= TRANSACTION",
146417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 315 */ "trans_opt ::= TRANSACTION nm",
146418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 316 */ "savepoint_opt ::= SAVEPOINT",
146419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 317 */ "savepoint_opt ::=",
146420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 318 */ "cmd ::= create_table create_table_args",
146421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 319 */ "columnlist ::= columnlist COMMA columnname carglist",
146422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ "columnlist ::= columnname carglist",
146423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 321 */ "nm ::= ID|INDEXED",
146424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 322 */ "nm ::= STRING",
146425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 323 */ "nm ::= JOIN_KW",
146426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 324 */ "typetoken ::= typename",
146427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 325 */ "typename ::= ID|STRING",
146428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 326 */ "signed ::= plus_num",
146429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 327 */ "signed ::= minus_num",
146430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 328 */ "carglist ::= carglist ccons",
146431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 329 */ "carglist ::=",
146432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ "ccons ::= NULL onconf",
146433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 331 */ "conslist_opt ::= COMMA conslist",
146434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 332 */ "conslist ::= conslist tconscomma tcons",
146435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 333 */ "conslist ::= tcons",
146436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 334 */ "tconscomma ::=",
146437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 335 */ "defer_subclause_opt ::= defer_subclause",
146438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 336 */ "resolvetype ::= raisetype",
146439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 337 */ "selectnowith ::= oneselect",
146440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 338 */ "oneselect ::= values",
146441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 339 */ "sclp ::= selcollist COMMA",
146442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ "as ::= ID|STRING",
146443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 341 */ "expr ::= term",
146444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 342 */ "likeop ::= LIKE_KW|MATCH",
146445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 343 */ "exprlist ::= nexprlist",
146446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 344 */ "nmnum ::= plus_num",
146447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 345 */ "nmnum ::= nm",
146448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 346 */ "nmnum ::= ON",
146449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 347 */ "nmnum ::= DELETE",
146450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 348 */ "nmnum ::= DEFAULT",
146451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 349 */ "plus_num ::= INTEGER|FLOAT",
146452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ "foreach_clause ::=",
146453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 351 */ "foreach_clause ::= FOR EACH ROW",
146454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 352 */ "trnm ::= nm",
146455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 353 */ "tridxby ::=",
146456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 354 */ "database_kw_opt ::= DATABASE",
146457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 355 */ "database_kw_opt ::=",
146458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 356 */ "kwcolumn_opt ::=",
146459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 357 */ "kwcolumn_opt ::= COLUMNKW",
146460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 358 */ "vtabarglist ::= vtabarg",
146461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 359 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
146462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ "vtabarg ::= vtabarg vtabargtoken",
146463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 361 */ "anylist ::=",
146464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 362 */ "anylist ::= anylist LP anylist RP",
146465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 363 */ "anylist ::= anylist ANY",
146466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 364 */ "with ::=",
143013 146467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
143014 146468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* NDEBUG */
143015 146469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
143016 146470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
143017 146471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if YYSTACKDEPTH<=0
@@ -143133,77 +146587,100 @@
143133 146587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Note: during a reduce, the only symbols destroyed are those
143134 146588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** which appear on the RHS of the rule, but which are *not* used
143135 146589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** inside the C code.
143136 146590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
143137 146591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/********* Begin destructor definitions ***************************************/
143138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 164: /* select */
143139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 196: /* selectnowith */
143140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 197: /* oneselect */
143141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 208: /* values */
143142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SelectDelete(pParse->db, (yypminor->yy399));
143144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 174: /* term */
143147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 175: /* expr */
143148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 203: /* where_opt */
143149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 205: /* having_opt */
143150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 217: /* on_opt */
143151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 230: /* case_operand */
143152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 232: /* case_else */
143153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 241: /* when_clause */
143154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 246: /* key_opt */
143155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprDelete(pParse->db, (yypminor->yy182));
143157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 179: /* eidlist_opt */
143160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 188: /* sortlist */
143161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 189: /* eidlist */
143162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 201: /* selcollist */
143163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 204: /* groupby_opt */
143164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 206: /* orderby_opt */
143165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 209: /* nexprlist */
143166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 210: /* exprlist */
143167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 211: /* sclp */
143168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 222: /* setlist */
143169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 229: /* paren_exprlist */
143170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 231: /* case_exprlist */
143171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListDelete(pParse->db, (yypminor->yy232));
143173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 195: /* fullname */
143176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 202: /* from */
143177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 213: /* seltablist */
143178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 214: /* stl_prefix */
143179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 219: /* xfullname */
143180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListDelete(pParse->db, (yypminor->yy427));
143182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 198: /* wqlist */
143185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WithDelete(pParse->db, (yypminor->yy91));
143187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 218: /* using_opt */
143190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 220: /* idlist */
143191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 224: /* idlist_opt */
143192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3IdListDelete(pParse->db, (yypminor->yy510));
143194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 237: /* trigger_cmd_list */
143197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 242: /* trigger_cmd */
143198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy47));
143200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
143201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
143202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 239: /* trigger_event */
143203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
143204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3IdListDelete(pParse->db, (yypminor->yy300).b);
146592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 174: /* select */
146593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 206: /* selectnowith */
146594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 207: /* oneselect */
146595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 219: /* values */
146596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SelectDelete(pParse->db, (yypminor->yy489));
146598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 184: /* term */
146601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 185: /* expr */
146602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 213: /* where_opt */
146603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 215: /* having_opt */
146604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 228: /* on_opt */
146605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 242: /* case_operand */
146606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 244: /* case_else */
146607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 253: /* when_clause */
146608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 258: /* key_opt */
146609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 272: /* filter_opt */
146610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, (yypminor->yy18));
146612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 189: /* eidlist_opt */
146615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 198: /* sortlist */
146616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 199: /* eidlist */
146617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 211: /* selcollist */
146618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 214: /* groupby_opt */
146619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 217: /* orderby_opt */
146620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 220: /* nexprlist */
146621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 221: /* exprlist */
146622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 222: /* sclp */
146623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 233: /* setlist */
146624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 241: /* paren_exprlist */
146625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 243: /* case_exprlist */
146626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 271: /* part_opt */
146627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(pParse->db, (yypminor->yy420));
146629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 205: /* fullname */
146632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 212: /* from */
146633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 224: /* seltablist */
146634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 225: /* stl_prefix */
146635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 230: /* xfullname */
146636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListDelete(pParse->db, (yypminor->yy135));
146638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 208: /* wqlist */
146641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WithDelete(pParse->db, (yypminor->yy449));
146643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 216: /* windowdefn_opt */
146646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 267: /* windowdefn_list */
146647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowListDelete(pParse->db, (yypminor->yy327));
146649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 229: /* using_opt */
146652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 231: /* idlist */
146653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 235: /* idlist_opt */
146654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3IdListDelete(pParse->db, (yypminor->yy48));
146656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 237: /* over_opt */
146659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 268: /* windowdefn */
146660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 269: /* window */
146661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 270: /* frame_opt */
146662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowDelete(pParse->db, (yypminor->yy327));
146664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 249: /* trigger_cmd_list */
146667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 254: /* trigger_cmd */
146668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy207));
146670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 251: /* trigger_event */
146673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3IdListDelete(pParse->db, (yypminor->yy34).b);
146675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
146677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 274: /* frame_bound */
146678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 275: /* frame_bound_s */
146679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 276: /* frame_bound_e */
146680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
146681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, (yypminor->yy119).pExpr);
143205 146682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
143206 146683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143207 146684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/********* End destructor definitions *****************************************/
143208 146685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: break; /* If no destructor action specified: do nothing */
143209 146686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -143325,15 +146802,15 @@
143325 146802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yycoverage[stateno][iLookAhead] = 1;
143326 146803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
143327 146804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
143328 146805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = yy_shift_ofst[stateno];
143329 146806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( i>=0 );
143330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( i+YYNTOKEN<=(int)sizeof(yy_lookahead)/sizeof(yy_lookahead[0]) );
146807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */
143331 146808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iLookAhead!=YYNOCODE );
143332 146809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iLookAhead < YYNTOKEN );
143333 146810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i += iLookAhead;
143334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yy_lookahead[i]!=iLookAhead ){
146811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){
143335 146812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef YYFALLBACK
143336 146813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
YYCODETYPE iFallback; /* Fallback token */
143337 146814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
143338 146815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (iFallback = yyFallback[iLookAhead])!=0 ){
143339 146816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
@@ -143355,10 +146832,11 @@
143355 146832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j>=0 &&
143356 146833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
143357 146834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
143358 146835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j<YY_ACTTAB_COUNT &&
143359 146836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
146837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) &&
143360 146838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yy_lookahead[j]==YYWILDCARD && iLookAhead>0
143361 146839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
143362 146840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
143363 146841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yyTraceFILE ){
143364 146842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
@@ -143497,351 +146975,375 @@
143497 146975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
143498 146976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const struct {
143499 146977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
143500 146978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
signed char nrhs; /* Negative of the number of RHS symbols in the rule */
143501 146979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} yyRuleInfo[] = {
143502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 149, -1 }, /* (0) explain ::= EXPLAIN */
143503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 149, -3 }, /* (1) explain ::= EXPLAIN QUERY PLAN */
143504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 148, -1 }, /* (2) cmdx ::= cmd */
143505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -3 }, /* (3) cmd ::= BEGIN transtype trans_opt */
143506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 151, 0 }, /* (4) transtype ::= */
143507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 151, -1 }, /* (5) transtype ::= DEFERRED */
143508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 151, -1 }, /* (6) transtype ::= IMMEDIATE */
143509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 151, -1 }, /* (7) transtype ::= EXCLUSIVE */
143510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -2 }, /* (8) cmd ::= COMMIT|END trans_opt */
143511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -2 }, /* (9) cmd ::= ROLLBACK trans_opt */
143512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -2 }, /* (10) cmd ::= SAVEPOINT nm */
143513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -3 }, /* (11) cmd ::= RELEASE savepoint_opt nm */
143514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -5 }, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
143515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 155, -6 }, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
143516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 157, -1 }, /* (14) createkw ::= CREATE */
143517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 159, 0 }, /* (15) ifnotexists ::= */
143518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 159, -3 }, /* (16) ifnotexists ::= IF NOT EXISTS */
143519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 158, -1 }, /* (17) temp ::= TEMP */
143520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 158, 0 }, /* (18) temp ::= */
143521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 156, -5 }, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */
143522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 156, -2 }, /* (20) create_table_args ::= AS select */
143523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 163, 0 }, /* (21) table_options ::= */
143524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 163, -2 }, /* (22) table_options ::= WITHOUT nm */
143525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 165, -2 }, /* (23) columnname ::= nm typetoken */
143526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 167, 0 }, /* (24) typetoken ::= */
143527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 167, -4 }, /* (25) typetoken ::= typename LP signed RP */
143528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 167, -6 }, /* (26) typetoken ::= typename LP signed COMMA signed RP */
143529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 168, -2 }, /* (27) typename ::= typename ID|STRING */
143530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 172, 0 }, /* (28) scanpt ::= */
143531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -2 }, /* (29) ccons ::= CONSTRAINT nm */
143532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -4 }, /* (30) ccons ::= DEFAULT scanpt term scanpt */
143533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -4 }, /* (31) ccons ::= DEFAULT LP expr RP */
143534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -4 }, /* (32) ccons ::= DEFAULT PLUS term scanpt */
143535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -4 }, /* (33) ccons ::= DEFAULT MINUS term scanpt */
143536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -3 }, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */
143537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -3 }, /* (35) ccons ::= NOT NULL onconf */
143538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -5 }, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */
143539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -2 }, /* (37) ccons ::= UNIQUE onconf */
143540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -4 }, /* (38) ccons ::= CHECK LP expr RP */
143541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -4 }, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */
143542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -1 }, /* (40) ccons ::= defer_subclause */
143543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -2 }, /* (41) ccons ::= COLLATE ID|STRING */
143544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 178, 0 }, /* (42) autoinc ::= */
143545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 178, -1 }, /* (43) autoinc ::= AUTOINCR */
143546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 180, 0 }, /* (44) refargs ::= */
143547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 180, -2 }, /* (45) refargs ::= refargs refarg */
143548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 182, -2 }, /* (46) refarg ::= MATCH nm */
143549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 182, -3 }, /* (47) refarg ::= ON INSERT refact */
143550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 182, -3 }, /* (48) refarg ::= ON DELETE refact */
143551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 182, -3 }, /* (49) refarg ::= ON UPDATE refact */
143552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 183, -2 }, /* (50) refact ::= SET NULL */
143553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 183, -2 }, /* (51) refact ::= SET DEFAULT */
143554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 183, -1 }, /* (52) refact ::= CASCADE */
143555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 183, -1 }, /* (53) refact ::= RESTRICT */
143556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 183, -2 }, /* (54) refact ::= NO ACTION */
143557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 181, -3 }, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
143558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 181, -2 }, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
143559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 184, 0 }, /* (57) init_deferred_pred_opt ::= */
143560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 184, -2 }, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */
143561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 184, -2 }, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
143562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 162, 0 }, /* (60) conslist_opt ::= */
143563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 186, -1 }, /* (61) tconscomma ::= COMMA */
143564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 187, -2 }, /* (62) tcons ::= CONSTRAINT nm */
143565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 187, -7 }, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
143566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 187, -5 }, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */
143567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 187, -5 }, /* (65) tcons ::= CHECK LP expr RP onconf */
143568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 187, -10 }, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
143569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 190, 0 }, /* (67) defer_subclause_opt ::= */
143570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 176, 0 }, /* (68) onconf ::= */
143571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 176, -3 }, /* (69) onconf ::= ON CONFLICT resolvetype */
143572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 191, 0 }, /* (70) orconf ::= */
143573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 191, -2 }, /* (71) orconf ::= OR resolvetype */
143574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 192, -1 }, /* (72) resolvetype ::= IGNORE */
143575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 192, -1 }, /* (73) resolvetype ::= REPLACE */
143576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -4 }, /* (74) cmd ::= DROP TABLE ifexists fullname */
143577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 194, -2 }, /* (75) ifexists ::= IF EXISTS */
143578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 194, 0 }, /* (76) ifexists ::= */
143579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
143580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
143581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -1 }, /* (79) cmd ::= select */
143582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 164, -3 }, /* (80) select ::= WITH wqlist selectnowith */
143583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 164, -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
143584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 164, -1 }, /* (82) select ::= selectnowith */
143585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 196, -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
143586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 199, -1 }, /* (84) multiselect_op ::= UNION */
143587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 199, -2 }, /* (85) multiselect_op ::= UNION ALL */
143588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 199, -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
143589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 197, -9 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
143590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 208, -4 }, /* (88) values ::= VALUES LP nexprlist RP */
143591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 208, -5 }, /* (89) values ::= values COMMA LP exprlist RP */
143592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 200, -1 }, /* (90) distinct ::= DISTINCT */
143593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 200, -1 }, /* (91) distinct ::= ALL */
143594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 200, 0 }, /* (92) distinct ::= */
143595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 211, 0 }, /* (93) sclp ::= */
143596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 201, -5 }, /* (94) selcollist ::= sclp scanpt expr scanpt as */
143597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 201, -3 }, /* (95) selcollist ::= sclp scanpt STAR */
143598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 201, -5 }, /* (96) selcollist ::= sclp scanpt nm DOT STAR */
143599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 212, -2 }, /* (97) as ::= AS nm */
143600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 212, 0 }, /* (98) as ::= */
143601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 202, 0 }, /* (99) from ::= */
143602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 202, -2 }, /* (100) from ::= FROM seltablist */
143603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 214, -2 }, /* (101) stl_prefix ::= seltablist joinop */
143604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 214, 0 }, /* (102) stl_prefix ::= */
143605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 213, -7 }, /* (103) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
143606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 213, -9 }, /* (104) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
143607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 213, -7 }, /* (105) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
143608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 213, -7 }, /* (106) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
143609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 160, 0 }, /* (107) dbnm ::= */
143610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 160, -2 }, /* (108) dbnm ::= DOT nm */
143611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 195, -1 }, /* (109) fullname ::= nm */
143612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 195, -3 }, /* (110) fullname ::= nm DOT nm */
143613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 219, -1 }, /* (111) xfullname ::= nm */
143614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 219, -3 }, /* (112) xfullname ::= nm DOT nm */
143615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 219, -5 }, /* (113) xfullname ::= nm DOT nm AS nm */
143616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 219, -3 }, /* (114) xfullname ::= nm AS nm */
143617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 215, -1 }, /* (115) joinop ::= COMMA|JOIN */
143618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 215, -2 }, /* (116) joinop ::= JOIN_KW JOIN */
143619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 215, -3 }, /* (117) joinop ::= JOIN_KW nm JOIN */
143620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 215, -4 }, /* (118) joinop ::= JOIN_KW nm nm JOIN */
143621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 217, -2 }, /* (119) on_opt ::= ON expr */
143622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 217, 0 }, /* (120) on_opt ::= */
143623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 216, 0 }, /* (121) indexed_opt ::= */
143624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 216, -3 }, /* (122) indexed_opt ::= INDEXED BY nm */
143625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 216, -2 }, /* (123) indexed_opt ::= NOT INDEXED */
143626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 218, -4 }, /* (124) using_opt ::= USING LP idlist RP */
143627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 218, 0 }, /* (125) using_opt ::= */
143628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 206, 0 }, /* (126) orderby_opt ::= */
143629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 206, -3 }, /* (127) orderby_opt ::= ORDER BY sortlist */
143630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 188, -4 }, /* (128) sortlist ::= sortlist COMMA expr sortorder */
143631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 188, -2 }, /* (129) sortlist ::= expr sortorder */
143632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 177, -1 }, /* (130) sortorder ::= ASC */
143633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 177, -1 }, /* (131) sortorder ::= DESC */
143634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 177, 0 }, /* (132) sortorder ::= */
143635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 204, 0 }, /* (133) groupby_opt ::= */
143636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 204, -3 }, /* (134) groupby_opt ::= GROUP BY nexprlist */
143637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 205, 0 }, /* (135) having_opt ::= */
143638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 205, -2 }, /* (136) having_opt ::= HAVING expr */
143639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 207, 0 }, /* (137) limit_opt ::= */
143640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 207, -2 }, /* (138) limit_opt ::= LIMIT expr */
143641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 207, -4 }, /* (139) limit_opt ::= LIMIT expr OFFSET expr */
143642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 207, -4 }, /* (140) limit_opt ::= LIMIT expr COMMA expr */
143643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -6 }, /* (141) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
143644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 203, 0 }, /* (142) where_opt ::= */
143645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 203, -2 }, /* (143) where_opt ::= WHERE expr */
143646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -8 }, /* (144) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
143647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 222, -5 }, /* (145) setlist ::= setlist COMMA nm EQ expr */
143648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 222, -7 }, /* (146) setlist ::= setlist COMMA LP idlist RP EQ expr */
143649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 222, -3 }, /* (147) setlist ::= nm EQ expr */
143650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 222, -5 }, /* (148) setlist ::= LP idlist RP EQ expr */
143651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -7 }, /* (149) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
143652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -7 }, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
143653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 225, 0 }, /* (151) upsert ::= */
143654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 225, -11 }, /* (152) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
143655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 225, -8 }, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
143656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 225, -4 }, /* (154) upsert ::= ON CONFLICT DO NOTHING */
143657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 223, -2 }, /* (155) insert_cmd ::= INSERT orconf */
143658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 223, -1 }, /* (156) insert_cmd ::= REPLACE */
143659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 224, 0 }, /* (157) idlist_opt ::= */
143660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 224, -3 }, /* (158) idlist_opt ::= LP idlist RP */
143661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 220, -3 }, /* (159) idlist ::= idlist COMMA nm */
143662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 220, -1 }, /* (160) idlist ::= nm */
143663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (161) expr ::= LP expr RP */
143664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -1 }, /* (162) expr ::= ID|INDEXED */
143665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -1 }, /* (163) expr ::= JOIN_KW */
143666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (164) expr ::= nm DOT nm */
143667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (165) expr ::= nm DOT nm DOT nm */
143668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 174, -1 }, /* (166) term ::= NULL|FLOAT|BLOB */
143669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 174, -1 }, /* (167) term ::= STRING */
143670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 174, -1 }, /* (168) term ::= INTEGER */
143671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -1 }, /* (169) expr ::= VARIABLE */
143672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (170) expr ::= expr COLLATE ID|STRING */
143673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -6 }, /* (171) expr ::= CAST LP expr AS typetoken RP */
143674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (172) expr ::= ID|INDEXED LP distinct exprlist RP */
143675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -4 }, /* (173) expr ::= ID|INDEXED LP STAR RP */
143676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 174, -1 }, /* (174) term ::= CTIME_KW */
143677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (175) expr ::= LP nexprlist COMMA expr RP */
143678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (176) expr ::= expr AND expr */
143679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (177) expr ::= expr OR expr */
143680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (178) expr ::= expr LT|GT|GE|LE expr */
143681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (179) expr ::= expr EQ|NE expr */
143682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (180) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
143683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (181) expr ::= expr PLUS|MINUS expr */
143684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (182) expr ::= expr STAR|SLASH|REM expr */
143685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (183) expr ::= expr CONCAT expr */
143686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 226, -2 }, /* (184) likeop ::= NOT LIKE_KW|MATCH */
143687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (185) expr ::= expr likeop expr */
143688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (186) expr ::= expr likeop expr ESCAPE expr */
143689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -2 }, /* (187) expr ::= expr ISNULL|NOTNULL */
143690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (188) expr ::= expr NOT NULL */
143691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (189) expr ::= expr IS expr */
143692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -4 }, /* (190) expr ::= expr IS NOT expr */
143693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -2 }, /* (191) expr ::= NOT expr */
143694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -2 }, /* (192) expr ::= BITNOT expr */
143695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -2 }, /* (193) expr ::= MINUS expr */
143696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -2 }, /* (194) expr ::= PLUS expr */
143697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 227, -1 }, /* (195) between_op ::= BETWEEN */
143698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 227, -2 }, /* (196) between_op ::= NOT BETWEEN */
143699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (197) expr ::= expr between_op expr AND expr */
143700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 228, -1 }, /* (198) in_op ::= IN */
143701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 228, -2 }, /* (199) in_op ::= NOT IN */
143702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (200) expr ::= expr in_op LP exprlist RP */
143703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -3 }, /* (201) expr ::= LP select RP */
143704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (202) expr ::= expr in_op LP select RP */
143705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (203) expr ::= expr in_op nm dbnm paren_exprlist */
143706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -4 }, /* (204) expr ::= EXISTS LP select RP */
143707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -5 }, /* (205) expr ::= CASE case_operand case_exprlist case_else END */
143708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 231, -5 }, /* (206) case_exprlist ::= case_exprlist WHEN expr THEN expr */
143709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 231, -4 }, /* (207) case_exprlist ::= WHEN expr THEN expr */
143710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 232, -2 }, /* (208) case_else ::= ELSE expr */
143711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 232, 0 }, /* (209) case_else ::= */
143712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 230, -1 }, /* (210) case_operand ::= expr */
143713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 230, 0 }, /* (211) case_operand ::= */
143714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 210, 0 }, /* (212) exprlist ::= */
143715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 209, -3 }, /* (213) nexprlist ::= nexprlist COMMA expr */
143716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 209, -1 }, /* (214) nexprlist ::= expr */
143717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 229, 0 }, /* (215) paren_exprlist ::= */
143718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 229, -3 }, /* (216) paren_exprlist ::= LP exprlist RP */
143719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -12 }, /* (217) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
143720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 233, -1 }, /* (218) uniqueflag ::= UNIQUE */
143721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 233, 0 }, /* (219) uniqueflag ::= */
143722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 179, 0 }, /* (220) eidlist_opt ::= */
143723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 179, -3 }, /* (221) eidlist_opt ::= LP eidlist RP */
143724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 189, -5 }, /* (222) eidlist ::= eidlist COMMA nm collate sortorder */
143725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 189, -3 }, /* (223) eidlist ::= nm collate sortorder */
143726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 234, 0 }, /* (224) collate ::= */
143727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 234, -2 }, /* (225) collate ::= COLLATE ID|STRING */
143728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -4 }, /* (226) cmd ::= DROP INDEX ifexists fullname */
143729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -1 }, /* (227) cmd ::= VACUUM */
143730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -2 }, /* (228) cmd ::= VACUUM nm */
143731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -3 }, /* (229) cmd ::= PRAGMA nm dbnm */
143732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -5 }, /* (230) cmd ::= PRAGMA nm dbnm EQ nmnum */
143733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -6 }, /* (231) cmd ::= PRAGMA nm dbnm LP nmnum RP */
143734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -5 }, /* (232) cmd ::= PRAGMA nm dbnm EQ minus_num */
143735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -6 }, /* (233) cmd ::= PRAGMA nm dbnm LP minus_num RP */
143736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 170, -2 }, /* (234) plus_num ::= PLUS INTEGER|FLOAT */
143737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 171, -2 }, /* (235) minus_num ::= MINUS INTEGER|FLOAT */
143738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -5 }, /* (236) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
143739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 236, -11 }, /* (237) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
143740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 238, -1 }, /* (238) trigger_time ::= BEFORE|AFTER */
143741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 238, -2 }, /* (239) trigger_time ::= INSTEAD OF */
143742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 238, 0 }, /* (240) trigger_time ::= */
143743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 239, -1 }, /* (241) trigger_event ::= DELETE|INSERT */
143744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 239, -1 }, /* (242) trigger_event ::= UPDATE */
143745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 239, -3 }, /* (243) trigger_event ::= UPDATE OF idlist */
143746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 241, 0 }, /* (244) when_clause ::= */
143747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 241, -2 }, /* (245) when_clause ::= WHEN expr */
143748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 237, -3 }, /* (246) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
143749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 237, -2 }, /* (247) trigger_cmd_list ::= trigger_cmd SEMI */
143750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 243, -3 }, /* (248) trnm ::= nm DOT nm */
143751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 244, -3 }, /* (249) tridxby ::= INDEXED BY nm */
143752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 244, -2 }, /* (250) tridxby ::= NOT INDEXED */
143753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 242, -8 }, /* (251) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
143754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 242, -8 }, /* (252) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
143755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 242, -6 }, /* (253) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
143756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 242, -3 }, /* (254) trigger_cmd ::= scanpt select scanpt */
143757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -4 }, /* (255) expr ::= RAISE LP IGNORE RP */
143758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -6 }, /* (256) expr ::= RAISE LP raisetype COMMA nm RP */
143759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 193, -1 }, /* (257) raisetype ::= ROLLBACK */
143760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 193, -1 }, /* (258) raisetype ::= ABORT */
143761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 193, -1 }, /* (259) raisetype ::= FAIL */
143762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -4 }, /* (260) cmd ::= DROP TRIGGER ifexists fullname */
143763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -6 }, /* (261) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
143764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -3 }, /* (262) cmd ::= DETACH database_kw_opt expr */
143765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 246, 0 }, /* (263) key_opt ::= */
143766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 246, -2 }, /* (264) key_opt ::= KEY expr */
143767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -1 }, /* (265) cmd ::= REINDEX */
143768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -3 }, /* (266) cmd ::= REINDEX nm dbnm */
143769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -1 }, /* (267) cmd ::= ANALYZE */
143770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -3 }, /* (268) cmd ::= ANALYZE nm dbnm */
143771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -6 }, /* (269) cmd ::= ALTER TABLE fullname RENAME TO nm */
143772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -7 }, /* (270) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
143773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 247, -1 }, /* (271) add_column_fullname ::= fullname */
143774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -1 }, /* (272) cmd ::= create_vtab */
143775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -4 }, /* (273) cmd ::= create_vtab LP vtabarglist RP */
143776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 249, -8 }, /* (274) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
143777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 251, 0 }, /* (275) vtabarg ::= */
143778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 252, -1 }, /* (276) vtabargtoken ::= ANY */
143779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 252, -3 }, /* (277) vtabargtoken ::= lp anylist RP */
143780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 253, -1 }, /* (278) lp ::= LP */
143781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 221, -2 }, /* (279) with ::= WITH wqlist */
143782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 221, -3 }, /* (280) with ::= WITH RECURSIVE wqlist */
143783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 198, -6 }, /* (281) wqlist ::= nm eidlist_opt AS LP select RP */
143784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 198, -8 }, /* (282) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
143785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 145, -1 }, /* (283) input ::= cmdlist */
143786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 146, -2 }, /* (284) cmdlist ::= cmdlist ecmd */
143787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 146, -1 }, /* (285) cmdlist ::= ecmd */
143788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 147, -1 }, /* (286) ecmd ::= SEMI */
143789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 147, -2 }, /* (287) ecmd ::= cmdx SEMI */
143790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 147, -2 }, /* (288) ecmd ::= explain cmdx */
143791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 152, 0 }, /* (289) trans_opt ::= */
143792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 152, -1 }, /* (290) trans_opt ::= TRANSACTION */
143793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 152, -2 }, /* (291) trans_opt ::= TRANSACTION nm */
143794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 154, -1 }, /* (292) savepoint_opt ::= SAVEPOINT */
143795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 154, 0 }, /* (293) savepoint_opt ::= */
143796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 150, -2 }, /* (294) cmd ::= create_table create_table_args */
143797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 161, -4 }, /* (295) columnlist ::= columnlist COMMA columnname carglist */
143798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 161, -2 }, /* (296) columnlist ::= columnname carglist */
143799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 153, -1 }, /* (297) nm ::= ID|INDEXED */
143800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 153, -1 }, /* (298) nm ::= STRING */
143801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 153, -1 }, /* (299) nm ::= JOIN_KW */
143802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 167, -1 }, /* (300) typetoken ::= typename */
143803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 168, -1 }, /* (301) typename ::= ID|STRING */
143804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 169, -1 }, /* (302) signed ::= plus_num */
143805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 169, -1 }, /* (303) signed ::= minus_num */
143806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 166, -2 }, /* (304) carglist ::= carglist ccons */
143807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 166, 0 }, /* (305) carglist ::= */
143808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 173, -2 }, /* (306) ccons ::= NULL onconf */
143809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 162, -2 }, /* (307) conslist_opt ::= COMMA conslist */
143810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 185, -3 }, /* (308) conslist ::= conslist tconscomma tcons */
143811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 185, -1 }, /* (309) conslist ::= tcons */
143812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 186, 0 }, /* (310) tconscomma ::= */
143813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 190, -1 }, /* (311) defer_subclause_opt ::= defer_subclause */
143814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 192, -1 }, /* (312) resolvetype ::= raisetype */
143815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 196, -1 }, /* (313) selectnowith ::= oneselect */
143816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 197, -1 }, /* (314) oneselect ::= values */
143817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 211, -2 }, /* (315) sclp ::= selcollist COMMA */
143818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 212, -1 }, /* (316) as ::= ID|STRING */
143819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 175, -1 }, /* (317) expr ::= term */
143820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 226, -1 }, /* (318) likeop ::= LIKE_KW|MATCH */
143821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 210, -1 }, /* (319) exprlist ::= nexprlist */
143822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 235, -1 }, /* (320) nmnum ::= plus_num */
143823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 235, -1 }, /* (321) nmnum ::= nm */
143824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 235, -1 }, /* (322) nmnum ::= ON */
143825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 235, -1 }, /* (323) nmnum ::= DELETE */
143826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 235, -1 }, /* (324) nmnum ::= DEFAULT */
143827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 170, -1 }, /* (325) plus_num ::= INTEGER|FLOAT */
143828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 240, 0 }, /* (326) foreach_clause ::= */
143829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 240, -3 }, /* (327) foreach_clause ::= FOR EACH ROW */
143830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 243, -1 }, /* (328) trnm ::= nm */
143831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 244, 0 }, /* (329) tridxby ::= */
143832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 245, -1 }, /* (330) database_kw_opt ::= DATABASE */
143833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 245, 0 }, /* (331) database_kw_opt ::= */
143834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 248, 0 }, /* (332) kwcolumn_opt ::= */
143835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 248, -1 }, /* (333) kwcolumn_opt ::= COLUMNKW */
143836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 250, -1 }, /* (334) vtabarglist ::= vtabarg */
143837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 250, -3 }, /* (335) vtabarglist ::= vtabarglist COMMA vtabarg */
143838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 251, -2 }, /* (336) vtabarg ::= vtabarg vtabargtoken */
143839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 254, 0 }, /* (337) anylist ::= */
143840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 254, -4 }, /* (338) anylist ::= anylist LP anylist RP */
143841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 254, -2 }, /* (339) anylist ::= anylist ANY */
143842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 221, 0 }, /* (340) with ::= */
146980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 159, -1 }, /* (0) explain ::= EXPLAIN */
146981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 159, -3 }, /* (1) explain ::= EXPLAIN QUERY PLAN */
146982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 158, -1 }, /* (2) cmdx ::= cmd */
146983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -3 }, /* (3) cmd ::= BEGIN transtype trans_opt */
146984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 161, 0 }, /* (4) transtype ::= */
146985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 161, -1 }, /* (5) transtype ::= DEFERRED */
146986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 161, -1 }, /* (6) transtype ::= IMMEDIATE */
146987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 161, -1 }, /* (7) transtype ::= EXCLUSIVE */
146988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -2 }, /* (8) cmd ::= COMMIT|END trans_opt */
146989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -2 }, /* (9) cmd ::= ROLLBACK trans_opt */
146990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -2 }, /* (10) cmd ::= SAVEPOINT nm */
146991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -3 }, /* (11) cmd ::= RELEASE savepoint_opt nm */
146992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -5 }, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
146993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 165, -6 }, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
146994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 167, -1 }, /* (14) createkw ::= CREATE */
146995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 169, 0 }, /* (15) ifnotexists ::= */
146996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 169, -3 }, /* (16) ifnotexists ::= IF NOT EXISTS */
146997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 168, -1 }, /* (17) temp ::= TEMP */
146998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 168, 0 }, /* (18) temp ::= */
146999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 166, -5 }, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */
147000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 166, -2 }, /* (20) create_table_args ::= AS select */
147001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 173, 0 }, /* (21) table_options ::= */
147002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 173, -2 }, /* (22) table_options ::= WITHOUT nm */
147003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 175, -2 }, /* (23) columnname ::= nm typetoken */
147004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 177, 0 }, /* (24) typetoken ::= */
147005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 177, -4 }, /* (25) typetoken ::= typename LP signed RP */
147006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 177, -6 }, /* (26) typetoken ::= typename LP signed COMMA signed RP */
147007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 178, -2 }, /* (27) typename ::= typename ID|STRING */
147008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 182, 0 }, /* (28) scanpt ::= */
147009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -2 }, /* (29) ccons ::= CONSTRAINT nm */
147010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -4 }, /* (30) ccons ::= DEFAULT scanpt term scanpt */
147011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -4 }, /* (31) ccons ::= DEFAULT LP expr RP */
147012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -4 }, /* (32) ccons ::= DEFAULT PLUS term scanpt */
147013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -4 }, /* (33) ccons ::= DEFAULT MINUS term scanpt */
147014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -3 }, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */
147015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -3 }, /* (35) ccons ::= NOT NULL onconf */
147016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -5 }, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */
147017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -2 }, /* (37) ccons ::= UNIQUE onconf */
147018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -4 }, /* (38) ccons ::= CHECK LP expr RP */
147019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -4 }, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */
147020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -1 }, /* (40) ccons ::= defer_subclause */
147021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -2 }, /* (41) ccons ::= COLLATE ID|STRING */
147022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 188, 0 }, /* (42) autoinc ::= */
147023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 188, -1 }, /* (43) autoinc ::= AUTOINCR */
147024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 190, 0 }, /* (44) refargs ::= */
147025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 190, -2 }, /* (45) refargs ::= refargs refarg */
147026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 192, -2 }, /* (46) refarg ::= MATCH nm */
147027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 192, -3 }, /* (47) refarg ::= ON INSERT refact */
147028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 192, -3 }, /* (48) refarg ::= ON DELETE refact */
147029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 192, -3 }, /* (49) refarg ::= ON UPDATE refact */
147030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 193, -2 }, /* (50) refact ::= SET NULL */
147031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 193, -2 }, /* (51) refact ::= SET DEFAULT */
147032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 193, -1 }, /* (52) refact ::= CASCADE */
147033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 193, -1 }, /* (53) refact ::= RESTRICT */
147034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 193, -2 }, /* (54) refact ::= NO ACTION */
147035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 191, -3 }, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
147036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 191, -2 }, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
147037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 194, 0 }, /* (57) init_deferred_pred_opt ::= */
147038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 194, -2 }, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */
147039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 194, -2 }, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
147040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 172, 0 }, /* (60) conslist_opt ::= */
147041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 196, -1 }, /* (61) tconscomma ::= COMMA */
147042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 197, -2 }, /* (62) tcons ::= CONSTRAINT nm */
147043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 197, -7 }, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
147044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 197, -5 }, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */
147045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 197, -5 }, /* (65) tcons ::= CHECK LP expr RP onconf */
147046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 197, -10 }, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
147047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 200, 0 }, /* (67) defer_subclause_opt ::= */
147048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 186, 0 }, /* (68) onconf ::= */
147049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 186, -3 }, /* (69) onconf ::= ON CONFLICT resolvetype */
147050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 201, 0 }, /* (70) orconf ::= */
147051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 201, -2 }, /* (71) orconf ::= OR resolvetype */
147052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 202, -1 }, /* (72) resolvetype ::= IGNORE */
147053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 202, -1 }, /* (73) resolvetype ::= REPLACE */
147054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -4 }, /* (74) cmd ::= DROP TABLE ifexists fullname */
147055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 204, -2 }, /* (75) ifexists ::= IF EXISTS */
147056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 204, 0 }, /* (76) ifexists ::= */
147057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
147058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
147059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -1 }, /* (79) cmd ::= select */
147060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 174, -3 }, /* (80) select ::= WITH wqlist selectnowith */
147061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 174, -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
147062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 174, -1 }, /* (82) select ::= selectnowith */
147063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 206, -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
147064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 209, -1 }, /* (84) multiselect_op ::= UNION */
147065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 209, -2 }, /* (85) multiselect_op ::= UNION ALL */
147066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 209, -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
147067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 207, -10 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt windowdefn_opt orderby_opt limit_opt */
147068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 219, -4 }, /* (88) values ::= VALUES LP nexprlist RP */
147069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 219, -5 }, /* (89) values ::= values COMMA LP exprlist RP */
147070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 210, -1 }, /* (90) distinct ::= DISTINCT */
147071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 210, -1 }, /* (91) distinct ::= ALL */
147072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 210, 0 }, /* (92) distinct ::= */
147073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 222, 0 }, /* (93) sclp ::= */
147074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 211, -5 }, /* (94) selcollist ::= sclp scanpt expr scanpt as */
147075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 211, -3 }, /* (95) selcollist ::= sclp scanpt STAR */
147076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 211, -5 }, /* (96) selcollist ::= sclp scanpt nm DOT STAR */
147077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 223, -2 }, /* (97) as ::= AS nm */
147078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 223, 0 }, /* (98) as ::= */
147079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 212, 0 }, /* (99) from ::= */
147080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 212, -2 }, /* (100) from ::= FROM seltablist */
147081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 225, -2 }, /* (101) stl_prefix ::= seltablist joinop */
147082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 225, 0 }, /* (102) stl_prefix ::= */
147083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 224, -7 }, /* (103) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
147084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 224, -9 }, /* (104) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
147085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 224, -7 }, /* (105) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
147086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 224, -7 }, /* (106) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
147087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 170, 0 }, /* (107) dbnm ::= */
147088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 170, -2 }, /* (108) dbnm ::= DOT nm */
147089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 205, -1 }, /* (109) fullname ::= nm */
147090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 205, -3 }, /* (110) fullname ::= nm DOT nm */
147091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 230, -1 }, /* (111) xfullname ::= nm */
147092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 230, -3 }, /* (112) xfullname ::= nm DOT nm */
147093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 230, -5 }, /* (113) xfullname ::= nm DOT nm AS nm */
147094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 230, -3 }, /* (114) xfullname ::= nm AS nm */
147095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 226, -1 }, /* (115) joinop ::= COMMA|JOIN */
147096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 226, -2 }, /* (116) joinop ::= JOIN_KW JOIN */
147097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 226, -3 }, /* (117) joinop ::= JOIN_KW nm JOIN */
147098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 226, -4 }, /* (118) joinop ::= JOIN_KW nm nm JOIN */
147099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 228, -2 }, /* (119) on_opt ::= ON expr */
147100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 228, 0 }, /* (120) on_opt ::= */
147101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 227, 0 }, /* (121) indexed_opt ::= */
147102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 227, -3 }, /* (122) indexed_opt ::= INDEXED BY nm */
147103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 227, -2 }, /* (123) indexed_opt ::= NOT INDEXED */
147104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 229, -4 }, /* (124) using_opt ::= USING LP idlist RP */
147105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 229, 0 }, /* (125) using_opt ::= */
147106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 217, 0 }, /* (126) orderby_opt ::= */
147107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 217, -3 }, /* (127) orderby_opt ::= ORDER BY sortlist */
147108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 198, -4 }, /* (128) sortlist ::= sortlist COMMA expr sortorder */
147109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 198, -2 }, /* (129) sortlist ::= expr sortorder */
147110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 187, -1 }, /* (130) sortorder ::= ASC */
147111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 187, -1 }, /* (131) sortorder ::= DESC */
147112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 187, 0 }, /* (132) sortorder ::= */
147113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 214, 0 }, /* (133) groupby_opt ::= */
147114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 214, -3 }, /* (134) groupby_opt ::= GROUP BY nexprlist */
147115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 215, 0 }, /* (135) having_opt ::= */
147116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 215, -2 }, /* (136) having_opt ::= HAVING expr */
147117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 218, 0 }, /* (137) limit_opt ::= */
147118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 218, -2 }, /* (138) limit_opt ::= LIMIT expr */
147119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 218, -4 }, /* (139) limit_opt ::= LIMIT expr OFFSET expr */
147120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 218, -4 }, /* (140) limit_opt ::= LIMIT expr COMMA expr */
147121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -6 }, /* (141) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
147122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 213, 0 }, /* (142) where_opt ::= */
147123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 213, -2 }, /* (143) where_opt ::= WHERE expr */
147124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -8 }, /* (144) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
147125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 233, -5 }, /* (145) setlist ::= setlist COMMA nm EQ expr */
147126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 233, -7 }, /* (146) setlist ::= setlist COMMA LP idlist RP EQ expr */
147127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 233, -3 }, /* (147) setlist ::= nm EQ expr */
147128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 233, -5 }, /* (148) setlist ::= LP idlist RP EQ expr */
147129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -7 }, /* (149) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
147130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -7 }, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
147131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 236, 0 }, /* (151) upsert ::= */
147132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 236, -11 }, /* (152) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
147133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 236, -8 }, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
147134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 236, -4 }, /* (154) upsert ::= ON CONFLICT DO NOTHING */
147135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 234, -2 }, /* (155) insert_cmd ::= INSERT orconf */
147136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 234, -1 }, /* (156) insert_cmd ::= REPLACE */
147137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 235, 0 }, /* (157) idlist_opt ::= */
147138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 235, -3 }, /* (158) idlist_opt ::= LP idlist RP */
147139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 231, -3 }, /* (159) idlist ::= idlist COMMA nm */
147140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 231, -1 }, /* (160) idlist ::= nm */
147141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (161) expr ::= LP expr RP */
147142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -1 }, /* (162) expr ::= ID|INDEXED */
147143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -1 }, /* (163) expr ::= JOIN_KW */
147144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (164) expr ::= nm DOT nm */
147145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (165) expr ::= nm DOT nm DOT nm */
147146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 184, -1 }, /* (166) term ::= NULL|FLOAT|BLOB */
147147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 184, -1 }, /* (167) term ::= STRING */
147148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 184, -1 }, /* (168) term ::= INTEGER */
147149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -1 }, /* (169) expr ::= VARIABLE */
147150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (170) expr ::= expr COLLATE ID|STRING */
147151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -6 }, /* (171) expr ::= CAST LP expr AS typetoken RP */
147152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -6 }, /* (172) expr ::= ID|INDEXED LP distinct exprlist RP over_opt */
147153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (173) expr ::= ID|INDEXED LP STAR RP over_opt */
147154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 184, -1 }, /* (174) term ::= CTIME_KW */
147155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (175) expr ::= LP nexprlist COMMA expr RP */
147156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (176) expr ::= expr AND expr */
147157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (177) expr ::= expr OR expr */
147158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (178) expr ::= expr LT|GT|GE|LE expr */
147159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (179) expr ::= expr EQ|NE expr */
147160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (180) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
147161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (181) expr ::= expr PLUS|MINUS expr */
147162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (182) expr ::= expr STAR|SLASH|REM expr */
147163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (183) expr ::= expr CONCAT expr */
147164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 238, -2 }, /* (184) likeop ::= NOT LIKE_KW|MATCH */
147165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (185) expr ::= expr likeop expr */
147166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (186) expr ::= expr likeop expr ESCAPE expr */
147167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -2 }, /* (187) expr ::= expr ISNULL|NOTNULL */
147168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (188) expr ::= expr NOT NULL */
147169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (189) expr ::= expr IS expr */
147170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -4 }, /* (190) expr ::= expr IS NOT expr */
147171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -2 }, /* (191) expr ::= NOT expr */
147172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -2 }, /* (192) expr ::= BITNOT expr */
147173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -2 }, /* (193) expr ::= PLUS|MINUS expr */
147174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 239, -1 }, /* (194) between_op ::= BETWEEN */
147175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 239, -2 }, /* (195) between_op ::= NOT BETWEEN */
147176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (196) expr ::= expr between_op expr AND expr */
147177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 240, -1 }, /* (197) in_op ::= IN */
147178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 240, -2 }, /* (198) in_op ::= NOT IN */
147179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (199) expr ::= expr in_op LP exprlist RP */
147180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -3 }, /* (200) expr ::= LP select RP */
147181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (201) expr ::= expr in_op LP select RP */
147182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (202) expr ::= expr in_op nm dbnm paren_exprlist */
147183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -4 }, /* (203) expr ::= EXISTS LP select RP */
147184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -5 }, /* (204) expr ::= CASE case_operand case_exprlist case_else END */
147185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 243, -5 }, /* (205) case_exprlist ::= case_exprlist WHEN expr THEN expr */
147186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 243, -4 }, /* (206) case_exprlist ::= WHEN expr THEN expr */
147187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 244, -2 }, /* (207) case_else ::= ELSE expr */
147188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 244, 0 }, /* (208) case_else ::= */
147189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 242, -1 }, /* (209) case_operand ::= expr */
147190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 242, 0 }, /* (210) case_operand ::= */
147191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 221, 0 }, /* (211) exprlist ::= */
147192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 220, -3 }, /* (212) nexprlist ::= nexprlist COMMA expr */
147193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 220, -1 }, /* (213) nexprlist ::= expr */
147194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 241, 0 }, /* (214) paren_exprlist ::= */
147195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 241, -3 }, /* (215) paren_exprlist ::= LP exprlist RP */
147196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -12 }, /* (216) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
147197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 245, -1 }, /* (217) uniqueflag ::= UNIQUE */
147198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 245, 0 }, /* (218) uniqueflag ::= */
147199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 189, 0 }, /* (219) eidlist_opt ::= */
147200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 189, -3 }, /* (220) eidlist_opt ::= LP eidlist RP */
147201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 199, -5 }, /* (221) eidlist ::= eidlist COMMA nm collate sortorder */
147202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 199, -3 }, /* (222) eidlist ::= nm collate sortorder */
147203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 246, 0 }, /* (223) collate ::= */
147204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 246, -2 }, /* (224) collate ::= COLLATE ID|STRING */
147205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -4 }, /* (225) cmd ::= DROP INDEX ifexists fullname */
147206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -1 }, /* (226) cmd ::= VACUUM */
147207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -2 }, /* (227) cmd ::= VACUUM nm */
147208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -3 }, /* (228) cmd ::= PRAGMA nm dbnm */
147209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -5 }, /* (229) cmd ::= PRAGMA nm dbnm EQ nmnum */
147210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -6 }, /* (230) cmd ::= PRAGMA nm dbnm LP nmnum RP */
147211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -5 }, /* (231) cmd ::= PRAGMA nm dbnm EQ minus_num */
147212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -6 }, /* (232) cmd ::= PRAGMA nm dbnm LP minus_num RP */
147213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 180, -2 }, /* (233) plus_num ::= PLUS INTEGER|FLOAT */
147214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 181, -2 }, /* (234) minus_num ::= MINUS INTEGER|FLOAT */
147215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -5 }, /* (235) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
147216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 248, -11 }, /* (236) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
147217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 250, -1 }, /* (237) trigger_time ::= BEFORE|AFTER */
147218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 250, -2 }, /* (238) trigger_time ::= INSTEAD OF */
147219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 250, 0 }, /* (239) trigger_time ::= */
147220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 251, -1 }, /* (240) trigger_event ::= DELETE|INSERT */
147221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 251, -1 }, /* (241) trigger_event ::= UPDATE */
147222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 251, -3 }, /* (242) trigger_event ::= UPDATE OF idlist */
147223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 253, 0 }, /* (243) when_clause ::= */
147224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 253, -2 }, /* (244) when_clause ::= WHEN expr */
147225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 249, -3 }, /* (245) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
147226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 249, -2 }, /* (246) trigger_cmd_list ::= trigger_cmd SEMI */
147227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 255, -3 }, /* (247) trnm ::= nm DOT nm */
147228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 256, -3 }, /* (248) tridxby ::= INDEXED BY nm */
147229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 256, -2 }, /* (249) tridxby ::= NOT INDEXED */
147230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 254, -8 }, /* (250) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
147231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 254, -8 }, /* (251) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
147232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 254, -6 }, /* (252) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
147233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 254, -3 }, /* (253) trigger_cmd ::= scanpt select scanpt */
147234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -4 }, /* (254) expr ::= RAISE LP IGNORE RP */
147235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -6 }, /* (255) expr ::= RAISE LP raisetype COMMA nm RP */
147236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 203, -1 }, /* (256) raisetype ::= ROLLBACK */
147237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 203, -1 }, /* (257) raisetype ::= ABORT */
147238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 203, -1 }, /* (258) raisetype ::= FAIL */
147239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -4 }, /* (259) cmd ::= DROP TRIGGER ifexists fullname */
147240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -6 }, /* (260) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
147241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -3 }, /* (261) cmd ::= DETACH database_kw_opt expr */
147242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 258, 0 }, /* (262) key_opt ::= */
147243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 258, -2 }, /* (263) key_opt ::= KEY expr */
147244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -1 }, /* (264) cmd ::= REINDEX */
147245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -3 }, /* (265) cmd ::= REINDEX nm dbnm */
147246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -1 }, /* (266) cmd ::= ANALYZE */
147247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -3 }, /* (267) cmd ::= ANALYZE nm dbnm */
147248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -6 }, /* (268) cmd ::= ALTER TABLE fullname RENAME TO nm */
147249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -7 }, /* (269) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
147250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 259, -1 }, /* (270) add_column_fullname ::= fullname */
147251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -1 }, /* (271) cmd ::= create_vtab */
147252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -4 }, /* (272) cmd ::= create_vtab LP vtabarglist RP */
147253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 261, -8 }, /* (273) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
147254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 263, 0 }, /* (274) vtabarg ::= */
147255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 264, -1 }, /* (275) vtabargtoken ::= ANY */
147256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 264, -3 }, /* (276) vtabargtoken ::= lp anylist RP */
147257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 265, -1 }, /* (277) lp ::= LP */
147258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 232, -2 }, /* (278) with ::= WITH wqlist */
147259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 232, -3 }, /* (279) with ::= WITH RECURSIVE wqlist */
147260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 208, -6 }, /* (280) wqlist ::= nm eidlist_opt AS LP select RP */
147261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 208, -8 }, /* (281) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
147262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 267, -1 }, /* (282) windowdefn_list ::= windowdefn */
147263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 267, -3 }, /* (283) windowdefn_list ::= windowdefn_list COMMA windowdefn */
147264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 268, -3 }, /* (284) windowdefn ::= nm AS window */
147265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 269, -5 }, /* (285) window ::= LP part_opt orderby_opt frame_opt RP */
147266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 271, -3 }, /* (286) part_opt ::= PARTITION BY exprlist */
147267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 271, 0 }, /* (287) part_opt ::= */
147268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 270, 0 }, /* (288) frame_opt ::= */
147269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 270, -2 }, /* (289) frame_opt ::= range_or_rows frame_bound_s */
147270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 270, -5 }, /* (290) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e */
147271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 273, -1 }, /* (291) range_or_rows ::= RANGE */
147272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 273, -1 }, /* (292) range_or_rows ::= ROWS */
147273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 275, -1 }, /* (293) frame_bound_s ::= frame_bound */
147274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 275, -2 }, /* (294) frame_bound_s ::= UNBOUNDED PRECEDING */
147275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 276, -1 }, /* (295) frame_bound_e ::= frame_bound */
147276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 276, -2 }, /* (296) frame_bound_e ::= UNBOUNDED FOLLOWING */
147277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 274, -2 }, /* (297) frame_bound ::= expr PRECEDING */
147278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 274, -2 }, /* (298) frame_bound ::= CURRENT ROW */
147279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 274, -2 }, /* (299) frame_bound ::= expr FOLLOWING */
147280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 216, 0 }, /* (300) windowdefn_opt ::= */
147281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 216, -2 }, /* (301) windowdefn_opt ::= WINDOW windowdefn_list */
147282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 237, 0 }, /* (302) over_opt ::= */
147283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 237, -3 }, /* (303) over_opt ::= filter_opt OVER window */
147284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 237, -3 }, /* (304) over_opt ::= filter_opt OVER nm */
147285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 272, 0 }, /* (305) filter_opt ::= */
147286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 272, -5 }, /* (306) filter_opt ::= FILTER LP WHERE expr RP */
147287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 155, -1 }, /* (307) input ::= cmdlist */
147288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 156, -2 }, /* (308) cmdlist ::= cmdlist ecmd */
147289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 156, -1 }, /* (309) cmdlist ::= ecmd */
147290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 157, -1 }, /* (310) ecmd ::= SEMI */
147291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 157, -2 }, /* (311) ecmd ::= cmdx SEMI */
147292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 157, -2 }, /* (312) ecmd ::= explain cmdx */
147293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 162, 0 }, /* (313) trans_opt ::= */
147294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 162, -1 }, /* (314) trans_opt ::= TRANSACTION */
147295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 162, -2 }, /* (315) trans_opt ::= TRANSACTION nm */
147296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 164, -1 }, /* (316) savepoint_opt ::= SAVEPOINT */
147297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 164, 0 }, /* (317) savepoint_opt ::= */
147298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 160, -2 }, /* (318) cmd ::= create_table create_table_args */
147299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 171, -4 }, /* (319) columnlist ::= columnlist COMMA columnname carglist */
147300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 171, -2 }, /* (320) columnlist ::= columnname carglist */
147301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 163, -1 }, /* (321) nm ::= ID|INDEXED */
147302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 163, -1 }, /* (322) nm ::= STRING */
147303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 163, -1 }, /* (323) nm ::= JOIN_KW */
147304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 177, -1 }, /* (324) typetoken ::= typename */
147305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 178, -1 }, /* (325) typename ::= ID|STRING */
147306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 179, -1 }, /* (326) signed ::= plus_num */
147307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 179, -1 }, /* (327) signed ::= minus_num */
147308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 176, -2 }, /* (328) carglist ::= carglist ccons */
147309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 176, 0 }, /* (329) carglist ::= */
147310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 183, -2 }, /* (330) ccons ::= NULL onconf */
147311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 172, -2 }, /* (331) conslist_opt ::= COMMA conslist */
147312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 195, -3 }, /* (332) conslist ::= conslist tconscomma tcons */
147313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 195, -1 }, /* (333) conslist ::= tcons */
147314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 196, 0 }, /* (334) tconscomma ::= */
147315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 200, -1 }, /* (335) defer_subclause_opt ::= defer_subclause */
147316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 202, -1 }, /* (336) resolvetype ::= raisetype */
147317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 206, -1 }, /* (337) selectnowith ::= oneselect */
147318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 207, -1 }, /* (338) oneselect ::= values */
147319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 222, -2 }, /* (339) sclp ::= selcollist COMMA */
147320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 223, -1 }, /* (340) as ::= ID|STRING */
147321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 185, -1 }, /* (341) expr ::= term */
147322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 238, -1 }, /* (342) likeop ::= LIKE_KW|MATCH */
147323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 221, -1 }, /* (343) exprlist ::= nexprlist */
147324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 247, -1 }, /* (344) nmnum ::= plus_num */
147325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 247, -1 }, /* (345) nmnum ::= nm */
147326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 247, -1 }, /* (346) nmnum ::= ON */
147327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 247, -1 }, /* (347) nmnum ::= DELETE */
147328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 247, -1 }, /* (348) nmnum ::= DEFAULT */
147329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 180, -1 }, /* (349) plus_num ::= INTEGER|FLOAT */
147330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 252, 0 }, /* (350) foreach_clause ::= */
147331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 252, -3 }, /* (351) foreach_clause ::= FOR EACH ROW */
147332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 255, -1 }, /* (352) trnm ::= nm */
147333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 256, 0 }, /* (353) tridxby ::= */
147334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 257, -1 }, /* (354) database_kw_opt ::= DATABASE */
147335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 257, 0 }, /* (355) database_kw_opt ::= */
147336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 260, 0 }, /* (356) kwcolumn_opt ::= */
147337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 260, -1 }, /* (357) kwcolumn_opt ::= COLUMNKW */
147338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 262, -1 }, /* (358) vtabarglist ::= vtabarg */
147339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 262, -3 }, /* (359) vtabarglist ::= vtabarglist COMMA vtabarg */
147340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 263, -2 }, /* (360) vtabarg ::= vtabarg vtabargtoken */
147341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 266, 0 }, /* (361) anylist ::= */
147342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 266, -4 }, /* (362) anylist ::= anylist LP anylist RP */
147343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 266, -2 }, /* (363) anylist ::= anylist ANY */
147344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 232, 0 }, /* (364) with ::= */
143843 147345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
143844 147346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
143845 147347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void yy_accept(yyParser*); /* Forward Declaration */
143846 147348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
143847 147349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -143934,19 +147436,19 @@
143934 147436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143935 147437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 2: /* cmdx ::= cmd */
143936 147438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ sqlite3FinishCoding(pParse); }
143937 147439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143938 147440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 3: /* cmd ::= BEGIN transtype trans_opt */
143939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy502);}
147441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy70);}
143940 147442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143941 147443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 4: /* transtype ::= */
143942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy502 = TK_DEFERRED;}
147444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy70 = TK_DEFERRED;}
143943 147445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143944 147446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 5: /* transtype ::= DEFERRED */
143945 147447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
143946 147448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
143947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/}
147449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = yymsp[0].major; /*A-overwrites-X*/}
143948 147450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143949 147451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 8: /* cmd ::= COMMIT|END trans_opt */
143950 147452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
143951 147453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3EndTransaction(pParse,yymsp[-1].major);}
143952 147454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -143965,11 +147467,11 @@
143965 147467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
143966 147468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
143967 147469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143968 147470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
143969 147471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
143970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy502,0,0,yymsp[-2].minor.yy502);
147472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy70,0,0,yymsp[-2].minor.yy70);
143971 147473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
143972 147474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143973 147475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 14: /* createkw ::= CREATE */
143974 147476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{disableLookaside(pParse);}
143975 147477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -143979,37 +147481,37 @@
143979 147481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
143980 147482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
143981 147483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
143982 147484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
143983 147485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 92: /* distinct ::= */ yytestcase(yyruleno==92);
143984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 224: /* collate ::= */ yytestcase(yyruleno==224);
143985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy502 = 0;}
147486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 223: /* collate ::= */ yytestcase(yyruleno==223);
147487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy70 = 0;}
143986 147488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143987 147489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 16: /* ifnotexists ::= IF NOT EXISTS */
143988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy502 = 1;}
147490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy70 = 1;}
143989 147491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143990 147492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 17: /* temp ::= TEMP */
143991 147493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43);
143992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = 1;}
147494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = 1;}
143993 147495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143994 147496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */
143995 147497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
143996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy502,0);
147498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy70,0);
143997 147499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
143998 147500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
143999 147501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 20: /* create_table_args ::= AS select */
144000 147502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy399);
144002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy399);
147503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy489);
147504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy489);
144003 147505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144004 147506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144005 147507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 22: /* table_options ::= WITHOUT nm */
144006 147508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144007 147509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
144008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-1].minor.yy502 = TF_WithoutRowid | TF_NoVisibleRowid;
147510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy70 = TF_WithoutRowid | TF_NoVisibleRowid;
144009 147511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-1].minor.yy502 = 0;
147512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy70 = 0;
144011 147513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
144012 147514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144013 147515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144014 147516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144015 147517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 23: /* columnname ::= nm typetoken */
@@ -144034,30 +147536,30 @@
144034 147536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
144035 147537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144036 147538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 28: /* scanpt ::= */
144037 147539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144038 147540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( yyLookahead!=YYNOCODE );
144039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[1].minor.yy36 = yyLookaheadToken.z;
147541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[1].minor.yy392 = yyLookaheadToken.z;
144040 147542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144041 147543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144042 147544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 29: /* ccons ::= CONSTRAINT nm */
144043 147545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 62: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==62);
144044 147546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{pParse->constraintName = yymsp[0].minor.yy0;}
144045 147547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144046 147548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 30: /* ccons ::= DEFAULT scanpt term scanpt */
144047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy182,yymsp[-2].minor.yy36,yymsp[0].minor.yy36);}
147549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy18,yymsp[-2].minor.yy392,yymsp[0].minor.yy392);}
144048 147550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144049 147551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 31: /* ccons ::= DEFAULT LP expr RP */
144050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy182,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
147552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy18,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
144051 147553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144052 147554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 32: /* ccons ::= DEFAULT PLUS term scanpt */
144053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy182,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy36);}
147555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy18,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy392);}
144054 147556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144055 147557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 33: /* ccons ::= DEFAULT MINUS term scanpt */
144056 147558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy182, 0);
144058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy36);
147559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy18, 0);
147560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy392);
144059 147561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144060 147562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144061 147563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 34: /* ccons ::= DEFAULT scanpt ID|INDEXED */
144062 147564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144063 147565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0);
@@ -144067,612 +147569,595 @@
144067 147569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144068 147570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
144069 147571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144070 147572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144071 147573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 35: /* ccons ::= NOT NULL onconf */
144072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddNotNull(pParse, yymsp[0].minor.yy502);}
147574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddNotNull(pParse, yymsp[0].minor.yy70);}
144073 147575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144074 147576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 36: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
144075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy502,yymsp[0].minor.yy502,yymsp[-2].minor.yy502);}
147577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy70,yymsp[0].minor.yy70,yymsp[-2].minor.yy70);}
144076 147578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144077 147579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 37: /* ccons ::= UNIQUE onconf */
144078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy502,0,0,0,0,
147580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy70,0,0,0,0,
144079 147581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_IDXTYPE_UNIQUE);}
144080 147582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144081 147583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 38: /* ccons ::= CHECK LP expr RP */
144082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy182);}
147584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy18);}
144083 147585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144084 147586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 39: /* ccons ::= REFERENCES nm eidlist_opt refargs */
144085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy232,yymsp[0].minor.yy502);}
147587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy420,yymsp[0].minor.yy70);}
144086 147588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144087 147589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 40: /* ccons ::= defer_subclause */
144088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy502);}
147590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy70);}
144089 147591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144090 147592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 41: /* ccons ::= COLLATE ID|STRING */
144091 147593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
144092 147594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144093 147595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 44: /* refargs ::= */
144094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[1].minor.yy502 = OE_None*0x0101; /* EV: R-19803-45884 */}
147596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[1].minor.yy70 = OE_None*0x0101; /* EV: R-19803-45884 */}
144095 147597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144096 147598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 45: /* refargs ::= refargs refarg */
144097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy502 = (yymsp[-1].minor.yy502 & ~yymsp[0].minor.yy107.mask) | yymsp[0].minor.yy107.value; }
147599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy70 = (yymsp[-1].minor.yy70 & ~yymsp[0].minor.yy111.mask) | yymsp[0].minor.yy111.value; }
144098 147600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144099 147601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 46: /* refarg ::= MATCH nm */
144100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy107.value = 0; yymsp[-1].minor.yy107.mask = 0x000000; }
147602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy111.value = 0; yymsp[-1].minor.yy111.mask = 0x000000; }
144101 147603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144102 147604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 47: /* refarg ::= ON INSERT refact */
144103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-2].minor.yy107.value = 0; yymsp[-2].minor.yy107.mask = 0x000000; }
147605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-2].minor.yy111.value = 0; yymsp[-2].minor.yy111.mask = 0x000000; }
144104 147606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144105 147607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 48: /* refarg ::= ON DELETE refact */
144106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-2].minor.yy107.value = yymsp[0].minor.yy502; yymsp[-2].minor.yy107.mask = 0x0000ff; }
147608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-2].minor.yy111.value = yymsp[0].minor.yy70; yymsp[-2].minor.yy111.mask = 0x0000ff; }
144107 147609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144108 147610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 49: /* refarg ::= ON UPDATE refact */
144109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-2].minor.yy107.value = yymsp[0].minor.yy502<<8; yymsp[-2].minor.yy107.mask = 0x00ff00; }
147611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-2].minor.yy111.value = yymsp[0].minor.yy70<<8; yymsp[-2].minor.yy111.mask = 0x00ff00; }
144110 147612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144111 147613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 50: /* refact ::= SET NULL */
144112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy502 = OE_SetNull; /* EV: R-33326-45252 */}
147614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy70 = OE_SetNull; /* EV: R-33326-45252 */}
144113 147615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144114 147616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 51: /* refact ::= SET DEFAULT */
144115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy502 = OE_SetDflt; /* EV: R-33326-45252 */}
147617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy70 = OE_SetDflt; /* EV: R-33326-45252 */}
144116 147618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144117 147619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 52: /* refact ::= CASCADE */
144118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[0].minor.yy502 = OE_Cascade; /* EV: R-33326-45252 */}
147620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[0].minor.yy70 = OE_Cascade; /* EV: R-33326-45252 */}
144119 147621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144120 147622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 53: /* refact ::= RESTRICT */
144121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[0].minor.yy502 = OE_Restrict; /* EV: R-33326-45252 */}
147623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[0].minor.yy70 = OE_Restrict; /* EV: R-33326-45252 */}
144122 147624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144123 147625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 54: /* refact ::= NO ACTION */
144124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy502 = OE_None; /* EV: R-33326-45252 */}
147626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy70 = OE_None; /* EV: R-33326-45252 */}
144125 147627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144126 147628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
144127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy502 = 0;}
147629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy70 = 0;}
144128 147630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144129 147631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
144130 147632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
144131 147633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 155: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==155);
144132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy502 = yymsp[0].minor.yy502;}
147634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy70 = yymsp[0].minor.yy70;}
144133 147635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144134 147636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
144135 147637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
144136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 196: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==196);
144137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 199: /* in_op ::= NOT IN */ yytestcase(yyruleno==199);
144138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 225: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==225);
144139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy502 = 1;}
147638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 195: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==195);
147639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 198: /* in_op ::= NOT IN */ yytestcase(yyruleno==198);
147640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 224: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==224);
147641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy70 = 1;}
144140 147642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144141 147643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
144142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy502 = 0;}
147644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy70 = 0;}
144143 147645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144144 147646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 61: /* tconscomma ::= COMMA */
144145 147647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{pParse->constraintName.n = 0;}
144146 147648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144147 147649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 63: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
144148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy232,yymsp[0].minor.yy502,yymsp[-2].minor.yy502,0);}
147650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy420,yymsp[0].minor.yy70,yymsp[-2].minor.yy70,0);}
144149 147651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144150 147652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 64: /* tcons ::= UNIQUE LP sortlist RP onconf */
144151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy232,yymsp[0].minor.yy502,0,0,0,0,
147653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy420,yymsp[0].minor.yy70,0,0,0,0,
144152 147654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_IDXTYPE_UNIQUE);}
144153 147655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144154 147656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 65: /* tcons ::= CHECK LP expr RP onconf */
144155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy182);}
147657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy18);}
144156 147658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144157 147659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 66: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
144158 147660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy232, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy232, yymsp[-1].minor.yy502);
144160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy502);
147661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy420, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy420, yymsp[-1].minor.yy70);
147662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy70);
144161 147663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144162 147664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144163 147665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 68: /* onconf ::= */
144164 147666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 70: /* orconf ::= */ yytestcase(yyruleno==70);
144165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy502 = OE_Default;}
147667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy70 = OE_Default;}
144166 147668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144167 147669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 69: /* onconf ::= ON CONFLICT resolvetype */
144168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy502 = yymsp[0].minor.yy502;}
147670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy70 = yymsp[0].minor.yy70;}
144169 147671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144170 147672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 72: /* resolvetype ::= IGNORE */
144171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = OE_Ignore;}
147673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = OE_Ignore;}
144172 147674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144173 147675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 73: /* resolvetype ::= REPLACE */
144174 147676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 156: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==156);
144175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = OE_Replace;}
147677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = OE_Replace;}
144176 147678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144177 147679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 74: /* cmd ::= DROP TABLE ifexists fullname */
144178 147680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DropTable(pParse, yymsp[0].minor.yy427, 0, yymsp[-1].minor.yy502);
147681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DropTable(pParse, yymsp[0].minor.yy135, 0, yymsp[-1].minor.yy70);
144180 147682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144181 147683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144182 147684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 77: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
144183 147685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy232, yymsp[0].minor.yy399, yymsp[-7].minor.yy502, yymsp[-5].minor.yy502);
147686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy420, yymsp[0].minor.yy489, yymsp[-7].minor.yy70, yymsp[-5].minor.yy70);
144185 147687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144186 147688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144187 147689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 78: /* cmd ::= DROP VIEW ifexists fullname */
144188 147690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DropTable(pParse, yymsp[0].minor.yy427, 1, yymsp[-1].minor.yy502);
147691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DropTable(pParse, yymsp[0].minor.yy135, 1, yymsp[-1].minor.yy70);
144190 147692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144191 147693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144192 147694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 79: /* cmd ::= select */
144193 147695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144194 147696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
144195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Select(pParse, yymsp[0].minor.yy399, &dest);
144196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy399);
147697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Select(pParse, yymsp[0].minor.yy489, &dest);
147698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy489);
144197 147699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144198 147700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144199 147701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 80: /* select ::= WITH wqlist selectnowith */
144200 147702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select *p = yymsp[0].minor.yy399;
147703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p = yymsp[0].minor.yy489;
144202 147704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
144203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->pWith = yymsp[-1].minor.yy91;
147705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pWith = yymsp[-1].minor.yy449;
144204 147706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parserDoubleLinkSelect(pParse, p);
144205 147707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy91);
147708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy449);
144207 147709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy399 = p;
147710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy489 = p;
144209 147711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144210 147712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144211 147713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
144212 147714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select *p = yymsp[0].minor.yy399;
147715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p = yymsp[0].minor.yy489;
144214 147716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
144215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->pWith = yymsp[-1].minor.yy91;
147717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pWith = yymsp[-1].minor.yy449;
144216 147718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parserDoubleLinkSelect(pParse, p);
144217 147719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy91);
147720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy449);
144219 147721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy399 = p;
147722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy489 = p;
144221 147723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144222 147724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144223 147725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 82: /* select ::= selectnowith */
144224 147726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select *p = yymsp[0].minor.yy399;
147727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *p = yymsp[0].minor.yy489;
144226 147728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
144227 147729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parserDoubleLinkSelect(pParse, p);
144228 147730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[0].minor.yy399 = p; /*A-overwrites-X*/
147731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy489 = p; /*A-overwrites-X*/
144230 147732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144231 147733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144232 147734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
144233 147735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select *pRhs = yymsp[0].minor.yy399;
144235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select *pLhs = yymsp[-2].minor.yy399;
147736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pRhs = yymsp[0].minor.yy489;
147737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pLhs = yymsp[-2].minor.yy489;
144236 147738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pRhs && pRhs->pPrior ){
144237 147739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SrcList *pFrom;
144238 147740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Token x;
144239 147741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
x.n = 0;
144240 147742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parserDoubleLinkSelect(pParse, pRhs);
144241 147743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0);
144242 147744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
144243 147745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144244 147746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pRhs ){
144245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pRhs->op = (u8)yymsp[-1].minor.yy502;
147747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pRhs->op = (u8)yymsp[-1].minor.yy70;
144246 147748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRhs->pPrior = pLhs;
144247 147749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
144248 147750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRhs->selFlags &= ~SF_MultiValue;
144249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-1].minor.yy502!=TK_ALL ) pParse->hasCompound = 1;
147751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-1].minor.yy70!=TK_ALL ) pParse->hasCompound = 1;
144250 147752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144251 147753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDelete(pParse->db, pLhs);
144252 147754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy399 = pRhs;
147755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy489 = pRhs;
144254 147756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144255 147757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144256 147758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 84: /* multiselect_op ::= UNION */
144257 147759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
144258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-OP*/}
147760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = yymsp[0].major; /*A-overwrites-OP*/}
144259 147761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144260 147762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 85: /* multiselect_op ::= UNION ALL */
144261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy502 = TK_ALL;}
147763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy70 = TK_ALL;}
144262 147764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
144264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
144266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
144267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
144268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-8].minor.yy399 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy232,yymsp[-5].minor.yy427,yymsp[-4].minor.yy182,yymsp[-3].minor.yy232,yymsp[-2].minor.yy182,yymsp[-1].minor.yy232,yymsp[-7].minor.yy502,yymsp[0].minor.yy182);
144269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SELECTTRACE_ENABLED
144270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Populate the Select.zSelName[] string that is used to help with
144271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query planner debugging, to differentiate between multiple Select
144272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** objects in a complex query.
144273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
144274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the SELECT keyword is immediately followed by a C-style comment
144275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then extract the first few alphanumeric characters from within that
144276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** comment to be the zSelName value. Otherwise, the label is #N where
144277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is an integer that is incremented with each SELECT statement seen.
144278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
144279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-8].minor.yy399!=0 ){
144280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *z = s.z+6;
144281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i;
144282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(sizeof(yymsp[-8].minor.yy399->zSelName), yymsp[-8].minor.yy399->zSelName,"#%d",++pParse->nSelect);
144283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( z[0]==' ' ) z++;
144284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( z[0]=='/' && z[1]=='*' ){
144285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- z += 2;
144286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( z[0]==' ' ) z++;
144287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; sqlite3Isalnum(z[i]); i++){}
144288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(sizeof(yymsp[-8].minor.yy399->zSelName), yymsp[-8].minor.yy399->zSelName, "%.*s", i, z);
144289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* SELECTRACE_ENABLED */
147765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt windowdefn_opt orderby_opt limit_opt */
147766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
147767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-9].minor.yy489 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy420,yymsp[-6].minor.yy135,yymsp[-5].minor.yy18,yymsp[-4].minor.yy420,yymsp[-3].minor.yy18,yymsp[-1].minor.yy420,yymsp[-8].minor.yy70,yymsp[0].minor.yy18);
147768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
147769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-9].minor.yy489 ){
147770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-9].minor.yy489->pWinDefn = yymsp[-2].minor.yy327;
147771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
147772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy327);
147773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
147774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
144292 147775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144293 147776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144294 147777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 88: /* values ::= VALUES LP nexprlist RP */
144295 147778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy399 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy232,0,0,0,0,0,SF_Values,0);
147779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy489 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy420,0,0,0,0,0,SF_Values,0);
144297 147780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144298 147781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144299 147782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 89: /* values ::= values COMMA LP exprlist RP */
144300 147783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Select *pRight, *pLeft = yymsp[-4].minor.yy399;
144302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy232,0,0,0,0,0,SF_Values|SF_MultiValue,0);
147784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Select *pRight, *pLeft = yymsp[-4].minor.yy489;
147785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy420,0,0,0,0,0,SF_Values|SF_MultiValue,0);
144303 147786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
144304 147787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pRight ){
144305 147788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRight->op = TK_ALL;
144306 147789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRight->pPrior = pLeft;
144307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy399 = pRight;
147790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy489 = pRight;
144308 147791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy399 = pLeft;
147792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy489 = pLeft;
144310 147793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144311 147794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144312 147795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144313 147796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 90: /* distinct ::= DISTINCT */
144314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = SF_Distinct;}
147797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = SF_Distinct;}
144315 147798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144316 147799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 91: /* distinct ::= ALL */
144317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = SF_All;}
147800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = SF_All;}
144318 147801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144319 147802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 93: /* sclp ::= */
144320 147803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 126: /* orderby_opt ::= */ yytestcase(yyruleno==126);
144321 147804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 133: /* groupby_opt ::= */ yytestcase(yyruleno==133);
144322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 212: /* exprlist ::= */ yytestcase(yyruleno==212);
144323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 215: /* paren_exprlist ::= */ yytestcase(yyruleno==215);
144324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 220: /* eidlist_opt ::= */ yytestcase(yyruleno==220);
144325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy232 = 0;}
147805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 211: /* exprlist ::= */ yytestcase(yyruleno==211);
147806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 214: /* paren_exprlist ::= */ yytestcase(yyruleno==214);
147807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 219: /* eidlist_opt ::= */ yytestcase(yyruleno==219);
147808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy420 = 0;}
144326 147809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144327 147810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 94: /* selcollist ::= sclp scanpt expr scanpt as */
144328 147811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy232, yymsp[-2].minor.yy182);
144330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy232, &yymsp[0].minor.yy0, 1);
144331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy232,yymsp[-3].minor.yy36,yymsp[-1].minor.yy36);
147812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy420, yymsp[-2].minor.yy18);
147813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy420, &yymsp[0].minor.yy0, 1);
147814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy420,yymsp[-3].minor.yy392,yymsp[-1].minor.yy392);
144332 147815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144333 147816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144334 147817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 95: /* selcollist ::= sclp scanpt STAR */
144335 147818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144336 147819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
144337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy232 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy232, p);
147820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy420 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy420, p);
144338 147821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144339 147822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144340 147823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 96: /* selcollist ::= sclp scanpt nm DOT STAR */
144341 147824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144342 147825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
144343 147826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
144344 147827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
144345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy232, pDot);
147828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy420, pDot);
144346 147829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144347 147830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144348 147831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 97: /* as ::= AS nm */
144349 147832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 108: /* dbnm ::= DOT nm */ yytestcase(yyruleno==108);
144350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 234: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==234);
144351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 235: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==235);
147833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 233: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==233);
147834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 234: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==234);
144352 147835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
144353 147836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144354 147837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 99: /* from ::= */
144355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy427 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy427));}
147838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy135 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy135));}
144356 147839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144357 147840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 100: /* from ::= FROM seltablist */
144358 147841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-1].minor.yy427 = yymsp[0].minor.yy427;
144360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy427);
147842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy135 = yymsp[0].minor.yy135;
147843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy135);
144361 147844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144362 147845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144363 147846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 101: /* stl_prefix ::= seltablist joinop */
144364 147847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ALWAYS(yymsp[-1].minor.yy427 && yymsp[-1].minor.yy427->nSrc>0) ) yymsp[-1].minor.yy427->a[yymsp[-1].minor.yy427->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy502;
147848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(yymsp[-1].minor.yy135 && yymsp[-1].minor.yy135->nSrc>0) ) yymsp[-1].minor.yy135->a[yymsp[-1].minor.yy135->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy70;
144366 147849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144367 147850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144368 147851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 102: /* stl_prefix ::= */
144369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy427 = 0;}
147852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy135 = 0;}
144370 147853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144371 147854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 103: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
144372 147855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-6].minor.yy427 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy427,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy182,yymsp[0].minor.yy510);
144374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy427, &yymsp[-2].minor.yy0);
147856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy18,yymsp[0].minor.yy48);
147857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy135, &yymsp[-2].minor.yy0);
144375 147858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144376 147859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144377 147860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 104: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
144378 147861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-8].minor.yy427 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy427,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy182,yymsp[0].minor.yy510);
144380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy427, yymsp[-4].minor.yy232);
147862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-8].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy135,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy18,yymsp[0].minor.yy48);
147863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy135, yymsp[-4].minor.yy420);
144381 147864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144382 147865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144383 147866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 105: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
144384 147867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-6].minor.yy427 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy427,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy399,yymsp[-1].minor.yy182,yymsp[0].minor.yy510);
147868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy489,yymsp[-1].minor.yy18,yymsp[0].minor.yy48);
144386 147869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144387 147870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144388 147871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 106: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
144389 147872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-6].minor.yy427==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy182==0 && yymsp[0].minor.yy510==0 ){
144391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-6].minor.yy427 = yymsp[-4].minor.yy427;
144392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( yymsp[-4].minor.yy427->nSrc==1 ){
144393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-6].minor.yy427 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy427,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy182,yymsp[0].minor.yy510);
144394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-6].minor.yy427 ){
144395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct SrcList_item *pNew = &yymsp[-6].minor.yy427->a[yymsp[-6].minor.yy427->nSrc-1];
144396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct SrcList_item *pOld = yymsp[-4].minor.yy427->a;
147873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-6].minor.yy135==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy18==0 && yymsp[0].minor.yy48==0 ){
147874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-6].minor.yy135 = yymsp[-4].minor.yy135;
147875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( yymsp[-4].minor.yy135->nSrc==1 ){
147876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy18,yymsp[0].minor.yy48);
147877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-6].minor.yy135 ){
147878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct SrcList_item *pNew = &yymsp[-6].minor.yy135->a[yymsp[-6].minor.yy135->nSrc-1];
147879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct SrcList_item *pOld = yymsp[-4].minor.yy135->a;
144397 147880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->zName = pOld->zName;
144398 147881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->zDatabase = pOld->zDatabase;
144399 147882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->pSelect = pOld->pSelect;
144400 147883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOld->zName = pOld->zDatabase = 0;
144401 147884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOld->pSelect = 0;
144402 147885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy427);
147886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy135);
144404 147887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144405 147888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Select *pSubquery;
144406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy427);
144407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy427,0,0,0,0,SF_NestedFrom,0);
144408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-6].minor.yy427 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy427,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy182,yymsp[0].minor.yy510);
147889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy135);
147890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy135,0,0,0,0,SF_NestedFrom,0);
147891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy18,yymsp[0].minor.yy48);
144409 147892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144410 147893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144411 147894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144412 147895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 107: /* dbnm ::= */
144413 147896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 121: /* indexed_opt ::= */ yytestcase(yyruleno==121);
144414 147897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
144415 147898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144416 147899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 109: /* fullname ::= nm */
144417 147900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 111: /* xfullname ::= nm */ yytestcase(yyruleno==111);
144418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy427 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
147901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
144419 147902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144420 147903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 110: /* fullname ::= nm DOT nm */
144421 147904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 112: /* xfullname ::= nm DOT nm */ yytestcase(yyruleno==112);
144422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy427 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
147905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
144423 147906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144424 147907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 113: /* xfullname ::= nm DOT nm AS nm */
144425 147908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy427 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
144427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-4].minor.yy427 ) yymsp[-4].minor.yy427->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
147909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
147910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-4].minor.yy135 ) yymsp[-4].minor.yy135->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
144428 147911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144429 147912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144430 147913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 114: /* xfullname ::= nm AS nm */
144431 147914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy427 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
144433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-2].minor.yy427 ) yymsp[-2].minor.yy427->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
147915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
147916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-2].minor.yy135 ) yymsp[-2].minor.yy135->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
144434 147917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144435 147918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144436 147919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 115: /* joinop ::= COMMA|JOIN */
144437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[0].minor.yy502 = JT_INNER; }
147920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[0].minor.yy70 = JT_INNER; }
144438 147921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144439 147922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 116: /* joinop ::= JOIN_KW JOIN */
144440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
147923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy70 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
144441 147924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144442 147925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 117: /* joinop ::= JOIN_KW nm JOIN */
144443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
147926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy70 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
144444 147927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144445 147928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 118: /* joinop ::= JOIN_KW nm nm JOIN */
144446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-3].minor.yy502 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
147929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-3].minor.yy70 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
144447 147930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144448 147931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 119: /* on_opt ::= ON expr */
144449 147932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 136: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==136);
144450 147933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 143: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==143);
144451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 208: /* case_else ::= ELSE expr */ yytestcase(yyruleno==208);
144452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy182 = yymsp[0].minor.yy182;}
147934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 207: /* case_else ::= ELSE expr */ yytestcase(yyruleno==207);
147935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy18 = yymsp[0].minor.yy18;}
144453 147936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144454 147937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 120: /* on_opt ::= */
144455 147938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 135: /* having_opt ::= */ yytestcase(yyruleno==135);
144456 147939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 137: /* limit_opt ::= */ yytestcase(yyruleno==137);
144457 147940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 142: /* where_opt ::= */ yytestcase(yyruleno==142);
144458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 209: /* case_else ::= */ yytestcase(yyruleno==209);
144459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 211: /* case_operand ::= */ yytestcase(yyruleno==211);
144460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy182 = 0;}
147941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 208: /* case_else ::= */ yytestcase(yyruleno==208);
147942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 210: /* case_operand ::= */ yytestcase(yyruleno==210);
147943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy18 = 0;}
144461 147944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144462 147945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 122: /* indexed_opt ::= INDEXED BY nm */
144463 147946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
144464 147947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144465 147948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 123: /* indexed_opt ::= NOT INDEXED */
144466 147949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
144467 147950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144468 147951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 124: /* using_opt ::= USING LP idlist RP */
144469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-3].minor.yy510 = yymsp[-1].minor.yy510;}
147952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-3].minor.yy48 = yymsp[-1].minor.yy48;}
144470 147953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144471 147954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 125: /* using_opt ::= */
144472 147955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 157: /* idlist_opt ::= */ yytestcase(yyruleno==157);
144473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy510 = 0;}
147956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy48 = 0;}
144474 147957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144475 147958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 127: /* orderby_opt ::= ORDER BY sortlist */
144476 147959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 134: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==134);
144477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy232 = yymsp[0].minor.yy232;}
147960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy420 = yymsp[0].minor.yy420;}
144478 147961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144479 147962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 128: /* sortlist ::= sortlist COMMA expr sortorder */
144480 147963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy232 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy232,yymsp[-1].minor.yy182);
144482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy232,yymsp[0].minor.yy502);
147964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy420,yymsp[-1].minor.yy18);
147965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy420,yymsp[0].minor.yy70);
144483 147966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144484 147967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144485 147968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 129: /* sortlist ::= expr sortorder */
144486 147969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-1].minor.yy232 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy182); /*A-overwrites-Y*/
144488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy232,yymsp[0].minor.yy502);
147970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy420 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy18); /*A-overwrites-Y*/
147971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy420,yymsp[0].minor.yy70);
144489 147972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144490 147973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144491 147974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 130: /* sortorder ::= ASC */
144492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = SQLITE_SO_ASC;}
147975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = SQLITE_SO_ASC;}
144493 147976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144494 147977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 131: /* sortorder ::= DESC */
144495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = SQLITE_SO_DESC;}
147978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = SQLITE_SO_DESC;}
144496 147979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144497 147980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 132: /* sortorder ::= */
144498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy502 = SQLITE_SO_UNDEFINED;}
147981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy70 = SQLITE_SO_UNDEFINED;}
144499 147982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144500 147983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 138: /* limit_opt ::= LIMIT expr */
144501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy182 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy182,0);}
147984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy18 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy18,0);}
144502 147985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144503 147986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 139: /* limit_opt ::= LIMIT expr OFFSET expr */
144504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-3].minor.yy182 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy182,yymsp[0].minor.yy182);}
147987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-3].minor.yy18 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy18,yymsp[0].minor.yy18);}
144505 147988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144506 147989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 140: /* limit_opt ::= LIMIT expr COMMA expr */
144507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-3].minor.yy182 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy182,yymsp[-2].minor.yy182);}
147990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-3].minor.yy18 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy18,yymsp[-2].minor.yy18);}
144508 147991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144509 147992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 141: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
144510 147993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy427, &yymsp[-1].minor.yy0);
144512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy427,yymsp[0].minor.yy182,0,0);
147994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy135, &yymsp[-1].minor.yy0);
147995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy135,yymsp[0].minor.yy18,0,0);
144513 147996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144514 147997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144515 147998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 144: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
144516 147999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy427, &yymsp[-3].minor.yy0);
144518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy232,"set list");
144519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Update(pParse,yymsp[-4].minor.yy427,yymsp[-1].minor.yy232,yymsp[0].minor.yy182,yymsp[-5].minor.yy502,0,0,0);
148000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy135, &yymsp[-3].minor.yy0);
148001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy420,"set list");
148002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Update(pParse,yymsp[-4].minor.yy135,yymsp[-1].minor.yy420,yymsp[0].minor.yy18,yymsp[-5].minor.yy70,0,0,0);
144520 148003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144521 148004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144522 148005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 145: /* setlist ::= setlist COMMA nm EQ expr */
144523 148006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy232, yymsp[0].minor.yy182);
144525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy232, &yymsp[-2].minor.yy0, 1);
148007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy420, yymsp[0].minor.yy18);
148008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy420, &yymsp[-2].minor.yy0, 1);
144526 148009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144527 148010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144528 148011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 146: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
144529 148012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-6].minor.yy232 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy232, yymsp[-3].minor.yy510, yymsp[0].minor.yy182);
148013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-6].minor.yy420 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy420, yymsp[-3].minor.yy48, yymsp[0].minor.yy18);
144531 148014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144532 148015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144533 148016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 147: /* setlist ::= nm EQ expr */
144534 148017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy232 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy182);
144536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListSetName(pParse, yylhsminor.yy232, &yymsp[-2].minor.yy0, 1);
148018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy420 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy18);
148019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListSetName(pParse, yylhsminor.yy420, &yymsp[-2].minor.yy0, 1);
144537 148020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy232 = yylhsminor.yy232;
148021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy420 = yylhsminor.yy420;
144539 148022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144540 148023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 148: /* setlist ::= LP idlist RP EQ expr */
144541 148024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy510, yymsp[0].minor.yy182);
148025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy48, yymsp[0].minor.yy18);
144543 148026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144544 148027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144545 148028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 149: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
144546 148029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Insert(pParse, yymsp[-3].minor.yy427, yymsp[-1].minor.yy399, yymsp[-2].minor.yy510, yymsp[-5].minor.yy502, yymsp[0].minor.yy198);
148030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Insert(pParse, yymsp[-3].minor.yy135, yymsp[-1].minor.yy489, yymsp[-2].minor.yy48, yymsp[-5].minor.yy70, yymsp[0].minor.yy340);
144548 148031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144549 148032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144550 148033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 150: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
144551 148034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Insert(pParse, yymsp[-3].minor.yy427, 0, yymsp[-2].minor.yy510, yymsp[-5].minor.yy502, 0);
148035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Insert(pParse, yymsp[-3].minor.yy135, 0, yymsp[-2].minor.yy48, yymsp[-5].minor.yy70, 0);
144553 148036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144554 148037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144555 148038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 151: /* upsert ::= */
144556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[1].minor.yy198 = 0; }
148039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[1].minor.yy340 = 0; }
144557 148040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144558 148041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 152: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
144559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-10].minor.yy198 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy232,yymsp[-5].minor.yy182,yymsp[-1].minor.yy232,yymsp[0].minor.yy182);}
148042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-10].minor.yy340 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy420,yymsp[-5].minor.yy18,yymsp[-1].minor.yy420,yymsp[0].minor.yy18);}
144560 148043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144561 148044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 153: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
144562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-7].minor.yy198 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy232,yymsp[-2].minor.yy182,0,0); }
148045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-7].minor.yy340 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy420,yymsp[-2].minor.yy18,0,0); }
144563 148046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144564 148047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 154: /* upsert ::= ON CONFLICT DO NOTHING */
144565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-3].minor.yy198 = sqlite3UpsertNew(pParse->db,0,0,0,0); }
148048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-3].minor.yy340 = sqlite3UpsertNew(pParse->db,0,0,0,0); }
144566 148049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144567 148050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 158: /* idlist_opt ::= LP idlist RP */
144568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy510 = yymsp[-1].minor.yy510;}
148051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy48 = yymsp[-1].minor.yy48;}
144569 148052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144570 148053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 159: /* idlist ::= idlist COMMA nm */
144571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy510 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy510,&yymsp[0].minor.yy0);}
148054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy48 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy48,&yymsp[0].minor.yy0);}
144572 148055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144573 148056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 160: /* idlist ::= nm */
144574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy510 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
148057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy48 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
144575 148058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144576 148059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 161: /* expr ::= LP expr RP */
144577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy182 = yymsp[-1].minor.yy182;}
148060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy18 = yymsp[-1].minor.yy18;}
144578 148061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144579 148062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 162: /* expr ::= ID|INDEXED */
144580 148063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 163: /* expr ::= JOIN_KW */ yytestcase(yyruleno==163);
144581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy182=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
148064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy18=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
144582 148065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144583 148066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 164: /* expr ::= nm DOT nm */
144584 148067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144585 148068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
144586 148069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
144587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
148070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
144588 148071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy182 = yylhsminor.yy182;
148072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy18 = yylhsminor.yy18;
144590 148073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144591 148074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 165: /* expr ::= nm DOT nm DOT nm */
144592 148075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144593 148076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
144594 148077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
144595 148078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
144596 148079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
144597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
148080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
144598 148081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = yylhsminor.yy182;
148082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = yylhsminor.yy18;
144600 148083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144601 148084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 166: /* term ::= NULL|FLOAT|BLOB */
144602 148085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 167: /* term ::= STRING */ yytestcase(yyruleno==167);
144603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy182=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
148086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy18=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
144604 148087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144605 148088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 168: /* term ::= INTEGER */
144606 148089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
148090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
144608 148091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[0].minor.yy182 = yylhsminor.yy182;
148092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy18 = yylhsminor.yy18;
144610 148093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144611 148094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 169: /* expr ::= VARIABLE */
144612 148095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144613 148096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
144614 148097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 n = yymsp[0].minor.yy0.n;
144615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[0].minor.yy182 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
144616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy182, n);
148098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy18 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
148099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy18, n);
144617 148100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144618 148101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* When doing a nested parse, one can include terms in an expression
144619 148102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that look like this: #1 #2 ... These terms refer to registers
144620 148103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the virtual machine. #N is the N-th register. */
144621 148104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
144622 148105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( t.n>=2 );
144623 148106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->nested==0 ){
144624 148107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
144625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[0].minor.yy182 = 0;
148108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy18 = 0;
144626 148109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[0].minor.yy182 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
144628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[0].minor.yy182 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy182->iTable);
148110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy18 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
148111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[0].minor.yy18 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy18->iTable);
144629 148112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144630 148113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144631 148114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144632 148115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144633 148116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 170: /* expr ::= expr COLLATE ID|STRING */
144634 148117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy182 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy182, &yymsp[0].minor.yy0, 1);
148118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy18 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy18, &yymsp[0].minor.yy0, 1);
144636 148119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144637 148120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144638 148121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 171: /* expr ::= CAST LP expr AS typetoken RP */
144639 148122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-5].minor.yy182 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
144641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy182, yymsp[-3].minor.yy182, 0);
144642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 172: /* expr ::= ID|INDEXED LP distinct exprlist RP */
144645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-1].minor.yy232 && yymsp[-1].minor.yy232->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
144647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
144648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy232, &yymsp[-4].minor.yy0);
144650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-2].minor.yy502==SF_Distinct && yylhsminor.yy182 ){
144651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182->flags |= EP_Distinct;
144652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = yylhsminor.yy182;
144655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 173: /* expr ::= ID|INDEXED LP STAR RP */
144657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
144659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy182 = yylhsminor.yy182;
148123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-5].minor.yy18 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
148124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy18, yymsp[-3].minor.yy18, 0);
148125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 172: /* expr ::= ID|INDEXED LP distinct exprlist RP over_opt */
148128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-2].minor.yy420 && yymsp[-2].minor.yy420->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
148130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-5].minor.yy0);
148131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy420, &yymsp[-5].minor.yy0);
148133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-3].minor.yy70==SF_Distinct && yylhsminor.yy18 ){
148134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18->flags |= EP_Distinct;
148135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowAttach(pParse, yylhsminor.yy18, yymsp[0].minor.yy327);
148137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-5].minor.yy18 = yylhsminor.yy18;
148139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 173: /* expr ::= ID|INDEXED LP STAR RP over_opt */
148141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0);
148143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WindowAttach(pParse, yylhsminor.yy18, yymsp[0].minor.yy327);
148144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = yylhsminor.yy18;
144661 148146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144662 148147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 174: /* term ::= CTIME_KW */
144663 148148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy182 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
148149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy18 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
144665 148150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[0].minor.yy182 = yylhsminor.yy182;
148151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy18 = yylhsminor.yy18;
144667 148152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144668 148153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 175: /* expr ::= LP nexprlist COMMA expr RP */
144669 148154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy232, yymsp[-1].minor.yy182);
144671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
144672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-4].minor.yy182 ){
144673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182->x.pList = pList;
148155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy420, yymsp[-1].minor.yy18);
148156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
148157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-4].minor.yy18 ){
148158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18->x.pList = pList;
144674 148159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144675 148160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(pParse->db, pList);
144676 148161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144677 148162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144678 148163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -144682,99 +148167,99 @@
144682 148167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 179: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==179);
144683 148168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 180: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==180);
144684 148169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 181: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==181);
144685 148170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 182: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==182);
144686 148171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 183: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==183);
144687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy182=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy182,yymsp[0].minor.yy182);}
148172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy18=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy18,yymsp[0].minor.yy18);}
144688 148173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144689 148174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 184: /* likeop ::= NOT LIKE_KW|MATCH */
144690 148175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
144691 148176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144692 148177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 185: /* expr ::= expr likeop expr */
144693 148178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144694 148179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList;
144695 148180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
144696 148181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[-1].minor.yy0.n &= 0x7fffffff;
144697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy182);
144698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy182);
144699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy182 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
144700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( bNot ) yymsp[-2].minor.yy182 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy182, 0);
144701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-2].minor.yy182 ) yymsp[-2].minor.yy182->flags |= EP_InfixFunc;
148182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy18);
148183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy18);
148184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy18 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
148185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bNot ) yymsp[-2].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy18, 0);
148186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-2].minor.yy18 ) yymsp[-2].minor.yy18->flags |= EP_InfixFunc;
144702 148187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144703 148188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144704 148189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 186: /* expr ::= expr likeop expr ESCAPE expr */
144705 148190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144706 148191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList;
144707 148192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
144708 148193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[-3].minor.yy0.n &= 0x7fffffff;
144709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy182);
144710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy182);
144711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy182);
144712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
144713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( bNot ) yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy182, 0);
144714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-4].minor.yy182 ) yymsp[-4].minor.yy182->flags |= EP_InfixFunc;
148194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy18);
148195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy18);
148196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy18);
148197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
148198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bNot ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);
148199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-4].minor.yy18 ) yymsp[-4].minor.yy18->flags |= EP_InfixFunc;
144715 148200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144716 148201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144717 148202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 187: /* expr ::= expr ISNULL|NOTNULL */
144718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy182 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy182,0);}
148203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy18 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy18,0);}
144719 148204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144720 148205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 188: /* expr ::= expr NOT NULL */
144721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy182 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy182,0);}
148206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy18 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy18,0);}
144722 148207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144723 148208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 189: /* expr ::= expr IS expr */
144724 148209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy182 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy182,yymsp[0].minor.yy182);
144726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy182, yymsp[-2].minor.yy182, TK_ISNULL);
148210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy18 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy18,yymsp[0].minor.yy18);
148211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy18, yymsp[-2].minor.yy18, TK_ISNULL);
144727 148212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144728 148213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144729 148214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 190: /* expr ::= expr IS NOT expr */
144730 148215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy182 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy182,yymsp[0].minor.yy182);
144732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy182, yymsp[-3].minor.yy182, TK_NOTNULL);
148216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy18 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy18,yymsp[0].minor.yy18);
148217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy18, yymsp[-3].minor.yy18, TK_NOTNULL);
144733 148218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144734 148219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144735 148220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 191: /* expr ::= NOT expr */
144736 148221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 192: /* expr ::= BITNOT expr */ yytestcase(yyruleno==192);
144737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy182 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy182, 0);/*A-overwrites-B*/}
144738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 193: /* expr ::= MINUS expr */
144740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy182 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy182, 0);}
144741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 194: /* expr ::= PLUS expr */
144743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-1].minor.yy182 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy182, 0);}
144744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 195: /* between_op ::= BETWEEN */
144746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 198: /* in_op ::= IN */ yytestcase(yyruleno==198);
144747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = 0;}
144748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 197: /* expr ::= expr between_op expr AND expr */
144750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy182);
144752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy182);
144753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy182, 0);
144754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-4].minor.yy182 ){
144755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182->x.pList = pList;
148222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy18 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy18, 0);/*A-overwrites-B*/}
148223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 193: /* expr ::= PLUS|MINUS expr */
148225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy18 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy18, 0);
148227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*A-overwrites-B*/
148228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 194: /* between_op ::= BETWEEN */
148231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 197: /* in_op ::= IN */ yytestcase(yyruleno==197);
148232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = 0;}
148233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 196: /* expr ::= expr between_op expr AND expr */
148235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy18);
148237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy18);
148238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy18, 0);
148239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-4].minor.yy18 ){
148240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18->x.pList = pList;
144756 148241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
144757 148242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(pParse->db, pList);
144758 148243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy182, 0);
148244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);
144760 148245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144761 148246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 200: /* expr ::= expr in_op LP exprlist RP */
148247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 199: /* expr ::= expr in_op LP exprlist RP */
144763 148248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-1].minor.yy232==0 ){
148249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-1].minor.yy420==0 ){
144765 148250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Expressions of the form
144766 148251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
144767 148252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expr1 IN ()
144768 148253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expr1 NOT IN ()
144769 148254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
144770 148255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** simplify to constants 0 (false) and 1 (true), respectively,
144771 148256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** regardless of the value of expr1.
144772 148257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
144773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy182);
144774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy502],1);
144775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( yymsp[-1].minor.yy232->nExpr==1 ){
148258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy18);
148259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy70],1);
148260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( yymsp[-1].minor.yy420->nExpr==1 ){
144776 148261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Expressions of the form:
144777 148262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
144778 148263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expr1 IN (?1)
144779 148264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expr1 NOT IN (?2)
144780 148265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -144787,396 +148272,506 @@
144787 148272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** But, the RHS of the == or <> is marked with the EP_Generic flag
144788 148273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** so that it may not contribute to the computation of comparison
144789 148274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** affinity or the collating sequence to use for comparison. Otherwise,
144790 148275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the semantics would be subtly different from IN or NOT IN.
144791 148276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
144792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Expr *pRHS = yymsp[-1].minor.yy232->a[0].pExpr;
144793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-1].minor.yy232->a[0].pExpr = 0;
144794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy232);
148277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pRHS = yymsp[-1].minor.yy420->a[0].pExpr;
148278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy420->a[0].pExpr = 0;
148279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy420);
144795 148280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* pRHS cannot be NULL because a malloc error would have been detected
144796 148281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** before now and control would have never reached this point */
144797 148282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ALWAYS(pRHS) ){
144798 148283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRHS->flags &= ~EP_Collate;
144799 148284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRHS->flags |= EP_Generic;
144800 148285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, yymsp[-3].minor.yy502 ? TK_NE : TK_EQ, yymsp[-4].minor.yy182, pRHS);
144802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
144803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy182, 0);
144804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-4].minor.yy182 ){
144805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182->x.pList = yymsp[-1].minor.yy232;
144806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy182);
144807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
144808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy232);
144809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy182, 0);
144811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 201: /* expr ::= LP select RP */
144815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy182 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
144817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy182, yymsp[-1].minor.yy399);
144818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 202: /* expr ::= expr in_op LP select RP */
144821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy182, 0);
144823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy182, yymsp[-1].minor.yy399);
144824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy182, 0);
144825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 203: /* expr ::= expr in_op nm dbnm paren_exprlist */
148286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, yymsp[-3].minor.yy70 ? TK_NE : TK_EQ, yymsp[-4].minor.yy18, pRHS);
148287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
148288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy18, 0);
148289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-4].minor.yy18 ){
148290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18->x.pList = yymsp[-1].minor.yy420;
148291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy18);
148292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
148293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy420);
148294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);
148296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 200: /* expr ::= LP select RP */
148300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy18 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
148302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy18, yymsp[-1].minor.yy489);
148303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 201: /* expr ::= expr in_op LP select RP */
148306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy18, 0);
148308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy18, yymsp[-1].minor.yy489);
148309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);
148310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 202: /* expr ::= expr in_op nm dbnm paren_exprlist */
144828 148313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144829 148314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
144830 148315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
144831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[0].minor.yy232 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy232);
144832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy182, 0);
144833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy182, pSelect);
144834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-3].minor.yy502 ) yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy182, 0);
148316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[0].minor.yy420 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy420);
148317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy18, 0);
148318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy18, pSelect);
148319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);
144835 148320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144836 148321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 204: /* expr ::= EXISTS LP select RP */
148322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 203: /* expr ::= EXISTS LP select RP */
144838 148323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144839 148324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *p;
144840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = yymsp[-3].minor.yy182 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
144841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy399);
144842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 205: /* expr ::= CASE case_operand case_exprlist case_else END */
144845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy182, 0);
144847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-4].minor.yy182 ){
144848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy182->x.pList = yymsp[-1].minor.yy182 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy232,yymsp[-1].minor.yy182) : yymsp[-2].minor.yy232;
144849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy182);
144850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
144851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy232);
144852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy182);
144853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 206: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
144857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy232, yymsp[-2].minor.yy182);
144859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy232, yymsp[0].minor.yy182);
144860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 207: /* case_exprlist ::= WHEN expr THEN expr */
144863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy232 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy182);
144865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy232 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy232, yymsp[0].minor.yy182);
144866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 210: /* case_operand ::= expr */
144869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy182 = yymsp[0].minor.yy182; /*A-overwrites-X*/}
144870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 213: /* nexprlist ::= nexprlist COMMA expr */
144872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy232 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy232,yymsp[0].minor.yy182);}
144873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 214: /* nexprlist ::= expr */
144875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy232 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy182); /*A-overwrites-Y*/}
144876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 216: /* paren_exprlist ::= LP exprlist RP */
144878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 221: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==221);
144879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy232 = yymsp[-1].minor.yy232;}
144880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 217: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
148325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = yymsp[-3].minor.yy18 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
148326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy489);
148327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 204: /* expr ::= CASE case_operand case_exprlist case_else END */
148330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy18, 0);
148332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-4].minor.yy18 ){
148333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy18->x.pList = yymsp[-1].minor.yy18 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy420,yymsp[-1].minor.yy18) : yymsp[-2].minor.yy420;
148334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy18);
148335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
148336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy420);
148337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy18);
148338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 205: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
148342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy420, yymsp[-2].minor.yy18);
148344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy420, yymsp[0].minor.yy18);
148345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 206: /* case_exprlist ::= WHEN expr THEN expr */
148348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy420 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy18);
148350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy420, yymsp[0].minor.yy18);
148351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 209: /* case_operand ::= expr */
148354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy18 = yymsp[0].minor.yy18; /*A-overwrites-X*/}
148355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 212: /* nexprlist ::= nexprlist COMMA expr */
148357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy420,yymsp[0].minor.yy18);}
148358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 213: /* nexprlist ::= expr */
148360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy420 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy18); /*A-overwrites-Y*/}
148361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 215: /* paren_exprlist ::= LP exprlist RP */
148363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 220: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==220);
148364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy420 = yymsp[-1].minor.yy420;}
148365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 216: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
144882 148367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144883 148368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
144884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy232, yymsp[-10].minor.yy502,
144885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &yymsp[-11].minor.yy0, yymsp[0].minor.yy182, SQLITE_SO_ASC, yymsp[-8].minor.yy502, SQLITE_IDXTYPE_APPDEF);
144886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 218: /* uniqueflag ::= UNIQUE */
144889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 258: /* raisetype ::= ABORT */ yytestcase(yyruleno==258);
144890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = OE_Abort;}
144891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 219: /* uniqueflag ::= */
144893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[1].minor.yy502 = OE_None;}
144894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 222: /* eidlist ::= eidlist COMMA nm collate sortorder */
144896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-4].minor.yy232 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy232, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502);
144898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 223: /* eidlist ::= nm collate sortorder */
144901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy232 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy502, yymsp[0].minor.yy502); /*A-overwrites-Y*/
144903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 226: /* cmd ::= DROP INDEX ifexists fullname */
144906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {sqlite3DropIndex(pParse, yymsp[0].minor.yy427, yymsp[-1].minor.yy502);}
144907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 227: /* cmd ::= VACUUM */
148369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy420, yymsp[-10].minor.yy70,
148370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ &yymsp[-11].minor.yy0, yymsp[0].minor.yy18, SQLITE_SO_ASC, yymsp[-8].minor.yy70, SQLITE_IDXTYPE_APPDEF);
148371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 217: /* uniqueflag ::= UNIQUE */
148374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 257: /* raisetype ::= ABORT */ yytestcase(yyruleno==257);
148375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = OE_Abort;}
148376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 218: /* uniqueflag ::= */
148378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[1].minor.yy70 = OE_None;}
148379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 221: /* eidlist ::= eidlist COMMA nm collate sortorder */
148381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy420 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy420, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy70, yymsp[0].minor.yy70);
148383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 222: /* eidlist ::= nm collate sortorder */
148386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy420 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy70, yymsp[0].minor.yy70); /*A-overwrites-Y*/
148388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 225: /* cmd ::= DROP INDEX ifexists fullname */
148391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {sqlite3DropIndex(pParse, yymsp[0].minor.yy135, yymsp[-1].minor.yy70);}
148392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 226: /* cmd ::= VACUUM */
144909 148394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Vacuum(pParse,0);}
144910 148395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 228: /* cmd ::= VACUUM nm */
148396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 227: /* cmd ::= VACUUM nm */
144912 148397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
144913 148398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 229: /* cmd ::= PRAGMA nm dbnm */
148399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 228: /* cmd ::= PRAGMA nm dbnm */
144915 148400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
144916 148401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 230: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
148402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 229: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
144918 148403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
144919 148404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 231: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
148405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 230: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
144921 148406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
144922 148407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 232: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
148408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 231: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
144924 148409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
144925 148410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 233: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
148411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 232: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
144927 148412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
144928 148413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 236: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
148414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 235: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
144930 148415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144931 148416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Token all;
144932 148417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
all.z = yymsp[-3].minor.yy0.z;
144933 148418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
144934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy47, &all);
148419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy207, &all);
144935 148420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144936 148421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 237: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
148422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 236: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
144938 148423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy502, yymsp[-4].minor.yy300.a, yymsp[-4].minor.yy300.b, yymsp[-2].minor.yy427, yymsp[0].minor.yy182, yymsp[-10].minor.yy502, yymsp[-8].minor.yy502);
148424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy70, yymsp[-4].minor.yy34.a, yymsp[-4].minor.yy34.b, yymsp[-2].minor.yy135, yymsp[0].minor.yy18, yymsp[-10].minor.yy70, yymsp[-8].minor.yy70);
144940 148425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
144941 148426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144942 148427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 238: /* trigger_time ::= BEFORE|AFTER */
144944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[0].minor.yy502 = yymsp[0].major; /*A-overwrites-X*/ }
144945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 239: /* trigger_time ::= INSTEAD OF */
144947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy502 = TK_INSTEAD;}
144948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 240: /* trigger_time ::= */
144950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[1].minor.yy502 = TK_BEFORE; }
144951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 241: /* trigger_event ::= DELETE|INSERT */
144953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 242: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==242);
144954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy300.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy300.b = 0;}
144955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 243: /* trigger_event ::= UPDATE OF idlist */
144957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[-2].minor.yy300.a = TK_UPDATE; yymsp[-2].minor.yy300.b = yymsp[0].minor.yy510;}
144958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 244: /* when_clause ::= */
144960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 263: /* key_opt ::= */ yytestcase(yyruleno==263);
144961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[1].minor.yy182 = 0; }
144962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 245: /* when_clause ::= WHEN expr */
144964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 264: /* key_opt ::= KEY expr */ yytestcase(yyruleno==264);
144965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { yymsp[-1].minor.yy182 = yymsp[0].minor.yy182; }
144966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 246: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
144968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( yymsp[-2].minor.yy47!=0 );
144970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy47->pLast->pNext = yymsp[-1].minor.yy47;
144971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy47->pLast = yymsp[-1].minor.yy47;
144972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 247: /* trigger_cmd_list ::= trigger_cmd SEMI */
144975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
144976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( yymsp[-1].minor.yy47!=0 );
144977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-1].minor.yy47->pLast = yymsp[-1].minor.yy47;
144978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
144979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
144980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 248: /* trnm ::= nm DOT nm */
148428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 237: /* trigger_time ::= BEFORE|AFTER */
148429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[0].minor.yy70 = yymsp[0].major; /*A-overwrites-X*/ }
148430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 238: /* trigger_time ::= INSTEAD OF */
148432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy70 = TK_INSTEAD;}
148433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 239: /* trigger_time ::= */
148435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[1].minor.yy70 = TK_BEFORE; }
148436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 240: /* trigger_event ::= DELETE|INSERT */
148438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 241: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==241);
148439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy34.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy34.b = 0;}
148440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 242: /* trigger_event ::= UPDATE OF idlist */
148442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-2].minor.yy34.a = TK_UPDATE; yymsp[-2].minor.yy34.b = yymsp[0].minor.yy48;}
148443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 243: /* when_clause ::= */
148445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 262: /* key_opt ::= */ yytestcase(yyruleno==262);
148446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 305: /* filter_opt ::= */ yytestcase(yyruleno==305);
148447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[1].minor.yy18 = 0; }
148448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 244: /* when_clause ::= WHEN expr */
148450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 263: /* key_opt ::= KEY expr */ yytestcase(yyruleno==263);
148451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy18 = yymsp[0].minor.yy18; }
148452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 245: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
148454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( yymsp[-2].minor.yy207!=0 );
148456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy207->pLast->pNext = yymsp[-1].minor.yy207;
148457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy207->pLast = yymsp[-1].minor.yy207;
148458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 246: /* trigger_cmd_list ::= trigger_cmd SEMI */
148461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( yymsp[-1].minor.yy207!=0 );
148463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy207->pLast = yymsp[-1].minor.yy207;
148464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 247: /* trnm ::= nm DOT nm */
144981 148467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144982 148468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
144983 148469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse,
144984 148470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"qualified table names are not allowed on INSERT, UPDATE, and DELETE "
144985 148471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"statements within triggers");
144986 148472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144987 148473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 249: /* tridxby ::= INDEXED BY nm */
148474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 248: /* tridxby ::= INDEXED BY nm */
144989 148475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144990 148476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse,
144991 148477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
144992 148478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"within triggers");
144993 148479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144994 148480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
144995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 250: /* tridxby ::= NOT INDEXED */
148481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 249: /* tridxby ::= NOT INDEXED */
144996 148482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
144997 148483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse,
144998 148484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
144999 148485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"within triggers");
145000 148486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145001 148487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 251: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
145003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yylhsminor.yy47 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy232, yymsp[-1].minor.yy182, yymsp[-6].minor.yy502, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy36);}
145004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-7].minor.yy47 = yylhsminor.yy47;
145005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 252: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
145007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yylhsminor.yy47 = sqlite3TriggerInsertStep(pParse->db,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy510,yymsp[-2].minor.yy399,yymsp[-6].minor.yy502,yymsp[-1].minor.yy198,yymsp[-7].minor.yy36,yymsp[0].minor.yy36);/*yylhsminor.yy47-overwrites-yymsp[-6].minor.yy502*/
145009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-7].minor.yy47 = yylhsminor.yy47;
145011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 253: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
145013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yylhsminor.yy47 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy182, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy36);}
145014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-5].minor.yy47 = yylhsminor.yy47;
145015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 254: /* trigger_cmd ::= scanpt select scanpt */
145017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yylhsminor.yy47 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy399, yymsp[-2].minor.yy36, yymsp[0].minor.yy36); /*yylhsminor.yy47-overwrites-yymsp[-1].minor.yy399*/}
145018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-2].minor.yy47 = yylhsminor.yy47;
145019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 255: /* expr ::= RAISE LP IGNORE RP */
145021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy182 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
145023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-3].minor.yy182 ){
145024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-3].minor.yy182->affinity = OE_Ignore;
145025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 256: /* expr ::= RAISE LP raisetype COMMA nm RP */
145029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-5].minor.yy182 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
145031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( yymsp[-5].minor.yy182 ) {
145032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-5].minor.yy182->affinity = (char)yymsp[-3].minor.yy502;
145033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 257: /* raisetype ::= ROLLBACK */
145037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = OE_Rollback;}
145038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 259: /* raisetype ::= FAIL */
145040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {yymsp[0].minor.yy502 = OE_Fail;}
145041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 260: /* cmd ::= DROP TRIGGER ifexists fullname */
145043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DropTrigger(pParse,yymsp[0].minor.yy427,yymsp[-1].minor.yy502);
145045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 261: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
145048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Attach(pParse, yymsp[-3].minor.yy182, yymsp[-1].minor.yy182, yymsp[0].minor.yy182);
145050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 262: /* cmd ::= DETACH database_kw_opt expr */
145053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Detach(pParse, yymsp[0].minor.yy182);
145055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 265: /* cmd ::= REINDEX */
148488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 250: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
148489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yylhsminor.yy207 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy420, yymsp[-1].minor.yy18, yymsp[-6].minor.yy70, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy392);}
148490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-7].minor.yy207 = yylhsminor.yy207;
148491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 251: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
148493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy207 = sqlite3TriggerInsertStep(pParse->db,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy48,yymsp[-2].minor.yy489,yymsp[-6].minor.yy70,yymsp[-1].minor.yy340,yymsp[-7].minor.yy392,yymsp[0].minor.yy392);/*yylhsminor.yy207-overwrites-yymsp[-6].minor.yy70*/
148495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-7].minor.yy207 = yylhsminor.yy207;
148497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 252: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
148499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yylhsminor.yy207 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy18, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy392);}
148500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-5].minor.yy207 = yylhsminor.yy207;
148501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 253: /* trigger_cmd ::= scanpt select scanpt */
148503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yylhsminor.yy207 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy489, yymsp[-2].minor.yy392, yymsp[0].minor.yy392); /*yylhsminor.yy207-overwrites-yymsp[-1].minor.yy489*/}
148504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy207 = yylhsminor.yy207;
148505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 254: /* expr ::= RAISE LP IGNORE RP */
148507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy18 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
148509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-3].minor.yy18 ){
148510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-3].minor.yy18->affinity = OE_Ignore;
148511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 255: /* expr ::= RAISE LP raisetype COMMA nm RP */
148515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-5].minor.yy18 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
148517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-5].minor.yy18 ) {
148518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-5].minor.yy18->affinity = (char)yymsp[-3].minor.yy70;
148519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 256: /* raisetype ::= ROLLBACK */
148523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = OE_Rollback;}
148524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 258: /* raisetype ::= FAIL */
148526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[0].minor.yy70 = OE_Fail;}
148527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 259: /* cmd ::= DROP TRIGGER ifexists fullname */
148529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DropTrigger(pParse,yymsp[0].minor.yy135,yymsp[-1].minor.yy70);
148531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 260: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
148534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Attach(pParse, yymsp[-3].minor.yy18, yymsp[-1].minor.yy18, yymsp[0].minor.yy18);
148536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 261: /* cmd ::= DETACH database_kw_opt expr */
148539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Detach(pParse, yymsp[0].minor.yy18);
148541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 264: /* cmd ::= REINDEX */
145058 148544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Reindex(pParse, 0, 0);}
145059 148545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 266: /* cmd ::= REINDEX nm dbnm */
148546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 265: /* cmd ::= REINDEX nm dbnm */
145061 148547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
145062 148548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 267: /* cmd ::= ANALYZE */
148549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 266: /* cmd ::= ANALYZE */
145064 148550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Analyze(pParse, 0, 0);}
145065 148551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 268: /* cmd ::= ANALYZE nm dbnm */
148552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 267: /* cmd ::= ANALYZE nm dbnm */
145067 148553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
145068 148554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 269: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
148555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 268: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
145070 148556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
145071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy427,&yymsp[0].minor.yy0);
148557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy135,&yymsp[0].minor.yy0);
145072 148558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145073 148559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 270: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
148560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 269: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
145075 148561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
145076 148562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
145077 148563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
145078 148564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145079 148565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 271: /* add_column_fullname ::= fullname */
148566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 270: /* add_column_fullname ::= fullname */
145081 148567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
145082 148568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
disableLookaside(pParse);
145083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy427);
148569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy135);
145084 148570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145085 148571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 272: /* cmd ::= create_vtab */
148572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 271: /* cmd ::= create_vtab */
145087 148573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3VtabFinishParse(pParse,0);}
145088 148574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 273: /* cmd ::= create_vtab LP vtabarglist RP */
148575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 272: /* cmd ::= create_vtab LP vtabarglist RP */
145090 148576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
145091 148577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 274: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
148578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 273: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
145093 148579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
145094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy502);
148580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy70);
145095 148581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145096 148582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 275: /* vtabarg ::= */
148583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 274: /* vtabarg ::= */
145098 148584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3VtabArgInit(pParse);}
145099 148585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 276: /* vtabargtoken ::= ANY */
145101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 277: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==277);
145102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 278: /* lp ::= LP */ yytestcase(yyruleno==278);
148586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 275: /* vtabargtoken ::= ANY */
148587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 276: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==276);
148588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 277: /* lp ::= LP */ yytestcase(yyruleno==277);
145103 148589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
145104 148590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 279: /* with ::= WITH wqlist */
145106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 280: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==280);
145107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { sqlite3WithPush(pParse, yymsp[0].minor.yy91, 1); }
145108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 281: /* wqlist ::= nm eidlist_opt AS LP select RP */
145110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-5].minor.yy91 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy232, yymsp[-1].minor.yy399); /*A-overwrites-X*/
145112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
145113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
145114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 282: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
145115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
145116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yymsp[-7].minor.yy91 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy91, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy232, yymsp[-1].minor.yy399);
145117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
148591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 278: /* with ::= WITH wqlist */
148592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 279: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==279);
148593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { sqlite3WithPush(pParse, yymsp[0].minor.yy449, 1); }
148594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 280: /* wqlist ::= nm eidlist_opt AS LP select RP */
148596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-5].minor.yy449 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy420, yymsp[-1].minor.yy489); /*A-overwrites-X*/
148598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 281: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
148601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-7].minor.yy449 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy449, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy420, yymsp[-1].minor.yy489);
148603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 282: /* windowdefn_list ::= windowdefn */
148606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yylhsminor.yy327 = yymsp[0].minor.yy327; }
148607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy327 = yylhsminor.yy327;
148608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 283: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
148610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( yymsp[0].minor.yy327!=0 );
148612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy327->pNextWin = yymsp[-2].minor.yy327;
148613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327 = yymsp[0].minor.yy327;
148614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy327 = yylhsminor.yy327;
148616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 284: /* windowdefn ::= nm AS window */
148618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(yymsp[0].minor.yy327) ){
148620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy327->zName = sqlite3DbStrNDup(pParse->db, yymsp[-2].minor.yy0.z, yymsp[-2].minor.yy0.n);
148621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327 = yymsp[0].minor.yy327;
148623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy327 = yylhsminor.yy327;
148625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 285: /* window ::= LP part_opt orderby_opt frame_opt RP */
148627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy327 = yymsp[-1].minor.yy327;
148629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(yymsp[-4].minor.yy327) ){
148630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy327->pPartition = yymsp[-3].minor.yy420;
148631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy327->pOrderBy = yymsp[-2].minor.yy420;
148632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 286: /* part_opt ::= PARTITION BY exprlist */
148636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-2].minor.yy420 = yymsp[0].minor.yy420; }
148637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 287: /* part_opt ::= */
148639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[1].minor.yy420 = 0; }
148640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 288: /* frame_opt ::= */
148642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[1].minor.yy327 = sqlite3WindowAlloc(pParse, TK_RANGE, TK_UNBOUNDED, 0, TK_CURRENT, 0);
148644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 289: /* frame_opt ::= range_or_rows frame_bound_s */
148647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327 = sqlite3WindowAlloc(pParse, yymsp[-1].minor.yy70, yymsp[0].minor.yy119.eType, yymsp[0].minor.yy119.pExpr, TK_CURRENT, 0);
148649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy327 = yylhsminor.yy327;
148651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 290: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e */
148653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327 = sqlite3WindowAlloc(pParse, yymsp[-4].minor.yy70, yymsp[-2].minor.yy119.eType, yymsp[-2].minor.yy119.pExpr, yymsp[0].minor.yy119.eType, yymsp[0].minor.yy119.pExpr);
148655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-4].minor.yy327 = yylhsminor.yy327;
148657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 291: /* range_or_rows ::= RANGE */
148659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[0].minor.yy70 = TK_RANGE; }
148660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 292: /* range_or_rows ::= ROWS */
148662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[0].minor.yy70 = TK_ROWS; }
148663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 293: /* frame_bound_s ::= frame_bound */
148665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 295: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==295);
148666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yylhsminor.yy119 = yymsp[0].minor.yy119; }
148667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[0].minor.yy119 = yylhsminor.yy119;
148668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 294: /* frame_bound_s ::= UNBOUNDED PRECEDING */
148670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 296: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==296);
148671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {yymsp[-1].minor.yy119.eType = TK_UNBOUNDED; yymsp[-1].minor.yy119.pExpr = 0;}
148672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 297: /* frame_bound ::= expr PRECEDING */
148674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yylhsminor.yy119.eType = TK_PRECEDING; yylhsminor.yy119.pExpr = yymsp[-1].minor.yy18; }
148675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy119 = yylhsminor.yy119;
148676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 298: /* frame_bound ::= CURRENT ROW */
148678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy119.eType = TK_CURRENT ; yymsp[-1].minor.yy119.pExpr = 0; }
148679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 299: /* frame_bound ::= expr FOLLOWING */
148681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yylhsminor.yy119.eType = TK_FOLLOWING; yylhsminor.yy119.pExpr = yymsp[-1].minor.yy18; }
148682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-1].minor.yy119 = yylhsminor.yy119;
148683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 300: /* windowdefn_opt ::= */
148685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 302: /* over_opt ::= */ yytestcase(yyruleno==302);
148686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[1].minor.yy327 = 0; }
148687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 301: /* windowdefn_opt ::= WINDOW windowdefn_list */
148689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-1].minor.yy327 = yymsp[0].minor.yy327; }
148690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 303: /* over_opt ::= filter_opt OVER window */
148692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327 = yymsp[0].minor.yy327;
148694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( yylhsminor.yy327!=0 );
148695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327->pFilter = yymsp[-2].minor.yy18;
148696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy327 = yylhsminor.yy327;
148698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 304: /* over_opt ::= filter_opt OVER nm */
148700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
148701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
148702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yylhsminor.yy327 ){
148703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
148704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yylhsminor.yy327->pFilter = yymsp[-2].minor.yy18;
148705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
148706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy18);
148707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yymsp[-2].minor.yy327 = yylhsminor.yy327;
148710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
148711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 306: /* filter_opt ::= FILTER LP WHERE expr RP */
148712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { yymsp[-4].minor.yy18 = yymsp[-1].minor.yy18; }
145118 148713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145119 148714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default:
145120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (283) input ::= cmdlist */ yytestcase(yyruleno==283);
145121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (284) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==284);
145122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (285) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=285);
145123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (286) ecmd ::= SEMI */ yytestcase(yyruleno==286);
145124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (287) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==287);
145125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (288) ecmd ::= explain cmdx */ yytestcase(yyruleno==288);
145126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (289) trans_opt ::= */ yytestcase(yyruleno==289);
145127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (290) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==290);
145128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (291) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==291);
145129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (292) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==292);
145130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (293) savepoint_opt ::= */ yytestcase(yyruleno==293);
145131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (294) cmd ::= create_table create_table_args */ yytestcase(yyruleno==294);
145132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (295) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==295);
145133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (296) columnlist ::= columnname carglist */ yytestcase(yyruleno==296);
145134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (297) nm ::= ID|INDEXED */ yytestcase(yyruleno==297);
145135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (298) nm ::= STRING */ yytestcase(yyruleno==298);
145136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (299) nm ::= JOIN_KW */ yytestcase(yyruleno==299);
145137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (300) typetoken ::= typename */ yytestcase(yyruleno==300);
145138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (301) typename ::= ID|STRING */ yytestcase(yyruleno==301);
145139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (302) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=302);
145140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (303) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=303);
145141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (304) carglist ::= carglist ccons */ yytestcase(yyruleno==304);
145142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (305) carglist ::= */ yytestcase(yyruleno==305);
145143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (306) ccons ::= NULL onconf */ yytestcase(yyruleno==306);
145144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (307) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==307);
145145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (308) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==308);
145146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (309) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=309);
145147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (310) tconscomma ::= */ yytestcase(yyruleno==310);
145148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (311) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=311);
145149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (312) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=312);
145150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (313) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=313);
145151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (314) oneselect ::= values */ yytestcase(yyruleno==314);
145152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (315) sclp ::= selcollist COMMA */ yytestcase(yyruleno==315);
145153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (316) as ::= ID|STRING */ yytestcase(yyruleno==316);
145154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (317) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=317);
145155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (318) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==318);
145156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (319) exprlist ::= nexprlist */ yytestcase(yyruleno==319);
145157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (320) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=320);
145158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (321) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=321);
145159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (322) nmnum ::= ON */ yytestcase(yyruleno==322);
145160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (323) nmnum ::= DELETE */ yytestcase(yyruleno==323);
145161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (324) nmnum ::= DEFAULT */ yytestcase(yyruleno==324);
145162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (325) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==325);
145163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (326) foreach_clause ::= */ yytestcase(yyruleno==326);
145164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (327) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==327);
145165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (328) trnm ::= nm */ yytestcase(yyruleno==328);
145166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (329) tridxby ::= */ yytestcase(yyruleno==329);
145167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (330) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==330);
145168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (331) database_kw_opt ::= */ yytestcase(yyruleno==331);
145169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (332) kwcolumn_opt ::= */ yytestcase(yyruleno==332);
145170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (333) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==333);
145171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (334) vtabarglist ::= vtabarg */ yytestcase(yyruleno==334);
145172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (335) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==335);
145173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (336) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==336);
145174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (337) anylist ::= */ yytestcase(yyruleno==337);
145175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (338) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==338);
145176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (339) anylist ::= anylist ANY */ yytestcase(yyruleno==339);
145177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* (340) with ::= */ yytestcase(yyruleno==340);
148715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (307) input ::= cmdlist */ yytestcase(yyruleno==307);
148716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (308) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==308);
148717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (309) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=309);
148718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (310) ecmd ::= SEMI */ yytestcase(yyruleno==310);
148719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (311) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==311);
148720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (312) ecmd ::= explain cmdx */ yytestcase(yyruleno==312);
148721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (313) trans_opt ::= */ yytestcase(yyruleno==313);
148722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (314) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==314);
148723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (315) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==315);
148724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (316) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==316);
148725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (317) savepoint_opt ::= */ yytestcase(yyruleno==317);
148726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (318) cmd ::= create_table create_table_args */ yytestcase(yyruleno==318);
148727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (319) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==319);
148728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (320) columnlist ::= columnname carglist */ yytestcase(yyruleno==320);
148729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (321) nm ::= ID|INDEXED */ yytestcase(yyruleno==321);
148730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (322) nm ::= STRING */ yytestcase(yyruleno==322);
148731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (323) nm ::= JOIN_KW */ yytestcase(yyruleno==323);
148732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (324) typetoken ::= typename */ yytestcase(yyruleno==324);
148733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (325) typename ::= ID|STRING */ yytestcase(yyruleno==325);
148734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (326) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=326);
148735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (327) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=327);
148736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (328) carglist ::= carglist ccons */ yytestcase(yyruleno==328);
148737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (329) carglist ::= */ yytestcase(yyruleno==329);
148738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (330) ccons ::= NULL onconf */ yytestcase(yyruleno==330);
148739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (331) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==331);
148740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (332) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==332);
148741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (333) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=333);
148742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (334) tconscomma ::= */ yytestcase(yyruleno==334);
148743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (335) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=335);
148744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (336) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=336);
148745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (337) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=337);
148746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (338) oneselect ::= values */ yytestcase(yyruleno==338);
148747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (339) sclp ::= selcollist COMMA */ yytestcase(yyruleno==339);
148748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (340) as ::= ID|STRING */ yytestcase(yyruleno==340);
148749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (341) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=341);
148750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (342) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==342);
148751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (343) exprlist ::= nexprlist */ yytestcase(yyruleno==343);
148752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (344) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=344);
148753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (345) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=345);
148754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (346) nmnum ::= ON */ yytestcase(yyruleno==346);
148755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (347) nmnum ::= DELETE */ yytestcase(yyruleno==347);
148756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (348) nmnum ::= DEFAULT */ yytestcase(yyruleno==348);
148757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (349) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==349);
148758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (350) foreach_clause ::= */ yytestcase(yyruleno==350);
148759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (351) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==351);
148760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (352) trnm ::= nm */ yytestcase(yyruleno==352);
148761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (353) tridxby ::= */ yytestcase(yyruleno==353);
148762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (354) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==354);
148763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (355) database_kw_opt ::= */ yytestcase(yyruleno==355);
148764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (356) kwcolumn_opt ::= */ yytestcase(yyruleno==356);
148765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (357) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==357);
148766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (358) vtabarglist ::= vtabarg */ yytestcase(yyruleno==358);
148767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (359) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==359);
148768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (360) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==360);
148769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (361) anylist ::= */ yytestcase(yyruleno==361);
148770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (362) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==362);
148771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (363) anylist ::= anylist ANY */ yytestcase(yyruleno==363);
148772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* (364) with ::= */ yytestcase(yyruleno==364);
145178 148773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145179 148774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/********** End reduce actions ************************************************/
145180 148775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145181 148776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
145182 148777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yygoto = yyRuleInfo[yyruleno].lhs;
@@ -145458,10 +149053,25 @@
145458 149053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fprintf(yyTraceFILE,"]\n");
145459 149054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145460 149055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
145461 149056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
145462 149057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
149058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
149059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
149060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return the fallback token corresponding to canonical token iToken, or
149061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 0 if iToken has no fallback.
149062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
149063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ParserFallback(int iToken){
149064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef YYFALLBACK
149065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) ){
149066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return yyFallback[iToken];
149067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
149069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (void)iToken;
149070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
149071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
149072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
145463 149073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
145464 149074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of parse.c ***********************************************/
145465 149075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file tokenize.c ****************************************/
145466 149076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
145467 149077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2001 September 15
@@ -145517,15 +149127,16 @@
145517 149127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CC_COMMA 23 /* ',' */
145518 149128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CC_AND 24 /* '&' */
145519 149129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CC_TILDA 25 /* '~' */
145520 149130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CC_DOT 26 /* '.' */
145521 149131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CC_ILLEGAL 27 /* Illegal character */
149132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define CC_NUL 28 /* 0x00 */
145522 149133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
145523 149134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const unsigned char aiClass[] = {
145524 149135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ASCII
145525 149136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf */
145526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0x */ 27, 27, 27, 27, 27, 27, 27, 27, 27, 7, 7, 27, 7, 7, 27, 27,
149137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0x */ 28, 27, 27, 27, 27, 27, 27, 27, 27, 7, 7, 27, 7, 7, 27, 27,
145527 149138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1x */ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
145528 149139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 2x */ 7, 15, 8, 5, 4, 22, 24, 8, 17, 18, 21, 20, 23, 11, 26, 16,
145529 149140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 3x */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 19, 12, 14, 13, 6,
145530 149141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 4x */ 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
145531 149142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 5x */ 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 9, 27, 27, 27, 1,
@@ -145620,23 +149231,24 @@
145620 149231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** might be implemented more directly using a hand-written hash table.
145621 149232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** But by using this automatically generated code, the size of the code
145622 149233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is substantially reduced. This is important for embedded applications
145623 149234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on platforms with limited memory.
145624 149235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
145625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Hash score: 185 */
145626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* zKWText[] encodes 845 bytes of keyword text in 561 bytes */
149236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Hash score: 208 */
149237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* zKWText[] encodes 923 bytes of keyword text in 614 bytes */
145627 149238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* REINDEXEDESCAPEACHECKEYBEFOREIGNOREGEXPLAINSTEADDATABASELECT */
145628 149239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* ABLEFTHENDEFERRABLELSEXCEPTRANSACTIONATURALTERAISEXCLUSIVE */
145629 149240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* XISTSAVEPOINTERSECTRIGGEREFERENCESCONSTRAINTOFFSETEMPORARY */
145630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* UNIQUERYWITHOUTERELEASEATTACHAVINGROUPDATEBEGINNERECURSIVE */
145631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* BETWEENOTHINGLOBYCASCADELETECASECOLLATECREATECURRENT_DATE */
145632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* DETACHIMMEDIATEJOINSERTLIKEMATCHPLANALYZEPRAGMABORTVALUES */
145633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* VIRTUALIMITWHENOTNULLWHERENAMEAFTEREPLACEANDEFAULT */
145634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* AUTOINCREMENTCASTCOLUMNCOMMITCONFLICTCROSSCURRENT_TIMESTAMP */
145635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* RIMARYDEFERREDISTINCTDORDERESTRICTDROPFAILFROMFULLIFISNULL */
145636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* RIGHTROLLBACKROWUNIONUSINGVACUUMVIEWINITIALLY */
145637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const char zKWText[560] = {
149241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* UNIQUERYWITHOUTERELEASEATTACHAVINGROUPDATEBEGINNERANGEBETWEEN */
149242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* OTHINGLOBYCASCADELETECASECOLLATECREATECURRENT_DATEDETACH */
149243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* IMMEDIATEJOINSERTLIKEMATCHPLANALYZEPRAGMABORTVALUESVIRTUALIMIT */
149244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* WHENOTNULLWHERECURSIVEAFTERENAMEANDEFAULTAUTOINCREMENTCAST */
149245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* COLUMNCOMMITCONFLICTCROSSCURRENT_TIMESTAMPARTITIONDEFERRED */
149246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* ISTINCTDROPRECEDINGFAILFILTEREPLACEFOLLOWINGFROMFULLIFISNULL */
149247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* ORDERESTRICTOVERIGHTROLLBACKROWSUNBOUNDEDUNIONUSINGVACUUMVIEW */
149248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* INDOWINITIALLYPRIMARY */
149249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char zKWText[613] = {
145638 149250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'R','E','I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H',
145639 149251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'E','C','K','E','Y','B','E','F','O','R','E','I','G','N','O','R','E','G',
145640 149252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'E','X','P','L','A','I','N','S','T','E','A','D','D','A','T','A','B','A',
145641 149253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'S','E','L','E','C','T','A','B','L','E','F','T','H','E','N','D','E','F',
145642 149254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'E','R','R','A','B','L','E','L','S','E','X','C','E','P','T','R','A','N',
@@ -145645,88 +149257,94 @@
145645 149257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'P','O','I','N','T','E','R','S','E','C','T','R','I','G','G','E','R','E',
145646 149258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'F','E','R','E','N','C','E','S','C','O','N','S','T','R','A','I','N','T',
145647 149259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'O','F','F','S','E','T','E','M','P','O','R','A','R','Y','U','N','I','Q',
145648 149260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'U','E','R','Y','W','I','T','H','O','U','T','E','R','E','L','E','A','S',
145649 149261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'E','A','T','T','A','C','H','A','V','I','N','G','R','O','U','P','D','A',
145650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'T','E','B','E','G','I','N','N','E','R','E','C','U','R','S','I','V','E',
145651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'B','E','T','W','E','E','N','O','T','H','I','N','G','L','O','B','Y','C',
145652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'A','S','C','A','D','E','L','E','T','E','C','A','S','E','C','O','L','L',
145653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'A','T','E','C','R','E','A','T','E','C','U','R','R','E','N','T','_','D',
145654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'A','T','E','D','E','T','A','C','H','I','M','M','E','D','I','A','T','E',
145655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'J','O','I','N','S','E','R','T','L','I','K','E','M','A','T','C','H','P',
145656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'L','A','N','A','L','Y','Z','E','P','R','A','G','M','A','B','O','R','T',
145657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'V','A','L','U','E','S','V','I','R','T','U','A','L','I','M','I','T','W',
145658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'H','E','N','O','T','N','U','L','L','W','H','E','R','E','N','A','M','E',
145659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'A','F','T','E','R','E','P','L','A','C','E','A','N','D','E','F','A','U',
145660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'L','T','A','U','T','O','I','N','C','R','E','M','E','N','T','C','A','S',
145661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'T','C','O','L','U','M','N','C','O','M','M','I','T','C','O','N','F','L',
145662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'I','C','T','C','R','O','S','S','C','U','R','R','E','N','T','_','T','I',
145663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'M','E','S','T','A','M','P','R','I','M','A','R','Y','D','E','F','E','R',
145664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'R','E','D','I','S','T','I','N','C','T','D','O','R','D','E','R','E','S',
145665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'T','R','I','C','T','D','R','O','P','F','A','I','L','F','R','O','M','F',
145666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'U','L','L','I','F','I','S','N','U','L','L','R','I','G','H','T','R','O',
145667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'L','L','B','A','C','K','R','O','W','U','N','I','O','N','U','S','I','N',
145668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'G','V','A','C','U','U','M','V','I','E','W','I','N','I','T','I','A','L',
145669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'L','Y',
149262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'T','E','B','E','G','I','N','N','E','R','A','N','G','E','B','E','T','W',
149263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'E','E','N','O','T','H','I','N','G','L','O','B','Y','C','A','S','C','A',
149264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'D','E','L','E','T','E','C','A','S','E','C','O','L','L','A','T','E','C',
149265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'R','E','A','T','E','C','U','R','R','E','N','T','_','D','A','T','E','D',
149266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'E','T','A','C','H','I','M','M','E','D','I','A','T','E','J','O','I','N',
149267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'S','E','R','T','L','I','K','E','M','A','T','C','H','P','L','A','N','A',
149268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'L','Y','Z','E','P','R','A','G','M','A','B','O','R','T','V','A','L','U',
149269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'E','S','V','I','R','T','U','A','L','I','M','I','T','W','H','E','N','O',
149270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'T','N','U','L','L','W','H','E','R','E','C','U','R','S','I','V','E','A',
149271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'F','T','E','R','E','N','A','M','E','A','N','D','E','F','A','U','L','T',
149272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'A','U','T','O','I','N','C','R','E','M','E','N','T','C','A','S','T','C',
149273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'O','L','U','M','N','C','O','M','M','I','T','C','O','N','F','L','I','C',
149274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'T','C','R','O','S','S','C','U','R','R','E','N','T','_','T','I','M','E',
149275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'S','T','A','M','P','A','R','T','I','T','I','O','N','D','E','F','E','R',
149276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'R','E','D','I','S','T','I','N','C','T','D','R','O','P','R','E','C','E',
149277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'D','I','N','G','F','A','I','L','F','I','L','T','E','R','E','P','L','A',
149278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'C','E','F','O','L','L','O','W','I','N','G','F','R','O','M','F','U','L',
149279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'L','I','F','I','S','N','U','L','L','O','R','D','E','R','E','S','T','R',
149280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'I','C','T','O','V','E','R','I','G','H','T','R','O','L','L','B','A','C',
149281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'K','R','O','W','S','U','N','B','O','U','N','D','E','D','U','N','I','O',
149282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'N','U','S','I','N','G','V','A','C','U','U','M','V','I','E','W','I','N',
149283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'D','O','W','I','N','I','T','I','A','L','L','Y','P','R','I','M','A','R',
149284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'Y',
145670 149285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145671 149286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* aKWHash[i] is the hash value for the i-th keyword */
145672 149287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const unsigned char aKWHash[127] = {
145673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 74, 108, 119, 72, 0, 45, 0, 0, 81, 0, 76, 61, 0,
145674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 42, 12, 77, 15, 0, 118, 84, 54, 116, 0, 19, 0, 0,
145675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 123, 0, 121, 111, 0, 22, 96, 0, 9, 0, 0, 68, 69,
145676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, 67, 6, 0, 48, 93, 105, 0, 120, 104, 0, 0, 44,
145677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, 106, 24, 0, 17, 0, 124, 53, 23, 0, 5, 62, 25,
145678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 99, 0, 0, 126, 112, 60, 125, 57, 28, 55, 0, 94, 0,
145679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 103, 26, 0, 102, 0, 0, 0, 98, 95, 100, 91, 115, 14,
145680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 39, 114, 0, 80, 0, 109, 92, 90, 32, 0, 122, 79, 117,
145681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 86, 46, 83, 0, 0, 97, 40, 59, 110, 0, 36, 0, 0,
145682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 29, 0, 89, 87, 88, 0, 20, 85, 0, 56,
149288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 109, 124, 72, 106, 45, 0, 0, 81, 0, 76, 61, 0,
149289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42, 12, 77, 15, 0, 123, 84, 54, 118, 125, 19, 0, 0,
149290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 130, 0, 128, 121, 0, 22, 96, 0, 9, 0, 0, 115, 69,
149291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 67, 6, 0, 48, 93, 136, 0, 126, 104, 0, 0, 44,
149292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 107, 24, 0, 17, 0, 131, 53, 23, 0, 5, 62, 132,
149293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 99, 0, 0, 135, 110, 60, 134, 57, 113, 55, 0, 94, 0,
149294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 103, 26, 0, 102, 0, 0, 0, 98, 95, 100, 105, 117, 14,
149295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 116, 0, 80, 0, 133, 114, 92, 59, 0, 129, 79, 119,
149296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 86, 46, 83, 0, 0, 97, 40, 122, 120, 0, 127, 0, 0,
149297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 29, 0, 89, 87, 88, 0, 20, 85, 111, 56,
145683 149298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145684 149299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* aKWNext[] forms the hash collision chain. If aKWHash[i]==0
145685 149300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then the i-th keyword has no more hash collisions. Otherwise,
145686 149301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the next keyword with the same hash is aKWHash[i]-1. */
145687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const unsigned char aKWNext[126] = {
149302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const unsigned char aKWNext[136] = {
145688 149303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
145689 149304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 2, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
145690 149305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
145691 149306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 0, 0, 0, 33, 0, 21, 0, 0, 0, 0, 0, 50,
145692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, 43, 3, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
149307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 43, 3, 47, 0, 0, 32, 0, 0, 0, 0, 0, 0,
145693 149308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 1, 64, 0, 0, 65, 0, 41, 0, 38, 0, 0, 0,
145694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, 0, 49, 75, 0, 0, 30, 0, 58, 0, 0, 63, 31,
145695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 52, 16, 34, 10, 0, 0, 0, 0, 0, 0, 0, 11, 70,
145696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 78, 0, 8, 0, 18, 51, 0, 107, 101, 0, 113, 0, 73,
145697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 27, 37, 71, 82, 0, 35, 66, 0, 0,
149309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 0, 49, 75, 0, 0, 30, 0, 58, 0, 0, 0, 31,
149310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 63, 16, 34, 10, 0, 0, 0, 0, 0, 0, 0, 11, 70,
149311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 91, 0, 0, 8, 0, 108, 0, 101, 28, 52, 68, 0, 112,
149312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 73, 51, 0, 90, 27, 37, 0, 71, 36, 82, 0, 35,
149313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 66, 25, 18, 0, 0, 78,
145698 149314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145699 149315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* aKWLen[i] is the length (in bytes) of the i-th keyword */
145700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const unsigned char aKWLen[126] = {
149316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const unsigned char aKWLen[136] = {
145701 149317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7, 7, 5, 4, 6, 4, 5, 3, 6, 7, 3, 6, 6,
145702 149318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7, 7, 3, 8, 2, 6, 5, 4, 4, 3, 10, 4, 6,
145703 149319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11, 6, 2, 7, 5, 5, 9, 6, 9, 9, 7, 10, 10,
145704 149320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4, 6, 2, 3, 9, 4, 2, 6, 5, 7, 4, 5, 7,
145705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 6, 6, 5, 6, 5, 5, 9, 7, 7, 4, 2, 7, 3,
149321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6, 6, 5, 6, 5, 5, 5, 7, 7, 4, 2, 7, 3,
145706 149322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
6, 4, 7, 6, 12, 6, 9, 4, 6, 4, 5, 4, 7,
145707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 6, 5, 6, 7, 5, 4, 7, 3, 2, 4, 5, 6, 5,
145708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 7, 3, 7, 13, 2, 2, 4, 6, 6, 8, 5, 17, 12,
145709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 7, 8, 8, 2, 2, 5, 8, 4, 4, 4, 4, 2, 6,
145710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 5, 8, 3, 5, 5, 6, 4, 9, 3,
149323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6, 5, 6, 7, 5, 4, 7, 3, 2, 4, 5, 9, 5,
149324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6, 3, 7, 13, 2, 2, 4, 6, 6, 8, 5, 17, 12,
149325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7, 9, 8, 8, 2, 4, 9, 4, 6, 7, 9, 4, 4,
149326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2, 6, 5, 8, 4, 5, 8, 4, 3, 9, 5, 5, 6,
149327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4, 6, 2, 9, 3, 7,
145711 149328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145712 149329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* aKWOffset[i] is the index into zKWText[] of the start of
145713 149330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the text for the i-th keyword. */
145714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const unsigned short int aKWOffset[126] = {
149331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const unsigned short int aKWOffset[136] = {
145715 149332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 2, 2, 8, 9, 14, 16, 20, 23, 25, 25, 29, 33,
145716 149333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
36, 41, 46, 48, 53, 54, 59, 62, 65, 67, 69, 78, 81,
145717 149334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
86, 91, 95, 96, 101, 105, 109, 117, 122, 128, 136, 142, 152,
145718 149335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
159, 162, 162, 165, 167, 167, 171, 176, 179, 184, 184, 188, 192,
145719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 199, 204, 209, 212, 218, 221, 225, 234, 240, 246, 249, 251, 252,
145720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 256, 262, 266, 273, 279, 291, 297, 306, 308, 314, 318, 323, 325,
145721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 332, 337, 342, 348, 354, 359, 362, 362, 362, 365, 369, 372, 378,
145722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 382, 389, 391, 398, 400, 402, 411, 415, 421, 427, 435, 440, 440,
145723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 456, 463, 470, 471, 478, 479, 483, 491, 495, 499, 503, 507, 509,
145724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 515, 520, 528, 531, 536, 541, 547, 551, 556,
149336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 199, 204, 209, 212, 218, 221, 225, 230, 236, 242, 245, 247, 248,
149337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 252, 258, 262, 269, 275, 287, 293, 302, 304, 310, 314, 319, 321,
149338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 328, 333, 338, 344, 350, 355, 358, 358, 358, 361, 365, 368, 377,
149339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 381, 387, 389, 396, 398, 400, 409, 413, 419, 425, 433, 438, 438,
149340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 438, 454, 463, 470, 471, 478, 481, 490, 494, 499, 506, 515, 519,
149341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 523, 525, 531, 535, 543, 546, 551, 559, 559, 563, 572, 577, 582,
149342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 588, 591, 594, 597, 602, 606,
145725 149343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145726 149344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* aKWCode[i] is the parser symbol code for the i-th keyword */
145727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const unsigned char aKWCode[126] = {
149345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const unsigned char aKWCode[136] = {
145728 149346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_REINDEX, TK_INDEXED, TK_INDEX, TK_DESC, TK_ESCAPE,
145729 149347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_EACH, TK_CHECK, TK_KEY, TK_BEFORE, TK_FOREIGN,
145730 149348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_FOR, TK_IGNORE, TK_LIKE_KW, TK_EXPLAIN, TK_INSTEAD,
145731 149349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_ADD, TK_DATABASE, TK_AS, TK_SELECT, TK_TABLE,
145732 149350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_JOIN_KW, TK_THEN, TK_END, TK_DEFERRABLE, TK_ELSE,
@@ -145734,25 +149352,27 @@
145734 149352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_ALTER, TK_RAISE, TK_EXCLUSIVE, TK_EXISTS, TK_SAVEPOINT,
145735 149353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_INTERSECT, TK_TRIGGER, TK_REFERENCES, TK_CONSTRAINT, TK_INTO,
145736 149354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_OFFSET, TK_OF, TK_SET, TK_TEMP, TK_TEMP,
145737 149355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_OR, TK_UNIQUE, TK_QUERY, TK_WITHOUT, TK_WITH,
145738 149356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_JOIN_KW, TK_RELEASE, TK_ATTACH, TK_HAVING, TK_GROUP,
145739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_UPDATE, TK_BEGIN, TK_JOIN_KW, TK_RECURSIVE, TK_BETWEEN,
149357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_UPDATE, TK_BEGIN, TK_JOIN_KW, TK_RANGE, TK_BETWEEN,
145740 149358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_NOTHING, TK_LIKE_KW, TK_BY, TK_CASCADE, TK_ASC,
145741 149359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_DELETE, TK_CASE, TK_COLLATE, TK_CREATE, TK_CTIME_KW,
145742 149360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_DETACH, TK_IMMEDIATE, TK_JOIN, TK_INSERT, TK_LIKE_KW,
145743 149361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_MATCH, TK_PLAN, TK_ANALYZE, TK_PRAGMA, TK_ABORT,
145744 149362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_VALUES, TK_VIRTUAL, TK_LIMIT, TK_WHEN, TK_NOTNULL,
145745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_NOT, TK_NO, TK_NULL, TK_WHERE, TK_RENAME,
145746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_AFTER, TK_REPLACE, TK_AND, TK_DEFAULT, TK_AUTOINCR,
149363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_NOT, TK_NO, TK_NULL, TK_WHERE, TK_RECURSIVE,
149364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_AFTER, TK_RENAME, TK_AND, TK_DEFAULT, TK_AUTOINCR,
145747 149365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TK_TO, TK_IN, TK_CAST, TK_COLUMNKW, TK_COMMIT,
145748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_CONFLICT, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_PRIMARY,
145749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_DEFERRED, TK_DISTINCT, TK_IS, TK_DO, TK_ORDER,
145750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_RESTRICT, TK_DROP, TK_FAIL, TK_FROM, TK_JOIN_KW,
145751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_IF, TK_ISNULL, TK_JOIN_KW, TK_ROLLBACK, TK_ROW,
145752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_UNION, TK_USING, TK_VACUUM, TK_VIEW, TK_INITIALLY,
145753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TK_ALL,
149366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_CONFLICT, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_CURRENT,
149367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_PARTITION, TK_DEFERRED, TK_DISTINCT, TK_IS, TK_DROP,
149368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_PRECEDING, TK_FAIL, TK_FILTER, TK_REPLACE, TK_FOLLOWING,
149369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_FROM, TK_JOIN_KW, TK_IF, TK_ISNULL, TK_ORDER,
149370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_RESTRICT, TK_OVER, TK_JOIN_KW, TK_ROLLBACK, TK_ROWS,
149371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_ROW, TK_UNBOUNDED, TK_UNION, TK_USING, TK_VACUUM,
149372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_VIEW, TK_WINDOW, TK_DO, TK_INITIALLY, TK_ALL,
149373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TK_PRIMARY,
145754 149374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
145755 149375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check to see if z[0..n-1] is a keyword. If it is, write the
145756 149376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** parser symbol code for that keyword into *pType. Always
145757 149377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** return the integer n (the length of the token). */
145758 149378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int keywordCode(const char *z, int n, int *pType){
@@ -145827,11 +149447,11 @@
145827 149447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==53 ); /* HAVING */
145828 149448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==54 ); /* GROUP */
145829 149449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==55 ); /* UPDATE */
145830 149450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==56 ); /* BEGIN */
145831 149451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==57 ); /* INNER */
145832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==58 ); /* RECURSIVE */
149452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==58 ); /* RANGE */
145833 149453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==59 ); /* BETWEEN */
145834 149454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==60 ); /* NOTHING */
145835 149455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==61 ); /* GLOB */
145836 149456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==62 ); /* BY */
145837 149457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==63 ); /* CASCADE */
@@ -145858,13 +149478,13 @@
145858 149478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==84 ); /* NOTNULL */
145859 149479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==85 ); /* NOT */
145860 149480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==86 ); /* NO */
145861 149481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==87 ); /* NULL */
145862 149482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==88 ); /* WHERE */
145863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==89 ); /* RENAME */
149483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==89 ); /* RECURSIVE */
145864 149484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==90 ); /* AFTER */
145865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==91 ); /* REPLACE */
149485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==91 ); /* RENAME */
145866 149486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==92 ); /* AND */
145867 149487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==93 ); /* DEFAULT */
145868 149488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==94 ); /* AUTOINCREMENT */
145869 149489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==95 ); /* TO */
145870 149490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==96 ); /* IN */
@@ -145873,32 +149493,42 @@
145873 149493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==99 ); /* COMMIT */
145874 149494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==100 ); /* CONFLICT */
145875 149495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==101 ); /* CROSS */
145876 149496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==102 ); /* CURRENT_TIMESTAMP */
145877 149497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( i==103 ); /* CURRENT_TIME */
145878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==104 ); /* PRIMARY */
145879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==105 ); /* DEFERRED */
145880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==106 ); /* DISTINCT */
145881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==107 ); /* IS */
145882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==108 ); /* DO */
145883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==109 ); /* ORDER */
145884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==110 ); /* RESTRICT */
145885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==111 ); /* DROP */
145886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==112 ); /* FAIL */
145887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==113 ); /* FROM */
145888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==114 ); /* FULL */
145889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==115 ); /* IF */
145890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==116 ); /* ISNULL */
145891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==117 ); /* RIGHT */
145892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==118 ); /* ROLLBACK */
145893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==119 ); /* ROW */
145894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==120 ); /* UNION */
145895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==121 ); /* USING */
145896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==122 ); /* VACUUM */
145897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==123 ); /* VIEW */
145898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==124 ); /* INITIALLY */
145899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( i==125 ); /* ALL */
149498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==104 ); /* CURRENT */
149499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==105 ); /* PARTITION */
149500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==106 ); /* DEFERRED */
149501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==107 ); /* DISTINCT */
149502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==108 ); /* IS */
149503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==109 ); /* DROP */
149504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==110 ); /* PRECEDING */
149505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==111 ); /* FAIL */
149506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==112 ); /* FILTER */
149507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==113 ); /* REPLACE */
149508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==114 ); /* FOLLOWING */
149509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==115 ); /* FROM */
149510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==116 ); /* FULL */
149511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==117 ); /* IF */
149512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==118 ); /* ISNULL */
149513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==119 ); /* ORDER */
149514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==120 ); /* RESTRICT */
149515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==121 ); /* OVER */
149516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==122 ); /* RIGHT */
149517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==123 ); /* ROLLBACK */
149518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==124 ); /* ROWS */
149519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==125 ); /* ROW */
149520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==126 ); /* UNBOUNDED */
149521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==127 ); /* UNION */
149522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==128 ); /* USING */
149523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==129 ); /* VACUUM */
149524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==130 ); /* VIEW */
149525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==131 ); /* WINDOW */
149526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==132 ); /* DO */
149527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==133 ); /* INITIALLY */
149528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==134 ); /* ALL */
149529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( i==135 ); /* PRIMARY */
145900 149530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pType = aKWCode[i];
145901 149531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
145902 149532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145903 149533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145904 149534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return n;
@@ -145906,11 +149536,11 @@
145906 149536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){
145907 149537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int id = TK_ID;
145908 149538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
keywordCode((char*)z, n, &id);
145909 149539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return id;
145910 149540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_N_KEYWORD 126
149541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_N_KEYWORD 136
145912 149542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_keyword_name(int i,const char **pzName,int *pnName){
145913 149543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR;
145914 149544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pzName = zKWText + aKWOffset[i];
145915 149545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pnName = aKWLen[i];
145916 149546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
@@ -145965,10 +149595,86 @@
145965 149595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Make the IdChar function accessible from ctime.c */
145966 149596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
145967 149597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3IsIdChar(u8 c){ return IdChar(c); }
145968 149598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
145969 149599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
149600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
149601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
149602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return the id of the next token in string (*pz). Before returning, set
149603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (*pz) to point to the byte following the parsed token.
149604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
149605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int getToken(const unsigned char **pz){
149606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const unsigned char *z = *pz;
149607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int t; /* Token type to return */
149608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ do {
149609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z += sqlite3GetToken(z, &t);
149610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }while( t==TK_SPACE );
149611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( t==TK_ID
149612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || t==TK_STRING
149613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || t==TK_JOIN_KW
149614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || t==TK_WINDOW
149615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || t==TK_OVER
149616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || sqlite3ParserFallback(t)==TK_ID
149617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
149618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t = TK_ID;
149619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pz = z;
149621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return t;
149622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
149624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
149625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The following three functions are called immediately after the tokenizer
149626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** reads the keywords WINDOW, OVER and FILTER, respectively, to determine
149627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** whether the token should be treated as a keyword or an SQL identifier.
149628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This cannot be handled by the usual lemon %fallback method, due to
149629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the ambiguity in some constructions. e.g.
149630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT sum(x) OVER ...
149632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** In the above, "OVER" might be a keyword, or it might be an alias for the
149634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sum(x) expression. If a "%fallback ID OVER" directive were added to
149635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** grammar, then SQLite would always treat "OVER" as an alias, making it
149636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** impossible to call a window-function without a FILTER clause.
149637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** WINDOW is treated as a keyword if:
149639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the following token is an identifier, or a keyword that can fallback
149641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to being an identifier, and
149642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the token after than one is TK_AS.
149643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OVER is a keyword if:
149645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the previous token was TK_RP, and
149647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the next token is either TK_LP or an identifier.
149648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** FILTER is a keyword if:
149650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
149651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the previous token was TK_RP, and
149652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the next token is TK_LP.
149653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
149654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int analyzeWindowKeyword(const unsigned char *z){
149655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int t;
149656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t = getToken(&z);
149657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( t!=TK_ID ) return TK_ID;
149658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t = getToken(&z);
149659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( t!=TK_AS ) return TK_ID;
149660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TK_WINDOW;
149661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int analyzeOverKeyword(const unsigned char *z, int lastToken){
149663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( lastToken==TK_RP ){
149664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int t = getToken(&z);
149665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( t==TK_LP || t==TK_ID ) return TK_OVER;
149666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TK_ID;
149668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int analyzeFilterKeyword(const unsigned char *z, int lastToken){
149670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( lastToken==TK_RP && getToken(&z)==TK_LP ){
149671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TK_FILTER;
149672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TK_ID;
149674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
145970 149676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
145971 149677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
145972 149678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the length (in bytes) of the token that begins at z[0].
145973 149679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Store the token type in *tokenType before returning.
145974 149680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -146233,10 +149939,14 @@
146233 149939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146234 149940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case CC_ID: {
146235 149941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = 1;
146236 149942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
146237 149943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
149944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case CC_NUL: {
149945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *tokenType = TK_ILLEGAL;
149946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
149947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
146238 149948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: {
146239 149949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*tokenType = TK_ILLEGAL;
146240 149950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
146241 149951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146242 149952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -146286,51 +149996,68 @@
146286 149996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->pNewTable==0 );
146287 149997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->pNewTrigger==0 );
146288 149998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->nVar==0 );
146289 149999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->pVList==0 );
146290 150000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( 1 ){
146291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zSql[0]!=0 ){
146292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n = sqlite3GetToken((u8*)zSql, &tokenType);
146293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mxSqlLen -= n;
146294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( mxSqlLen<0 ){
146295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pParse->rc = SQLITE_TOOBIG;
146296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
146297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
146298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
146299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Upon reaching the end of input, call the parser two more times
146300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** with tokens TK_SEMI and 0, in that order. */
146301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( lastTokenParsed==TK_SEMI ){
146302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- tokenType = 0;
146303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( lastTokenParsed==0 ){
146304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
146305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
146306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- tokenType = TK_SEMI;
146307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
146308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n = 0;
146309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
150001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = sqlite3GetToken((u8*)zSql, &tokenType);
150002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mxSqlLen -= n;
150003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( mxSqlLen<0 ){
150004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->rc = SQLITE_TOOBIG;
150005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
150006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
150007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
150008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tokenType>=TK_WINDOW ){
150009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER
150010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || tokenType==TK_ILLEGAL || tokenType==TK_WINDOW
150011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
150012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
146310 150013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( tokenType>=TK_SPACE ){
146311 150014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL );
150015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
146312 150016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->u1.isInterrupted ){
146313 150017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->rc = SQLITE_INTERRUPT;
146314 150018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
146315 150019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( tokenType==TK_ILLEGAL ){
150020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tokenType==TK_SPACE ){
150021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSql += n;
150022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
150023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
150024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zSql[0]==0 ){
150025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Upon reaching the end of input, call the parser two more times
150026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with tokens TK_SEMI and 0, in that order. */
150027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( lastTokenParsed==TK_SEMI ){
150028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tokenType = 0;
150029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( lastTokenParsed==0 ){
150030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
150031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
150032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tokenType = TK_SEMI;
150033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
150034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = 0;
150035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
150036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( tokenType==TK_WINDOW ){
150037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( n==6 );
150038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tokenType = analyzeWindowKeyword((const u8*)&zSql[6]);
150039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( tokenType==TK_OVER ){
150040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( n==4 );
150041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tokenType = analyzeOverKeyword((const u8*)&zSql[4], lastTokenParsed);
150042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( tokenType==TK_FILTER ){
150043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( n==6 );
150044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed);
150045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_WINDOWFUNC */
150046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
146317 150047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "unrecognized token: \"%.*s\"", n, zSql);
146318 150048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
146319 150049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zSql += n;
146321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
146322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pParse->sLastToken.z = zSql;
146323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pParse->sLastToken.n = n;
146324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Parser(pEngine, tokenType, pParse->sLastToken);
146325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- lastTokenParsed = tokenType;
146326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zSql += n;
146327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break;
146328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
150050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
150051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->sLastToken.z = zSql;
150052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->sLastToken.n = n;
150053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Parser(pEngine, tokenType, pParse->sLastToken);
150054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lastTokenParsed = tokenType;
150055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSql += n;
150056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break;
146329 150057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146330 150058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nErr==0 );
146331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pParse->zTail = zSql;
146332 150059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef YYTRACKMAXSTACKDEPTH
146333 150060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(sqlite3MallocMutex());
146334 150061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StatusHighwater(SQLITE_STATUS_PARSER_STACK,
146335 150062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserStackPeak(pEngine)
146336 150063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -146348,14 +150075,16 @@
146348 150075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->zErrMsg = sqlite3MPrintf(db, "%s", sqlite3ErrStr(pParse->rc));
146349 150076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146350 150077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pzErrMsg!=0 );
146351 150078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->zErrMsg ){
146352 150079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pzErrMsg = pParse->zErrMsg;
146353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_log(pParse->rc, "%s", *pzErrMsg);
150080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_log(pParse->rc, "%s in \"%s\"",
150081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pzErrMsg, pParse->zTail);
146354 150082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->zErrMsg = 0;
146355 150083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nErr++;
146356 150084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->zTail = zSql;
146357 150086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->pVdbe && pParse->nErr>0 && pParse->nested==0 ){
146358 150087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeDelete(pParse->pVdbe);
146359 150088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pVdbe = 0;
146360 150089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146361 150090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_SHARED_CACHE
@@ -148467,23 +152196,27 @@
148467 152196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int enc,
148468 152197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pUserData,
148469 152198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xSFunc)(sqlite3_context*,int,sqlite3_value **),
148470 152199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xStep)(sqlite3_context*,int,sqlite3_value **),
148471 152200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFinal)(sqlite3_context*),
152201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xValue)(sqlite3_context*),
152202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xInverse)(sqlite3_context*,int,sqlite3_value **),
148472 152203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDestructor *pDestructor
148473 152204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
148474 152205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDef *p;
148475 152206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nName;
148476 152207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int extraFlags;
148477 152208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148478 152209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_held(db->mutex) );
148479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zFunctionName==0 ||
148480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (xSFunc && (xFinal || xStep)) ||
148481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (!xSFunc && (xFinal && !xStep)) ||
148482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (!xSFunc && (!xFinal && xStep)) ||
148483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG) ||
148484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (255<(nName = sqlite3Strlen30( zFunctionName))) ){
152210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( xValue==0 || xSFunc==0 );
152211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zFunctionName==0 /* Must have a valid name */
152212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (xSFunc!=0 && xFinal!=0) /* Not both xSFunc and xFinal */
152213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || ((xFinal==0)!=(xStep==0)) /* Both or neither of xFinal and xStep */
152214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || ((xValue==0)!=(xInverse==0)) /* Both or neither of xValue, xInverse */
152215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG)
152216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (255<(nName = sqlite3Strlen30( zFunctionName)))
152217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
148485 152218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_MISUSE_BKPT;
148486 152219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148487 152220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148488 152221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( SQLITE_FUNC_CONSTANT==SQLITE_DETERMINISTIC );
148489 152222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
extraFlags = enc & SQLITE_DETERMINISTIC;
@@ -148500,14 +152233,14 @@
148500 152233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( enc==SQLITE_UTF16 ){
148501 152234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enc = SQLITE_UTF16NATIVE;
148502 152235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( enc==SQLITE_ANY ){
148503 152236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
148504 152237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3CreateFunc(db, zFunctionName, nArg, SQLITE_UTF8|extraFlags,
148505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pUserData, xSFunc, xStep, xFinal, pDestructor);
152238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor);
148506 152239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
148507 152240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3CreateFunc(db, zFunctionName, nArg, SQLITE_UTF16LE|extraFlags,
148508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pUserData, xSFunc, xStep, xFinal, pDestructor);
152241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor);
148509 152242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148510 152243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
148511 152244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
148512 152245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148513 152246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enc = SQLITE_UTF16BE;
@@ -148520,11 +152253,11 @@
148520 152253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and there are active VMs, then return SQLITE_BUSY. If a function
148521 152254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is being overridden/deleted but there are no active VMs, allow the
148522 152255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** operation to continue but invalidate all precompiled statements.
148523 152256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
148524 152257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3FindFunction(db, zFunctionName, nArg, (u8)enc, 0);
148525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==enc && p->nArg==nArg ){
152258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){
148526 152259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->nVdbeActive ){
148527 152260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorWithMsg(db, SQLITE_BUSY,
148528 152261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"unable to delete/modify user-function due to active statements");
148529 152262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !db->mallocFailed );
148530 152263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_BUSY;
@@ -148549,42 +152282,36 @@
148549 152282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->u.pDestructor = pDestructor;
148550 152283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->funcFlags = (p->funcFlags & SQLITE_FUNC_ENCMASK) | extraFlags;
148551 152284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( p->funcFlags & SQLITE_DETERMINISTIC );
148552 152285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->xSFunc = xSFunc ? xSFunc : xStep;
148553 152286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->xFinalize = xFinal;
152287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xValue = xValue;
152288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xInverse = xInverse;
148554 152289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pUserData = pUserData;
148555 152290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nArg = (u16)nArg;
148556 152291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
148557 152292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148558 152293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148559 152294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
148560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Create new user functions.
152295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Worker function used by utf-8 APIs that create new functions:
152296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
152297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_create_function()
152298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_create_function_v2()
152299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_create_window_function()
148561 152300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
148562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_create_function(
152301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int createFunctionApi(
148563 152302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
148564 152303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zFunc,
148565 152304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg,
148566 152305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int enc,
148567 152306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
148568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xSFunc)(sqlite3_context*,int,sqlite3_value **),
148569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xStep)(sqlite3_context*,int,sqlite3_value **),
148570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xFinal)(sqlite3_context*)
148571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
148572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return sqlite3_create_function_v2(db, zFunc, nArg, enc, p, xSFunc, xStep,
148573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- xFinal, 0);
148574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
148575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
148576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_create_function_v2(
148577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db,
148578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zFunc,
148579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nArg,
148580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int enc,
148581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *p,
148582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xSFunc)(sqlite3_context*,int,sqlite3_value **),
148583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xStep)(sqlite3_context*,int,sqlite3_value **),
152307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xSFunc)(sqlite3_context*,int,sqlite3_value**),
152308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xStep)(sqlite3_context*,int,sqlite3_value**),
148584 152309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFinal)(sqlite3_context*),
148585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xDestroy)(void *)
152310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xValue)(sqlite3_context*),
152311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xInverse)(sqlite3_context*,int,sqlite3_value**),
152312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void(*xDestroy)(void*)
148586 152313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
148587 152314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_ERROR;
148588 152315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDestructor *pArg = 0;
148589 152316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148590 152317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_API_ARMOR
@@ -148602,11 +152329,13 @@
148602 152329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148603 152330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pArg->nRef = 0;
148604 152331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pArg->xDestroy = xDestroy;
148605 152332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pArg->pUserData = p;
148606 152333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3CreateFunc(db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, pArg);
152334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3CreateFunc(db, zFunc, nArg, enc, p,
152335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xSFunc, xStep, xFinal, xValue, xInverse, pArg
152336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
148608 152337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pArg && pArg->nRef==0 ){
148609 152338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc!=SQLITE_OK );
148610 152339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
xDestroy(p);
148611 152340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(pArg);
148612 152341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -148614,10 +152343,56 @@
148614 152343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
out:
148615 152344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3ApiExit(db, rc);
148616 152345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(db->mutex);
148617 152346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
148618 152347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
152348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
152349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
152350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Create new user functions.
152351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
152352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_create_function(
152353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db,
152354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFunc,
152355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
152356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int enc,
152357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *p,
152358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xSFunc)(sqlite3_context*,int,sqlite3_value **),
152359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xStep)(sqlite3_context*,int,sqlite3_value **),
152360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xFinal)(sqlite3_context*)
152361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
152362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return createFunctionApi(db, zFunc, nArg, enc, p, xSFunc, xStep,
152363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xFinal, 0, 0, 0);
152364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
152365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_create_function_v2(
152366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db,
152367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFunc,
152368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
152369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int enc,
152370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *p,
152371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xSFunc)(sqlite3_context*,int,sqlite3_value **),
152372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xStep)(sqlite3_context*,int,sqlite3_value **),
152373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xFinal)(sqlite3_context*),
152374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xDestroy)(void *)
152375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
152376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return createFunctionApi(db, zFunc, nArg, enc, p, xSFunc, xStep,
152377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xFinal, 0, 0, xDestroy);
152378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
152379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_create_window_function(
152380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db,
152381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFunc,
152382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nArg,
152383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int enc,
152384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *p,
152385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xStep)(sqlite3_context*,int,sqlite3_value **),
152386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xFinal)(sqlite3_context*),
152387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xValue)(sqlite3_context*),
152388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xInverse)(sqlite3_context*,int,sqlite3_value **),
152389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xDestroy)(void *)
152390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
152391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return createFunctionApi(db, zFunc, nArg, enc, p, 0, xStep,
152392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xFinal, xValue, xInverse, xDestroy);
152393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148619 152394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148620 152395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_UTF16
148621 152396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_create_function16(
148622 152397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
148623 152398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const void *zFunctionName,
@@ -148635,11 +152410,11 @@
148635 152410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3SafetyCheckOk(db) || zFunctionName==0 ) return SQLITE_MISUSE_BKPT;
148636 152411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
148637 152412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(db->mutex);
148638 152413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !db->mallocFailed );
148639 152414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFunc8 = sqlite3Utf16to8(db, zFunctionName, -1, SQLITE_UTF16NATIVE);
148640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3CreateFunc(db, zFunc8, nArg, eTextRep, p, xSFunc,xStep,xFinal,0);
152415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3CreateFunc(db, zFunc8, nArg, eTextRep, p, xSFunc,xStep,xFinal,0,0,0);
148641 152416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zFunc8);
148642 152417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3ApiExit(db, rc);
148643 152418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(db->mutex);
148644 152419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
148645 152420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -150712,11 +154487,12 @@
150712 154487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Set the VDBE coverage callback function to xCallback with context
150713 154488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointer ptr.
150714 154489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
150715 154490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_TESTCTRL_VDBE_COVERAGE: {
150716 154491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_VDBE_COVERAGE
150717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef void (*branch_callback)(void*,int,u8,u8);
154492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef void (*branch_callback)(void*,unsigned int,
154493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned char,unsigned char);
150718 154494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.xVdbeBranch = va_arg(ap,branch_callback);
150719 154495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.pVdbeBranchArg = va_arg(ap,void*);
150720 154496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
150721 154497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
150722 154498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -150899,11 +154675,11 @@
150899 154675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->autoCommit==0 ){
150900 154676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iDb = sqlite3FindDbName(db, zDb);
150901 154677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iDb==0 || iDb>1 ){
150902 154678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt = db->aDb[iDb].pBt;
150903 154679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==sqlite3BtreeIsInTrans(pBt) ){
150904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBt, 0);
154680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBt, 0, 0);
150905 154681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
150906 154682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3PagerSnapshotGet(sqlite3BtreePager(pBt), ppSnapshot);
150907 154683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150908 154684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150909 154685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -150937,11 +154713,11 @@
150937 154713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iDb==0 || iDb>1 ){
150938 154714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt = db->aDb[iDb].pBt;
150939 154715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==sqlite3BtreeIsInReadTrans(pBt) ){
150940 154716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3PagerSnapshotOpen(sqlite3BtreePager(pBt), pSnapshot);
150941 154717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
150942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBt, 0);
154718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBt, 0, 0);
150943 154719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3PagerSnapshotOpen(sqlite3BtreePager(pBt), 0);
150944 154720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150945 154721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150946 154722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150947 154723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -150969,11 +154745,11 @@
150969 154745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(db->mutex);
150970 154746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iDb = sqlite3FindDbName(db, zDb);
150971 154747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iDb==0 || iDb>1 ){
150972 154748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt = db->aDb[iDb].pBt;
150973 154749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==sqlite3BtreeIsInReadTrans(pBt) ){
150974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeBeginTrans(pBt, 0);
154750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeBeginTrans(pBt, 0, 0);
150975 154751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
150976 154752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3PagerSnapshotRecover(sqlite3BtreePager(pBt));
150977 154753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeCommit(pBt);
150978 154754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150979 154755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -182309,11 +186085,11 @@
182309 186085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DbpageTable *pTab = (DbpageTable *)pVtab;
182310 186086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pTab->db;
182311 186087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
182312 186088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<db->nDb; i++){
182313 186089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt = db->aDb[i].pBt;
182314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pBt ) sqlite3BtreeBeginTrans(pBt, 1);
186090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pBt ) sqlite3BtreeBeginTrans(pBt, 1, 0);
182315 186091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
182316 186092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
182317 186093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
182318 186094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
182319 186095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -189536,29 +193312,79 @@
189536 193312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr->pCtx = ctx;
189537 193313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189538 193314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jsonAppendValue(pStr, argv[0]);
189539 193315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189540 193316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void jsonArrayFinal(sqlite3_context *ctx){
193317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonArrayCompute(sqlite3_context *ctx, int isFinal){
189542 193318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JsonString *pStr;
189543 193319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0);
189544 193320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStr ){
189545 193321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr->pCtx = ctx;
189546 193322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jsonAppendChar(pStr, ']');
189547 193323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStr->bErr ){
189548 193324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx);
189549 193325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pStr->bStatic );
189550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
193326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( isFinal ){
189551 193327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(ctx, pStr->zBuf, pStr->nUsed,
189552 193328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr->bStatic ? SQLITE_TRANSIENT : sqlite3_free);
189553 193329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr->bStatic = 1;
193330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
193331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(ctx, pStr->zBuf, pStr->nUsed, SQLITE_TRANSIENT);
193332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStr->nUsed--;
189554 193333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189555 193334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
189556 193335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(ctx, "[]", 2, SQLITE_STATIC);
189557 193336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189558 193337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_subtype(ctx, JSON_SUBTYPE);
189559 193338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
193339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonArrayValue(sqlite3_context *ctx){
193340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonArrayCompute(ctx, 0);
193341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonArrayFinal(sqlite3_context *ctx){
193343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonArrayCompute(ctx, 1);
193344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
193346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
193347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
193348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This method works for both json_group_array() and json_group_object().
193349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** It works by removing the first element of the group by searching forward
193350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the first comma (",") that is not within a string and deleting all
193351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** text through that comma.
193352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
193353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonGroupInverse(
193354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_context *ctx,
193355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argc,
193356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_value **argv
193357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
193358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
193359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int inStr = 0;
193360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *z;
193361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ JsonString *pStr;
193362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAM(argc);
193363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ UNUSED_PARAM(argv);
193364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0);
193365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef NEVER
193366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* pStr is always non-NULL since jsonArrayStep() or jsonObjectStep() will
193367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** always have been called to initalize it */
193368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( NEVER(!pStr) ) return;
193369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
193370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z = pStr->zBuf;
193371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=1; z[i]!=',' || inStr; i++){
193372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( i<pStr->nUsed );
193373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( z[i]=='"' ){
193374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ inStr = !inStr;
193375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( z[i]=='\\' ){
193376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i++;
193377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStr->nUsed -= i;
193380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memmove(&z[1], &z[i+1], pStr->nUsed-1);
193381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
193383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define jsonGroupInverse 0
193384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
193385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
189560 193386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
189561 193387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
189562 193388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** json_group_obj(NAME,VALUE)
189563 193389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
189564 193390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return a JSON object composed of all names and values in the aggregate.
@@ -189586,28 +193412,38 @@
189586 193412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jsonAppendString(pStr, z, n);
189587 193413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jsonAppendChar(pStr, ':');
189588 193414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jsonAppendValue(pStr, argv[1]);
189589 193415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189590 193416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void jsonObjectFinal(sqlite3_context *ctx){
193417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonObjectCompute(sqlite3_context *ctx, int isFinal){
189592 193418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JsonString *pStr;
189593 193419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0);
189594 193420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStr ){
189595 193421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jsonAppendChar(pStr, '}');
189596 193422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStr->bErr ){
189597 193423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx);
189598 193424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pStr->bStatic );
189599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
193425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( isFinal ){
189600 193426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(ctx, pStr->zBuf, pStr->nUsed,
189601 193427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr->bStatic ? SQLITE_TRANSIENT : sqlite3_free);
189602 193428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr->bStatic = 1;
193429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
193430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(ctx, pStr->zBuf, pStr->nUsed, SQLITE_TRANSIENT);
193431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStr->nUsed--;
189603 193432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189604 193433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
189605 193434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(ctx, "{}", 2, SQLITE_STATIC);
189606 193435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189607 193436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_subtype(ctx, JSON_SUBTYPE);
189608 193437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
193438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonObjectValue(sqlite3_context *ctx){
193439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonObjectCompute(ctx, 0);
193440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void jsonObjectFinal(sqlite3_context *ctx){
193442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonObjectCompute(ctx, 1);
193443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
193444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
189609 193445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
189610 193446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
189611 193447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
189612 193448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/****************************************************************************
189613 193449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The json_each virtual table
@@ -190111,13 +193947,16 @@
190111 193947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const struct {
190112 193948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName;
190113 193949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg;
190114 193950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xStep)(sqlite3_context*,int,sqlite3_value**);
190115 193951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFinal)(sqlite3_context*);
193952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xValue)(sqlite3_context*);
190116 193953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} aAgg[] = {
190117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "json_group_array", 1, jsonArrayStep, jsonArrayFinal },
190118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "json_group_object", 2, jsonObjectStep, jsonObjectFinal },
193954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "json_group_array", 1,
193955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonArrayStep, jsonArrayFinal, jsonArrayValue },
193956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "json_group_object", 2,
193957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonObjectStep, jsonObjectFinal, jsonObjectValue },
190119 193958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
190120 193959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
190121 193960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const struct {
190122 193961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName;
190123 193962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_module *pModule;
@@ -190131,13 +193970,14 @@
190131 193970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8 | SQLITE_DETERMINISTIC,
190132 193971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void*)&aFunc[i].flag,
190133 193972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aFunc[i].xFunc, 0, 0);
190134 193973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
190135 193974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<sizeof(aAgg)/sizeof(aAgg[0]) && rc==SQLITE_OK; i++){
190136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3_create_function(db, aAgg[i].zName, aAgg[i].nArg,
193975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3_create_window_function(db, aAgg[i].zName, aAgg[i].nArg,
190137 193976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
190138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, aAgg[i].xStep, aAgg[i].xFinal);
193977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aAgg[i].xStep, aAgg[i].xFinal,
193978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aAgg[i].xValue, jsonGroupInverse, 0);
190139 193979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
190140 193980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
190141 193981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<sizeof(aMod)/sizeof(aMod[0]) && rc==SQLITE_OK; i++){
190142 193982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_module(db, aMod[i].zName, aMod[i].pModule, 0);
190143 193983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -191539,13 +195379,16 @@
191539 195379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
191540 195380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
191541 195381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**************************************************************************
191542 195382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Interface to automatically generated code in fts5_unicode2.c.
191543 195383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
191544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int sqlite3Fts5UnicodeIsalnum(int c);
191545 195384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int sqlite3Fts5UnicodeIsdiacritic(int c);
191546 195385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int sqlite3Fts5UnicodeFold(int c, int bRemoveDiacritic);
195386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
195387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5UnicodeCatParse(const char*, u8*);
195388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5UnicodeCategory(int iCode);
195389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void sqlite3Fts5UnicodeAscii(u8*, u8*);
191547 195390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
191548 195391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** End of interface to code in fts5_unicode2.c.
191549 195392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**************************************************************************/
191550 195393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
191551 195394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -191717,10 +195560,11 @@
191717 195560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define fts5YY_ACCEPT_ACTION 81
191718 195561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define fts5YY_NO_ACTION 82
191719 195562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define fts5YY_MIN_REDUCE 83
191720 195563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define fts5YY_MAX_REDUCE 110
191721 195564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************* End control #defines *******************************************/
195565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define fts5YY_NLOOKAHEAD ((int)(sizeof(fts5yy_lookahead)/sizeof(fts5yy_lookahead[0])))
191722 195566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
191723 195567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Define the fts5yytestcase() macro to be a no-op if is not already defined
191724 195568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** otherwise.
191725 195569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
191726 195570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Applications can choose to define fts5yytestcase() in the %include section
@@ -192276,15 +196120,15 @@
192276 196120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5yycoverage[stateno][iLookAhead] = 1;
192277 196121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
192278 196122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
192279 196123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = fts5yy_shift_ofst[stateno];
192280 196124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( i>=0 );
192281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( i+fts5YYNFTS5TOKEN<=(int)sizeof(fts5yy_lookahead)/sizeof(fts5yy_lookahead[0]) );
196125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* assert( i+fts5YYNFTS5TOKEN<=(int)fts5YY_NLOOKAHEAD ); */
192282 196126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iLookAhead!=fts5YYNOCODE );
192283 196127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iLookAhead < fts5YYNFTS5TOKEN );
192284 196128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i += iLookAhead;
192285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fts5yy_lookahead[i]!=iLookAhead ){
196129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i>=fts5YY_NLOOKAHEAD || fts5yy_lookahead[i]!=iLookAhead ){
192286 196130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef fts5YYFALLBACK
192287 196131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5YYCODETYPE iFallback; /* Fallback token */
192288 196132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iLookAhead<sizeof(fts5yyFallback)/sizeof(fts5yyFallback[0])
192289 196133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (iFallback = fts5yyFallback[iLookAhead])!=0 ){
192290 196134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
@@ -192306,10 +196150,11 @@
192306 196150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j>=0 &&
192307 196151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
192308 196152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if fts5YY_SHIFT_MAX+fts5YYWILDCARD>=fts5YY_ACTTAB_COUNT
192309 196153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j<fts5YY_ACTTAB_COUNT &&
192310 196154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
196155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j<(int)(sizeof(fts5yy_lookahead)/sizeof(fts5yy_lookahead[0])) &&
192311 196156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5yy_lookahead[j]==fts5YYWILDCARD && iLookAhead>0
192312 196157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
192313 196158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
192314 196159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fts5yyTraceFILE ){
192315 196160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fprintf(fts5yyTraceFILE, "%sWILDCARD %s => %s\n",
@@ -192986,10 +196831,25 @@
192986 196831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fprintf(fts5yyTraceFILE,"]\n");
192987 196832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
192988 196833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
192989 196834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
192990 196835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
196836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
196837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
196838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return the fallback token corresponding to canonical token iToken, or
196839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 0 if iToken has no fallback.
196840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
196841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5ParserFallback(int iToken){
196842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef fts5YYFALLBACK
196843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iToken<(int)(sizeof(fts5yyFallback)/sizeof(fts5yyFallback[0])) ){
196844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return fts5yyFallback[iToken];
196845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
196846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
196847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (void)iToken;
196848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
196849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
196850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
192991 196851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
192992 196852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
192993 196853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2014 May 31
192994 196854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
192995 196855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The author disclaims copyright to this source code. In place of
@@ -195097,10 +198957,11 @@
195097 198957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void sqlite3Fts5Parser(void*, int, Fts5Token, Fts5Parse*);
195098 198958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
195099 198959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* #include <stdio.h> */
195100 198960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void sqlite3Fts5ParserTrace(FILE*, char*);
195101 198961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
198962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5ParserFallback(int);
195102 198963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
195103 198964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
195104 198965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct Fts5Expr {
195105 198966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Fts5Index *pIndex;
195106 198967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Fts5Config *pConfig;
@@ -197601,18 +201462,23 @@
197601 201462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_context *pCtx, /* Function call context */
197602 201463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg, /* Number of args */
197603 201464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value **apVal /* Function arguments */
197604 201465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
197605 201466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCode;
201467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 aArr[32];
197606 201468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nArg!=1 ){
197607 201469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_error(pCtx,
197608 201470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"wrong number of arguments to function fts5_isalnum", -1
197609 201471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
197610 201472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
197611 201473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
201474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(aArr, 0, sizeof(aArr));
201475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Fts5UnicodeCatParse("L*", aArr);
201476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Fts5UnicodeCatParse("N*", aArr);
201477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Fts5UnicodeCatParse("Co", aArr);
197612 201478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iCode = sqlite3_value_int(apVal[0]);
197613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_result_int(pCtx, sqlite3Fts5UnicodeIsalnum(iCode));
201479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_int(pCtx, aArr[sqlite3Fts5UnicodeCategory(iCode)]);
197614 201480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
197615 201481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
197616 201482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void fts5ExprFold(
197617 201483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_context *pCtx, /* Function call context */
197618 201484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg, /* Number of args */
@@ -197652,14 +201518,16 @@
197652 201518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; rc==SQLITE_OK && i<ArraySize(aFunc); i++){
197653 201519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct Fts5ExprFunc *p = &aFunc[i];
197654 201520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_function(db, p->z, -1, SQLITE_UTF8, pCtx, p->x, 0, 0);
197655 201521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
197656 201522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
197657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Avoid a warning indicating that sqlite3Fts5ParserTrace() is unused */
201523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Avoid warnings indicating that sqlite3Fts5ParserTrace() and
201524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3Fts5ParserFallback() are unused */
197658 201525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
197659 201526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void)sqlite3Fts5ParserTrace;
197660 201527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
201528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (void)sqlite3Fts5ParserFallback;
197661 201529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
197662 201530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
197663 201531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
197664 201532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
197665 201533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -207583,11 +211451,11 @@
207583 211451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg, /* Number of args */
207584 211452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value **apUnused /* Function arguments */
207585 211453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
207586 211454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nArg==0 );
207587 211455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAM2(nArg, apUnused);
207588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_result_text(pCtx, "fts5: 2018-06-04 19:24:41 c7ee0833225bfd8c5ec2f9bf62b97c4e04d03bd9566366d5221ac8fb199a87ca", -1, SQLITE_TRANSIENT);
211456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(pCtx, "fts5: 2018-07-13 20:28:54 148d9b61471a874a16a9ec9c9603da03cadb3a40662fb550af51cb36212426b1", -1, SQLITE_TRANSIENT);
207589 211457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
207590 211458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
207591 211459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts5Init(sqlite3 *db){
207592 211460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const sqlite3_module fts5Mod = {
207593 211461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* iVersion */ 2,
@@ -209071,10 +212939,12 @@
209071 212939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *aFold; /* Buffer to fold text into */
209072 212940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nFold; /* Size of aFold[] in bytes */
209073 212941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bRemoveDiacritic; /* True if remove_diacritics=1 is set */
209074 212942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nException;
209075 212943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *aiException;
212944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
212945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned char aCategory[32]; /* True for token char categories */
209076 212946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
209077 212947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
209078 212948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts5UnicodeAddExceptions(
209079 212949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Unicode61Tokenizer *p, /* Tokenizer object */
209080 212950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z, /* Characters to treat as exceptions */
@@ -209095,11 +212965,11 @@
209095 212965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bToken;
209096 212966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
READ_UTF8(zCsr, zTerm, iCode);
209097 212967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iCode<128 ){
209098 212968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aTokenChar[iCode] = (unsigned char)bTokenChars;
209099 212969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
209100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- bToken = sqlite3Fts5UnicodeIsalnum(iCode);
212970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bToken = p->aCategory[sqlite3Fts5UnicodeCategory(iCode)];
209101 212971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (bToken==0 || bToken==1) );
209102 212972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (bTokenChars==0 || bTokenChars==1) );
209103 212973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bToken!=bTokenChars && sqlite3Fts5UnicodeIsdiacritic(iCode)==0 ){
209104 212974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
209105 212975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<nNew; i++){
@@ -209155,10 +213025,25 @@
209155 213025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(p->aFold);
209156 213026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(p);
209157 213027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
209158 213028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
209159 213029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
213030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
213031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int unicodeSetCategories(Unicode61Tokenizer *p, const char *zCat){
213032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *z = zCat;
213033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
213034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( *z ){
213035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( *z==' ' || *z=='\t' ) z++;
213036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( *z && sqlite3Fts5UnicodeCatParse(z, p->aCategory) ){
213037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_ERROR;
213038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
213039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( *z!=' ' && *z!='\t' && *z!='\0' ) z++;
213040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
213041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
213042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Fts5UnicodeAscii(p->aCategory, p->aTokenChar);
213043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_OK;
213044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
209160 213045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
209161 213046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
209162 213047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Create a "unicode61" tokenizer.
209163 213048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
209164 213049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts5UnicodeCreate(
@@ -209174,19 +213059,32 @@
209174 213059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nArg%2 ){
209175 213060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_ERROR;
209176 213061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
209177 213062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = (Unicode61Tokenizer*)sqlite3_malloc(sizeof(Unicode61Tokenizer));
209178 213063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
213064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zCat = "L* N* Co";
209179 213065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
209180 213066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(p, 0, sizeof(Unicode61Tokenizer));
209181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(p->aTokenChar, aAsciiTokenChar, sizeof(aAsciiTokenChar));
213067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
209182 213068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->bRemoveDiacritic = 1;
209183 213069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nFold = 64;
209184 213070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFold = sqlite3_malloc(p->nFold * sizeof(char));
209185 213071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->aFold==0 ){
209186 213072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
209187 213073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
213074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
213075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Search for a "categories" argument */
213076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; rc==SQLITE_OK && i<nArg; i+=2){
213077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0==sqlite3_stricmp(azArg[i], "categories") ){
213078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zCat = azArg[i+1];
213079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
213080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
213081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
213082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK ){
213083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = unicodeSetCategories(p, zCat);
213084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
213085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
209188 213086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; rc==SQLITE_OK && i<nArg; i+=2){
209189 213087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zArg = azArg[i+1];
209190 213088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==sqlite3_stricmp(azArg[i], "remove_diacritics") ){
209191 213089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1] ){
209192 213090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_ERROR;
@@ -209196,14 +213094,18 @@
209196 213094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==sqlite3_stricmp(azArg[i], "tokenchars") ){
209197 213095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts5UnicodeAddExceptions(p, zArg, 1);
209198 213096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
209199 213097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==sqlite3_stricmp(azArg[i], "separators") ){
209200 213098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts5UnicodeAddExceptions(p, zArg, 0);
213099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else
213100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0==sqlite3_stricmp(azArg[i], "categories") ){
213101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* no-op */
209201 213102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
209202 213103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_ERROR;
209203 213104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
209204 213105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
213106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
209205 213107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
209206 213108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
209207 213109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
209208 213110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
209209 213111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5UnicodeDelete((Fts5Tokenizer*)p);
@@ -209218,12 +213120,14 @@
209218 213120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return true if, for the purposes of tokenizing with the tokenizer
209219 213121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** passed as the first argument, codepoint iCode is considered a token
209220 213122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** character (not a separator).
209221 213123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
209222 213124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts5UnicodeIsAlnum(Unicode61Tokenizer *p, int iCode){
209223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (sqlite3Fts5UnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 );
209224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return sqlite3Fts5UnicodeIsalnum(iCode) ^ fts5UnicodeIsException(p, iCode);
213125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (
213126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aCategory[sqlite3Fts5UnicodeCategory(iCode)]
213127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ^ fts5UnicodeIsException(p, iCode)
213128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
209225 213129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
209226 213130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
209227 213131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts5UnicodeTokenize(
209228 213132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Fts5Tokenizer *pTokenizer,
209229 213133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pCtx,
@@ -210095,139 +213999,10 @@
210095 213999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
210096 214000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210097 214001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210098 214002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* #include <assert.h> */
210099 214003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
210101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Return true if the argument corresponds to a unicode codepoint
210102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** classified as either a letter or a number. Otherwise false.
210103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
210104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The results are undefined if the value passed to this function
210105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is less than zero.
210106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
210107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int sqlite3Fts5UnicodeIsalnum(int c){
210108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Each unsigned integer in the following array corresponds to a contiguous
210109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** range of unicode codepoints that are not either letters or numbers (i.e.
210110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** codepoints for which this function should return 0).
210111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
210112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The most significant 22 bits in each 32-bit value contain the first
210113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** codepoint in the range. The least significant 10 bits are used to store
210114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the size of the range (always at least 1). In other words, the value
210115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ((C<<22) + N) represents a range of N codepoints starting with codepoint
210116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** C. It is not possible to represent a range larger than 1023 codepoints
210117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** using this format.
210118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
210119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const unsigned int aEntry[] = {
210120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
210121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
210122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
210123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
210124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163C01,
210125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00164437, 0x0017CC02, 0x00180005, 0x00181816, 0x00187802,
210126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00192C15, 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F,
210127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x001B9C07, 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401,
210128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x001CC01B, 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804,
210129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
210130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00217801, 0x0023901B, 0x00240004, 0x0024E803, 0x0024F812,
210131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00254407, 0x00258804, 0x0025C001, 0x00260403, 0x0026F001,
210132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802,
210133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0027C802, 0x0027E802, 0x00280403, 0x0028F001, 0x0028F805,
210134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D401,
210135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
210136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x002B8802, 0x002BC002, 0x002C0403, 0x002CF001, 0x002CF807,
210137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x002D1C02, 0x002D2C03, 0x002D5802, 0x002D8802, 0x002DC001,
210138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804, 0x002F5C01,
210139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x002FCC08, 0x00300403, 0x0030F807, 0x00311803, 0x00312804,
210140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00315402, 0x00318802, 0x0031FC01, 0x00320802, 0x0032F001,
210141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
210142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00340802, 0x0034F807, 0x00351803, 0x00352804, 0x00355C01,
210143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00358802, 0x0035E401, 0x00360802, 0x00372801, 0x00373C06,
210144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00375801, 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007,
210145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0038FC01, 0x00391C09, 0x00396802, 0x003AC401, 0x003AD006,
210146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x003AEC02, 0x003B2006, 0x003C041F, 0x003CD00C, 0x003DC417,
210147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x003E340B, 0x003E6424, 0x003EF80F, 0x003F380D, 0x0040AC14,
210148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00412806, 0x00415804, 0x00417803, 0x00418803, 0x00419C07,
210149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0041C404, 0x0042080C, 0x00423C01, 0x00426806, 0x0043EC01,
210150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x004D740C, 0x004E400A, 0x00500001, 0x0059B402, 0x005A0001,
210151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x005A6C02, 0x005BAC03, 0x005C4803, 0x005CC805, 0x005D4802,
210152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x005DC802, 0x005ED023, 0x005F6004, 0x005F7401, 0x0060000F,
210153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0062A401, 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002,
210154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0066C011, 0x00672002, 0x00677822, 0x00685C05, 0x00687802,
210155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007, 0x006AA006,
210156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x006C0005, 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D,
210157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x006F980E, 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802,
210158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00730008, 0x00734019, 0x0073B401, 0x0073C803, 0x00770027,
210159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
210160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x007FB403, 0x007FF402, 0x00800065, 0x0081A806, 0x0081E805,
210161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00822805, 0x0082801A, 0x00834021, 0x00840002, 0x00840C04,
210162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
210163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
210164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00852804, 0x00853C01, 0x00864264, 0x00900027, 0x0091000B,
210165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0092704E, 0x00940200, 0x009C0475, 0x009E53B9, 0x00AD400A,
210166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00B39406, 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001,
210167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00B5FC01, 0x00B7804F, 0x00B8C00C, 0x00BA001A, 0x00BA6C59,
210168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00BC00D6, 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807,
210169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01,
210170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00C64002, 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E,
210171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x00C94001, 0x00C98020, 0x00CA2827, 0x00CB003F, 0x00CC0100,
210172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x01370040, 0x02924037, 0x0293F802, 0x02983403, 0x0299BC10,
210173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x029A7C01, 0x029BC008, 0x029C0017, 0x029C8002, 0x029E2402,
210174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C09, 0x02A0D804,
210175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02A1D004, 0x02A20002, 0x02A2D011, 0x02A33802, 0x02A38012,
210176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02A3E003, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
210177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02A6CC1B, 0x02A77802, 0x02A8A40E, 0x02A90C01, 0x02A93002,
210178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02A97004, 0x02A9DC03, 0x02A9EC01, 0x02AAC001, 0x02AAC803,
210179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07,
210180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x02ABD402, 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02,
210181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x037FFC01, 0x03EC7801, 0x03ECA401, 0x03EEC810, 0x03F4F802,
210182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x03F7F002, 0x03F8001A, 0x03F88007, 0x03F8C023, 0x03F95013,
210183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807, 0x03FCEC06,
210184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405, 0x04040003,
210185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0404DC09, 0x0405E411, 0x0406400C, 0x0407402E, 0x040E7C01,
210186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x040F4001, 0x04215C01, 0x04247C01, 0x0424FC01, 0x04280403,
210187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01, 0x04294009,
210188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0429FC01, 0x042CE407, 0x04400003, 0x0440E016, 0x04420003,
210189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0442C012, 0x04440003, 0x04449C0E, 0x04450004, 0x04460003,
210190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x0446CC0E, 0x04471404, 0x045AAC0D, 0x0491C004, 0x05BD442E,
210191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x05BE3C04, 0x074000F6, 0x07440027, 0x0744A4B5, 0x07480046,
210192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01, 0x075C5401,
210193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401, 0x075EA401,
210194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x075F0C01, 0x07BBC002, 0x07C0002C, 0x07C0C064, 0x07C2800F,
210195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x07C2C40E, 0x07C3040F, 0x07C3440F, 0x07C4401F, 0x07C4C03C,
210196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x07C5C02B, 0x07C7981D, 0x07C8402B, 0x07C90009, 0x07C94002,
210197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x07CC0021, 0x07CCC006, 0x07CCDC46, 0x07CE0014, 0x07CE8025,
210198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x07CF1805, 0x07CF8011, 0x07D0003F, 0x07D10001, 0x07D108B6,
210199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x07D3E404, 0x07D4003E, 0x07D50004, 0x07D54018, 0x07D7EC46,
210200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x07D9140B, 0x07DA0046, 0x07DC0074, 0x38000401, 0x38008060,
210201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0x380400F0,
210202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
210203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const unsigned int aAscii[4] = {
210204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
210205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
210206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
210207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (unsigned int)c<128 ){
210208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return ( (aAscii[c >> 5] & (1 << (c & 0x001F)))==0 );
210209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( (unsigned int)c<(1<<22) ){
210210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned int key = (((unsigned int)c)<<10) | 0x000003FF;
210211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iRes = 0;
210212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iHi = sizeof(aEntry)/sizeof(aEntry[0]) - 1;
210213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iLo = 0;
210214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( iHi>=iLo ){
210215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iTest = (iHi + iLo) / 2;
210216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( key >= aEntry[iTest] ){
210217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iRes = iTest;
210218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iLo = iTest+1;
210219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
210220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iHi = iTest-1;
210221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
210222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
210223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( aEntry[0]<key );
210224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( key>=aEntry[iRes] );
210225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (((unsigned int)c) >= ((aEntry[iRes]>>10) + (aEntry[iRes]&0x3FF)));
210226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
210227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
210228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
210229 214004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210230 214005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210231 214006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
210232 214007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the argument is a codepoint corresponding to a lowercase letter
210233 214008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the ASCII range with a diacritic added, return the codepoint
@@ -210435,10 +214210,543 @@
210435 214210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ret = c + 40;
210436 214211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
210437 214212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210438 214213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return ret;
210439 214214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
214215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if 0
214218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5UnicodeNCat(void) {
214219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 32;
214220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
214222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5UnicodeCatParse(const char *zCat, u8 *aArray){
214224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[0] = 1;
214225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[0] ){
214226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'C':
214227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'c': aArray[1] = 1; break;
214229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'f': aArray[2] = 1; break;
214230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'n': aArray[3] = 1; break;
214231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 's': aArray[4] = 1; break;
214232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'o': aArray[31] = 1; break;
214233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[1] = 1;
214235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[2] = 1;
214236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[3] = 1;
214237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[4] = 1;
214238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[31] = 1;
214239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'L':
214244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'l': aArray[5] = 1; break;
214246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'm': aArray[6] = 1; break;
214247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'o': aArray[7] = 1; break;
214248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 't': aArray[8] = 1; break;
214249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'u': aArray[9] = 1; break;
214250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'C': aArray[30] = 1; break;
214251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[5] = 1;
214253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[6] = 1;
214254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[7] = 1;
214255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[8] = 1;
214256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[9] = 1;
214257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[30] = 1;
214258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'M':
214263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'c': aArray[10] = 1; break;
214265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'e': aArray[11] = 1; break;
214266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'n': aArray[12] = 1; break;
214267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[10] = 1;
214269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[11] = 1;
214270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[12] = 1;
214271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'N':
214276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'd': aArray[13] = 1; break;
214278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'l': aArray[14] = 1; break;
214279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'o': aArray[15] = 1; break;
214280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[13] = 1;
214282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[14] = 1;
214283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[15] = 1;
214284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'P':
214289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'c': aArray[16] = 1; break;
214291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'd': aArray[17] = 1; break;
214292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'e': aArray[18] = 1; break;
214293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'f': aArray[19] = 1; break;
214294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'i': aArray[20] = 1; break;
214295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'o': aArray[21] = 1; break;
214296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 's': aArray[22] = 1; break;
214297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[16] = 1;
214299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[17] = 1;
214300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[18] = 1;
214301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[19] = 1;
214302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[20] = 1;
214303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[21] = 1;
214304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[22] = 1;
214305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'S':
214310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'c': aArray[23] = 1; break;
214312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'k': aArray[24] = 1; break;
214313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'm': aArray[25] = 1; break;
214314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'o': aArray[26] = 1; break;
214315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[23] = 1;
214317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[24] = 1;
214318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[25] = 1;
214319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[26] = 1;
214320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'Z':
214325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zCat[1] ){
214326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'l': aArray[27] = 1; break;
214327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'p': aArray[28] = 1; break;
214328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 's': aArray[29] = 1; break;
214329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case '*':
214330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[27] = 1;
214331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[28] = 1;
214332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aArray[29] = 1;
214333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: return 1; }
214335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
214336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
214339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static u16 aFts5UnicodeBlock[] = {
214342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 1471, 1753, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
214343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1760, 1760, 1760, 1760, 1760, 1763, 1765,
214344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
214345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static u16 aFts5UnicodeMap[] = {
214346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, 32, 33, 36, 37, 40, 41, 42, 43, 44,
214347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 45, 46, 48, 58, 60, 63, 65, 91, 92, 93,
214348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 94, 95, 96, 97, 123, 124, 125, 126, 127, 160,
214349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 161, 162, 166, 167, 168, 169, 170, 171, 172, 173,
214350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 174, 175, 176, 177, 178, 180, 181, 182, 184, 185,
214351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 186, 187, 188, 191, 192, 215, 216, 223, 247, 248,
214352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 256, 312, 313, 329, 330, 377, 383, 385, 387, 388,
214353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 391, 394, 396, 398, 402, 403, 405, 406, 409, 412,
214354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 414, 415, 417, 418, 423, 427, 428, 431, 434, 436,
214355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 437, 440, 442, 443, 444, 446, 448, 452, 453, 454,
214356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 455, 456, 457, 458, 459, 460, 461, 477, 478, 496,
214357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 497, 498, 499, 500, 503, 505, 506, 564, 570, 572,
214358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 573, 575, 577, 580, 583, 584, 592, 660, 661, 688,
214359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 706, 710, 722, 736, 741, 748, 749, 750, 751, 768,
214360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 880, 884, 885, 886, 890, 891, 894, 900, 902, 903,
214361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 904, 908, 910, 912, 913, 931, 940, 975, 977, 978,
214362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 981, 984, 1008, 1012, 1014, 1015, 1018, 1020, 1021, 1072,
214363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1120, 1154, 1155, 1160, 1162, 1217, 1231, 1232, 1329, 1369,
214364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1370, 1377, 1417, 1418, 1423, 1425, 1470, 1471, 1472, 1473,
214365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1475, 1476, 1478, 1479, 1488, 1520, 1523, 1536, 1542, 1545,
214366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1547, 1548, 1550, 1552, 1563, 1566, 1568, 1600, 1601, 1611,
214367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1632, 1642, 1646, 1648, 1649, 1748, 1749, 1750, 1757, 1758,
214368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1759, 1765, 1767, 1769, 1770, 1774, 1776, 1786, 1789, 1791,
214369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1792, 1807, 1808, 1809, 1810, 1840, 1869, 1958, 1969, 1984,
214370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1994, 2027, 2036, 2038, 2039, 2042, 2048, 2070, 2074, 2075,
214371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2084, 2085, 2088, 2089, 2096, 2112, 2137, 2142, 2208, 2210,
214372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2276, 2304, 2307, 2308, 2362, 2363, 2364, 2365, 2366, 2369,
214373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2377, 2381, 2382, 2384, 2385, 2392, 2402, 2404, 2406, 2416,
214374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2417, 2418, 2425, 2433, 2434, 2437, 2447, 2451, 2474, 2482,
214375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2486, 2492, 2493, 2494, 2497, 2503, 2507, 2509, 2510, 2519,
214376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2524, 2527, 2530, 2534, 2544, 2546, 2548, 2554, 2555, 2561,
214377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2563, 2565, 2575, 2579, 2602, 2610, 2613, 2616, 2620, 2622,
214378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2625, 2631, 2635, 2641, 2649, 2654, 2662, 2672, 2674, 2677,
214379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2689, 2691, 2693, 2703, 2707, 2730, 2738, 2741, 2748, 2749,
214380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2750, 2753, 2759, 2761, 2763, 2765, 2768, 2784, 2786, 2790,
214381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2800, 2801, 2817, 2818, 2821, 2831, 2835, 2858, 2866, 2869,
214382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2876, 2877, 2878, 2879, 2880, 2881, 2887, 2891, 2893, 2902,
214383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2903, 2908, 2911, 2914, 2918, 2928, 2929, 2930, 2946, 2947,
214384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2949, 2958, 2962, 2969, 2972, 2974, 2979, 2984, 2990, 3006,
214385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3008, 3009, 3014, 3018, 3021, 3024, 3031, 3046, 3056, 3059,
214386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3065, 3066, 3073, 3077, 3086, 3090, 3114, 3125, 3133, 3134,
214387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3137, 3142, 3146, 3157, 3160, 3168, 3170, 3174, 3192, 3199,
214388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3202, 3205, 3214, 3218, 3242, 3253, 3260, 3261, 3262, 3263,
214389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3264, 3270, 3271, 3274, 3276, 3285, 3294, 3296, 3298, 3302,
214390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3313, 3330, 3333, 3342, 3346, 3389, 3390, 3393, 3398, 3402,
214391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3405, 3406, 3415, 3424, 3426, 3430, 3440, 3449, 3450, 3458,
214392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3461, 3482, 3507, 3517, 3520, 3530, 3535, 3538, 3542, 3544,
214393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3570, 3572, 3585, 3633, 3634, 3636, 3647, 3648, 3654, 3655,
214394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3663, 3664, 3674, 3713, 3716, 3719, 3722, 3725, 3732, 3737,
214395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3745, 3749, 3751, 3754, 3757, 3761, 3762, 3764, 3771, 3773,
214396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3776, 3782, 3784, 3792, 3804, 3840, 3841, 3844, 3859, 3860,
214397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3861, 3864, 3866, 3872, 3882, 3892, 3893, 3894, 3895, 3896,
214398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3897, 3898, 3899, 3900, 3901, 3902, 3904, 3913, 3953, 3967,
214399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3968, 3973, 3974, 3976, 3981, 3993, 4030, 4038, 4039, 4046,
214400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4048, 4053, 4057, 4096, 4139, 4141, 4145, 4146, 4152, 4153,
214401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4155, 4157, 4159, 4160, 4170, 4176, 4182, 4184, 4186, 4190,
214402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4193, 4194, 4197, 4199, 4206, 4209, 4213, 4226, 4227, 4229,
214403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4231, 4237, 4238, 4239, 4240, 4250, 4253, 4254, 4256, 4295,
214404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4301, 4304, 4347, 4348, 4349, 4682, 4688, 4696, 4698, 4704,
214405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4746, 4752, 4786, 4792, 4800, 4802, 4808, 4824, 4882, 4888,
214406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4957, 4960, 4969, 4992, 5008, 5024, 5120, 5121, 5741, 5743,
214407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 5760, 5761, 5787, 5788, 5792, 5867, 5870, 5888, 5902, 5906,
214408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 5920, 5938, 5941, 5952, 5970, 5984, 5998, 6002, 6016, 6068,
214409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6070, 6071, 6078, 6086, 6087, 6089, 6100, 6103, 6104, 6107,
214410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6108, 6109, 6112, 6128, 6144, 6150, 6151, 6155, 6158, 6160,
214411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6176, 6211, 6212, 6272, 6313, 6314, 6320, 6400, 6432, 6435,
214412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6439, 6441, 6448, 6450, 6451, 6457, 6464, 6468, 6470, 6480,
214413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6512, 6528, 6576, 6593, 6600, 6608, 6618, 6622, 6656, 6679,
214414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6681, 6686, 6688, 6741, 6742, 6743, 6744, 6752, 6753, 6754,
214415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6755, 6757, 6765, 6771, 6783, 6784, 6800, 6816, 6823, 6824,
214416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6912, 6916, 6917, 6964, 6965, 6966, 6971, 6972, 6973, 6978,
214417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 6979, 6981, 6992, 7002, 7009, 7019, 7028, 7040, 7042, 7043,
214418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7073, 7074, 7078, 7080, 7082, 7083, 7084, 7086, 7088, 7098,
214419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7142, 7143, 7144, 7146, 7149, 7150, 7151, 7154, 7164, 7168,
214420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7204, 7212, 7220, 7222, 7227, 7232, 7245, 7248, 7258, 7288,
214421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7294, 7360, 7376, 7379, 7380, 7393, 7394, 7401, 7405, 7406,
214422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7410, 7412, 7413, 7424, 7468, 7531, 7544, 7545, 7579, 7616,
214423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7676, 7680, 7830, 7838, 7936, 7944, 7952, 7960, 7968, 7976,
214424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 7984, 7992, 8000, 8008, 8016, 8025, 8027, 8029, 8031, 8033,
214425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8040, 8048, 8064, 8072, 8080, 8088, 8096, 8104, 8112, 8118,
214426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8120, 8124, 8125, 8126, 8127, 8130, 8134, 8136, 8140, 8141,
214427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8144, 8150, 8152, 8157, 8160, 8168, 8173, 8178, 8182, 8184,
214428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8188, 8189, 8192, 8203, 8208, 8214, 8216, 8217, 8218, 8219,
214429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8221, 8222, 8223, 8224, 8232, 8233, 8234, 8239, 8240, 8249,
214430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8250, 8251, 8255, 8257, 8260, 8261, 8262, 8263, 8274, 8275,
214431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8276, 8277, 8287, 8288, 8298, 8304, 8305, 8308, 8314, 8317,
214432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8318, 8319, 8320, 8330, 8333, 8334, 8336, 8352, 8400, 8413,
214433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8417, 8418, 8421, 8448, 8450, 8451, 8455, 8456, 8458, 8459,
214434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8462, 8464, 8467, 8468, 8469, 8470, 8472, 8473, 8478, 8484,
214435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8485, 8486, 8487, 8488, 8489, 8490, 8494, 8495, 8496, 8500,
214436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8501, 8505, 8506, 8508, 8510, 8512, 8517, 8519, 8522, 8523,
214437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8524, 8526, 8527, 8528, 8544, 8579, 8581, 8585, 8592, 8597,
214438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8602, 8604, 8608, 8609, 8611, 8612, 8614, 8615, 8622, 8623,
214439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8654, 8656, 8658, 8659, 8660, 8661, 8692, 8960, 8968, 8972,
214440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 8992, 8994, 9001, 9002, 9003, 9084, 9085, 9115, 9140, 9180,
214441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 9186, 9216, 9280, 9312, 9372, 9450, 9472, 9655, 9656, 9665,
214442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 9666, 9720, 9728, 9839, 9840, 9985, 10088, 10089, 10090, 10091,
214443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101,
214444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 10102, 10132, 10176, 10181, 10182, 10183, 10214, 10215, 10216, 10217,
214445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10240, 10496, 10627,
214446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637,
214447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647,
214448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 10648, 10649, 10712, 10713, 10714, 10715, 10716, 10748, 10749, 10750,
214449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11008, 11056, 11077, 11079, 11088, 11264, 11312, 11360, 11363, 11365,
214450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11367, 11374, 11377, 11378, 11380, 11381, 11383, 11388, 11390, 11393,
214451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11394, 11492, 11493, 11499, 11503, 11506, 11513, 11517, 11518, 11520,
214452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11559, 11565, 11568, 11631, 11632, 11647, 11648, 11680, 11688, 11696,
214453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11704, 11712, 11720, 11728, 11736, 11744, 11776, 11778, 11779, 11780,
214454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11781, 11782, 11785, 11786, 11787, 11788, 11789, 11790, 11799, 11800,
214455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11802, 11803, 11804, 11805, 11806, 11808, 11809, 11810, 11811, 11812,
214456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11813, 11814, 11815, 11816, 11817, 11818, 11823, 11824, 11834, 11904,
214457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 11931, 12032, 12272, 12288, 12289, 12292, 12293, 12294, 12295, 12296,
214458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306,
214459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317,
214460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12318, 12320, 12321, 12330, 12334, 12336, 12337, 12342, 12344, 12347,
214461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12348, 12349, 12350, 12353, 12441, 12443, 12445, 12447, 12448, 12449,
214462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12539, 12540, 12543, 12549, 12593, 12688, 12690, 12694, 12704, 12736,
214463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12784, 12800, 12832, 12842, 12872, 12880, 12881, 12896, 12928, 12938,
214464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 12977, 12992, 13056, 13312, 19893, 19904, 19968, 40908, 40960, 40981,
214465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 40982, 42128, 42192, 42232, 42238, 42240, 42508, 42509, 42512, 42528,
214466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42538, 42560, 42606, 42607, 42608, 42611, 42612, 42622, 42623, 42624,
214467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42655, 42656, 42726, 42736, 42738, 42752, 42775, 42784, 42786, 42800,
214468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42802, 42864, 42865, 42873, 42878, 42888, 42889, 42891, 42896, 42912,
214469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43000, 43002, 43003, 43010, 43011, 43014, 43015, 43019, 43020, 43043,
214470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43045, 43047, 43048, 43056, 43062, 43064, 43065, 43072, 43124, 43136,
214471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43138, 43188, 43204, 43214, 43216, 43232, 43250, 43256, 43259, 43264,
214472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43274, 43302, 43310, 43312, 43335, 43346, 43359, 43360, 43392, 43395,
214473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43396, 43443, 43444, 43446, 43450, 43452, 43453, 43457, 43471, 43472,
214474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43486, 43520, 43561, 43567, 43569, 43571, 43573, 43584, 43587, 43588,
214475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43596, 43597, 43600, 43612, 43616, 43632, 43633, 43639, 43642, 43643,
214476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43648, 43696, 43697, 43698, 43701, 43703, 43705, 43710, 43712, 43713,
214477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43714, 43739, 43741, 43742, 43744, 43755, 43756, 43758, 43760, 43762,
214478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 43763, 43765, 43766, 43777, 43785, 43793, 43808, 43816, 43968, 44003,
214479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44005, 44006, 44008, 44009, 44011, 44012, 44013, 44016, 44032, 55203,
214480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 55216, 55243, 55296, 56191, 56319, 57343, 57344, 63743, 63744, 64112,
214481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 64256, 64275, 64285, 64286, 64287, 64297, 64298, 64312, 64318, 64320,
214482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 64323, 64326, 64434, 64467, 64830, 64831, 64848, 64914, 65008, 65020,
214483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65021, 65024, 65040, 65047, 65048, 65049, 65056, 65072, 65073, 65075,
214484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65077, 65078, 65079, 65080, 65081, 65082, 65083, 65084, 65085, 65086,
214485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65087, 65088, 65089, 65090, 65091, 65092, 65093, 65095, 65096, 65097,
214486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65101, 65104, 65108, 65112, 65113, 65114, 65115, 65116, 65117, 65118,
214487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65119, 65122, 65123, 65124, 65128, 65129, 65130, 65136, 65142, 65279,
214488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65281, 65284, 65285, 65288, 65289, 65290, 65291, 65292, 65293, 65294,
214489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65296, 65306, 65308, 65311, 65313, 65339, 65340, 65341, 65342, 65343,
214490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65344, 65345, 65371, 65372, 65373, 65374, 65375, 65376, 65377, 65378,
214491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65379, 65380, 65382, 65392, 65393, 65438, 65440, 65474, 65482, 65490,
214492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65498, 65504, 65506, 65507, 65508, 65509, 65512, 65513, 65517, 65529,
214493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 65532, 0, 13, 40, 60, 63, 80, 128, 256, 263,
214494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 311, 320, 373, 377, 394, 400, 464, 509, 640, 672,
214495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 768, 800, 816, 833, 834, 842, 896, 927, 928, 968,
214496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 976, 977, 1024, 1064, 1104, 1184, 2048, 2056, 2058, 2103,
214497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2108, 2111, 2135, 2136, 2304, 2326, 2335, 2336, 2367, 2432,
214498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2494, 2560, 2561, 2565, 2572, 2576, 2581, 2585, 2616, 2623,
214499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2624, 2640, 2656, 2685, 2687, 2816, 2873, 2880, 2904, 2912,
214500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2936, 3072, 3680, 4096, 4097, 4098, 4099, 4152, 4167, 4178,
214501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4198, 4224, 4226, 4227, 4272, 4275, 4279, 4281, 4283, 4285,
214502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4286, 4304, 4336, 4352, 4355, 4391, 4396, 4397, 4406, 4416,
214503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 4480, 4482, 4483, 4531, 4534, 4543, 4545, 4549, 4560, 5760,
214504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 5803, 5804, 5805, 5806, 5808, 5814, 5815, 5824, 8192, 9216,
214505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 9328, 12288, 26624, 28416, 28496, 28497, 28559, 28563, 45056, 53248,
214506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53504, 53545, 53605, 53607, 53610, 53613, 53619, 53627, 53635, 53637,
214507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53644, 53674, 53678, 53760, 53826, 53829, 54016, 54112, 54272, 54298,
214508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54324, 54350, 54358, 54376, 54402, 54428, 54430, 54434, 54437, 54441,
214509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54446, 54454, 54459, 54461, 54469, 54480, 54506, 54532, 54535, 54541,
214510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54550, 54558, 54584, 54587, 54592, 54598, 54602, 54610, 54636, 54662,
214511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54688, 54714, 54740, 54766, 54792, 54818, 54844, 54870, 54896, 54922,
214512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54952, 54977, 54978, 55003, 55004, 55010, 55035, 55036, 55061, 55062,
214513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 55068, 55093, 55094, 55119, 55120, 55126, 55151, 55152, 55177, 55178,
214514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 55184, 55209, 55210, 55235, 55236, 55242, 55246, 60928, 60933, 60961,
214515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 60964, 60967, 60969, 60980, 60985, 60987, 60994, 60999, 61001, 61003,
214516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 61005, 61009, 61012, 61015, 61017, 61019, 61021, 61023, 61025, 61028,
214517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 61031, 61036, 61044, 61049, 61054, 61056, 61067, 61089, 61093, 61099,
214518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 61168, 61440, 61488, 61600, 61617, 61633, 61649, 61696, 61712, 61744,
214519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 61808, 61926, 61968, 62016, 62032, 62208, 62256, 62263, 62336, 62368,
214520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 62406, 62432, 62464, 62528, 62530, 62713, 62720, 62784, 62800, 62971,
214521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 63045, 63104, 63232, 0, 42710, 42752, 46900, 46912, 47133, 63488,
214522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1, 32, 256, 0, 65533,
214523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
214524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static u16 aFts5UnicodeData[] = {
214525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1025, 61, 117, 55, 117, 54, 50, 53, 57, 53,
214526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 49, 85, 333, 85, 121, 85, 841, 54, 53, 50,
214527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 56, 48, 56, 837, 54, 57, 50, 57, 1057, 61,
214528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53, 151, 58, 53, 56, 58, 39, 52, 57, 34,
214529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 58, 56, 58, 57, 79, 56, 37, 85, 56, 47,
214530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 51, 111, 53, 745, 57, 233, 773, 57, 261,
214531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1822, 37, 542, 37, 1534, 222, 69, 73, 37, 126,
214532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 126, 73, 69, 137, 37, 73, 37, 105, 101, 73,
214533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 37, 73, 37, 190, 158, 37, 126, 126, 73, 37,
214534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 126, 94, 37, 39, 94, 69, 135, 41, 40, 37,
214535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 41, 40, 37, 41, 40, 37, 542, 37, 606, 37,
214536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 41, 40, 37, 126, 73, 37, 1886, 197, 73, 37,
214537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 73, 69, 126, 105, 37, 286, 2181, 39, 869, 582,
214538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 152, 390, 472, 166, 248, 38, 56, 38, 568, 3596,
214539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 158, 38, 56, 94, 38, 101, 53, 88, 41, 53,
214540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 105, 41, 73, 37, 553, 297, 1125, 94, 37, 105,
214541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 101, 798, 133, 94, 57, 126, 94, 37, 1641, 1541,
214542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1118, 58, 172, 75, 1790, 478, 37, 2846, 1225, 38,
214543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 213, 1253, 53, 49, 55, 1452, 49, 44, 53, 76,
214544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53, 76, 53, 44, 871, 103, 85, 162, 121, 85,
214545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 55, 85, 90, 364, 53, 85, 1031, 38, 327, 684,
214546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 333, 149, 71, 44, 3175, 53, 39, 236, 34, 58,
214547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 204, 70, 76, 58, 140, 71, 333, 103, 90, 39,
214548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 469, 34, 39, 44, 967, 876, 2855, 364, 39, 333,
214549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1063, 300, 70, 58, 117, 38, 711, 140, 38, 300,
214550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 38, 108, 38, 172, 501, 807, 108, 53, 39, 359,
214551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 876, 108, 42, 1735, 44, 42, 44, 39, 106, 268,
214552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 138, 44, 74, 39, 236, 327, 76, 85, 333, 53,
214553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 38, 199, 231, 44, 74, 263, 71, 711, 231, 39,
214554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 135, 44, 39, 106, 140, 74, 74, 44, 39, 42,
214555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 71, 103, 76, 333, 71, 87, 207, 58, 55, 76,
214556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42, 199, 71, 711, 231, 71, 71, 71, 44, 106,
214557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 76, 76, 108, 44, 135, 39, 333, 76, 103, 44,
214558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 76, 42, 295, 103, 711, 231, 71, 167, 44, 39,
214559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 106, 172, 76, 42, 74, 44, 39, 71, 76, 333,
214560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53, 55, 44, 74, 263, 71, 711, 231, 71, 167,
214561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 39, 42, 44, 42, 140, 74, 74, 44, 44,
214562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42, 71, 103, 76, 333, 58, 39, 207, 44, 39,
214563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 199, 103, 135, 71, 39, 71, 71, 103, 391, 74,
214564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 74, 106, 106, 44, 39, 42, 333, 111, 218,
214565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 55, 58, 106, 263, 103, 743, 327, 167, 39, 108,
214566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 138, 108, 140, 76, 71, 71, 76, 333, 239, 58,
214567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 263, 103, 743, 327, 167, 44, 39, 42, 44,
214568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 170, 44, 74, 74, 76, 74, 39, 71, 76, 333,
214569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 71, 74, 263, 103, 1319, 39, 106, 140, 106, 106,
214570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 39, 42, 71, 76, 333, 207, 58, 199, 74,
214571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 583, 775, 295, 39, 231, 44, 106, 108, 44, 266,
214572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 53, 1543, 44, 71, 236, 55, 199, 38, 268,
214573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53, 333, 85, 71, 39, 71, 39, 39, 135, 231,
214574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 103, 39, 39, 71, 135, 44, 71, 204, 76, 39,
214575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 167, 38, 204, 333, 135, 39, 122, 501, 58, 53,
214576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 122, 76, 218, 333, 335, 58, 44, 58, 44, 58,
214577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 54, 50, 54, 50, 74, 263, 1159, 460, 42,
214578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 172, 53, 76, 167, 364, 1164, 282, 44, 218, 90,
214579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 181, 154, 85, 1383, 74, 140, 42, 204, 42, 76,
214580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 76, 39, 333, 213, 199, 74, 76, 135, 108,
214581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 106, 71, 234, 103, 140, 423, 44, 74, 76,
214582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 202, 44, 39, 42, 333, 106, 44, 90, 1225, 41,
214583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 41, 1383, 53, 38, 10631, 135, 231, 39, 135, 1319,
214584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 135, 1063, 135, 231, 39, 135, 487, 1831, 135, 2151,
214585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 108, 309, 655, 519, 346, 2727, 49, 19847, 85, 551,
214586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 61, 839, 54, 50, 2407, 117, 110, 423, 135, 108,
214587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 583, 108, 85, 583, 76, 423, 103, 76, 1671, 76,
214588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42, 236, 266, 44, 74, 364, 117, 38, 117, 55,
214589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 44, 333, 335, 213, 49, 149, 108, 61, 333,
214590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1127, 38, 1671, 1319, 44, 39, 2247, 935, 108, 138,
214591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 76, 106, 74, 44, 202, 108, 58, 85, 333, 967,
214592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 167, 1415, 554, 231, 74, 333, 47, 1114, 743, 76,
214593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 106, 85, 1703, 42, 44, 42, 236, 44, 42, 44,
214594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 268, 202, 332, 44, 333, 333, 245, 38, 213,
214595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 140, 42, 1511, 44, 42, 172, 42, 44, 170, 44,
214596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 231, 333, 245, 346, 300, 314, 76, 42, 967,
214597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 42, 140, 74, 76, 42, 44, 74, 71, 333, 1415,
214598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 42, 76, 106, 44, 42, 108, 74, 149, 1159,
214599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 266, 268, 74, 76, 181, 333, 103, 333, 967, 198,
214600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 85, 277, 108, 53, 428, 42, 236, 135, 44, 135,
214601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 74, 44, 71, 1413, 2022, 421, 38, 1093, 1190, 1260,
214602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 140, 4830, 261, 3166, 261, 265, 197, 201, 261, 265,
214603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 261, 265, 197, 201, 261, 41, 41, 41, 94, 229,
214604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 265, 453, 261, 264, 261, 264, 261, 264, 165, 69,
214605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 137, 40, 56, 37, 120, 101, 69, 137, 40, 120,
214606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 133, 69, 137, 120, 261, 169, 120, 101, 69, 137,
214607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 40, 88, 381, 162, 209, 85, 52, 51, 54, 84,
214608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 51, 54, 52, 277, 59, 60, 162, 61, 309, 52,
214609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 51, 149, 80, 117, 57, 54, 50, 373, 57, 53,
214610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 48, 341, 61, 162, 194, 47, 38, 207, 121, 54,
214611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 38, 335, 121, 54, 50, 422, 855, 428, 139,
214612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 107, 396, 90, 41, 154, 41, 90, 37, 105,
214613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 69, 105, 37, 58, 41, 90, 57, 169, 218, 41,
214614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 58, 41, 58, 41, 58, 137, 58, 37, 137, 37,
214615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 135, 37, 90, 69, 73, 185, 94, 101, 58, 57,
214616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 90, 37, 58, 527, 1134, 94, 142, 47, 185, 186,
214617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 89, 154, 57, 90, 57, 90, 57, 250, 57, 1018,
214618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 89, 90, 57, 58, 57, 1018, 8601, 282, 153, 666,
214619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 89, 250, 54, 50, 2618, 57, 986, 825, 1306, 217,
214620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 602, 1274, 378, 1935, 2522, 719, 5882, 57, 314, 57,
214621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1754, 281, 3578, 57, 4634, 3322, 54, 50, 54, 50,
214622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54, 50, 54, 50, 54, 50, 54, 50, 54, 50,
214623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 975, 1434, 185, 54, 50, 1017, 54, 50, 54, 50,
214624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54, 50, 54, 50, 54, 50, 537, 8218, 4217, 54,
214625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 54, 50, 54, 50, 54, 50, 54, 50, 54,
214626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 54, 50, 54, 50, 54, 50, 54, 50, 54,
214627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 2041, 54, 50, 54, 50, 1049, 54, 50, 8281,
214628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1562, 697, 90, 217, 346, 1513, 1509, 126, 73, 69,
214629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 254, 105, 37, 94, 37, 94, 165, 70, 105, 37,
214630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3166, 37, 218, 158, 108, 94, 149, 47, 85, 1221,
214631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 37, 37, 1799, 38, 53, 44, 743, 231, 231, 231,
214632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 231, 231, 231, 231, 231, 1036, 85, 52, 51, 52,
214633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 51, 117, 52, 51, 53, 52, 51, 309, 49, 85,
214634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 49, 53, 52, 51, 85, 52, 51, 54, 50, 54,
214635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 54, 50, 54, 50, 181, 38, 341, 81, 858,
214636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2874, 6874, 410, 61, 117, 58, 38, 39, 46, 54,
214637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 54, 50, 54, 50, 54, 50, 54, 50, 90,
214638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54, 50, 54, 50, 54, 50, 54, 50, 49, 54,
214639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 82, 58, 302, 140, 74, 49, 166, 90, 110, 38,
214640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 53, 90, 2759, 76, 88, 70, 39, 49, 2887,
214641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53, 102, 39, 1319, 3015, 90, 143, 346, 871, 1178,
214642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 519, 1018, 335, 986, 271, 58, 495, 1050, 335, 1274,
214643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 495, 2042, 8218, 39, 39, 2074, 39, 39, 679, 38,
214644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 36583, 1786, 1287, 198, 85, 8583, 38, 117, 519, 333,
214645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 71, 1502, 39, 44, 107, 53, 332, 53, 38, 798,
214646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 2247, 334, 76, 213, 760, 294, 88, 478, 69,
214647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2014, 38, 261, 190, 350, 38, 88, 158, 158, 382,
214648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 70, 37, 231, 44, 103, 44, 135, 44, 743, 74,
214649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 76, 42, 154, 207, 90, 55, 58, 1671, 149, 74,
214650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1607, 522, 44, 85, 333, 588, 199, 117, 39, 333,
214651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 903, 268, 85, 743, 364, 74, 53, 935, 108, 42,
214652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1511, 44, 74, 140, 74, 44, 138, 437, 38, 333,
214653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 85, 1319, 204, 74, 76, 74, 76, 103, 44, 263,
214654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 42, 333, 149, 519, 38, 199, 122, 39, 42,
214655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1543, 44, 39, 108, 71, 76, 167, 76, 39, 44,
214656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 71, 38, 85, 359, 42, 76, 74, 85, 39,
214657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 70, 42, 44, 199, 199, 199, 231, 231, 1127, 74,
214658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 74, 44, 74, 53, 42, 44, 333, 39, 39,
214659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 743, 1575, 36, 68, 68, 36, 63, 63, 11719, 3399,
214660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 229, 165, 39, 44, 327, 57, 423, 167, 39, 71,
214661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 71, 3463, 536, 11623, 54, 50, 2055, 1735, 391, 55,
214662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 58, 524, 245, 54, 50, 53, 236, 53, 81, 80,
214663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54, 50, 54, 50, 54, 50, 54, 50, 54, 50,
214664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 54, 50, 54, 50, 54, 50, 85, 54, 50, 149,
214665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 112, 117, 149, 49, 54, 50, 54, 50, 54, 50,
214666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 117, 57, 49, 121, 53, 55, 85, 167, 4327, 34,
214667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 117, 55, 117, 54, 50, 53, 57, 53, 49, 85,
214668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 333, 85, 121, 85, 841, 54, 53, 50, 56, 48,
214669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 56, 837, 54, 57, 50, 57, 54, 50, 53, 54,
214670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 50, 85, 327, 38, 1447, 70, 999, 199, 199, 199,
214671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 103, 87, 57, 56, 58, 87, 58, 153, 90, 98,
214672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 90, 391, 839, 615, 71, 487, 455, 3943, 117, 1455,
214673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 314, 1710, 143, 570, 47, 410, 1466, 44, 935, 1575,
214674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 999, 143, 551, 46, 263, 46, 967, 53, 1159, 263,
214675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 53, 174, 1289, 1285, 2503, 333, 199, 39, 1415, 71,
214676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 743, 53, 271, 711, 207, 53, 839, 53, 1799,
214677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 71, 39, 108, 76, 140, 135, 103, 871, 108, 44,
214678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 271, 309, 935, 79, 53, 1735, 245, 711, 271, 615,
214679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 271, 2343, 1007, 42, 44, 42, 1703, 492, 245, 655,
214680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 333, 76, 42, 1447, 106, 140, 74, 76, 85, 34,
214681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 149, 807, 333, 108, 1159, 172, 42, 268, 333, 149,
214682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 76, 42, 1543, 106, 300, 74, 135, 149, 333, 1383,
214683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 44, 42, 44, 74, 204, 42, 44, 333, 28135, 3182,
214684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 149, 34279, 18215, 2215, 39, 1482, 140, 422, 71, 7898,
214685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1274, 1946, 74, 108, 122, 202, 258, 268, 90, 236,
214686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 986, 140, 1562, 2138, 108, 58, 2810, 591, 841, 837,
214687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 841, 229, 581, 841, 837, 41, 73, 41, 73, 137,
214688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 265, 133, 37, 229, 357, 841, 837, 73, 137, 265,
214689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 233, 837, 73, 137, 169, 41, 233, 837, 841, 837,
214690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 841, 837, 841, 837, 841, 837, 841, 837, 841, 901,
214691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 809, 57, 805, 57, 197, 809, 57, 805, 57, 197,
214692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 809, 57, 805, 57, 197, 809, 57, 805, 57, 197,
214693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 809, 57, 805, 57, 197, 94, 1613, 135, 871, 71,
214694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 39, 39, 327, 135, 39, 39, 39, 39, 39, 39,
214695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 103, 71, 39, 39, 39, 39, 39, 39, 71, 39,
214696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 135, 231, 135, 135, 39, 327, 551, 103, 167, 551,
214697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 89, 1434, 3226, 506, 474, 506, 506, 367, 1018, 1946,
214698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1402, 954, 1402, 314, 90, 1082, 218, 2266, 666, 1210,
214699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 186, 570, 2042, 58, 5850, 154, 2010, 154, 794, 2266,
214700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 378, 2266, 3738, 39, 39, 39, 39, 39, 39, 17351,
214701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 34, 3074, 7692, 63, 63,
214702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
214703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Fts5UnicodeCategory(int iCode) {
214705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iRes = -1;
214706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iHi;
214707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iLo;
214708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int ret;
214709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 iKey;
214710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iCode>=(1<<20) ){
214712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
214713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iLo = aFts5UnicodeBlock[(iCode>>16)];
214715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iHi = aFts5UnicodeBlock[1+(iCode>>16)];
214716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iKey = (iCode & 0xFFFF);
214717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( iHi>iLo ){
214718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iTest = (iHi + iLo) / 2;
214719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( iTest>=iLo && iTest<iHi );
214720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iKey>=aFts5UnicodeMap[iTest] ){
214721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iRes = iTest;
214722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iLo = iTest+1;
214723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
214724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iHi = iTest;
214725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iRes<0 ) return 0;
214729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iKey>=(aFts5UnicodeMap[iRes]+(aFts5UnicodeData[iRes]>>5)) ) return 0;
214730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ret = aFts5UnicodeData[iRes] & 0x1F;
214731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ret!=30 ) return ret;
214732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return ((iKey - aFts5UnicodeMap[iRes]) & 0x01) ? 5 : 9;
214733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void sqlite3Fts5UnicodeAscii(u8 *aArray, u8 *aAscii){
214736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i = 0;
214737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iTbl = 0;
214738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( i<128 ){
214739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bToken = aArray[ aFts5UnicodeData[iTbl] & 0x1F ];
214740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = (aFts5UnicodeData[iTbl] >> 5) + i;
214741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(; i<128 && i<n; i++){
214742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aAscii[i] = bToken;
214743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iTbl++;
214745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
210440 214748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
210441 214749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
210442 214750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2015 May 30
210443 214751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
210444 214752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The author disclaims copyright to this source code. In place of
@@ -211853,12 +216161,12 @@
211853 216161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
211854 216162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_CORE */
211855 216163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
211856 216164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
211857 216165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of stmt.c ************************************************/
211858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if __LINE__!=211858
216166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if __LINE__!=216166
211859 216167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#undef SQLITE_SOURCE_ID
211860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2018-06-04 19:24:41 c7ee0833225bfd8c5ec2f9bf62b97c4e04d03bd9566366d5221ac8fb199aalt2"
216168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2018-07-13 20:28:54 148d9b61471a874a16a9ec9c9603da03cadb3a40662fb550af51cb362124alt2"
211861 216169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
211862 216170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Return the source-id for this library */
211863 216171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
211864 216172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************************** End of sqlite3.c ******************************/
211865 216173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!