@@ -399,13 +399,10 @@
399 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On Windows, if the SQLITE_WIN32_MALLOC_VALIDATE macro is defined and the
400 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** assert() macro is enabled, each call into the Win32 native heap subsystem
401 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will cause HeapValidate to be called. If heap validation should fail, an
402 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** assertion will be triggered.
403 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (Historical note: There used to be several other options, but we've
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pared it down to just these three.)
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
407 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If none of the above are defined, then set SQLITE_SYSTEM_MALLOC as
408 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the default.
409 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
410 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(SQLITE_SYSTEM_MALLOC) \
411 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ defined(SQLITE_WIN32_MALLOC) \
@@ -439,24 +436,17 @@
439 436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
440 437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__)
441 438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define _XOPEN_SOURCE 600
442 439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
443 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The TCL headers are only needed when compiling the TCL bindings.
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_TCL) || defined(TCLSH)
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # include <tcl.h>
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
451 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
452 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** NDEBUG and SQLITE_DEBUG are opposites. It should always be true that
453 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** defined(NDEBUG)==!defined(SQLITE_DEBUG). If this is not currently true,
454 444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** make it true by defining or undefining NDEBUG.
455 445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Setting NDEBUG makes the code smaller and run faster by disabling the
457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** number assert() statements in the code. So we want the default action
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Setting NDEBUG makes the code smaller and faster by disabling the
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** assert() statements in the code. So we want the default action
458 448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to be for NDEBUG to be set and NDEBUG to be undefined only if SQLITE_DEBUG
459 449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is set. Thus NDEBUG becomes an opt-in rather than an opt-out
460 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** feature.
461 451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
462 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(NDEBUG) && !defined(SQLITE_DEBUG)
@@ -522,11 +512,11 @@
522 512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** hint of unplanned behavior.
523 513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
524 514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** In other words, ALWAYS and NEVER are added for defensive code.
525 515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
526 516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** When doing coverage testing ALWAYS and NEVER are hard-coded to
527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be true and false so that the unreachable code then specify will
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be true and false so that the unreachable code they specify will
528 518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** not be counted as untested code.
529 519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
530 520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(SQLITE_COVERAGE_TEST)
531 521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define ALWAYS(X) (1)
532 522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define NEVER(X) (0)
@@ -546,20 +536,16 @@
546 536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define IS_BIG_INT(X) (((X)&~(i64)0xffffffff)!=0)
547 537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
548 538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
549 539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The macro unlikely() is a hint that surrounds a boolean
550 540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expression that is usually false. Macro likely() surrounds
551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a boolean expression that is usually true. GCC is able to
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** use these hints to generate better code, sometimes.
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a boolean expression that is usually true. These hints could,
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in theory, be used by the compiler to generate better code, but
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** currently they are just comments for human readers.
553 544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(__GNUC__) && 0
555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define likely(X) __builtin_expect((X),1)
556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define unlikely(X) __builtin_expect((X),0)
557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define likely(X) !!(X)
559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define unlikely(X) !!(X)
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define likely(X) (X)
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define unlikely(X) (X)
561 547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
562 548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Include sqlite3.h in the middle of sqliteInt.h ***************/
563 549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file sqlite3.h *****************************************/
564 550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
565 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2001 September 15
@@ -670,11 +656,11 @@
670 656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
671 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
672 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
673 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION "3.8.0"
674 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION_NUMBER 3008000
675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2013-07-09 03:04:32 52a49cbc1621094b2fe2b021209b768d29e0426b"
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2013-08-06 07:45:08 924f7e4d7a8fa2fe9100836663f3733b6e1a9084"
676 662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
677 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
678 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
679 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version, sqlite3_sourceid
680 666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -1039,10 +1025,11 @@
1039 1025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_IOERR_SHMLOCK (SQLITE_IOERR | (20<<8))
1040 1026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
1041 1027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
1042 1028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_IOERR_DELETE_NOENT (SQLITE_IOERR | (23<<8))
1043 1029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_IOERR_MMAP (SQLITE_IOERR | (24<<8))
1030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_IOERR_GETTEMPPATH (SQLITE_IOERR | (25<<8))
1044 1031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
1045 1032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
1046 1033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8))
1047 1034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
1048 1035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
@@ -3120,13 +3107,14 @@
3120 3107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_exec()], [sqlite3_step()] and [sqlite3_get_table()] for
3121 3108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database connection D. An example use for this
3122 3109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** interface is to keep a GUI updated during a large query.
3123 3110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3124 3111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The parameter P is passed through as the only parameter to the
3125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** callback function X. ^The parameter N is the number of
3112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** callback function X. ^The parameter N is the approximate number of
3126 3113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [virtual machine instructions] that are evaluated between successive
3127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** invocations of the callback X.
3114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** invocations of the callback X. ^If N is less than one then the progress
3115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** handler is disabled.
3128 3116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3129 3117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^Only a single progress handler may be defined at one time per
3130 3118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [database connection]; setting a new progress handler cancels the
3131 3119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** old one. ^Setting parameter X to NULL disables the progress handler.
3132 3120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The progress handler is also disabled by setting N to a value less
@@ -4742,45 +4730,53 @@
4742 4730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*);
4743 4731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4744 4732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
4745 4733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Function Auxiliary Data
4746 4734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following two functions may be used by scalar SQL functions to
4735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** These functions may be used by (non-aggregate) SQL functions to
4748 4736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** associate metadata with argument values. If the same value is passed to
4749 4737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** multiple invocations of the same SQL function during query execution, under
4750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** some circumstances the associated metadata may be preserved. This may
4751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be used, for example, to add a regular-expression matching scalar
4752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function. The compiled version of the regular expression is stored as
4753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** metadata associated with the SQL value passed as the regular expression
4754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pattern. The compiled regular expression can be reused on multiple
4755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** invocations of the same function so that the original pattern string
4756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** does not need to be recompiled on each invocation.
4738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** some circumstances the associated metadata may be preserved. An example
4739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of where this might be useful is in a regular-expression matching
4740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function. The compiled version of the regular expression can be stored as
4741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** metadata associated with the pattern string.
4742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Then as long as the pattern string remains the same,
4743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the compiled regular expression can be reused on multiple
4744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** invocations of the same function.
4757 4745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4758 4746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The sqlite3_get_auxdata() interface returns a pointer to the metadata
4759 4747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** associated by the sqlite3_set_auxdata() function with the Nth argument
4760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** value to the application-defined function. ^If no metadata has been ever
4761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** been set for the Nth argument of the function, or if the corresponding
4762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function parameter has changed since the meta-data was set,
4763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then sqlite3_get_auxdata() returns a NULL pointer.
4764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
4765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^The sqlite3_set_auxdata() interface saves the metadata
4766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pointed to by its 3rd parameter as the metadata for the N-th
4767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argument of the application-defined function. Subsequent
4768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** calls to sqlite3_get_auxdata() might return this data, if it has
4769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** not been destroyed.
4770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^If it is not NULL, SQLite will invoke the destructor
4771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function given by the 4th parameter to sqlite3_set_auxdata() on
4772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the metadata when the corresponding function parameter changes
4773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** or when the SQL statement completes, whichever comes first.
4774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
4775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLite is free to call the destructor and drop metadata on any
4776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** parameter of any function at any time. ^The only guarantee is that
4777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the destructor will be called before the metadata is dropped.
4748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** value to the application-defined function. ^If there is no metadata
4749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** associated with the function argument, this sqlite3_get_auxdata() interface
4750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** returns a NULL pointer.
4751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
4752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as metadata for the N-th
4753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argument of the application-defined function. ^Subsequent
4754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** calls to sqlite3_get_auxdata(C,N) return P from the most recent
4755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_set_auxdata(C,N,P,X) call if the metadata is still valid or
4756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** NULL if the metadata has been discarded.
4757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^After each call to sqlite3_set_auxdata(C,N,P,X) where X is not NULL,
4758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLite will invoke the destructor function X with parameter P exactly
4759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** once, when the metadata is discarded.
4760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLite is free to discard the metadata at any time, including: <ul>
4761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> when the corresponding function parameter changes, or
4762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> when [sqlite3_reset()] or [sqlite3_finalize()] is called for the
4763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQL statement, or
4764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> when sqlite3_set_auxdata() is invoked again on the same parameter, or
4765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <li> during the original sqlite3_set_auxdata() call when a memory
4766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** allocation error occurs. </ul>)^
4767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
4768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Note the last bullet in particular. The destructor X in
4769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_set_auxdata(C,N,P,X) might be called immediately, before the
4770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_set_auxdata() interface even returns. Hence sqlite3_set_auxdata()
4771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** should be called near the end of the function implementation and the
4772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function implementation should not make any use of P after
4773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_set_auxdata() has been called.
4778 4774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4779 4775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(In practice, metadata is preserved between function calls for
4780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** expressions that are constant at compile time. This includes literal
4781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** values and [parameters].)^
4776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function parameters that are compile-time constants, including literal
4777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** values and [parameters] and expressions composed from the same.)^
4782 4778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4783 4779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These routines must be called from the same thread in which
4784 4780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the SQL function is running.
4785 4781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
4786 4782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N);
@@ -5689,14 +5685,27 @@
5689 5685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5690 5686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^Calling sqlite3_auto_extension(X) with an entry point X that is already
5691 5687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on the list of automatic extensions is a harmless no-op. ^No entry point
5692 5688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will be called more than once for each database connection that is opened.
5693 5689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** See also: [sqlite3_reset_auto_extension()].
5690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See also: [sqlite3_reset_auto_extension()]
5691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and [sqlite3_cancel_auto_extension()]
5695 5692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
5696 5693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_auto_extension(void (*xEntryPoint)(void));
5697 5694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
5696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** CAPI3REF: Cancel Automatic Extension Loading
5697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
5699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** initialization routine X that was registered using a prior call to
5700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
5701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routine returns 1 if initialization routine X was successfully
5702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** unregistered and it returns 0 if X was not on the list of initialization
5703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routines.
5704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
5705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_cancel_auto_extension(void (*xEntryPoint)(void));
5706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
5698 5707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
5699 5708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Reset Automatic Extension Loading
5700 5709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5701 5710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^This interface disables all automatic extensions previously
5702 5711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** registered using [sqlite3_auto_extension()].
@@ -6805,10 +6814,16 @@
6805 6814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** transaction rollback or database recovery operations are not included.
6806 6815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If an IO or other error occurs while writing a page to disk, the effect
6807 6816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined.)^ ^The
6808 6817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0.
6809 6818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </dd>
6819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
6820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [[SQLITE_DBSTATUS_DEFERRED_FKS]] ^(<dt>SQLITE_DBSTATUS_DEFERRED_FKS</dt>
6821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <dd>This parameter returns zero for the current value if and only if
6822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** all foreign key constraints (deferred or immediate) have been
6823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** resolved.)^ ^The highwater mark is always 0.
6824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** </dd>
6810 6825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </dl>
6811 6826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
6812 6827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_LOOKASIDE_USED 0
6813 6828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_CACHE_USED 1
6814 6829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_SCHEMA_USED 2
@@ -6817,11 +6832,12 @@
6817 6832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE 5
6818 6833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL 6
6819 6834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_CACHE_HIT 7
6820 6835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_CACHE_MISS 8
6821 6836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_CACHE_WRITE 9
6822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_DBSTATUS_MAX 9 /* Largest defined DBSTATUS */
6837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_DBSTATUS_DEFERRED_FKS 10
6838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_DBSTATUS_MAX 10 /* Largest defined DBSTATUS */
6823 6839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
6824 6840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
6825 6841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
6826 6842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Prepared Statement Status
6827 6843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -8795,11 +8811,10 @@
8795 8811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8796 8812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
8797 8813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The names of the following types declared in vdbeInt.h are required
8798 8814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for the VdbeOp definition.
8799 8815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
8800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct VdbeFunc VdbeFunc;
8801 8816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Mem Mem;
8802 8817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct SubProgram SubProgram;
8803 8818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8804 8819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
8805 8820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A single instruction of the virtual machine has an opcode
@@ -8819,11 +8834,10 @@
8819 8834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p; /* Generic pointer */
8820 8835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *z; /* Pointer to data for string (char array) types */
8821 8836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 *pI64; /* Used when p4type is P4_INT64 */
8822 8837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double *pReal; /* Used when p4type is P4_REAL */
8823 8838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDef *pFunc; /* Used when p4type is P4_FUNCDEF */
8824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFunc *pVdbeFunc; /* Used when p4type is P4_VDBEFUNC */
8825 8839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl; /* Used when p4type is P4_COLLSEQ */
8826 8840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pMem; /* Used when p4type is P4_MEM */
8827 8841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VTable *pVtab; /* Used when p4type is P4_VTAB */
8828 8842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKeyInfo; /* Used when p4type is P4_KEYINFO */
8829 8843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *ai; /* Used when p4type is P4_INTARRAY */
@@ -8873,11 +8887,10 @@
8873 8887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_DYNAMIC (-1) /* Pointer to a string obtained from sqliteMalloc() */
8874 8888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_STATIC (-2) /* Pointer to a static string */
8875 8889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_COLLSEQ (-4) /* P4 is a pointer to a CollSeq structure */
8876 8890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_FUNCDEF (-5) /* P4 is a pointer to a FuncDef structure */
8877 8891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_KEYINFO (-6) /* P4 is a pointer to a KeyInfo structure */
8878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define P4_VDBEFUNC (-7) /* P4 is a pointer to a VdbeFunc structure */
8879 8892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_MEM (-8) /* P4 is a pointer to a Mem* structure */
8880 8893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_TRANSIENT 0 /* P4 is a pointer to a transient string */
8881 8894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_VTAB (-10) /* P4 is a pointer to an sqlite3_vtab structure */
8882 8895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_MPRINTF (-11) /* P4 is a string obtained from sqlite3_mprintf() */
8883 8896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define P4_REAL (-12) /* P4 is a 64-bit floating point value */
@@ -8930,155 +8943,155 @@
8930 8943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
8931 8944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Include opcodes.h in the middle of vdbe.h ********************/
8932 8945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file opcodes.h *****************************************/
8933 8946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Automatically generated. Do not edit */
8934 8947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* See the mkopcodeh.awk script for details */
8935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Goto 1
8936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Gosub 2
8937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Return 3
8938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Yield 4
8939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_HaltIfNull 5
8940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Halt 6
8941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Integer 7
8942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Int64 8
8943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Real 130 /* same as TK_FLOAT */
8944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_String8 94 /* same as TK_STRING */
8945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_String 9
8946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Null 10
8947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Blob 11
8948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Variable 12
8949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Move 13
8950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Copy 14
8951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SCopy 15
8952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ResultRow 16
8953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Concat 91 /* same as TK_CONCAT */
8948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Function 1
8949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Savepoint 2
8950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AutoCommit 3
8951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Transaction 4
8952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterNext 5
8953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Prev 6
8954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Next 7
8955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AggStep 8
8956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Checkpoint 9
8957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_JournalMode 10
8958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Vacuum 11
8959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VFilter 12
8960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VUpdate 13
8961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Goto 14
8962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Gosub 15
8963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Return 16
8964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Yield 17
8965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_HaltIfNull 18
8966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Not 19 /* same as TK_NOT */
8967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Halt 20
8968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Integer 21
8969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Int64 22
8970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_String 23
8971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Null 24
8972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Blob 25
8973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Variable 26
8974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Move 27
8975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Copy 28
8976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SCopy 29
8977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ResultRow 30
8978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_CollSeq 31
8979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AddImm 32
8980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_MustBeInt 33
8981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RealAffinity 34
8982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Permutation 35
8983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Compare 36
8984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Jump 37
8985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Once 38
8986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_If 39
8987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfNot 40
8988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Column 41
8989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Affinity 42
8990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_MakeRecord 43
8991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Count 44
8992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ReadCookie 45
8993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SetCookie 46
8994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VerifyCookie 47
8995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenRead 48
8996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenWrite 49
8997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenAutoindex 50
8998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenEphemeral 51
8999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterOpen 52
9000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_OpenPseudo 53
9001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Close 54
9002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekLt 55
9003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekLe 56
9004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekGe 57
9005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SeekGt 58
9006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Seek 59
9007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NotFound 60
9008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Found 61
9009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IsUnique 62
9010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NotExists 63
9011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Sequence 64
9012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NewRowid 65
9013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Insert 66
9014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_InsertInt 67
9015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Or 68 /* same as TK_OR */
9016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_And 69 /* same as TK_AND */
9017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Delete 70
9018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ResetCount 71
9019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterCompare 72
9020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IsNull 73 /* same as TK_ISNULL */
9021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NotNull 74 /* same as TK_NOTNULL */
9022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Ne 75 /* same as TK_NE */
9023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Eq 76 /* same as TK_EQ */
9024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Gt 77 /* same as TK_GT */
9025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Le 78 /* same as TK_LE */
9026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Lt 79 /* same as TK_LT */
9027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Ge 80 /* same as TK_GE */
9028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterData 81
9029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_BitAnd 82 /* same as TK_BITAND */
9030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_BitOr 83 /* same as TK_BITOR */
9031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ShiftLeft 84 /* same as TK_LSHIFT */
9032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ShiftRight 85 /* same as TK_RSHIFT */
8954 9033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Add 86 /* same as TK_PLUS */
8955 9034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Subtract 87 /* same as TK_MINUS */
8956 9035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Multiply 88 /* same as TK_STAR */
8957 9036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Divide 89 /* same as TK_SLASH */
8958 9037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Remainder 90 /* same as TK_REM */
8959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_CollSeq 17
8960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Function 18
8961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_BitAnd 82 /* same as TK_BITAND */
8962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_BitOr 83 /* same as TK_BITOR */
8963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ShiftLeft 84 /* same as TK_LSHIFT */
8964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ShiftRight 85 /* same as TK_RSHIFT */
8965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AddImm 20
8966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_MustBeInt 21
8967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RealAffinity 22
9038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Concat 91 /* same as TK_CONCAT */
9039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowKey 92
9040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_BitNot 93 /* same as TK_BITNOT */
9041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_String8 94 /* same as TK_STRING */
9042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowData 95
9043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Rowid 96
9044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_NullRow 97
9045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Last 98
9046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterSort 99
9047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Sort 100
9048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Rewind 101
9049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_SorterInsert 102
9050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxInsert 103
9051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxDelete 104
9052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxRowid 105
9053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxLT 106
9054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IdxGE 107
9055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Destroy 108
9056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Clear 109
9057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_CreateIndex 110
9058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_CreateTable 111
9059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_ParseSchema 112
9060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_LoadAnalysis 113
9061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_DropTable 114
9062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_DropIndex 115
9063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_DropTrigger 116
9064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IntegrityCk 117
9065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowSetAdd 118
9066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowSetRead 119
9067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_RowSetTest 120
9068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Program 121
9069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Param 122
9070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_FkCounter 123
9071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_FkIfZero 124
9072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_MemMax 125
9073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfPos 126
9074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfNeg 127
9075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IfZero 128
9076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_AggFinal 129
9077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Real 130 /* same as TK_FLOAT */
9078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_IncrVacuum 131
9079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_Expire 132
9080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_TableLock 133
9081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VBegin 134
9082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VCreate 135
9083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VDestroy 136
9084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VOpen 137
9085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VColumn 138
9086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VNext 139
9087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define OP_VRename 140
8968 9088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_ToText 141 /* same as TK_TO_TEXT */
8969 9089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_ToBlob 142 /* same as TK_TO_BLOB */
8970 9090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_ToNumeric 143 /* same as TK_TO_NUMERIC*/
8971 9091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_ToInt 144 /* same as TK_TO_INT */
8972 9092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_ToReal 145 /* same as TK_TO_REAL */
8973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Eq 76 /* same as TK_EQ */
8974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Ne 75 /* same as TK_NE */
8975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Lt 79 /* same as TK_LT */
8976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Le 78 /* same as TK_LE */
8977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Gt 77 /* same as TK_GT */
8978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Ge 80 /* same as TK_GE */
8979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Permutation 23
8980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Compare 24
8981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Jump 25
8982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_And 69 /* same as TK_AND */
8983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Or 68 /* same as TK_OR */
8984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Not 19 /* same as TK_NOT */
8985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_BitNot 93 /* same as TK_BITNOT */
8986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Once 26
8987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_If 27
8988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfNot 28
8989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IsNull 73 /* same as TK_ISNULL */
8990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NotNull 74 /* same as TK_NOTNULL */
8991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Column 29
8992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Affinity 30
8993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_MakeRecord 31
8994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Count 32
8995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Savepoint 33
8996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AutoCommit 34
8997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Transaction 35
8998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ReadCookie 36
8999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SetCookie 37
9000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VerifyCookie 38
9001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenRead 39
9002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenWrite 40
9003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenAutoindex 41
9004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenEphemeral 42
9005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterOpen 43
9006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_OpenPseudo 44
9007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Close 45
9008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekLt 46
9009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekLe 47
9010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekGe 48
9011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SeekGt 49
9012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Seek 50
9013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NotFound 51
9014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Found 52
9015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IsUnique 53
9016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NotExists 54
9017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Sequence 55
9018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NewRowid 56
9019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Insert 57
9020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_InsertInt 58
9021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Delete 59
9022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ResetCount 60
9023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterCompare 61
9024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterData 62
9025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowKey 63
9026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowData 64
9027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Rowid 65
9028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_NullRow 66
9029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Last 67
9030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterSort 70
9031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Sort 71
9032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Rewind 72
9033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterNext 81
9034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Prev 92
9035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Next 95
9036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_SorterInsert 96
9037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxInsert 97
9038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxDelete 98
9039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxRowid 99
9040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxLT 100
9041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IdxGE 101
9042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Destroy 102
9043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Clear 103
9044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_CreateIndex 104
9045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_CreateTable 105
9046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_ParseSchema 106
9047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_LoadAnalysis 107
9048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_DropTable 108
9049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_DropIndex 109
9050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_DropTrigger 110
9051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IntegrityCk 111
9052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowSetAdd 112
9053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowSetRead 113
9054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_RowSetTest 114
9055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Program 115
9056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Param 116
9057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_FkCounter 117
9058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_FkIfZero 118
9059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_MemMax 119
9060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfPos 120
9061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfNeg 121
9062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IfZero 122
9063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AggStep 123
9064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_AggFinal 124
9065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Checkpoint 125
9066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_JournalMode 126
9067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Vacuum 127
9068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_IncrVacuum 128
9069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_Expire 129
9070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_TableLock 131
9071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VBegin 132
9072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VCreate 133
9073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VDestroy 134
9074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VOpen 135
9075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VFilter 136
9076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VColumn 137
9077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VNext 138
9078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VRename 139
9079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OP_VUpdate 140
9080 9093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Pagecount 146
9081 9094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_MaxPgcnt 147
9082 9095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Trace 148
9083 9096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Noop 149
9084 9097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OP_Explain 150
@@ -9094,28 +9107,28 @@
9094 9107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_IN2 0x0008 /* in2: P2 is an input */
9095 9108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_IN3 0x0010 /* in3: P3 is an input */
9096 9109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_OUT2 0x0020 /* out2: P2 is an output */
9097 9110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_OUT3 0x0040 /* out3: P3 is an output */
9098 9111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define OPFLG_INITIALIZER {\
9099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 0x00, 0x01, 0x01, 0x04, 0x04, 0x10, 0x00, 0x02,\
9100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 8 */ 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x24,\
9101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 16 */ 0x00, 0x00, 0x00, 0x24, 0x04, 0x05, 0x04, 0x00,\
9102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 24 */ 0x00, 0x01, 0x01, 0x05, 0x05, 0x00, 0x00, 0x00,\
9103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 32 */ 0x02, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00,\
9104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11,\
9105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 48 */ 0x11, 0x11, 0x08, 0x11, 0x11, 0x11, 0x11, 0x02,\
9106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 56 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
9107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 64 */ 0x00, 0x02, 0x00, 0x01, 0x4c, 0x4c, 0x01, 0x01,\
9108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 72 */ 0x01, 0x05, 0x05, 0x15, 0x15, 0x15, 0x15, 0x15,\
9109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 0x15, 0x01, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,\
9110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 88 */ 0x4c, 0x4c, 0x4c, 0x4c, 0x01, 0x24, 0x02, 0x01,\
9111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 96 */ 0x08, 0x08, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00,\
9112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 104 */ 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
9113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 112 */ 0x0c, 0x45, 0x15, 0x01, 0x02, 0x00, 0x01, 0x08,\
9114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00,\
9115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 128 */ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,\
9116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 136 */ 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0x04, 0x04,\
9112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,\
9113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 8 */ 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x01,\
9114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 16 */ 0x04, 0x04, 0x10, 0x24, 0x00, 0x02, 0x02, 0x02,\
9115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 24 */ 0x02, 0x02, 0x02, 0x00, 0x00, 0x24, 0x00, 0x00,\
9116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 32 */ 0x04, 0x05, 0x04, 0x00, 0x00, 0x01, 0x01, 0x05,\
9117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 0x05, 0x00, 0x00, 0x00, 0x02, 0x02, 0x10, 0x00,\
9118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 48 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,\
9119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 56 */ 0x11, 0x11, 0x11, 0x08, 0x11, 0x11, 0x11, 0x11,\
9120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 64 */ 0x02, 0x02, 0x00, 0x00, 0x4c, 0x4c, 0x00, 0x00,\
9121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 72 */ 0x00, 0x05, 0x05, 0x15, 0x15, 0x15, 0x15, 0x15,\
9122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 0x15, 0x00, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,\
9123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 88 */ 0x4c, 0x4c, 0x4c, 0x4c, 0x00, 0x24, 0x02, 0x00,\
9124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 96 */ 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08,\
9125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 104 */ 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x02,\
9126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 112 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x45,\
9127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 0x15, 0x01, 0x02, 0x00, 0x01, 0x08, 0x05, 0x05,\
9128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 128 */ 0x05, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,\
9129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 136 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x04, 0x04,\
9117 9130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 144 */ 0x04, 0x04, 0x02, 0x02, 0x00, 0x00, 0x00,}
9118 9131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9119 9132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of opcodes.h *********************************************/
9120 9133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Continuing where we left off in vdbe.h ***********************/
9121 9134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -9161,11 +9174,11 @@
9161 9174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeCountChanges(Vdbe*);
9162 9175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE sqlite3 *sqlite3VdbeDb(Vdbe*);
9163 9176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetSql(Vdbe*, const char *z, int n, int);
9164 9177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSwap(Vdbe*,Vdbe*);
9165 9178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE VdbeOp *sqlite3VdbeTakeOpArray(Vdbe*, int*, int*);
9166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetValue(Vdbe*, int, u8);
9179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe*, int, u8);
9167 9180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe*, int);
9168 9181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TRACE
9169 9182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE char *sqlite3VdbeExpandSql(Vdbe*, const char*);
9170 9183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
9171 9184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -10117,11 +10130,11 @@
10117 10130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pAuthArg; /* 1st argument to the access auth function */
10118 10131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
10119 10132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_PROGRESS_CALLBACK
10120 10133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int (*xProgress)(void *); /* The progress callback */
10121 10134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pProgressArg; /* Argument to the progress callback */
10122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nProgressOps; /* Number of opcodes for progress callback */
10135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned nProgressOps; /* Number of opcodes for progress callback */
10123 10136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
10124 10137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
10125 10138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nVTrans; /* Allocated size of aVTrans */
10126 10139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Hash aModule; /* populated by sqlite3_create_module() */
10127 10140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VtabCtx *pVtabCtx; /* Context for active vtab connect/create */
@@ -10135,10 +10148,11 @@
10135 10148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Savepoint *pSavepoint; /* List of active savepoints */
10136 10149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int busyTimeout; /* Busy handler timeout, in msec */
10137 10150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nSavepoint; /* Number of non-transaction savepoints */
10138 10151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nStatement; /* Number of nested statement-transactions */
10139 10152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nDeferredCons; /* Net deferred constraints this transaction. */
10153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nDeferredImmCons; /* Net deferred immediate constraints */
10140 10154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *pnBytesFreed; /* If not NULL, increment this in DbFree() */
10141 10155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10142 10156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_UNLOCK_NOTIFY
10143 10157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The following variables are all protected by the STATIC_MASTER
10144 10158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** mutex, not by sqlite3.mutex. They are used by code in notify.c.
@@ -10190,10 +10204,13 @@
10190 10204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_ForeignKeys 0x00040000 /* Enforce foreign key constraints */
10191 10205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_AutoIndex 0x00080000 /* Enable automatic indexes */
10192 10206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_PreferBuiltin 0x00100000 /* Preference to built-in funcs */
10193 10207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_LoadExtension 0x00200000 /* Enable load_extension */
10194 10208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_EnableTrigger 0x00400000 /* True to enable triggers */
10209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_DeferFKs 0x00800000 /* Defer all FK constraints */
10210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_QueryOnly 0x01000000 /* Disable database changes */
10211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
10195 10212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10196 10213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10197 10214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Bits of the sqlite3.dbOptFlags field that are used by the
10198 10215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to
10199 10216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** selectively disable various optimizations.
@@ -10336,10 +10353,11 @@
10336 10353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** OP_Savepoint instruction.
10337 10354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10338 10355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct Savepoint {
10339 10356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zName; /* Savepoint name (nul-terminated) */
10340 10357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nDeferredCons; /* Number of deferred fk violations */
10358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nDeferredImmCons; /* Number of deferred imm fk. */
10341 10359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Savepoint *pNext; /* Parent savepoint (if any) */
10342 10360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
10343 10361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10344 10362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10345 10363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following are used as the second parameter to sqlite3Savepoint(),
@@ -10654,16 +10672,20 @@
10654 10672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10655 10673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10656 10674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of the following structure is passed as the first
10657 10675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument to sqlite3VdbeKeyCompare and is used to control the
10658 10676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** comparison of the two index keys.
10677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
10678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Note that aSortOrder[] and aColl[] have nField+1 slots. There
10679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** are nField slots for the columns of an index then one extra slot
10680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for the rowid at the end.
10659 10681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10660 10682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct KeyInfo {
10661 10683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db; /* The database connection */
10662 10684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 enc; /* Text encoding - one of the SQLITE_UTF* values */
10663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 nField; /* Number of entries in aColl[] */
10664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 *aSortOrder; /* Sort order for each column. May be NULL */
10685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 nField; /* Maximum index for aColl[] and aSortOrder[] */
10686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 *aSortOrder; /* Sort order for each column. */
10665 10687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *aColl[1]; /* Collating sequence for each term of the key */
10666 10688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
10667 10689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10668 10690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10669 10691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of the following structure holds information about a
@@ -10728,10 +10750,11 @@
10728 10750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zColAff; /* String defining the affinity of each column */
10729 10751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pNext; /* The next index associated with the same table */
10730 10752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Schema *pSchema; /* Schema containing this index */
10731 10753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 *aSortOrder; /* for each column: True==DESC, False==ASC */
10732 10754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **azColl; /* Array of collation sequence names for index */
10755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pPartIdxWhere; /* WHERE clause for partial indices */
10733 10756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tnum; /* DB Page containing root of this index */
10734 10757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u16 nColumn; /* Number of columns in table used by this index */
10735 10758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 onError; /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */
10736 10759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned autoIndex:2; /* 1==UNIQUE, 2==PRIMARY KEY, 0==CREATE INDEX */
10737 10760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned bUnordered:1; /* Use this index for == or IN queries only */
@@ -11208,10 +11231,11 @@
11208 11231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_HasAgg 0x02 /* One or more aggregate functions seen */
11209 11232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_IsCheck 0x04 /* True if resolving names in a CHECK constraint */
11210 11233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_InAggFunc 0x08 /* True if analyzing arguments to an agg func */
11211 11234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define NC_AsMaybe 0x10 /* Resolve to AS terms of the result set only
11212 11235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** if no other resolution is available */
11236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define NC_PartIdx 0x20 /* True if resolving a partial index WHERE */
11213 11237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11214 11238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
11215 11239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of the following structure contains all information
11216 11240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** needed to generate code for a single SELECT statement.
11217 11241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -11262,10 +11286,11 @@
11262 11286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SF_HasTypeInfo 0x0020 /* FROM subqueries have Table metadata */
11263 11287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SF_UseSorter 0x0040 /* Sort using a sorter */
11264 11288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SF_Values 0x0080 /* Synthesized from VALUES clause */
11265 11289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SF_Materialize 0x0100 /* Force materialization of views */
11266 11290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SF_NestedFrom 0x0200 /* Part of a parenthesized FROM clause */
11291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SF_MaybeConvert 0x0400 /* Need convertCompoundSelectToSubquery() */
11267 11292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11268 11293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11269 11294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
11270 11295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The results of a select can be distributed in several ways. The
11271 11296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "SRT" prefix means "SELECT Result Type".
@@ -11383,19 +11408,21 @@
11383 11408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 nTempInUse; /* Number of aTempReg[] currently checked out */
11384 11409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 nColCache; /* Number of entries in aColCache[] */
11385 11410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 iColCache; /* Next entry in aColCache[] to replace */
11386 11411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 isMultiWrite; /* True if statement may modify/insert multiple rows */
11387 11412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 mayAbort; /* True if statement may throw an ABORT exception */
11413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 hasCompound; /* Need to invoke convertCompoundSelectToSubquery() */
11388 11414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int aTempReg[8]; /* Holding area for temporary registers */
11389 11415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nRangeReg; /* Size of the temporary register block */
11390 11416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iRangeReg; /* First register in temporary register block */
11391 11417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nErr; /* Number of errors seen */
11392 11418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nTab; /* Number of previously allocated VDBE cursors */
11393 11419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nMem; /* Number of memory cells used so far */
11394 11420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nSet; /* Number of sets used so far */
11395 11421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nOnce; /* Number of OP_Once instructions so far */
11396 11422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ckBase; /* Base register of data during check constraints */
11423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iPartIdxTab; /* Table corresponding to a partial index */
11397 11424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCacheLevel; /* ColCache valid when aColCache[].iLevel<=iCacheLevel */
11398 11425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCacheCnt; /* Counter used to generate aColCache[].lru values */
11399 11426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct yColCache {
11400 11427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTable; /* Table cursor number */
11401 11428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iColumn; /* Table column number */
@@ -11973,11 +12000,11 @@
11973 12000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SrcListShiftJoinType(SrcList*);
11974 12001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SrcListAssignCursors(Parse*, SrcList*);
11975 12002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3IdListDelete(sqlite3*, IdList*);
11976 12003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3*, SrcList*);
11977 12004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Index *sqlite3CreateIndex(Parse*,Token*,Token*,SrcList*,ExprList*,int,Token*,
11978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Token*, int, int);
12005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr*, int, int);
11979 12006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3DropIndex(Parse*, SrcList*, int);
11980 12007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3Select(Parse*, Select*, SelectDest*);
11981 12008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Select *sqlite3SelectNew(Parse*,ExprList*,SrcList*,Expr*,ExprList*,
11982 12009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr*,ExprList*,u16,Expr*,Expr*);
11983 12010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SelectDelete(sqlite3*, Select*);
@@ -12021,12 +12048,13 @@
12021 12048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTable(sqlite3*,int,const char*);
12022 12049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteIndex(sqlite3*,int,const char*);
12023 12050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3Vacuum(Parse*);
12024 12051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3RunVacuum(char**, sqlite3*);
12025 12052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE char *sqlite3NameFromToken(sqlite3*, Token*);
12026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3ExprCompare(Expr*, Expr*);
12027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList*, ExprList*);
12053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExprCompare(Expr*, Expr*, int);
12054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList*, ExprList*, int);
12055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Expr*, Expr*, int);
12028 12056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*);
12029 12057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext*,ExprList*);
12030 12058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3FunctionUsesThisSrc(Expr*, SrcList*);
12031 12059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Vdbe *sqlite3GetVdbe(Parse*);
12032 12060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3PrngSaveState(void);
@@ -12049,11 +12077,11 @@
12049 12077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ExprCodeIsNullJump(Vdbe*, const Expr*, int, int);
12050 12078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ExprNeedsNoAffinityChange(const Expr*, char);
12051 12079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3IsRowid(const char*);
12052 12080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3GenerateRowDelete(Parse*, Table*, int, int, int, Trigger *, int);
12053 12081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete(Parse*, Table*, int, int*);
12054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3GenerateIndexKey(Parse*, Index*, int, int, int);
12082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3GenerateIndexKey(Parse*, Index*, int, int, int, int*);
12055 12083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3GenerateConstraintChecks(Parse*,Table*,int,int,
12056 12084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int*,int,int,int,int,int*);
12057 12085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3CompleteInsertion(Parse*, Table*, int, int, int*, int, int, int);
12058 12086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3OpenTableAndIndices(Parse*, Table*, int, int);
12059 12087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3BeginWriteOperation(Parse*, int, int);
@@ -12252,10 +12280,11 @@
12252 12280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *, Expr *, int, int);
12253 12281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SelectPrep(Parse*, Select*, NameContext*);
12254 12282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3MatchSpanName(const char*, const char*, const char*, const char*);
12255 12283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ResolveExprNames(NameContext*, Expr*);
12256 12284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ResolveSelectNames(Parse*, Select*, NameContext*);
12285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3ResolveSelfReference(Parse*,Table*,int,Expr*,ExprList*);
12257 12286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ResolveOrderGroupBy(Parse*, Select*, ExprList*, const char*);
12258 12287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ColumnDefault(Vdbe *, Table *, int, int);
12259 12288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AlterFinishAddColumn(Parse *, Token *);
12260 12289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AlterBeginAddColumn(Parse *, SrcList *);
12261 12290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE CollSeq *sqlite3GetCollSeq(Parse*, u8, CollSeq *, const char*);
@@ -12271,10 +12300,11 @@
12271 12300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3IsLikeFunction(sqlite3*,Expr*,int*,char*);
12272 12301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3MinimumFileFormat(Parse*, int, int);
12273 12302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SchemaClear(void *);
12274 12303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Schema *sqlite3SchemaGet(sqlite3 *, Btree *);
12275 12304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *);
12305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoAlloc(sqlite3*,int);
12276 12306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE KeyInfo *sqlite3IndexKeyinfo(Parse *, Index *);
12277 12307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *,
12278 12308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*)(sqlite3_context*,int,sqlite3_value **),
12279 12309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*)(sqlite3_context*,int,sqlite3_value **), void (*)(sqlite3_context*),
12280 12310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDestructor *pDestructor
@@ -13223,10 +13253,13 @@
13223 13253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct VdbeSorter VdbeSorter;
13224 13254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13225 13255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opaque type used by the explainer */
13226 13256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Explain Explain;
13227 13257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Elements of the linked list at Vdbe.pAuxData */
13259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct AuxData AuxData;
13260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13228 13261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13229 13262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A cursor is a pointer into a single BTree within a database file.
13230 13263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The cursor can seek to a BTree entry with a particular key, or
13231 13264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** loop over all entries of the Btree. You can also insert new BTree
13232 13265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** entries or retrieve the key or data from the entry that the cursor
@@ -13409,27 +13442,23 @@
13409 13442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
13410 13443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
13411 13444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define memIsValid(M) ((M)->flags & MEM_Invalid)==0
13412 13445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
13413 13446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
13415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* A VdbeFunc is just a FuncDef (defined in sqliteInt.h) that contains
13416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** additional information about auxiliary information bound to arguments
13417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the function. This is used to implement the sqlite3_get_auxdata()
13418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and sqlite3_set_auxdata() APIs. The "auxdata" is some auxiliary data
13419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that can be associated with a constant argument to a function. This
13420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** allows functions such as "regexp" to compile their constant regular
13421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** expression argument once and reused the compiled code for multiple
13422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** invocations.
13447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
13448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Each auxilliary data pointer stored by a user defined function
13449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** implementation calling sqlite3_set_auxdata() is stored in an instance
13450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of this structure. All such structures associated with a single VM
13451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed
13452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** when the VM is halted (if not before).
13423 13453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
13424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct VdbeFunc {
13425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FuncDef *pFunc; /* The definition of the function */
13426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nAux; /* Number of entries allocated for apAux[] */
13427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct AuxData {
13428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *pAux; /* Aux data for the i-th argument */
13429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xDelete)(void *); /* Destructor for the aux data */
13430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } apAux[1]; /* One slot for each function argument */
13454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct AuxData {
13455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iOp; /* Instruction number of OP_Function opcode */
13456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iArg; /* Index of function argument. */
13457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *pAux; /* Aux data pointer */
13458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xDelete)(void *); /* Destructor for the aux data */
13459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AuxData *pNext; /* Next element in list */
13431 13460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
13432 13461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13433 13462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13434 13463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The "context" argument for a installable function. A pointer to an
13435 13464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** instance of this structure is the first argument to the routines used
@@ -13443,16 +13472,17 @@
13443 13472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This structure is defined inside of vdbeInt.h because it uses substructures
13444 13473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (Mem) which are only defined there.
13445 13474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
13446 13475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct sqlite3_context {
13447 13476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDef *pFunc; /* Pointer to function information. MUST BE FIRST */
13448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFunc *pVdbeFunc; /* Auxilary data, if created. */
13449 13477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem s; /* The return value is stored here */
13450 13478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pMem; /* Memory cell used to store aggregate context */
13451 13479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl; /* Collating sequence */
13452 13480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isError; /* Error code returned by the function. */
13453 13481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int skipFlag; /* Skip skip accumulator loading if true */
13482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iOp; /* Instruction number of OP_Function */
13483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *pVdbe; /* The VM that owns this context */
13454 13484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
13455 13485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13456 13486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13457 13487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An Explain object accumulates indented output which is helpful
13458 13488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in describing recursive data structures.
@@ -13530,10 +13560,11 @@
13530 13560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TRACE
13531 13561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 startTime; /* Time when query started - used for profiling */
13532 13562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
13533 13563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nFkConstraint; /* Number of imm. FK constraints this VM */
13534 13564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nStmtDefCons; /* Number of def. constraints when stmt started */
13565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nStmtDefImmCons; /* Number of def. imm constraints when stmt started */
13535 13566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zSql; /* Text of the SQL statement that generated this */
13536 13567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pFree; /* Free this when deleting the vdbe */
13537 13568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
13538 13569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FILE *trace; /* Write an execution trace here, if not NULL */
13539 13570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -13546,10 +13577,11 @@
13546 13577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nFrame; /* Number of frames in pFrame list */
13547 13578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 expmask; /* Binding to these vars invalidates VM */
13548 13579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SubProgram *pProgram; /* Linked list of all sub-programs used by VM */
13549 13580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nOnceFlag; /* Size of array aOnceFlag[] */
13550 13581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 *aOnceFlag; /* Flags for OP_Once */
13582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AuxData *pAuxData; /* Linked list of auxdata allocations */
13551 13583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
13552 13584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13553 13585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13554 13586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following are allowed values for Vdbe.magic
13555 13587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -13569,11 +13601,11 @@
13569 13601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
13570 13602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen(u32);
13571 13603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialType(Mem*, int);
13572 13604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialPut(unsigned char*, int, Mem*, int);
13573 13605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE u32 sqlite3VdbeSerialGet(const unsigned char*, u32, Mem*);
13574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(VdbeFunc*, int);
13606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(Vdbe*, int, int);
13575 13607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13576 13608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *);
13577 13609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare(VdbeCursor*,UnpackedRecord*,int*);
13578 13610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeIdxRowid(sqlite3*, BtCursor *, i64 *);
13579 13611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3MemCompare(const Mem*, const Mem*, const CollSeq*);
@@ -13889,10 +13921,20 @@
13889 13921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13890 13922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pHighwater = 0;
13891 13923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pCurrent = nRet;
13892 13924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
13893 13925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Set *pCurrent to non-zero if there are unresolved deferred foreign
13928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** key constraints. Set *pCurrent to zero if all foreign key constraints
13929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** have been satisfied. The *pHighwater is always set to zero.
13930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
13931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case SQLITE_DBSTATUS_DEFERRED_FKS: {
13932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pHighwater = 0;
13933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pCurrent = db->nDeferredImmCons>0 || db->nDeferredCons>0;
13934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
13935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
13894 13936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13895 13937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: {
13896 13938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_ERROR;
13897 13939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13898 13940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -22658,91 +22700,91 @@
22658 22700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Automatically generated. Do not edit */
22659 22701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* See the mkopcodec.awk script for details. */
22660 22702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_OMIT_EXPLAIN) || !defined(NDEBUG) || defined(VDBE_PROFILE) || defined(SQLITE_DEBUG)
22661 22703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){
22662 22704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const char *const azName[] = { "?",
22663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1 */ "Goto",
22664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 2 */ "Gosub",
22665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 3 */ "Return",
22666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 4 */ "Yield",
22667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 5 */ "HaltIfNull",
22668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 6 */ "Halt",
22669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 7 */ "Integer",
22670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 8 */ "Int64",
22671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 9 */ "String",
22672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ "Null",
22673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 11 */ "Blob",
22674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 12 */ "Variable",
22675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 13 */ "Move",
22676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 14 */ "Copy",
22677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 15 */ "SCopy",
22678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 16 */ "ResultRow",
22679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 17 */ "CollSeq",
22680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 18 */ "Function",
22705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1 */ "Function",
22706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 2 */ "Savepoint",
22707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 3 */ "AutoCommit",
22708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 4 */ "Transaction",
22709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 5 */ "SorterNext",
22710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 6 */ "Prev",
22711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 7 */ "Next",
22712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 8 */ "AggStep",
22713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 9 */ "Checkpoint",
22714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ "JournalMode",
22715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 11 */ "Vacuum",
22716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 12 */ "VFilter",
22717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 13 */ "VUpdate",
22718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 14 */ "Goto",
22719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 15 */ "Gosub",
22720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 16 */ "Return",
22721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 17 */ "Yield",
22722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 18 */ "HaltIfNull",
22681 22723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 19 */ "Not",
22682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ "AddImm",
22683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 21 */ "MustBeInt",
22684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 22 */ "RealAffinity",
22685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 23 */ "Permutation",
22686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 24 */ "Compare",
22687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 25 */ "Jump",
22688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 26 */ "Once",
22689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 27 */ "If",
22690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 28 */ "IfNot",
22691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 29 */ "Column",
22692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ "Affinity",
22693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 31 */ "MakeRecord",
22694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 32 */ "Count",
22695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 33 */ "Savepoint",
22696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 34 */ "AutoCommit",
22697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 35 */ "Transaction",
22698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 36 */ "ReadCookie",
22699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 37 */ "SetCookie",
22700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 38 */ "VerifyCookie",
22701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 39 */ "OpenRead",
22702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ "OpenWrite",
22703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 41 */ "OpenAutoindex",
22704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 42 */ "OpenEphemeral",
22705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 43 */ "SorterOpen",
22706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 44 */ "OpenPseudo",
22707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 45 */ "Close",
22708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 46 */ "SeekLt",
22709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 47 */ "SeekLe",
22710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 48 */ "SeekGe",
22711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 49 */ "SeekGt",
22712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ "Seek",
22713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 51 */ "NotFound",
22714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 52 */ "Found",
22715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 53 */ "IsUnique",
22716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 54 */ "NotExists",
22717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 55 */ "Sequence",
22718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 56 */ "NewRowid",
22719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 57 */ "Insert",
22720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 58 */ "InsertInt",
22721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 59 */ "Delete",
22722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ "ResetCount",
22723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 61 */ "SorterCompare",
22724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 62 */ "SorterData",
22725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 63 */ "RowKey",
22726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 64 */ "RowData",
22727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 65 */ "Rowid",
22728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 66 */ "NullRow",
22729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 67 */ "Last",
22724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ "Halt",
22725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 21 */ "Integer",
22726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 22 */ "Int64",
22727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 23 */ "String",
22728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 24 */ "Null",
22729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 25 */ "Blob",
22730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 26 */ "Variable",
22731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 27 */ "Move",
22732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 28 */ "Copy",
22733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 29 */ "SCopy",
22734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ "ResultRow",
22735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 31 */ "CollSeq",
22736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 32 */ "AddImm",
22737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 33 */ "MustBeInt",
22738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 34 */ "RealAffinity",
22739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 35 */ "Permutation",
22740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 36 */ "Compare",
22741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 37 */ "Jump",
22742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 38 */ "Once",
22743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 39 */ "If",
22744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ "IfNot",
22745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 41 */ "Column",
22746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 42 */ "Affinity",
22747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 43 */ "MakeRecord",
22748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 44 */ "Count",
22749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 45 */ "ReadCookie",
22750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 46 */ "SetCookie",
22751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 47 */ "VerifyCookie",
22752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 48 */ "OpenRead",
22753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 49 */ "OpenWrite",
22754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ "OpenAutoindex",
22755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 51 */ "OpenEphemeral",
22756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 52 */ "SorterOpen",
22757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 53 */ "OpenPseudo",
22758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 54 */ "Close",
22759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 55 */ "SeekLt",
22760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 56 */ "SeekLe",
22761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 57 */ "SeekGe",
22762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 58 */ "SeekGt",
22763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 59 */ "Seek",
22764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ "NotFound",
22765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 61 */ "Found",
22766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 62 */ "IsUnique",
22767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 63 */ "NotExists",
22768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 64 */ "Sequence",
22769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 65 */ "NewRowid",
22770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 66 */ "Insert",
22771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 67 */ "InsertInt",
22730 22772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 68 */ "Or",
22731 22773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 69 */ "And",
22732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ "SorterSort",
22733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 71 */ "Sort",
22734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 72 */ "Rewind",
22774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ "Delete",
22775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 71 */ "ResetCount",
22776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 72 */ "SorterCompare",
22735 22777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 73 */ "IsNull",
22736 22778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 74 */ "NotNull",
22737 22779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 75 */ "Ne",
22738 22780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 76 */ "Eq",
22739 22781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 77 */ "Gt",
22740 22782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 78 */ "Le",
22741 22783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 79 */ "Lt",
22742 22784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 80 */ "Ge",
22743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 81 */ "SorterNext",
22785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 81 */ "SorterData",
22744 22786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 82 */ "BitAnd",
22745 22787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 83 */ "BitOr",
22746 22788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 84 */ "ShiftLeft",
22747 22789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 85 */ "ShiftRight",
22748 22790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 86 */ "Add",
@@ -22749,59 +22791,59 @@
22749 22791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 87 */ "Subtract",
22750 22792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 88 */ "Multiply",
22751 22793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 89 */ "Divide",
22752 22794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 90 */ "Remainder",
22753 22795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 91 */ "Concat",
22754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 92 */ "Prev",
22796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 92 */ "RowKey",
22755 22797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 93 */ "BitNot",
22756 22798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 94 */ "String8",
22757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 95 */ "Next",
22758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 96 */ "SorterInsert",
22759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 97 */ "IdxInsert",
22760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 98 */ "IdxDelete",
22761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 99 */ "IdxRowid",
22762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ "IdxLT",
22763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 101 */ "IdxGE",
22764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 102 */ "Destroy",
22765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 103 */ "Clear",
22766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 104 */ "CreateIndex",
22767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 105 */ "CreateTable",
22768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 106 */ "ParseSchema",
22769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 107 */ "LoadAnalysis",
22770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 108 */ "DropTable",
22771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 109 */ "DropIndex",
22772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ "DropTrigger",
22773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 111 */ "IntegrityCk",
22774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 112 */ "RowSetAdd",
22775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 113 */ "RowSetRead",
22776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 114 */ "RowSetTest",
22777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 115 */ "Program",
22778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 116 */ "Param",
22779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 117 */ "FkCounter",
22780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 118 */ "FkIfZero",
22781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 119 */ "MemMax",
22782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ "IfPos",
22783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 121 */ "IfNeg",
22784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 122 */ "IfZero",
22785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 123 */ "AggStep",
22786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 124 */ "AggFinal",
22787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 125 */ "Checkpoint",
22788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 126 */ "JournalMode",
22789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 127 */ "Vacuum",
22790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 128 */ "IncrVacuum",
22791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 129 */ "Expire",
22799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 95 */ "RowData",
22800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 96 */ "Rowid",
22801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 97 */ "NullRow",
22802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 98 */ "Last",
22803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 99 */ "SorterSort",
22804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ "Sort",
22805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 101 */ "Rewind",
22806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 102 */ "SorterInsert",
22807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 103 */ "IdxInsert",
22808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 104 */ "IdxDelete",
22809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 105 */ "IdxRowid",
22810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 106 */ "IdxLT",
22811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 107 */ "IdxGE",
22812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 108 */ "Destroy",
22813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 109 */ "Clear",
22814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ "CreateIndex",
22815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 111 */ "CreateTable",
22816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 112 */ "ParseSchema",
22817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 113 */ "LoadAnalysis",
22818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 114 */ "DropTable",
22819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 115 */ "DropIndex",
22820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 116 */ "DropTrigger",
22821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 117 */ "IntegrityCk",
22822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 118 */ "RowSetAdd",
22823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 119 */ "RowSetRead",
22824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ "RowSetTest",
22825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 121 */ "Program",
22826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 122 */ "Param",
22827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 123 */ "FkCounter",
22828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 124 */ "FkIfZero",
22829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 125 */ "MemMax",
22830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 126 */ "IfPos",
22831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 127 */ "IfNeg",
22832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 128 */ "IfZero",
22833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 129 */ "AggFinal",
22792 22834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 130 */ "Real",
22793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 131 */ "TableLock",
22794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 132 */ "VBegin",
22795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 133 */ "VCreate",
22796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 134 */ "VDestroy",
22797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 135 */ "VOpen",
22798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 136 */ "VFilter",
22799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 137 */ "VColumn",
22800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 138 */ "VNext",
22801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 139 */ "VRename",
22802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ "VUpdate",
22835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 131 */ "IncrVacuum",
22836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 132 */ "Expire",
22837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 133 */ "TableLock",
22838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 134 */ "VBegin",
22839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 135 */ "VCreate",
22840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 136 */ "VDestroy",
22841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 137 */ "VOpen",
22842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 138 */ "VColumn",
22843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 139 */ "VNext",
22844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ "VRename",
22803 22845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 141 */ "ToText",
22804 22846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 142 */ "ToBlob",
22805 22847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 143 */ "ToNumeric",
22806 22848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 144 */ "ToInt",
22807 22849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 145 */ "ToReal",
@@ -30454,10 +30496,11 @@
30454 30496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
30455 30497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_OS_WIN /* This file is used for Windows only */
30456 30498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
30457 30499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef __CYGWIN__
30458 30500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# include <sys/cygwin.h>
30501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* # include <errno.h> */
30459 30502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
30460 30503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
30461 30504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
30462 30505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Include code that is common to all os_*.c files
30463 30506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -30874,10 +30917,11 @@
30874 30917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* zero for the default behavior.
30875 30918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
30876 30919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_WIN32_HEAP_FLAGS
30877 30920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_WIN32_HEAP_FLAGS (0)
30878 30921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
30922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
30879 30923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
30880 30924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
30881 30925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The winMemData structure stores information required by the Win32-specific
30882 30926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_mem_methods implementation.
30883 30927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -34339,14 +34383,14 @@
34339 34383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("MAP-FILE-CREATE pid=%lu, pFile=%p, rc=SQLITE_IOERR_MMAP\n",
34340 34384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
osGetCurrentProcessId(), pFd));
34341 34385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
34342 34386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34343 34387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (nMap % winSysInfo.dwPageSize)==0 );
34344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SQLITE_OS_WINRT
34345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew = osMapViewOfFileFromApp(pFd->hMap, flags, 0, nMap);
34346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
34347 34388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sizeof(SIZE_T)==sizeof(sqlite3_int64) || nMap<=0xffffffff );
34389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if SQLITE_OS_WINRT
34390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew = osMapViewOfFileFromApp(pFd->hMap, flags, 0, (SIZE_T)nMap);
34391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
34348 34392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = osMapViewOfFile(pFd->hMap, flags, 0, 0, (SIZE_T)nMap);
34349 34393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
34350 34394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pNew==NULL ){
34351 34395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
osCloseHandle(pFd->hMap);
34352 34396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFd->hMap = NULL;
@@ -34511,10 +34555,19 @@
34511 34555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
34512 34556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* caller will handle out of memory */
34513 34557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zConverted;
34514 34558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34515 34559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
34561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Maximum pathname length (in bytes) for windows. The MAX_PATH macro is
34562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in characters, so we allocate 3 bytes per character assuming worst-case
34563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 3-bytes-per-character UTF8.
34564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
34565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_WIN32_MAX_PATH
34566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define SQLITE_WIN32_MAX_PATH (MAX_PATH*3)
34567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
34568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
34516 34569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
34517 34570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Create a temporary file name in zBuf. zBuf must be big enough to
34518 34571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** hold at pVfs->mxPathname characters.
34519 34572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34520 34573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int getTempname(int nBuf, char *zBuf){
@@ -34522,53 +34575,74 @@
34522 34575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"abcdefghijklmnopqrstuvwxyz"
34523 34576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
34524 34577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"0123456789";
34525 34578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
size_t i, j;
34526 34579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nTempPath;
34527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zTempPath[MAX_PATH+2];
34580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zTempPath[SQLITE_WIN32_MAX_PATH+2];
34528 34581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34529 34582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* It's odd to simulate an io-error here, but really this is just
34530 34583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** using the io-error infrastructure to test that SQLite handles this
34531 34584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function failing.
34532 34585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34533 34586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SimulateIOError( return SQLITE_IOERR );
34534 34587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(zTempPath, 0, MAX_PATH+2);
34536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
34537 34588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3_temp_directory ){
34538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(MAX_PATH-30, zTempPath, "%s", sqlite3_temp_directory);
34589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(SQLITE_WIN32_MAX_PATH-30, zTempPath, "%s",
34590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_temp_directory);
34539 34591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34540 34592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !SQLITE_OS_WINRT
34541 34593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else if( isNT() ){
34542 34594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zMulti;
34543 34595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WCHAR zWidePath[MAX_PATH];
34544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- osGetTempPathW(MAX_PATH-30, zWidePath);
34596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( osGetTempPathW(MAX_PATH-30, zWidePath)==0 ){
34597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_GETTEMPPATH\n"));
34598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_IOERR_GETTEMPPATH;
34599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
34545 34600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zMulti = unicodeToUtf8(zWidePath);
34546 34601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zMulti ){
34547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(MAX_PATH-30, zTempPath, "%s", zMulti);
34602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(SQLITE_WIN32_MAX_PATH-30, zTempPath, "%s", zMulti);
34548 34603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(zMulti);
34549 34604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
34550 34605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
34551 34606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_IOERR_NOMEM;
34552 34607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34553 34608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34554 34609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_WIN32_HAS_ANSI
34555 34610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else{
34556 34611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUtf8;
34557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zMbcsPath[MAX_PATH];
34558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- osGetTempPathA(MAX_PATH-30, zMbcsPath);
34612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zMbcsPath[SQLITE_WIN32_MAX_PATH];
34613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( osGetTempPathA(SQLITE_WIN32_MAX_PATH-30, zMbcsPath)==0 ){
34614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_GETTEMPPATH\n"));
34615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_IOERR_GETTEMPPATH;
34616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
34559 34617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUtf8 = sqlite3_win32_mbcs_to_utf8(zMbcsPath);
34560 34618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zUtf8 ){
34561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(MAX_PATH-30, zTempPath, "%s", zUtf8);
34619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(SQLITE_WIN32_MAX_PATH-30, zTempPath, "%s", zUtf8);
34562 34620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(zUtf8);
34563 34621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
34564 34622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
34565 34623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_IOERR_NOMEM;
34566 34624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34567 34625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
34569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
34626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
34627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else{
34628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
34629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Compiled without ANSI support and the current operating system
34630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is not Windows NT; therefore, just zero the temporary buffer.
34631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
34632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(zTempPath, 0, SQLITE_WIN32_MAX_PATH+2);
34633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
34634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_WIN32_HAS_ANSI */
34635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
34636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else{
34637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
34638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Compiled for WinRT and the sqlite3_temp_directory is not set;
34639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** therefore, just zero the temporary buffer.
34640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
34641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(zTempPath, 0, SQLITE_WIN32_MAX_PATH+2);
34642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
34643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* !SQLITE_OS_WINRT */
34570 34644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34571 34645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check that the output buffer is large enough for the temporary file
34572 34646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** name. If it is not, return SQLITE_ERROR.
34573 34647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34574 34648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nTempPath = sqlite3Strlen30(zTempPath);
@@ -34650,11 +34724,11 @@
34650 34724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cnt = 0;
34651 34725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34652 34726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If argument zPath is a NULL pointer, this function is required to open
34653 34727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a temporary file. Use this buffer to store the file name in.
34654 34728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zTmpname[MAX_PATH+2]; /* Buffer used to create temp filename */
34729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zTmpname[SQLITE_WIN32_MAX_PATH+2]; /* Buffer used to create temp filename */
34656 34730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34657 34731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK; /* Function Return Code */
34658 34732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(NDEBUG) || SQLITE_OS_WINCE
34659 34733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int eType = flags&0xFFFFFF00; /* Type of file to open */
34660 34734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -34716,12 +34790,11 @@
34716 34790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the second argument to this function is NULL, generate a
34717 34791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** temporary file name to use
34718 34792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34719 34793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !zUtf8Name ){
34720 34794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(isDelete && !isOpenJournal);
34721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(zTmpname, 0, MAX_PATH+2);
34722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = getTempname(MAX_PATH+2, zTmpname);
34795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = getTempname(SQLITE_WIN32_MAX_PATH+2, zTmpname);
34723 34796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
34724 34797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("OPEN name=%s, rc=%s", zUtf8Name, sqlite3ErrName(rc)));
34725 34798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
34726 34799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34727 34800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUtf8Name = zTmpname;
@@ -35148,27 +35221,34 @@
35148 35221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
35149 35222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
35150 35223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(__CYGWIN__)
35151 35224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SimulateIOError( return SQLITE_ERROR );
35152 35225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(nFull);
35153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pVfs->mxPathname>=MAX_PATH );
35226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pVfs->mxPathname>=SQLITE_WIN32_MAX_PATH );
35154 35227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nFull>=pVfs->mxPathname );
35155 35228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if ( sqlite3_data_directory && !winIsVerbatimPathname(zRelative) ){
35156 35229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
35157 35230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** NOTE: We are dealing with a relative path name and the data
35158 35231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** directory has been set. Therefore, use it as the basis
35159 35232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for converting the relative path name to an absolute
35160 35233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** one by prepending the data directory and a slash.
35161 35234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
35162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zOut[MAX_PATH+1];
35163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(zOut, 0, MAX_PATH+1);
35164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cygwin_conv_path(CCP_POSIX_TO_WIN_A|CCP_RELATIVE, zRelative, zOut,
35165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- MAX_PATH+1);
35235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zOut[SQLITE_WIN32_MAX_PATH+1];
35236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( cygwin_conv_path(CCP_POSIX_TO_WIN_A|CCP_RELATIVE, zRelative, zOut,
35237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_WIN32_MAX_PATH+1)<0 ){
35238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ winLogError(SQLITE_CANTOPEN_FULLPATH, (DWORD)errno, "cygwin_conv_path",
35239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zRelative);
35240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_CANTOPEN_FULLPATH;
35241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
35166 35242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s\\%s",
35167 35243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_data_directory, zOut);
35168 35244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
35169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cygwin_conv_path(CCP_POSIX_TO_WIN_A, zRelative, zFull, nFull);
35245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( cygwin_conv_path(CCP_POSIX_TO_WIN_A, zRelative, zFull, nFull)<0 ){
35246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ winLogError(SQLITE_CANTOPEN_FULLPATH, (DWORD)errno, "cygwin_conv_path",
35247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zRelative);
35248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_CANTOPEN_FULLPATH;
35249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
35170 35250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
35171 35251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
35172 35252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
35173 35253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
35174 35254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if (SQLITE_OS_WINCE || SQLITE_OS_WINRT) && !defined(__CYGWIN__)
@@ -35506,11 +35586,11 @@
35506 35586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
35507 35587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_os_init(void){
35508 35588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static sqlite3_vfs winVfs = {
35509 35589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
3, /* iVersion */
35510 35590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sizeof(winFile), /* szOsFile */
35511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- MAX_PATH, /* mxPathname */
35591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_WIN32_MAX_PATH, /* mxPathname */
35512 35592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pNext */
35513 35593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"win32", /* zName */
35514 35594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, /* pAppData */
35515 35595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
winOpen, /* xOpen */
35516 35596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
winDelete, /* xDelete */
@@ -60131,12 +60211,12 @@
60131 60211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a prior call to sqlite3VdbeMakeLabel().
60132 60212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
60133 60213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe *p, int x){
60134 60214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j = -1-x;
60135 60215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->magic==VDBE_MAGIC_INIT );
60136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( j>=0 && j<p->nLabel );
60137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->aLabel ){
60216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( j<p->nLabel );
60217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( j>=0 && p->aLabel ){
60138 60218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aLabel[j] = p->nOp;
60139 60219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60140 60220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60141 60221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60142 60222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -60288,44 +60368,64 @@
60288 60368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->readOnly = 1;
60289 60369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->bIsReader = 0;
60290 60370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pOp=p->aOp, i=p->nOp-1; i>=0; i--, pOp++){
60291 60371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 opcode = pOp->opcode;
60292 60372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->opflags = sqlite3OpcodeProperty[opcode];
60294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( opcode==OP_Function || opcode==OP_AggStep ){
60295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOp->p5>nMaxArgs ) nMaxArgs = pOp->p5;
60296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_Transaction ){
60297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOp->p2!=0 ) p->readOnly = 0;
60298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->bIsReader = 1;
60299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_AutoCommit || opcode==OP_Savepoint ){
60300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->bIsReader = 1;
60301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_Vacuum
60302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || opcode==OP_JournalMode
60373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* NOTE: Be sure to update mkopcodeh.awk when adding or removing
60374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cases from this switch! */
60375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( opcode ){
60376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Function:
60377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_AggStep: {
60378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p5>nMaxArgs ) nMaxArgs = pOp->p5;
60379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Transaction: {
60382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p2!=0 ) p->readOnly = 0;
60383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* fall thru */
60384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_AutoCommit:
60386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Savepoint: {
60387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->bIsReader = 1;
60388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60303 60390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_WAL
60304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || opcode==OP_Checkpoint
60391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Checkpoint:
60305 60392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
60306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
60307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->readOnly = 0;
60308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->bIsReader = 1;
60393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Vacuum:
60394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_JournalMode: {
60395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->readOnly = 0;
60396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->bIsReader = 1;
60397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60309 60399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
60310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_VUpdate ){
60311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOp->p2>nMaxArgs ) nMaxArgs = pOp->p2;
60312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_VFilter ){
60313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n;
60314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->nOp - i >= 3 );
60315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp[-1].opcode==OP_Integer );
60316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n = pOp[-1].p1;
60317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( n>nMaxArgs ) nMaxArgs = n;
60318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
60319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_Next || opcode==OP_SorterNext ){
60320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4.xAdvance = sqlite3BtreeNext;
60321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4type = P4_ADVANCE;
60322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( opcode==OP_Prev ){
60323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4.xAdvance = sqlite3BtreePrevious;
60324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4type = P4_ADVANCE;
60325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
60326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
60400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_VUpdate: {
60401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p2>nMaxArgs ) nMaxArgs = pOp->p2;
60402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_VFilter: {
60405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n;
60406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->nOp - i >= 3 );
60407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp[-1].opcode==OP_Integer );
60408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = pOp[-1].p1;
60409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n>nMaxArgs ) nMaxArgs = n;
60410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
60413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Next:
60414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_SorterNext: {
60415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->p4.xAdvance = sqlite3BtreeNext;
60416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->p4type = P4_ADVANCE;
60417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case OP_Prev: {
60420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->p4.xAdvance = sqlite3BtreePrevious;
60421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->p4type = P4_ADVANCE;
60422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
60423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
60425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
60426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->opflags = sqlite3OpcodeProperty[opcode];
60327 60427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pOp->opflags & OPFLG_JUMP)!=0 && pOp->p2<0 ){
60328 60428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( -1-pOp->p2<p->nLabel );
60329 60429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p2 = aLabel[-1-pOp->p2];
60330 60430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60331 60431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -60456,12 +60556,11 @@
60456 60556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
60457 60557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Change the P2 operand of instruction addr so that it points to
60458 60558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the address of the next instruction to be coded.
60459 60559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
60460 60560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeJumpHere(Vdbe *p, int addr){
60461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( addr>=0 || p->db->mallocFailed );
60462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( addr>=0 ) sqlite3VdbeChangeP2(p, addr, p->nOp);
60561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(addr>=0) ) sqlite3VdbeChangeP2(p, addr, p->nOp);
60463 60562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60464 60563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60465 60564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60466 60565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
60467 60566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the input FuncDef structure is ephemeral, then free it. If
@@ -60493,17 +60592,10 @@
60493 60592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60494 60593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_MPRINTF: {
60495 60594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->pnBytesFreed==0 ) sqlite3_free(p4);
60496 60595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
60497 60596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case P4_VDBEFUNC: {
60499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFunc *pVdbeFunc = (VdbeFunc *)p4;
60500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- freeEphemeralFunction(db, pVdbeFunc->pFunc);
60501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db->pnBytesFreed==0 ) sqlite3VdbeDeleteAuxData(pVdbeFunc, 0);
60502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, pVdbeFunc);
60503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
60504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
60505 60597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_FUNCDEF: {
60506 60598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
freeEphemeralFunction(db, (FuncDef*)p4);
60507 60599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
60508 60600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
60509 60601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_MEM: {
@@ -60618,24 +60710,17 @@
60618 60710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_INT32;
60619 60711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( zP4==0 ){
60620 60712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4.p = 0;
60621 60713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_NOTUSED;
60622 60714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( n==P4_KEYINFO ){
60623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- KeyInfo *pKeyInfo;
60624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nField, nByte;
60625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
60626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nField = ((KeyInfo*)zP4)->nField;
60627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nByte = sizeof(*pKeyInfo) + (nField-1)*sizeof(pKeyInfo->aColl[0]) + nField;
60628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo = sqlite3DbMallocRaw(0, nByte);
60629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4.pKeyInfo = pKeyInfo;
60630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pKeyInfo ){
60631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 *aSortOrder;
60632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy((char*)pKeyInfo, zP4, nByte - nField);
60633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aSortOrder = pKeyInfo->aSortOrder;
60634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( aSortOrder!=0 );
60635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo->aSortOrder = (unsigned char*)&pKeyInfo->aColl[nField];
60636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(pKeyInfo->aSortOrder, aSortOrder, nField);
60715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pOrig, *pNew;
60716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
60717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOrig = (KeyInfo*)zP4;
60718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOp->p4.pKeyInfo = pNew = sqlite3KeyInfoAlloc(db, pOrig->nField);
60719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pNew ){
60720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(pNew->aColl, pOrig->aColl, pOrig->nField*sizeof(pNew->aColl[0]));
60721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(pNew->aSortOrder, pOrig->aSortOrder, pOrig->nField);
60637 60722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_KEYINFO;
60638 60723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
60639 60724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->db->mallocFailed = 1;
60640 60725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4type = P4_NOTUSED;
60641 60726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -61529,10 +61614,14 @@
61529 61614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( p->pDelFrame ){
61530 61615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeFrame *pDel = p->pDelFrame;
61531 61616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pDelFrame = pDel->pParent;
61532 61617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeFrameDelete(pDel);
61533 61618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
61619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
61620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Delete any auxdata allocations made by the VM */
61621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeDeleteAuxData(p, -1, 0);
61622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->pAuxData==0 );
61534 61623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
61535 61624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
61536 61625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
61537 61626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Clean up the VM after execution.
61538 61627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -61946,10 +62035,11 @@
61946 62035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the statement transaction is being rolled back, also restore the
61947 62036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database handles deferred constraint counter to the value it had when
61948 62037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the statement transaction was opened. */
61949 62038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( eOp==SAVEPOINT_ROLLBACK ){
61950 62039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nDeferredCons = p->nStmtDefCons;
62040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->nDeferredImmCons = p->nStmtDefImmCons;
61951 62041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
61952 62042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
61953 62043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
61954 62044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
61955 62045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -61964,11 +62054,13 @@
61964 62054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and write an error message to it. Then return SQLITE_ERROR.
61965 62055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
61966 62056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_FOREIGN_KEY
61967 62057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeCheckFk(Vdbe *p, int deferred){
61968 62058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = p->db;
61969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (deferred && db->nDeferredCons>0) || (!deferred && p->nFkConstraint>0) ){
62059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (deferred && (db->nDeferredCons+db->nDeferredImmCons)>0)
62060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (!deferred && p->nFkConstraint>0)
62061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
61970 62062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rc = SQLITE_CONSTRAINT_FOREIGNKEY;
61971 62063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->errorAction = OE_Abort;
61972 62064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SetString(&p->zErrMsg, db, "foreign key constraint failed");
61973 62065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_ERROR;
61974 62066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -62097,10 +62189,12 @@
62097 62189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( rc!=SQLITE_OK ){
62098 62190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rc = rc;
62099 62191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3RollbackAll(db, SQLITE_OK);
62100 62192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
62101 62193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nDeferredCons = 0;
62194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->nDeferredImmCons = 0;
62195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->flags &= ~SQLITE_DeferFKs;
62102 62196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CommitInternalChanges(db);
62103 62197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62104 62198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
62105 62199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3RollbackAll(db, SQLITE_OK);
62106 62200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -62322,24 +62416,39 @@
62322 62416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeDelete(p);
62323 62417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
62324 62418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62325 62419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62326 62420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
62327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Call the destructor for each auxdata entry in pVdbeFunc for which
62328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the corresponding bit in mask is clear. Auxdata entries beyond 31
62329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are always destroyed. To destroy all auxdata entries, call this
62330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** routine with mask==0.
62421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If parameter iOp is less than zero, then invoke the destructor for
62422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** all auxiliary data pointers currently cached by the VM passed as
62423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the first argument.
62424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
62425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Or, if iOp is greater than or equal to zero, then the destructor is
62426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** only invoked for those auxiliary data pointers created by the user
62427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function invoked by the OP_Function opcode at instruction iOp of
62428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** VM pVdbe, and only then if:
62429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
62430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the associated function parameter is the 32nd or later (counting
62431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** from left to right), or
62432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
62433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * the corresponding bit in argument mask is clear (where the first
62434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function parameter corrsponds to bit 0 etc.).
62331 62435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
62332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(VdbeFunc *pVdbeFunc, int mask){
62333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i;
62334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<pVdbeFunc->nAux; i++){
62335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct AuxData *pAux = &pVdbeFunc->apAux[i];
62336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (i>31 || !(mask&(((u32)1)<<i))) && pAux->pAux ){
62436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(Vdbe *pVdbe, int iOp, int mask){
62437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AuxData **pp = &pVdbe->pAuxData;
62438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( *pp ){
62439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AuxData *pAux = *pp;
62440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (iOp<0)
62441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (pAux->iOp==iOp && (pAux->iArg>31 || !(mask & ((u32)1<<pAux->iArg))))
62442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
62337 62443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAux->xDelete ){
62338 62444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAux->xDelete(pAux->pAux);
62339 62445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pAux->pAux = 0;
62446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pp = pAux->pNext;
62447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(pVdbe->db, pAux);
62448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
62449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pp= &pAux->pNext;
62341 62450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62342 62451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62343 62452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62344 62453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62345 62454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -62854,15 +62963,14 @@
62854 62963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
62855 62964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeRecordCompare(
62856 62965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nKey1, const void *pKey1, /* Left key */
62857 62966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UnpackedRecord *pPKey2 /* Right key */
62858 62967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
62859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int d1; /* Offset into aKey[] of next data element */
62968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 d1; /* Offset into aKey[] of next data element */
62860 62969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 idx1; /* Offset into aKey[] of next header element */
62861 62970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 szHdr1; /* Number of bytes in header */
62862 62971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i = 0;
62863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nField;
62864 62972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0;
62865 62973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *aKey1 = (const unsigned char *)pKey1;
62866 62974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKeyInfo;
62867 62975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem mem1;
62868 62976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -62881,32 +62989,42 @@
62881 62989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
62882 62990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* mem1.u.i = 0; // not needed, here to silence compiler warning */
62883 62991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62884 62992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idx1 = getVarint32(aKey1, szHdr1);
62885 62993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
d1 = szHdr1;
62886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nField = pKeyInfo->nField;
62994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pKeyInfo->nField+1>=pPKey2->nField );
62887 62995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pKeyInfo->aSortOrder!=0 );
62888 62996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( idx1<szHdr1 && i<pPKey2->nField ){
62889 62997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 serial_type1;
62890 62998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62891 62999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Read the serial types for the next element in each key. */
62892 63000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idx1 += getVarint32( aKey1+idx1, serial_type1 );
62893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( d1>=nKey1 && sqlite3VdbeSerialTypeLen(serial_type1)>0 ) break;
63001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
63002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Verify that there is enough key space remaining to avoid
63003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a buffer overread. The "d1+serial_type1+2" subexpression will
63004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** always be greater than or equal to the amount of required key space.
63005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Use that approximation to avoid the more expensive call to
63006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3VdbeSerialTypeLen() in the common case.
63007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
63008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( d1+serial_type1+2>(u32)nKey1
63009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && d1+sqlite3VdbeSerialTypeLen(serial_type1)>(u32)nKey1
63010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
63011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
63012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
62894 63013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62895 63014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Extract the values to be compared.
62896 63015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
62897 63016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
d1 += sqlite3VdbeSerialGet(&aKey1[d1], serial_type1, &mem1);
62898 63017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62899 63018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do the comparison
62900 63019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
62901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3MemCompare(&mem1, &pPKey2->aMem[i],
62902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i<nField ? pKeyInfo->aColl[i] : 0);
63020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3MemCompare(&mem1, &pPKey2->aMem[i], pKeyInfo->aColl[i]);
62903 63021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=0 ){
62904 63022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( mem1.zMalloc==0 ); /* See comment below */
62905 63023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62906 63024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Invert the result if we are using DESC sort order. */
62907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( i<nField && pKeyInfo->aSortOrder[i] ){
63025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pKeyInfo->aSortOrder[i] ){
62908 63026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = -rc;
62909 63027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
62910 63028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62911 63029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the PREFIX_SEARCH flag is set and all fields except the final
62912 63030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** rowid field were equal, then clear the PREFIX_SEARCH flag and set
@@ -63117,11 +63235,11 @@
63117 63235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 0 instead. Unless it is NULL, apply affinity aff (one of the SQLITE_AFF_*
63118 63236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** constants) to the value before returning it.
63119 63237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
63120 63238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The returned value must be freed by the caller using sqlite3ValueFree().
63121 63239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
63122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetValue(Vdbe *v, int iVar, u8 aff){
63240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff){
63123 63241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( iVar>0 );
63124 63242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( v ){
63125 63243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pMem = &v->aVar[iVar-1];
63126 63244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==(pMem->flags & MEM_Null) ){
63127 63245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value *pRet = sqlite3ValueNew(v->db);
@@ -63536,11 +63654,13 @@
63536 63654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
63537 63655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->nVdbeActive==0 ){
63538 63656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->u1.isInterrupted = 0;
63539 63657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
63540 63658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( db->nVdbeWrite>0 || db->autoCommit==0 || db->nDeferredCons==0 );
63659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db->nVdbeWrite>0 || db->autoCommit==0
63660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (db->nDeferredCons==0 && db->nDeferredImmCons==0)
63661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
63542 63662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63543 63663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TRACE
63544 63664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->xProfile && !db->init.busy ){
63545 63665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsCurrentTimeInt64(db->pVfs, &p->startTime);
63546 63666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -63732,18 +63852,18 @@
63732 63852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
63733 63853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the auxilary data pointer, if any, for the iArg'th argument to
63734 63854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the user-function defined by pCtx.
63735 63855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
63736 63856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API void *sqlite3_get_auxdata(sqlite3_context *pCtx, int iArg){
63737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFunc *pVdbeFunc;
63857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AuxData *pAuxData;
63738 63858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63739 63859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_held(pCtx->s.db->mutex) );
63740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVdbeFunc = pCtx->pVdbeFunc;
63741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pVdbeFunc || iArg>=pVdbeFunc->nAux || iArg<0 ){
63742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
63860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pAuxData=pCtx->pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNext){
63861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAuxData->iOp==pCtx->iOp && pAuxData->iArg==iArg ) break;
63743 63862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
63744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return pVdbeFunc->apAux[iArg].pAux;
63863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
63864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (pAuxData ? pAuxData->pAux : 0);
63745 63865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
63746 63866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63747 63867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
63748 63868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Set the auxilary data pointer and delete function, for the iArg'th
63749 63869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument to the user-function defined by pCtx. Any previous value is
@@ -63753,33 +63873,30 @@
63753 63873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_context *pCtx,
63754 63874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iArg,
63755 63875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pAux,
63756 63876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xDelete)(void*)
63757 63877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
63758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct AuxData *pAuxData;
63759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFunc *pVdbeFunc;
63760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iArg<0 ) goto failed;
63878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AuxData *pAuxData;
63879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *pVdbe = pCtx->pVdbe;
63761 63880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63762 63881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_held(pCtx->s.db->mutex) );
63763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVdbeFunc = pCtx->pVdbeFunc;
63764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pVdbeFunc || pVdbeFunc->nAux<=iArg ){
63765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nAux = (pVdbeFunc ? pVdbeFunc->nAux : 0);
63766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nMalloc = sizeof(VdbeFunc) + sizeof(struct AuxData)*iArg;
63767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVdbeFunc = sqlite3DbRealloc(pCtx->s.db, pVdbeFunc, nMalloc);
63768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pVdbeFunc ){
63769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto failed;
63770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
63771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCtx->pVdbeFunc = pVdbeFunc;
63772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&pVdbeFunc->apAux[nAux], 0, sizeof(struct AuxData)*(iArg+1-nAux));
63773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVdbeFunc->nAux = iArg+1;
63774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVdbeFunc->pFunc = pCtx->pFunc;
63775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
63776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
63777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pAuxData = &pVdbeFunc->apAux[iArg];
63778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pAuxData->pAux && pAuxData->xDelete ){
63882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iArg<0 ) goto failed;
63883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
63884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pAuxData=pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNext){
63885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAuxData->iOp==pCtx->iOp && pAuxData->iArg==iArg ) break;
63886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
63887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pAuxData==0 ){
63888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAuxData = sqlite3DbMallocZero(pVdbe->db, sizeof(AuxData));
63889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pAuxData ) goto failed;
63890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAuxData->iOp = pCtx->iOp;
63891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAuxData->iArg = iArg;
63892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAuxData->pNext = pVdbe->pAuxData;
63893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pVdbe->pAuxData = pAuxData;
63894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pAuxData->xDelete ){
63779 63895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAuxData->xDelete(pAuxData->pAux);
63780 63896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
63897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
63781 63898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAuxData->pAux = pAux;
63782 63899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAuxData->xDelete = xDelete;
63783 63900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
63784 63901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63785 63902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
failed:
@@ -65384,16 +65501,15 @@
65384 65501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Op *pOp; /* Current operation */
65385 65502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK; /* Value to return */
65386 65503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = p->db; /* The database */
65387 65504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 resetSchemaOnFault = 0; /* Reset schema after an error if positive */
65388 65505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 encoding = ENC(db); /* The database encoding */
65389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_PROGRESS_CALLBACK
65390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int checkProgress; /* True if progress callbacks are enabled */
65391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nProgressOps = 0; /* Opcodes executed since progress callback. */
65392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
65393 65506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCompare = 0; /* Result of last OP_Compare operation */
65394 65507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned nVmStep = 0; /* Number of virtual machine steps */
65508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_PROGRESS_CALLBACK
65509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned nProgressLimit = 0;/* Invoke xProgress() when nVmStep reaches this */
65510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
65395 65511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *aMem = p->aMem; /* Copy of p->aMem */
65396 65512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pIn1 = 0; /* 1st input operand */
65397 65513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pIn2 = 0; /* 2nd input operand */
65398 65514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pIn3 = 0; /* 3rd input operand */
65399 65515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pOut = 0; /* Output operand */
@@ -65848,11 +65964,19 @@
65848 65964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pResultSet = 0;
65849 65965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->busyHandler.nBusy = 0;
65850 65966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CHECK_FOR_INTERRUPT;
65851 65967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeIOTraceSql(p);
65852 65968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_PROGRESS_CALLBACK
65853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkProgress = db->xProgress!=0;
65969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->xProgress ){
65970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( 0 < db->nProgressOps );
65971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nProgressLimit = (unsigned)p->aCounter[SQLITE_STMTSTATUS_VM_STEP-1];
65972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nProgressLimit==0 ){
65973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nProgressLimit = db->nProgressOps;
65974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
65975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nProgressLimit %= (unsigned)db->nProgressOps;
65976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
65977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
65854 65978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
65855 65979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
65856 65980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BeginBenignMalloc();
65857 65981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pc==0 && (p->db->flags & SQLITE_VdbeListing)!=0 ){
65858 65982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
@@ -65895,31 +66019,10 @@
65895 66019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_interrupt_count--;
65896 66020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3_interrupt_count==0 ){
65897 66021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_interrupt(db);
65898 66022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65899 66023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
65901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
65902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_PROGRESS_CALLBACK
65903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Call the progress callback if it is configured and the required number
65904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of VDBE ops have been executed (either since this invocation of
65905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3VdbeExec() or since last time the progress callback was called).
65906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the progress callback returns non-zero, exit the virtual machine with
65907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a return code SQLITE_ABORT.
65908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
65909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( checkProgress ){
65910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db->nProgressOps==nProgressOps ){
65911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int prc;
65912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- prc = db->xProgress(db->pProgressArg);
65913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( prc!=0 ){
65914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_INTERRUPT;
65915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto vdbe_error_halt;
65916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
65917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nProgressOps = 0;
65918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
65919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nProgressOps++;
65920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
65921 66024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
65922 66025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
65923 66026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* On any opcode with the "out2-prerelease" tag, free any
65924 66027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** external allocations out of mem[p2] and set mem[p2] to be
65925 66028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an undefined integer. Opcodes will either fill in the integer
@@ -66010,12 +66113,44 @@
66010 66113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The next instruction executed will be
66011 66114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the one at index P2 from the beginning of
66012 66115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the program.
66013 66116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
66014 66117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Goto: { /* jump */
66015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CHECK_FOR_INTERRUPT;
66016 66118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pc = pOp->p2 - 1;
66119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
66120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcodes that are used as the bottom of a loop (OP_Next, OP_Prev,
66121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OP_VNext, OP_RowSetNext, or OP_SorterNext) all jump here upon
66122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** completion. Check to see if sqlite3_interrupt() has been called
66123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or if the progress callback needs to be invoked.
66124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
66125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This code uses unstructured "goto" statements and does not look clean.
66126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** But that is not due to sloppy coding habits. The code is written this
66127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** way for performance, to avoid having to run the interrupt and progress
66128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** checks on every opcode. This helps sqlite3_step() to run about 1.5%
66129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** faster according to "valgrind --tool=cachegrind" */
66130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ check_for_interrupt:
66131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CHECK_FOR_INTERRUPT;
66132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_PROGRESS_CALLBACK
66133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Call the progress callback if it is configured and the required number
66134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of VDBE ops have been executed (either since this invocation of
66135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3VdbeExec() or since last time the progress callback was called).
66136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the progress callback returns non-zero, exit the virtual machine with
66137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a return code SQLITE_ABORT.
66138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
66139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->xProgress!=0 && nVmStep>=nProgressLimit ){
66140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int prc;
66141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ prc = db->xProgress(db->pProgressArg);
66142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( prc!=0 ){
66143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_INTERRUPT;
66144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto vdbe_error_halt;
66145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
66146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->xProgress!=0 ){
66147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nProgressLimit = nVmStep + db->nProgressOps - (nVmStep%db->nProgressOps);
66148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
66149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
66150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
66151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
66017 66152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
66018 66153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
66019 66154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66020 66155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: Gosub P1 P2 * * *
66021 66156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -66132,11 +66267,11 @@
66132 66267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_BUSY || rc==SQLITE_OK || rc==SQLITE_ERROR );
66133 66268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_BUSY ){
66134 66269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rc = rc = SQLITE_BUSY;
66135 66270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
66136 66271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT );
66137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( rc==SQLITE_OK || db->nDeferredCons>0 );
66272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( rc==SQLITE_OK || db->nDeferredCons>0 || db->nDeferredImmCons>0 );
66138 66273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = p->rc ? SQLITE_ERROR : SQLITE_DONE;
66139 66274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
66140 66275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto vdbe_return;
66141 66276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
66142 66277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -66694,23 +66829,18 @@
66694 66829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Deephemeralize(u.ai.pArg);
66695 66830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemStoreType(u.ai.pArg);
66696 66831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
REGISTER_TRACE(pOp->p2+u.ai.i, u.ai.pArg);
66697 66832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
66698 66833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOp->p4type==P4_FUNCDEF || pOp->p4type==P4_VDBEFUNC );
66700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOp->p4type==P4_FUNCDEF ){
66701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ai.ctx.pFunc = pOp->p4.pFunc;
66702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ai.ctx.pVdbeFunc = 0;
66703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
66704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ai.ctx.pVdbeFunc = (VdbeFunc*)pOp->p4.pVdbeFunc;
66705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ai.ctx.pFunc = u.ai.ctx.pVdbeFunc->pFunc;
66706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
66707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
66834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p4type==P4_FUNCDEF );
66835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u.ai.ctx.pFunc = pOp->p4.pFunc;
66708 66836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.ai.ctx.s.flags = MEM_Null;
66709 66837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.ai.ctx.s.db = db;
66710 66838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.ai.ctx.s.xDel = 0;
66711 66839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.ai.ctx.s.zMalloc = 0;
66840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u.ai.ctx.iOp = pc;
66841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u.ai.ctx.pVdbe = p;
66712 66842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66713 66843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The output cell may already have a buffer allocated. Move
66714 66844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the pointer to u.ai.ctx.s so in case the user-function can use
66715 66845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the already allocated buffer instead of allocating a new one.
66716 66846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -66729,15 +66859,11 @@
66729 66859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lastRowid = db->lastRowid;
66730 66860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66731 66861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If any auxiliary data functions have been called by this user function,
66732 66862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** immediately call the destructor for any non-static values.
66733 66863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
66734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( u.ai.ctx.pVdbeFunc ){
66735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeDeleteAuxData(u.ai.ctx.pVdbeFunc, pOp->p1);
66736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4.pVdbeFunc = u.ai.ctx.pVdbeFunc;
66737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOp->p4type = P4_VDBEFUNC;
66738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
66864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeDeleteAuxData(p, pc, pOp->p1);
66739 66865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66740 66866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed ){
66741 66867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Even though a malloc() has failed, the implementation of the
66742 66868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** user function may have called an sqlite3_result_XXX() function
66743 66869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to return a value. The following call releases any resources
@@ -68028,10 +68154,11 @@
68028 68154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68029 68155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Link the new savepoint into the database handle's list. */
68030 68156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.as.pNew->pNext = db->pSavepoint;
68031 68157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pSavepoint = u.as.pNew;
68032 68158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.as.pNew->nDeferredCons = db->nDeferredCons;
68159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u.as.pNew->nDeferredImmCons = db->nDeferredImmCons;
68033 68160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68034 68161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68035 68162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
68036 68163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.as.iSavepoint = 0;
68037 68164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -68115,10 +68242,11 @@
68115 68242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isTransaction ){
68116 68243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nSavepoint--;
68117 68244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68118 68245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
68119 68246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nDeferredCons = u.as.pSavepoint->nDeferredCons;
68247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->nDeferredImmCons = u.as.pSavepoint->nDeferredImmCons;
68120 68248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68121 68249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68122 68250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !isTransaction ){
68123 68251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VtabSavepoint(db, u.as.p1, u.as.iSavepoint);
68124 68252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ) goto abort_due_to_error;
@@ -68244,10 +68372,14 @@
68244 68372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68245 68373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->bIsReader );
68246 68374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->readOnly==0 || pOp->p2==0 );
68247 68375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p1>=0 && pOp->p1<db->nDb );
68248 68376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (p->btreeMask & (((yDbMask)1)<<pOp->p1))!=0 );
68377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOp->p2 && (db->flags & SQLITE_QueryOnly)!=0 ){
68378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_READONLY;
68379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto abort_due_to_error;
68380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
68249 68381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.au.pBt = db->aDb[pOp->p1].pBt;
68250 68382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68251 68383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.au.pBt ){
68252 68384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3BtreeBeginTrans(u.au.pBt, pOp->p2);
68253 68385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_BUSY ){
@@ -68276,10 +68408,11 @@
68276 68408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68277 68409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Store the current value of the database handles deferred constraint
68278 68410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** counter. If the statement transaction needs to be rolled back,
68279 68411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the value of this counter needs to be restored too. */
68280 68412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nStmtDefCons = db->nDeferredCons;
68413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nStmtDefImmCons = db->nDeferredImmCons;
68281 68414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68282 68415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68283 68416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
68284 68417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68285 68418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -69851,11 +69984,10 @@
69851 69984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if 0 /* local variables moved into u.br */
69852 69985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeCursor *pC;
69853 69986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int res;
69854 69987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* local variables moved into u.br */
69855 69988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
69856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CHECK_FOR_INTERRUPT;
69857 69989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
69858 69990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->p5<=ArraySize(p->aCounter) );
69859 69991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.br.pC = p->apCsr[pOp->p1];
69860 69992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.br.pC==0 ){
69861 69993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break; /* See ticket #2273 */
@@ -69880,11 +70012,11 @@
69880 70012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_TEST
69881 70013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_search_count++;
69882 70014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
69883 70015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
69884 70016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.br.pC->rowidIsValid = 0;
69885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
70017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto check_for_interrupt;
69886 70018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
69887 70019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
69888 70020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: IdxInsert P1 P2 P3 * P5
69889 70021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
69890 70022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Register P2 holds an SQL index key made using the
@@ -70426,11 +70558,11 @@
70426 70558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
70427 70559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_RowSetRead: { /* jump, in1, out3 */
70428 70560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if 0 /* local variables moved into u.cb */
70429 70561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 val;
70430 70562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* local variables moved into u.cb */
70431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CHECK_FOR_INTERRUPT;
70563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
70432 70564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIn1 = &aMem[pOp->p1];
70433 70565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pIn1->flags & MEM_RowSet)==0
70434 70566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| sqlite3RowSetNext(pIn1->u.pRowSet, &u.cb.val)==0
70435 70567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
70436 70568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The boolean index is empty */
@@ -70438,11 +70570,11 @@
70438 70570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pc = pOp->p2 - 1;
70439 70571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
70440 70572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A value was pulled from the index */
70441 70573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemSetInt64(&aMem[pOp->p3], u.cb.val);
70442 70574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
70575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto check_for_interrupt;
70444 70576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70445 70577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
70446 70578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: RowSetTest P1 P2 P3 P4
70447 70579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
70448 70580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Register P3 is assumed to hold a 64-bit integer value. If register P1
@@ -70658,11 +70790,13 @@
70658 70790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If P1 is non-zero, the database constraint counter is incremented
70659 70791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (deferred foreign key constraints). Otherwise, if P1 is zero, the
70660 70792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** statement counter is incremented (immediate foreign key constraints).
70661 70793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
70662 70794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_FkCounter: {
70663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOp->p1 ){
70795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->flags & SQLITE_DeferFKs ){
70796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->nDeferredImmCons += pOp->p2;
70797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pOp->p1 ){
70664 70798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nDeferredCons += pOp->p2;
70665 70799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
70666 70800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nFkConstraint += pOp->p2;
70667 70801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70668 70802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -70679,13 +70813,13 @@
70679 70813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** zero, the jump is taken if the statement constraint-counter is zero
70680 70814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (immediate foreign key constraint violations).
70681 70815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
70682 70816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_FkIfZero: { /* jump */
70683 70817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOp->p1 ){
70684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db->nDeferredCons==0 ) pc = pOp->p2-1;
70818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->nDeferredCons==0 && db->nDeferredImmCons==0 ) pc = pOp->p2-1;
70685 70819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
70686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nFkConstraint==0 ) pc = pOp->p2-1;
70820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nFkConstraint==0 && db->nDeferredImmCons==0 ) pc = pOp->p2-1;
70687 70821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70688 70822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
70689 70823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70690 70824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* #ifndef SQLITE_OMIT_FOREIGN_KEY */
70691 70825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -71367,11 +71501,11 @@
71367 71501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71368 71502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !u.cp.res ){
71369 71503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there is data, jump to P2 */
71370 71504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pc = pOp->p2 - 1;
71371 71505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
71506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto check_for_interrupt;
71373 71507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71374 71508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_VIRTUALTABLE */
71375 71509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71376 71510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
71377 71511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Opcode: VRename P1 * * P4 *
@@ -74092,15 +74226,24 @@
74092 74226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Translate the schema name in zDb into a pointer to the corresponding
74093 74227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** schema. If not found, pSchema will remain NULL and nothing will match
74094 74228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** resulting in an appropriate error message toward the end of this routine
74095 74229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
74096 74230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zDb ){
74097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<db->nDb; i++){
74098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( db->aDb[i].zName );
74099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3StrICmp(db->aDb[i].zName,zDb)==0 ){
74100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pSchema = db->aDb[i].pSchema;
74101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
74231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pNC->ncFlags & NC_PartIdx );
74232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pNC->ncFlags & NC_IsCheck );
74233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pNC->ncFlags & (NC_PartIdx|NC_IsCheck))!=0 ){
74234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Silently ignore database qualifiers inside CHECK constraints and partial
74235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** indices. Do not raise errors because that might break legacy and
74236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** because it does not hurt anything to just ignore the database name. */
74237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDb = 0;
74238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
74239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<db->nDb; i++){
74240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db->aDb[i].zName );
74241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3StrICmp(db->aDb[i].zName,zDb)==0 ){
74242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSchema = db->aDb[i].pSchema;
74243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
74244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
74102 74245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74103 74246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74104 74247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74105 74248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74106 74249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Start at the inner-most context and move outward until a match is found */
@@ -74373,10 +74516,43 @@
74373 74516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74374 74517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprSetProperty(p, EP_Resolved);
74375 74518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74376 74519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return p;
74377 74520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
74522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
74523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Report an error that an expression is not valid for a partial index WHERE
74524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** clause.
74525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
74526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void notValidPartIdxWhere(
74527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Leave error message here */
74528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ NameContext *pNC, /* The name context */
74529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zMsg /* Type of error */
74530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
74531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pNC->ncFlags & NC_PartIdx)!=0 ){
74532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse, "%s prohibited in partial index WHERE clauses",
74533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zMsg);
74534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
74535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
74536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
74537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_CHECK
74538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
74539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Report an error that an expression is not valid for a CHECK constraint.
74540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
74541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void notValidCheckConstraint(
74542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Leave error message here */
74543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ NameContext *pNC, /* The name context */
74544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zMsg /* Type of error */
74545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
74546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pNC->ncFlags & NC_IsCheck)!=0 ){
74547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse,"%s prohibited in CHECK constraints", zMsg);
74548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
74549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
74550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
74551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define notValidCheckConstraint(P,N,M)
74552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
74553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
74378 74554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74379 74555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
74380 74556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine is callback for sqlite3WalkExpr().
74381 74557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
74382 74558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Resolve symbolic names into TK_COLUMN operators for the current
@@ -74473,10 +74649,11 @@
74473 74649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FuncDef *pDef; /* Information about the function */
74474 74650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 enc = ENC(pParse->db); /* The database encoding */
74475 74651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74476 74652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pExpr->op==TK_CONST_FUNC );
74477 74653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
74654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notValidPartIdxWhere(pParse, pNC, "functions");
74478 74655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zId = pExpr->u.zToken;
74479 74656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nId = sqlite3Strlen30(zId);
74480 74657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0);
74481 74658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pDef==0 ){
74482 74659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pDef = sqlite3FindFunction(pParse->db, zId, nId, -2, enc, 0);
@@ -74538,31 +74715,25 @@
74538 74715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
74539 74716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_IN: {
74540 74717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pExpr->op==TK_IN );
74541 74718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pExpr, EP_xIsSelect) ){
74542 74719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nRef = pNC->nRef;
74543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_CHECK
74544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (pNC->ncFlags & NC_IsCheck)!=0 ){
74545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ErrorMsg(pParse,"subqueries prohibited in CHECK constraints");
74546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
74547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
74720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notValidCheckConstraint(pParse, pNC, "subqueries");
74721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notValidPartIdxWhere(pParse, pNC, "subqueries");
74548 74722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3WalkSelect(pWalker, pExpr->x.pSelect);
74549 74723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pNC->nRef>=nRef );
74550 74724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nRef!=pNC->nRef ){
74551 74725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprSetProperty(pExpr, EP_VarSelect);
74552 74726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74553 74727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74554 74728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
74555 74729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_CHECK
74557 74730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_VARIABLE: {
74558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (pNC->ncFlags & NC_IsCheck)!=0 ){
74559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ErrorMsg(pParse,"parameters prohibited in CHECK constraints");
74560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
74731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notValidCheckConstraint(pParse, pNC, "parameters");
74732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notValidPartIdxWhere(pParse, pNC, "parameters");
74561 74733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
74562 74734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
74564 74735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74565 74736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (pParse->nErr || pParse->db->mallocFailed) ? WRC_Abort : WRC_Continue;
74566 74737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74567 74738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74568 74739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -74649,11 +74820,11 @@
74649 74820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Try to match the ORDER BY expression against an expression
74650 74821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the result set. Return an 1-based index of the matching
74651 74822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** result-set entry.
74652 74823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
74653 74824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<pEList->nExpr; i++){
74654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprCompare(pEList->a[i].pExpr, pE)<2 ){
74825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pEList->a[i].pExpr, pE, -1)<2 ){
74655 74826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return i+1;
74656 74827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74657 74828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74658 74829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74659 74830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If no match, return 0. */
@@ -74877,11 +75048,11 @@
74877 75048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->iOrderByCol = 0;
74878 75049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ResolveExprNames(pNC, pE) ){
74879 75050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
74880 75051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74881 75052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<pSelect->pEList->nExpr; j++){
74882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprCompare(pE, pSelect->pEList->a[j].pExpr)==0 ){
75053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pE, pSelect->pEList->a[j].pExpr, -1)==0 ){
74883 75054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->iOrderByCol = j+1;
74884 75055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74885 75056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74886 75057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74887 75058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3ResolveOrderGroupBy(pParse, pSelect, pOrderBy, zType);
@@ -75183,10 +75354,52 @@
75183 75354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.xSelectCallback = resolveSelectStep;
75184 75355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.pParse = pParse;
75185 75356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.u.pNC = pOuterNC;
75186 75357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3WalkSelect(&w, p);
75187 75358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
75360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
75361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Resolve names in expressions that can only reference a single table:
75362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
75363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * CHECK constraints
75364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * WHERE clauses on partial indices
75365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
75366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The Expr.iTable value for Expr.op==TK_COLUMN nodes of the expression
75367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is set to -1 and the Expr.iColumn value is set to the column number.
75368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
75369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Any errors cause an error message to be set in pParse.
75370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
75371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3ResolveSelfReference(
75372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Parsing context */
75373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Table *pTab, /* The table being referenced */
75374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int type, /* NC_IsCheck or NC_PartIdx */
75375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pExpr, /* Expression to resolve. May be NULL. */
75376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ExprList *pList /* Expression list to resolve. May be NUL. */
75377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
75378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SrcList sSrc; /* Fake SrcList for pParse->pNewTable */
75379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ NameContext sNC; /* Name context for pParse->pNewTable */
75380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i; /* Loop counter */
75381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
75382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( type==NC_IsCheck || type==NC_PartIdx );
75383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&sNC, 0, sizeof(sNC));
75384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&sSrc, 0, sizeof(sSrc));
75385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSrc.nSrc = 1;
75386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSrc.a[0].zName = pTab->zName;
75387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSrc.a[0].pTab = pTab;
75388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSrc.a[0].iCursor = -1;
75389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.pParse = pParse;
75390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.pSrcList = &sSrc;
75391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sNC.ncFlags = type;
75392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ResolveExprNames(&sNC, pExpr) ) return;
75393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pList ){
75394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<pList->nExpr; i++){
75395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ResolveExprNames(&sNC, pList->a[i].pExpr) ){
75396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
75397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
75398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
75399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
75400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
75188 75401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
75189 75402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of resolve.c *********************************************/
75190 75403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file expr.c ********************************************/
75191 75404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
75192 75405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2001 September 15
@@ -76879,14 +77092,13 @@
76879 77092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
76880 77093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76881 77094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( pExpr->op ){
76882 77095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_IN: {
76883 77096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char affinity; /* Affinity of the LHS of the IN */
76884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- KeyInfo keyInfo; /* Keyinfo for the generated table */
76885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static u8 sortOrder = 0; /* Fake aSortOrder for keyInfo */
76886 77097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addr; /* Address of OP_OpenEphemeral instruction */
76887 77098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pLeft = pExpr->pLeft; /* the LHS of the IN operator */
77099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo = 0; /* Key information */
76888 77100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76889 77101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rMayHaveNull ){
76890 77102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Null, 0, rMayHaveNull);
76891 77103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76892 77104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -76906,13 +77118,11 @@
76906 77118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is used.
76907 77119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
76908 77120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pExpr->iTable = pParse->nTab++;
76909 77121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pExpr->iTable, !isRowid);
76910 77122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rMayHaveNull==0 ) sqlite3VdbeChangeP5(v, BTREE_UNORDERED);
76911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&keyInfo, 0, sizeof(keyInfo));
76912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- keyInfo.nField = 1;
76913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- keyInfo.aSortOrder = &sortOrder;
77123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo = isRowid ? 0 : sqlite3KeyInfoAlloc(pParse->db, 1);
76914 77124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76915 77125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pExpr, EP_xIsSelect) ){
76916 77126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Case 1: expr IN (SELECT ...)
76917 77127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
76918 77128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate code to write the results of the select into the temporary
@@ -76925,15 +77135,16 @@
76925 77135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDestInit(&dest, SRT_Set, pExpr->iTable);
76926 77136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dest.affSdst = (u8)affinity;
76927 77137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pExpr->iTable&0x0000FFFF)==pExpr->iTable );
76928 77138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pExpr->x.pSelect->iLimit = 0;
76929 77139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3Select(pParse, pExpr->x.pSelect, &dest) ){
77140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(pParse->db, pKeyInfo);
76930 77141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
76931 77142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76932 77143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pEList = pExpr->x.pSelect->pEList;
76933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ALWAYS(pEList!=0 && pEList->nExpr>0) ){
76934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- keyInfo.aColl[0] = sqlite3BinaryCompareCollSeq(pParse, pExpr->pLeft,
77144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pKeyInfo && ALWAYS(pEList!=0 && pEList->nExpr>0) ){
77145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo->aColl[0] = sqlite3BinaryCompareCollSeq(pParse, pExpr->pLeft,
76935 77146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pEList->a[0].pExpr);
76936 77147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76937 77148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( ALWAYS(pExpr->x.pList!=0) ){
76938 77149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Case 2: expr IN (exprlist)
76939 77150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -76948,12 +77159,13 @@
76948 77159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int r1, r2, r3;
76949 77160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76950 77161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !affinity ){
76951 77162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
affinity = SQLITE_AFF_NONE;
76952 77163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- keyInfo.aColl[0] = sqlite3ExprCollSeq(pParse, pExpr->pLeft);
76954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- keyInfo.aSortOrder = &sortOrder;
77164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pKeyInfo ){
77165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo->aColl[0] = sqlite3ExprCollSeq(pParse, pExpr->pLeft);
77166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
76955 77167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76956 77168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Loop through each expression in <exprlist>. */
76957 77169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r1 = sqlite3GetTempReg(pParse);
76958 77170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r2 = sqlite3GetTempReg(pParse);
76959 77171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Null, 0, r2);
@@ -76988,12 +77200,12 @@
76988 77200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76989 77201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76990 77202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempReg(pParse, r1);
76991 77203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempReg(pParse, r2);
76992 77204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !isRowid ){
76994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP4(v, addr, (void *)&keyInfo, P4_KEYINFO);
77205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pKeyInfo ){
77206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO_HANDOFF);
76995 77207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76996 77208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
76997 77209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76998 77210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76999 77211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_EXISTS:
@@ -77549,19 +77761,24 @@
77549 77761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
77550 77762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
77551 77763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Otherwise, fall thru into the TK_COLUMN case */
77552 77764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
77553 77765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_COLUMN: {
77554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pExpr->iTable<0 ){
77555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* This only happens when coding check constraints */
77556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pParse->ckBase>0 );
77557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- inReg = pExpr->iColumn + pParse->ckBase;
77558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
77559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- inReg = sqlite3ExprCodeGetColumn(pParse, pExpr->pTab,
77560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->iColumn, pExpr->iTable, target,
77561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->op2);
77562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
77766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iTab = pExpr->iTable;
77767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iTab<0 ){
77768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pParse->ckBase>0 ){
77769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Generating CHECK constraints or inserting into partial index */
77770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ inReg = pExpr->iColumn + pParse->ckBase;
77771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
77772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
77773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Deleting from a partial index */
77774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iTab = pParse->iPartIdxTab;
77775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
77776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
77777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ inReg = sqlite3ExprCodeGetColumn(pParse, pExpr->pTab,
77778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->iColumn, iTab, target,
77779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->op2);
77563 77780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
77564 77781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
77565 77782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TK_INTEGER: {
77566 77783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
codeInteger(pParse, pExpr, 0, target);
77567 77784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -78980,10 +79197,16 @@
78980 79197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Do a deep comparison of two expression trees. Return 0 if the two
78981 79198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expressions are completely identical. Return 1 if they differ only
78982 79199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** by a COLLATE operator at the top level. Return 2 if there are differences
78983 79200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** other than the top-level COLLATE operator.
78984 79201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
79202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If any subelement of pB has Expr.iTable==(-1) then it is allowed
79203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to compare equal to an equivalent element in pA with Expr.iTable==iTab.
79204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
79205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The pA side might be using TK_REGISTER. If that is the case and pB is
79206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** not using TK_REGISTER but is otherwise equivalent, then still return 0.
79207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
78985 79208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Sometimes this routine will return 2 even if the two expressions
78986 79209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** really are equivalent. If we cannot prove that the expressions are
78987 79210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** identical, we return 2 just to be safe. So if this routine
78988 79211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** returns 2, then you do not really know for certain if the two
78989 79212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expressions are the same. But if you get a 0 or 1 return, then you
@@ -78990,33 +79213,36 @@
78990 79213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** can be sure the expressions are the same. In the places where
78991 79214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** this routine is used, it does not hurt to get an extra 2 - that
78992 79215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** just might result in some slightly slower code. But returning
78993 79216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an incorrect 0 or 1 could lead to a malfunction.
78994 79217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
78995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3ExprCompare(Expr *pA, Expr *pB){
79218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExprCompare(Expr *pA, Expr *pB, int iTab){
78996 79219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA==0||pB==0 ){
78997 79220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pB==pA ? 0 : 2;
78998 79221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78999 79222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasAnyProperty(pA, EP_TokenOnly|EP_Reduced) );
79000 79223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !ExprHasAnyProperty(pB, EP_TokenOnly|EP_Reduced) );
79001 79224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pA, EP_xIsSelect) || ExprHasProperty(pB, EP_xIsSelect) ){
79002 79225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 2;
79003 79226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79004 79227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pA->flags & EP_Distinct)!=(pB->flags & EP_Distinct) ) return 2;
79005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pA->op!=pB->op ){
79006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pA->op==TK_COLLATE && sqlite3ExprCompare(pA->pLeft, pB)<2 ){
79228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pA->op!=pB->op && (pA->op!=TK_REGISTER || pA->op2!=pB->op) ){
79229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pA->op==TK_COLLATE && sqlite3ExprCompare(pA->pLeft, pB, iTab)<2 ){
79007 79230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
79008 79231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pB->op==TK_COLLATE && sqlite3ExprCompare(pA, pB->pLeft)<2 ){
79232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pB->op==TK_COLLATE && sqlite3ExprCompare(pA, pB->pLeft, iTab)<2 ){
79010 79233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
79011 79234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79012 79235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 2;
79013 79236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprCompare(pA->pLeft, pB->pLeft) ) return 2;
79015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprCompare(pA->pRight, pB->pRight) ) return 2;
79016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprListCompare(pA->x.pList, pB->x.pList) ) return 2;
79017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pA->iTable!=pB->iTable || pA->iColumn!=pB->iColumn ) return 2;
79237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pA->pLeft, pB->pLeft, iTab) ) return 2;
79238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pA->pRight, pB->pRight, iTab) ) return 2;
79239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprListCompare(pA->x.pList, pB->x.pList, iTab) ) return 2;
79240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pA->iColumn!=pB->iColumn ) return 2;
79241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pA->iTable!=pB->iTable
79242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && pA->op!=TK_REGISTER
79243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (pA->iTable!=iTab || NEVER(pB->iTable>=0)) ) return 2;
79018 79244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pA, EP_IntValue) ){
79019 79245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !ExprHasProperty(pB, EP_IntValue) || pA->u.iValue!=pB->u.iValue ){
79020 79246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 2;
79021 79247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79022 79248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pA->op!=TK_COLUMN && ALWAYS(pA->op!=TK_AGG_COLUMN) && pA->u.zToken){
@@ -79030,28 +79256,70 @@
79030 79256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79031 79257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
79032 79258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Compare two ExprList objects. Return 0 if they are identical and
79033 79259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** non-zero if they differ in any way.
79034 79260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
79261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If any subelement of pB has Expr.iTable==(-1) then it is allowed
79262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to compare equal to an equivalent element in pA with Expr.iTable==iTab.
79263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
79035 79264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine might return non-zero for equivalent ExprLists. The
79036 79265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** only consequence will be disabled optimizations. But this routine
79037 79266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** must never return 0 if the two ExprList objects are different, or
79038 79267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a malfunction will result.
79039 79268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
79040 79269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Two NULL pointers are considered to be the same. But a NULL pointer
79041 79270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** always differs from a non-NULL pointer.
79042 79271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
79043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList *pA, ExprList *pB){
79272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList *pA, ExprList *pB, int iTab){
79044 79273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
79045 79274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA==0 && pB==0 ) return 0;
79046 79275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA==0 || pB==0 ) return 1;
79047 79276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA->nExpr!=pB->nExpr ) return 1;
79048 79277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<pA->nExpr; i++){
79049 79278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pExprA = pA->a[i].pExpr;
79050 79279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pExprB = pB->a[i].pExpr;
79051 79280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pA->a[i].sortOrder!=pB->a[i].sortOrder ) return 1;
79052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprCompare(pExprA, pExprB) ) return 1;
79281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pExprA, pExprB, iTab) ) return 1;
79282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
79283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
79284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
79285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
79286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
79287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return true if we can prove the pE2 will always be true if pE1 is
79288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** true. Return false if we cannot complete the proof or if pE2 might
79289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be false. Examples:
79290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
79291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x==5 pE2: x==5 Result: true
79292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x>0 pE2: x==5 Result: false
79293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x=21 pE2: x=21 OR y=43 Result: true
79294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x!=123 pE2: x IS NOT NULL Result: true
79295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x!=?1 pE2: x IS NOT NULL Result: true
79296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x IS NULL pE2: x IS NOT NULL Result: false
79297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pE1: x IS ?2 pE2: x IS NOT NULL Reuslt: false
79298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
79299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When comparing TK_COLUMN nodes between pE1 and pE2, if pE2 has
79300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Expr.iTable<0 then assume a table number given by iTab.
79301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
79302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When in doubt, return false. Returning true might give a performance
79303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** improvement. Returning false might cause a performance reduction, but
79304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** it will always give the correct answer and is hence always safe.
79305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
79306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Expr *pE1, Expr *pE2, int iTab){
79307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pE1, pE2, iTab)==0 ){
79308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
79309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
79310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pE2->op==TK_OR
79311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (sqlite3ExprImpliesExpr(pE1, pE2->pLeft, iTab)
79312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || sqlite3ExprImpliesExpr(pE1, pE2->pRight, iTab) )
79313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
79314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
79315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
79316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pE2->op==TK_NOTNULL
79317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && sqlite3ExprCompare(pE1->pLeft, pE2->pLeft, iTab)==0
79318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (pE1->op!=TK_ISNULL && pE1->op!=TK_IS)
79319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
79320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
79053 79321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79054 79322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
79055 79323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79056 79324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79057 79325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -79232,11 +79500,11 @@
79232 79500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check to see if pExpr is a duplicate of another aggregate
79233 79501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function that is already in the pAggInfo structure
79234 79502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
79235 79503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct AggInfo_func *pItem = pAggInfo->aFunc;
79236 79504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<pAggInfo->nFunc; i++, pItem++){
79237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprCompare(pItem->pExpr, pExpr)==0 ){
79505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pItem->pExpr, pExpr, -1)==0 ){
79238 79506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
79239 79507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79240 79508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79241 79509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i>=pAggInfo->nFunc ){
79242 79510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* pExpr is original. Make a new entry in pAggInfo->aFunc[]
@@ -80649,10 +80917,11 @@
80649 80917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i; /* Loop counter */
80650 80918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int topOfLoop; /* The top of the loop */
80651 80919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int endOfLoop; /* The end of the loop */
80652 80920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int jZeroRows = -1; /* Jump from here if number of rows is zero */
80653 80921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iDb; /* Index of database containing pTab */
80922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 needTableCnt = 1; /* True to count the table */
80654 80923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regTabname = iMem++; /* Register containing table name */
80655 80924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regIdxname = iMem++; /* Register containing index name */
80656 80925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regStat1 = iMem++; /* The stat column of sqlite_stat1 */
80657 80926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT3
80658 80927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regNumEq = regStat1; /* Number of instances. Same as regStat1 */
@@ -80708,10 +80977,11 @@
80708 80977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKey;
80709 80978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrIfNot = 0; /* address of OP_IfNot */
80710 80979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *aChngAddr; /* Array of jump instruction addresses */
80711 80980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80712 80981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOnlyIdx && pOnlyIdx!=pIdx ) continue;
80982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->pPartIdxWhere==0 ) needTableCnt = 0;
80713 80983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeNoopComment((v, "Begin analysis of %s", pIdx->zName));
80714 80984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCol = pIdx->nColumn;
80715 80985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aChngAddr = sqlite3DbMallocRaw(db, sizeof(int)*nCol);
80716 80986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aChngAddr==0 ) continue;
80717 80987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKey = sqlite3IndexKeyinfo(pParse, pIdx);
@@ -80867,48 +81137,45 @@
80867 81137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If K==0 then no entry is made into the sqlite_stat1 table.
80868 81138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If K>0 then it is always the case the D>0 so division by zero
80869 81139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is never possible.
80870 81140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
80871 81141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_SCopy, iMem, regStat1);
80872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( jZeroRows<0 ){
80873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- jZeroRows = sqlite3VdbeAddOp1(v, OP_IfNot, iMem);
80874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
81142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jZeroRows = sqlite3VdbeAddOp1(v, OP_IfNot, iMem);
80875 81143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<nCol; i++){
80876 81144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_String8, 0, regTemp, 0, " ", 0);
80877 81145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Concat, regTemp, regStat1, regStat1);
80878 81146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Add, iMem, iMem+i+1, regTemp);
80879 81147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_AddImm, regTemp, -1);
80880 81148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Divide, iMem+i+1, regTemp, regTemp);
80881 81149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp1(v, OP_ToInt, regTemp);
80882 81150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Concat, regTemp, regStat1, regStat1);
80883 81151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->pPartIdxWhere!=0 ) sqlite3VdbeJumpHere(v, jZeroRows);
80884 81153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_MakeRecord, regTabname, 3, regRec, "aaa", 0);
80885 81154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_NewRowid, iStatCur, regNewRowid);
80886 81155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Insert, iStatCur, regRec, regNewRowid);
80887 81156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, OPFLAG_APPEND);
81157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->pPartIdxWhere==0 ) sqlite3VdbeJumpHere(v, jZeroRows);
80888 81158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80889 81159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If the table has no indices, create a single sqlite_stat1 entry
80891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** containing NULL as the index name and the row count as the content.
81160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Create a single sqlite_stat1 entry containing NULL as the index
81161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** name and the row count as the content.
80892 81162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
80893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pTab->pIndex==0 ){
81163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pOnlyIdx==0 && needTableCnt ){
80894 81164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_OpenRead, iIdxCur, pTab->tnum, iDb);
80895 81165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "%s", pTab->zName));
80896 81166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Count, iIdxCur, regStat1);
80897 81167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp1(v, OP_Close, iIdxCur);
80898 81168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jZeroRows = sqlite3VdbeAddOp1(v, OP_IfNot, regStat1);
80899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
80900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeJumpHere(v, jZeroRows);
80901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- jZeroRows = sqlite3VdbeAddOp0(v, OP_Goto);
80902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
80903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp2(v, OP_Null, 0, regIdxname);
80904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp4(v, OP_MakeRecord, regTabname, 3, regRec, "aaa", 0);
80905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp2(v, OP_NewRowid, iStatCur, regNewRowid);
80906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp3(v, OP_Insert, iStatCur, regRec, regNewRowid);
80907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP5(v, OPFLAG_APPEND);
80908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pParse->nMem<regRec ) pParse->nMem = regRec;
80909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeJumpHere(v, jZeroRows);
81169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, regIdxname);
81170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp4(v, OP_MakeRecord, regTabname, 3, regRec, "aaa", 0);
81171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_NewRowid, iStatCur, regNewRowid);
81172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Insert, iStatCur, regRec, regNewRowid);
81173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP5(v, OPFLAG_APPEND);
81174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, jZeroRows);
81175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
81176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pParse->nMem<regRec ) pParse->nMem = regRec;
80910 81177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80911 81178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80912 81179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80913 81180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
80914 81181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate code that will cause the most recent index analysis to
@@ -81087,12 +81354,14 @@
81087 81354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = 0;
81088 81355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( (c=z[0])>='0' && c<='9' ){
81089 81356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = v*10 + c - '0';
81090 81357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z++;
81091 81358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( i==0 ) pTable->nRowEst = v;
81093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pIndex==0 ) break;
81359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i==0 && (pIndex==0 || pIndex->pPartIdxWhere==0) ){
81360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( v>0 ) pTable->nRowEst = v;
81361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIndex==0 ) break;
81362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
81094 81363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->aiRowEst[i] = v;
81095 81364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( *z==' ' ) z++;
81096 81365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strcmp(z, "unordered")==0 ){
81097 81366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->bUnordered = 1;
81098 81367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -82528,10 +82797,11 @@
82528 82797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
82529 82798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void freeIndex(sqlite3 *db, Index *p){
82530 82799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_ANALYZE
82531 82800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DeleteIndexSamples(db, p);
82532 82801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
82802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, p->pPartIdxWhere);
82533 82803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p->zColAff);
82534 82804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p);
82535 82805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
82536 82806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
82537 82807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -83371,11 +83641,12 @@
83371 83641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "AUTOINCREMENT is only allowed on an "
83372 83642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"INTEGER PRIMARY KEY");
83373 83643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
83374 83644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
83375 83645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *p;
83376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = sqlite3CreateIndex(pParse, 0, 0, 0, pList, onError, 0, 0, sortOrder, 0);
83646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = sqlite3CreateIndex(pParse, 0, 0, 0, pList, onError, 0,
83647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, sortOrder, 0);
83377 83648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
83378 83649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->autoIndex = 2;
83379 83650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83380 83651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pList = 0;
83381 83652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -83666,30 +83937,11 @@
83666 83937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
83667 83938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_CHECK
83668 83939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Resolve names in all CHECK constraint expressions.
83669 83940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
83670 83941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pCheck ){
83671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SrcList sSrc; /* Fake SrcList for pParse->pNewTable */
83672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- NameContext sNC; /* Name context for pParse->pNewTable */
83673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ExprList *pList; /* List of all CHECK constraints */
83674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i; /* Loop counter */
83675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
83676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&sNC, 0, sizeof(sNC));
83677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&sSrc, 0, sizeof(sSrc));
83678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sSrc.nSrc = 1;
83679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sSrc.a[0].zName = p->zName;
83680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sSrc.a[0].pTab = p;
83681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sSrc.a[0].iCursor = -1;
83682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sNC.pParse = pParse;
83683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sNC.pSrcList = &sSrc;
83684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sNC.ncFlags = NC_IsCheck;
83685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pList = p->pCheck;
83686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<pList->nExpr; i++){
83687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ResolveExprNames(&sNC, pList->a[i].pExpr) ){
83688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return;
83689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
83690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
83942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ResolveSelfReference(pParse, p, NC_IsCheck, 0, p->pCheck);
83691 83943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83692 83944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* !defined(SQLITE_OMIT_CHECK) */
83693 83945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
83694 83946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the db->init.busy is 1 it means we are reading the SQL off the
83695 83947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "sqlite_master" or "sqlite_temp_master" table on the disk.
@@ -84537,10 +84789,11 @@
84537 84789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iIdx = pParse->nTab++; /* Btree cursor used for pIndex */
84538 84790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iSorter; /* Cursor opened by OpenSorter (if in use) */
84539 84791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addr1; /* Address of top of loop */
84540 84792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addr2; /* Address to jump to for next iteration */
84541 84793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tnum; /* Root page of index */
84794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iPartIdxLabel; /* Jump to this label to skip a row */
84542 84795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v; /* Generate code into this virtual machine */
84543 84796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKey; /* KeyInfo for index */
84544 84797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regRecord; /* Register holding assemblied index record */
84545 84798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pParse->db; /* The database connection */
84546 84799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iDb = sqlite3SchemaToIndex(db, pIndex->pSchema);
@@ -84576,12 +84829,13 @@
84576 84829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** records into the sorter. */
84577 84830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OpenTable(pParse, iTab, iDb, pTab, OP_OpenRead);
84578 84831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr1 = sqlite3VdbeAddOp2(v, OP_Rewind, iTab, 0);
84579 84832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regRecord = sqlite3GetTempReg(pParse);
84580 84833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
84581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3GenerateIndexKey(pParse, pIndex, iTab, regRecord, 1);
84834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3GenerateIndexKey(pParse, pIndex, iTab, regRecord, 1, &iPartIdxLabel);
84582 84835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_SorterInsert, iSorter, regRecord);
84836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, iPartIdxLabel);
84583 84837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Next, iTab, addr1+1);
84584 84838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr1);
84585 84839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr1 = sqlite3VdbeAddOp2(v, OP_SorterSort, iSorter, 0);
84586 84840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIndex->onError!=OE_None ){
84587 84841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j2 = sqlite3VdbeCurrentAddr(v) + 3;
@@ -84628,11 +84882,11 @@
84628 84882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Token *pName2, /* Second part of index name. May be NULL */
84629 84883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SrcList *pTblName, /* Table to index. Use pParse->pNewTable if 0 */
84630 84884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList, /* A list of columns to be indexed */
84631 84885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int onError, /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */
84632 84886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Token *pStart, /* The CREATE token that begins this statement */
84633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Token *pEnd, /* The ")" that closes the CREATE INDEX statement */
84887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pPIWhere, /* WHERE clause for partial indices */
84634 84888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int sortOrder, /* Sort order of primary key when pList==NULL */
84635 84889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ifNotExist /* Omit error if index already exists */
84636 84890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
84637 84891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pRet = 0; /* Pointer to return */
84638 84892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = 0; /* Table to be indexed */
@@ -84650,11 +84904,10 @@
84650 84904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct ExprList_item *pListItem; /* For looping over pList */
84651 84905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCol;
84652 84906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nExtra = 0;
84653 84907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zExtra;
84654 84908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
84655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pStart==0 || pEnd!=0 ); /* pEnd must be non-NULL if pStart is */
84656 84909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->nErr==0 ); /* Never called with prior errors */
84657 84910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed || IN_DECLARE_VTAB ){
84658 84911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto exit_create_index;
84659 84912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84660 84913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
@@ -84696,11 +84949,16 @@
84696 84949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(0);
84697 84950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84698 84951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab = sqlite3LocateTableItem(pParse, 0, &pTblName->a[0]);
84699 84952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db->mallocFailed==0 || pTab==0 );
84700 84953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTab==0 ) goto exit_create_index;
84701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( db->aDb[iDb].pSchema==pTab->pSchema );
84954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iDb==1 && db->aDb[iDb].pSchema!=pTab->pSchema ){
84955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ErrorMsg(pParse,
84956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "cannot create a TEMP index on non-TEMP table \"%s\"",
84957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->zName);
84958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto exit_create_index;
84959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
84702 84960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
84703 84961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pName==0 );
84704 84962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pStart==0 );
84705 84963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab = pParse->pNewTable;
84706 84964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pTab ) goto exit_create_index;
@@ -84845,10 +85103,15 @@
84845 85103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->nColumn = pList->nExpr;
84846 85104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->onError = (u8)onError;
84847 85105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->uniqNotNull = onError==OE_Abort;
84848 85106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->autoIndex = (u8)(pName==0);
84849 85107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex->pSchema = db->aDb[iDb].pSchema;
85108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pPIWhere ){
85109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ResolveSelfReference(pParse, pTab, NC_PartIdx, pPIWhere, 0);
85110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIndex->pPartIdxWhere = pPIWhere;
85111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pPIWhere = 0;
85112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
84850 85113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
84851 85114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
84852 85115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check to see if we should honor DESC requests on index columns
84853 85116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
84854 85117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pDb->pSchema->file_format>=4 ){
@@ -85000,11 +85263,11 @@
85000 85263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If pTblName==0 it means this index is generated as a primary key
85001 85264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or UNIQUE constraint of a CREATE TABLE statement. Since the table
85002 85265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** has just been created, it contains no data and the index initialization
85003 85266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** step can be skipped.
85004 85267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else{ /* if( db->init.busy==0 ) */
85268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( pParse->nErr==0 ){
85006 85269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v;
85007 85270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zStmt;
85008 85271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iMem = ++pParse->nMem;
85009 85272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85010 85273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = sqlite3GetVdbe(pParse);
@@ -85018,16 +85281,15 @@
85018 85281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85019 85282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Gather the complete text of the CREATE INDEX statement into
85020 85283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the zStmt variable
85021 85284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85022 85285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pStart ){
85023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pEnd!=0 );
85286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = (pParse->sLastToken.z - pName->z) + pParse->sLastToken.n;
85287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pName->z[n-1]==';' ) n--;
85024 85288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A named index with an explicit CREATE INDEX statement */
85025 85289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zStmt = sqlite3MPrintf(db, "CREATE%s INDEX %.*s",
85026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- onError==OE_None ? "" : " UNIQUE",
85027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (int)(pEnd->z - pName->z) + 1,
85028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pName->z);
85290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onError==OE_None ? "" : " UNIQUE", n, pName->z);
85029 85291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
85030 85292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* An automatic index created by a PRIMARY KEY or UNIQUE constraint */
85031 85293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* zStmt = sqlite3MPrintf(""); */
85032 85294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zStmt = 0;
85033 85295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -85079,14 +85341,12 @@
85079 85341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pIndex = 0;
85080 85342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85081 85343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85082 85344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Clean up before exiting */
85083 85345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
exit_create_index:
85084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pIndex ){
85085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, pIndex->zColAff);
85086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, pIndex);
85087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
85346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIndex ) freeIndex(db, pIndex);
85347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, pPIWhere);
85088 85348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, pList);
85089 85349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SrcListDelete(db, pTblName);
85090 85350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zName);
85091 85351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pRet;
85092 85352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -85960,29 +86220,24 @@
85960 86220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the error.
85961 86221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85962 86222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE KeyInfo *sqlite3IndexKeyinfo(Parse *pParse, Index *pIdx){
85963 86223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
85964 86224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCol = pIdx->nColumn;
85965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nBytes = sizeof(KeyInfo) + (nCol-1)*sizeof(CollSeq*) + nCol;
85966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db = pParse->db;
85967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- KeyInfo *pKey = (KeyInfo *)sqlite3DbMallocZero(db, nBytes);
85968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
85969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pKey ){
85970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKey->db = pParse->db;
85971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKey->aSortOrder = (u8 *)&(pKey->aColl[nCol]);
85972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( &pKey->aSortOrder[nCol]==&(((u8 *)pKey)[nBytes]) );
86225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKey;
86226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
86227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKey = sqlite3KeyInfoAlloc(pParse->db, nCol);
86228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pKey ){
85973 86229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<nCol; i++){
85974 86230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zColl = pIdx->azColl[i];
85975 86231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( zColl );
85976 86232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKey->aColl[i] = sqlite3LocateCollSeq(pParse, zColl);
85977 86233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKey->aSortOrder[i] = pIdx->aSortOrder[i];
85978 86234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKey->nField = (u16)nCol;
85980 86235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85981 86236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85982 86237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->nErr ){
85983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, pKey);
86238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(pParse->db, pKey);
85984 86239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKey = 0;
85985 86240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85986 86241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pKey;
85987 86242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85988 86243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -87058,15 +87313,18 @@
87058 87313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *aRegIdx /* Only delete if aRegIdx!=0 && aRegIdx[i]>0 */
87059 87314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
87060 87315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
87061 87316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIdx;
87062 87317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int r1;
87318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iPartIdxLabel;
87319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v = pParse->pVdbe;
87063 87320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87064 87321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=1, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){
87065 87322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aRegIdx!=0 && aRegIdx[i-1]==0 ) continue;
87066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- r1 = sqlite3GenerateIndexKey(pParse, pIdx, iCur, 0, 0);
87067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp3(pParse->pVdbe, OP_IdxDelete, iCur+i, r1,pIdx->nColumn+1);
87323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ r1 = sqlite3GenerateIndexKey(pParse, pIdx, iCur, 0, 0, &iPartIdxLabel);
87324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_IdxDelete, iCur+i, r1, pIdx->nColumn+1);
87325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, iPartIdxLabel);
87068 87326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87069 87327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87070 87328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87071 87329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
87072 87330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate code that will assemble an index key and put it in register
@@ -87076,24 +87334,42 @@
87076 87334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
87077 87335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return a register number which is the first in a block of
87078 87336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** registers that holds the elements of the index key. The
87079 87337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** block of registers has already been deallocated by the time
87080 87338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** this routine returns.
87339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
87340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If *piPartIdxLabel is not NULL, fill it in with a label and jump
87341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to that label if pIdx is a partial index that should be skipped.
87342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A partial index should be skipped if its WHERE clause evaluates
87343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to false or null. If pIdx is not a partial index, *piPartIdxLabel
87344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** will be set to zero which is an empty label that is ignored by
87345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3VdbeResolveLabel().
87081 87346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
87082 87347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3GenerateIndexKey(
87083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Parse *pParse, /* Parsing context */
87084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Index *pIdx, /* The index for which to generate a key */
87085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iCur, /* Cursor number for the pIdx->pTable table */
87086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int regOut, /* Write the new index key to this register */
87087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int doMakeRec /* Run the OP_MakeRecord instruction if true */
87348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parse *pParse, /* Parsing context */
87349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Index *pIdx, /* The index for which to generate a key */
87350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCur, /* Cursor number for the pIdx->pTable table */
87351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int regOut, /* Write the new index key to this register */
87352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int doMakeRec, /* Run the OP_MakeRecord instruction if true */
87353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *piPartIdxLabel /* OUT: Jump to this label to skip partial index */
87088 87354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
87089 87355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v = pParse->pVdbe;
87090 87356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j;
87091 87357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = pIdx->pTable;
87092 87358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regBase;
87093 87359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCol;
87094 87360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( piPartIdxLabel ){
87362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->pPartIdxWhere ){
87363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *piPartIdxLabel = sqlite3VdbeMakeLabel(v);
87364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->iPartIdxTab = iCur;
87365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprIfFalse(pParse, pIdx->pPartIdxWhere, *piPartIdxLabel,
87366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_JUMPIFNULL);
87367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
87368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *piPartIdxLabel = 0;
87369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
87370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
87095 87371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCol = pIdx->nColumn;
87096 87372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regBase = sqlite3GetTempRange(pParse, nCol+1);
87097 87373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Rowid, iCur, regBase+nCol);
87098 87374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<nCol; j++){
87099 87375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx = pIdx->aiColumn[j];
@@ -89262,11 +89538,14 @@
89262 89538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempReg(pParse, regRec);
89263 89539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempRange(pParse, regTemp, nCol);
89264 89540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89265 89541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89266 89542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
89267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pFKey->isDeferred && !pParse->pToplevel && !pParse->isMultiWrite ){
89543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs)
89544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && !pParse->pToplevel
89545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && !pParse->isMultiWrite
89546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
89268 89547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Special case: If this is an INSERT statement that will insert exactly
89269 89548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** one row into the table, raise a constraint immediately instead of
89270 89549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** incrementing a counter. This is necessary as the VM code is being
89271 89550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** generated for will not open a statement transaction. */
89272 89551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nIncr==1 );
@@ -89653,11 +89932,13 @@
89653 89932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){
89654 89933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIdx = 0; /* Foreign key index for pFKey */
89655 89934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SrcList *pSrc;
89656 89935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *aiCol = 0;
89657 89936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
89658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pFKey->isDeferred && !pParse->pToplevel && !pParse->isMultiWrite ){
89937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferFKs)
89938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && !pParse->pToplevel && !pParse->isMultiWrite
89939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
89659 89940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( regOld==0 && regNew!=0 );
89660 89941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Inserting a single row into a parent table cannot cause an immediate
89661 89942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** foreign key violation. So do nothing in this case. */
89662 89943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue;
89663 89944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -91448,12 +91729,22 @@
91448 91729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Add the new records to the indices as we go.
91449 91730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
91450 91731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(iCur=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, iCur++){
91451 91732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regIdx;
91452 91733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regR;
91734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int addrSkipRow = 0;
91453 91735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91454 91736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aRegIdx[iCur]==0 ) continue; /* Skip unused indices */
91737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
91738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->pPartIdxWhere ){
91739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Null, 0, aRegIdx[iCur]);
91740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addrSkipRow = sqlite3VdbeMakeLabel(v);
91741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->ckBase = regData;
91742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprIfFalse(pParse, pIdx->pPartIdxWhere, addrSkipRow,
91743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_JUMPIFNULL);
91744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->ckBase = 0;
91745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
91455 91746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91456 91747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Create a key for accessing the index entry */
91457 91748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regIdx = sqlite3GetTempRange(pParse, pIdx->nColumn+1);
91458 91749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<pIdx->nColumn; i++){
91459 91750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx = pIdx->aiColumn[i];
@@ -91470,10 +91761,11 @@
91470 91761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91471 91762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Find out what action to take in case there is an indexing conflict */
91472 91763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onError = pIdx->onError;
91473 91764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( onError==OE_None ){
91474 91765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempRange(pParse, regIdx, pIdx->nColumn+1);
91766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, addrSkipRow);
91475 91767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue; /* pIdx is not a UNIQUE index */
91476 91768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91477 91769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( overrideError!=OE_Default ){
91478 91770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onError = overrideError;
91479 91771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( onError==OE_Default ){
@@ -91539,10 +91831,11 @@
91539 91831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
seenReplace = 1;
91540 91832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
91541 91833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91542 91834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91543 91835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, j3);
91836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, addrSkipRow);
91544 91837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempReg(pParse, regR);
91545 91838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91546 91839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91547 91840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pbMayReplace ){
91548 91841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pbMayReplace = seenReplace;
@@ -91568,22 +91861,23 @@
91568 91861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int appendBias, /* True if this is likely to be an append */
91569 91862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int useSeekResult /* True to set the USESEEKRESULT flag on OP_[Idx]Insert */
91570 91863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
91571 91864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
91572 91865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v;
91573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nIdx;
91574 91866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIdx;
91575 91867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 pik_flags;
91576 91868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regData;
91577 91869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regRec;
91578 91870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91579 91871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = sqlite3GetVdbe(pParse);
91580 91872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( v!=0 );
91581 91873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTab->pSelect==0 ); /* This table is not a VIEW */
91582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){}
91583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=nIdx-1; i>=0; i--){
91874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
91584 91875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aRegIdx[i]==0 ) continue;
91876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->pPartIdxWhere ){
91877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_IsNull, aRegIdx[i], sqlite3VdbeCurrentAddr(v)+2);
91878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
91585 91879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_IdxInsert, baseCur+i+1, aRegIdx[i]);
91586 91880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( useSeekResult ){
91587 91881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);
91588 91882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91589 91883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -91681,10 +91975,11 @@
91681 91975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
91682 91976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * The index is over the same set of columns
91683 91977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * The same DESC and ASC markings occurs on all columns
91684 91978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * The same onError processing (OE_Abort, OE_Ignore, etc)
91685 91979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * The same collating sequence on each column
91980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * The index has the exact same WHERE clause
91686 91981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
91687 91982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int xferCompatibleIndex(Index *pDest, Index *pSrc){
91688 91983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
91689 91984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pDest && pSrc );
91690 91985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pDest->pTable!=pSrc->pTable );
@@ -91702,10 +91997,13 @@
91702 91997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0; /* Different sort orders */
91703 91998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91704 91999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !xferCompatibleCollation(pSrc->azColl[i],pDest->azColl[i]) ){
91705 92000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0; /* Different collating sequences */
91706 92001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
92003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprCompare(pSrc->pPartIdxWhere, pDest->pPartIdxWhere, -1) ){
92004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0; /* Different WHERE clauses */
91707 92005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91708 92006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91709 92007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If no test above fails then the indices must be compatible */
91710 92008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
91711 92009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -91858,11 +92156,11 @@
91858 92156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pSrcIdx==0 ){
91859 92157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0; /* pDestIdx has no corresponding index in pSrc */
91860 92158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91861 92159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91862 92160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_CHECK
91863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck, pDest->pCheck) ){
92161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){
91864 92162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0; /* Tables have different CHECK constraints. Ticket #2252 */
91865 92163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91866 92164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
91867 92165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_FOREIGN_KEY
91868 92166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Disallow the transfer optimization if the destination table constains
@@ -92615,15 +92913,18 @@
92615 92913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_CORE
92616 92914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This case when the file really is being compiled as a loadable
92617 92915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** extension */
92618 92916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0;
92619 92917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_EXTENSION_INIT2(v) sqlite3_api=v;
92918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define SQLITE_EXTENSION_INIT3 \
92919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extern const sqlite3_api_routines *sqlite3_api;
92620 92920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
92621 92921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This case when the file is being statically linked into the
92622 92922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** application */
92623 92923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_EXTENSION_INIT1 /*no-op*/
92624 92924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_EXTENSION_INIT2(v) (void)v; /* unused parameter */
92925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define SQLITE_EXTENSION_INIT3 /*no-op*/
92625 92926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
92626 92927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
92627 92928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* _SQLITE3EXT_H_ */
92628 92929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
92629 92930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of sqlite3ext.h ******************************************/
@@ -93275,10 +93576,39 @@
93275 93576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(mutex);
93276 93577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (rc&0xff)==rc );
93277 93578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
93278 93579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93279 93580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
93582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
93583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Cancel a prior call to sqlite3_auto_extension. Remove xInit from the
93584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** set of routines that is invoked for each new database connection, if it
93585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is currently on the list. If xInit is not on the list, then this
93586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routine is a no-op.
93587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
93588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return 1 if xInit was found on the list and removed. Return 0 if xInit
93589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** was not on the list.
93590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
93591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_cancel_auto_extension(void (*xInit)(void)){
93592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if SQLITE_THREADSAFE
93593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
93594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
93595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
93596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = 0;
93597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wsdAutoextInit;
93598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_enter(mutex);
93599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=wsdAutoext.nExt-1; i>=0; i--){
93600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( wsdAutoext.aExt[i]==xInit ){
93601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wsdAutoext.nExt--;
93602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wsdAutoext.aExt[i] = wsdAutoext.aExt[wsdAutoext.nExt];
93603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n++;
93604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
93605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_leave(mutex);
93608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return n;
93609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93280 93610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93281 93611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
93282 93612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Reset the automatic extension loading mechanism.
93283 93613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
93284 93614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API void sqlite3_reset_auto_extension(void){
@@ -93516,10 +93846,11 @@
93516 93846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "empty_result_callbacks", SQLITE_NullCallback },
93517 93847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "legacy_file_format", SQLITE_LegacyFileFmt },
93518 93848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "fullfsync", SQLITE_FullFSync },
93519 93849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "checkpoint_fullfsync", SQLITE_CkptFullFSync },
93520 93850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "reverse_unordered_selects", SQLITE_ReverseOrder },
93851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "query_only", SQLITE_QueryOnly },
93521 93852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_AUTOMATIC_INDEX
93522 93853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "automatic_index", SQLITE_AutoIndex },
93523 93854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
93524 93855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
93525 93856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "sql_trace", SQLITE_SqlTrace },
@@ -93536,16 +93867,17 @@
93536 93867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "writable_schema", SQLITE_WriteSchema|SQLITE_RecoveryMode },
93537 93868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93538 93869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* TODO: Maybe it shouldn't be possible to change the ReadUncommitted
93539 93870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** flag if there are any active statements. */
93540 93871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "read_uncommitted", SQLITE_ReadUncommitted },
93541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "recursive_triggers", SQLITE_RecTriggers },
93872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "recursive_triggers", SQLITE_RecTriggers },
93542 93873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93543 93874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This flag may only be set if both foreign-key and trigger support
93544 93875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are present in the build. */
93545 93876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
93546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "foreign_keys", SQLITE_ForeignKeys },
93877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "foreign_keys", SQLITE_ForeignKeys },
93878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "defer_foreign_keys", SQLITE_DeferFKs },
93547 93879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
93548 93880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
93549 93881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
93550 93882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const struct sPragmaType *p;
93551 93883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, p=aPragma; i<ArraySize(aPragma); i++, p++){
@@ -93567,10 +93899,11 @@
93567 93899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93568 93900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3GetBoolean(zRight, 0) ){
93569 93901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags |= mask;
93570 93902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
93571 93903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags &= ~mask;
93904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( mask==SQLITE_DeferFKs ) db->nDeferredImmCons = 0;
93572 93905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93573 93906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93574 93907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Many of the flag-pragmas modify the code generated by the SQL
93575 93908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** compiler (eg. count_changes). So add an opcode to expire all
93576 93909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** compiled SQL statements after modifying a pragma value.
@@ -94736,13 +95069,11 @@
94736 95069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cnt++;
94737 95070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94738 95071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94739 95072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94740 95073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Make sure sufficient number of registers have been allocated */
94741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pParse->nMem < cnt+4 ){
94742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pParse->nMem = cnt+4;
94743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
95074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem = MAX( pParse->nMem, cnt+7 );
94744 95075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94745 95076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do the b-tree integrity checks */
94746 95077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_IntegrityCk, 2, cnt, 1);
94747 95078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, (u8)i);
94748 95079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr = sqlite3VdbeAddOp1(v, OP_IsNull, 2);
@@ -94763,16 +95094,19 @@
94763 95094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94764 95095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTab->pIndex==0 ) continue;
94765 95096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr = sqlite3VdbeAddOp1(v, OP_IfPos, 1); /* Stop if out of errors */
94766 95097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Halt, 0, 0);
94767 95098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr);
95099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprCacheClear(pParse);
94768 95100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OpenTableAndIndices(pParse, pTab, 1, OP_OpenRead);
94769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp2(v, OP_Integer, 0, 2); /* reg(2) will count entries */
94770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- loopTop = sqlite3VdbeAddOp2(v, OP_Rewind, 1, 0);
94771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp2(v, OP_AddImm, 2, 1); /* increment entry count */
95101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
95102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, 7+j); /* index entries counter */
95103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
95104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nMem = MAX(pParse->nMem, 7+j);
95105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ loopTop = sqlite3VdbeAddOp2(v, OP_Rewind, 1, 0) + 1;
94772 95106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
94773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int jmp2;
95107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int jmp2, jmp3;
94774 95108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int r1;
94775 95109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const VdbeOpList idxErr[] = {
94776 95110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_AddImm, 1, -1, 0},
94777 95111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_String8, 0, 3, 0}, /* 1 */
94778 95112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_Rowid, 1, 4, 0},
@@ -94783,47 +95117,38 @@
94783 95117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_Concat, 6, 3, 3},
94784 95118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_ResultRow, 3, 1, 0},
94785 95119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_IfPos, 1, 0, 0}, /* 9 */
94786 95120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_Halt, 0, 0, 0},
94787 95121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
94788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- r1 = sqlite3GenerateIndexKey(pParse, pIdx, 1, 3, 0);
95122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ r1 = sqlite3GenerateIndexKey(pParse, pIdx, 1, 3, 0, &jmp3);
95123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AddImm, 7+j, 1); /* increment entry count */
94789 95124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jmp2 = sqlite3VdbeAddOp4Int(v, OP_Found, j+2, 0, r1, pIdx->nColumn+1);
94790 95125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr = sqlite3VdbeAddOpList(v, ArraySize(idxErr), idxErr);
94791 95126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP4(v, addr+1, "rowid ", P4_STATIC);
94792 95127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP4(v, addr+3, " missing from index ", P4_STATIC);
94793 95128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP4(v, addr+4, pIdx->zName, P4_TRANSIENT);
94794 95129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr+9);
94795 95130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, jmp2);
95131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeResolveLabel(v, jmp3);
94796 95132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp2(v, OP_Next, 1, loopTop+1);
94798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeJumpHere(v, loopTop);
95133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Next, 1, loopTop);
95134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeJumpHere(v, loopTop-1);
95135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_BTREECOUNT
95136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0,
95137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "wrong # of entries in index ", P4_STATIC);
94799 95138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
94800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const VdbeOpList cntIdx[] = {
94801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_Integer, 0, 3, 0},
94802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_Rewind, 0, 0, 0}, /* 1 */
94803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_AddImm, 3, 1, 0},
94804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_Next, 0, 0, 0}, /* 3 */
94805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_Eq, 2, 0, 3}, /* 4 */
94806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_AddImm, 1, -1, 0},
94807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_String8, 0, 2, 0}, /* 6 */
94808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_String8, 0, 3, 0}, /* 7 */
94809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_Concat, 3, 2, 2},
94810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { OP_ResultRow, 2, 1, 0},
94811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
94812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- addr = sqlite3VdbeAddOp1(v, OP_IfPos, 1);
95139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr = sqlite3VdbeCurrentAddr(v);
95140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_IfPos, 1, addr+2);
94813 95141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Halt, 0, 0);
94814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeJumpHere(v, addr);
94815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- addr = sqlite3VdbeAddOpList(v, ArraySize(cntIdx), cntIdx);
94816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP1(v, addr+1, j+2);
94817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP2(v, addr+1, addr+4);
94818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP1(v, addr+3, j+2);
94819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP2(v, addr+3, addr+2);
94820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeJumpHere(v, addr+4);
94821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP4(v, addr+6,
94822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "wrong # of entries in index ", P4_STATIC);
94823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP4(v, addr+7, pIdx->zName, P4_TRANSIENT);
94824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
95142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Count, j+2, 3);
95143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Eq, 7+j, addr+8, 3);
95144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_AddImm, 1, -1);
95145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, pIdx->zName, P4_TRANSIENT);
95146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp3(v, OP_Concat, 3, 2, 7);
95147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_ResultRow, 7, 1);
95148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
95149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* SQLITE_OMIT_BTREECOUNT */
94825 95150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94826 95151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94827 95152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr = sqlite3VdbeAddOpList(v, ArraySize(endCode), endCode);
94828 95153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP2(v, addr, -mxErr);
94829 95154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr+1);
@@ -95979,10 +96304,16 @@
95979 96304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
95980 96305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( ppStmt );
95981 96306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*ppStmt = 0;
95982 96307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3SafetyCheckOk(db) ){
95983 96308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_MISUSE_BKPT;
96309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
96310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nBytes>=0 ){
96311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int sz;
96312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *z = (const char*)zSql;
96313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(sz=0; sz<nBytes && (z[sz]!=0 || z[sz+1]!=0); sz += 2){}
96314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nBytes = sz;
95984 96315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
95985 96316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(db->mutex);
95986 96317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSql8 = sqlite3Utf16to8(db, zSql, nBytes, SQLITE_UTF16NATIVE);
95987 96318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zSql8 ){
95988 96319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3LockAndPrepare(db, zSql8, -1, saveSqlFlag, 0, ppStmt, &zTail8);
@@ -96840,10 +97171,29 @@
96840 97171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
96841 97172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOrderBy==0 && p->iLimit ){
96842 97173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_IfZero, p->iLimit, iBreak, -1);
96843 97174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96844 97175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
97176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
97177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
97178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Allocate a KeyInfo object sufficient for an index of N columns.
97179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
97180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Actually, always allocate one extra column for the rowid at the end
97181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the index. So the KeyInfo returned will have space sufficient for
97182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** N+1 columns.
97183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
97184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoAlloc(sqlite3 *db, int N){
97185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *p = sqlite3DbMallocZero(db,
97186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sizeof(KeyInfo) + (N+1)*(sizeof(CollSeq*)+1));
97187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
97188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aSortOrder = (u8*)&p->aColl[N+1];
97189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nField = (u16)N;
97190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->enc = ENC(db);
97191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->db = db;
97192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
97193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return p;
97194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
96845 97195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
96846 97196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
96847 97197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Given an expression list, generate a KeyInfo structure that records
96848 97198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the collating sequence for each expression in that expression list.
96849 97199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -96857,29 +97207,23 @@
96857 97207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function is responsible for seeing that this structure is eventually
96858 97208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** freed. Add the KeyInfo structure to the P4 field of an opcode using
96859 97209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** P4_KEYINFO_HANDOFF is the usual way of dealing with this.
96860 97210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
96861 97211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static KeyInfo *keyInfoFromExprList(Parse *pParse, ExprList *pList){
96862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db = pParse->db;
96863 97212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nExpr;
96864 97213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pInfo;
96865 97214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct ExprList_item *pItem;
97215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db = pParse->db;
96866 97216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
96867 97217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
96868 97218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nExpr = pList->nExpr;
96869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pInfo = sqlite3DbMallocZero(db, sizeof(*pInfo) + nExpr*(sizeof(CollSeq*)+1) );
97219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pInfo = sqlite3KeyInfoAlloc(db, nExpr);
96870 97220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pInfo ){
96871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pInfo->aSortOrder = (u8*)&pInfo->aColl[nExpr];
96872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pInfo->nField = (u16)nExpr;
96873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pInfo->enc = ENC(db);
96874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pInfo->db = db;
96875 97221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pItem=pList->a; i<nExpr; i++, pItem++){
96876 97222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl;
96877 97223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pColl = sqlite3ExprCollSeq(pParse, pItem->pExpr);
96878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pColl ){
96879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pColl = db->pDfltColl;
96880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
97224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pColl ) pColl = db->pDfltColl;
96881 97225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInfo->aColl[i] = pColl;
96882 97226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInfo->aSortOrder[i] = pItem->sortOrder;
96883 97227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96884 97228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96885 97229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pInfo;
@@ -97981,27 +98325,21 @@
97981 98325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq **apColl; /* For looping through pKeyInfo->aColl[] */
97982 98326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCol; /* Number of columns in result set */
97983 98327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97984 98328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->pRightmost==p );
97985 98329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCol = p->pEList->nExpr;
97986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo = sqlite3DbMallocZero(db,
97987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sizeof(*pKeyInfo)+nCol*(sizeof(CollSeq*) + 1));
98330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo = sqlite3KeyInfoAlloc(db, nCol);
97988 98331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pKeyInfo ){
97989 98332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
97990 98333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto multi_select_end;
97991 98334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
97992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
97993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo->enc = ENC(db);
97994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo->nField = (u16)nCol;
97995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
97996 98335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, apColl=pKeyInfo->aColl; i<nCol; i++, apColl++){
97997 98336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*apColl = multiSelectCollSeq(pParse, p, i);
97998 98337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==*apColl ){
97999 98338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*apColl = db->pDfltColl;
98000 98339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98001 98340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo->aSortOrder = (u8*)apColl;
98003 98341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
98004 98342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pLoop=p; pLoop; pLoop=pLoop->pPrior){
98005 98343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<2; i++){
98006 98344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addr = pLoop->addrOpenEphm[i];
98007 98345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( addr<0 ){
@@ -98366,16 +98704,12 @@
98366 98704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct ExprList_item *pItem;
98367 98705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pItem=pOrderBy->a; i<nOrderBy; i++, pItem++){
98368 98706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pItem->iOrderByCol>0 && pItem->iOrderByCol<=p->pEList->nExpr );
98369 98707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aPermute[i] = pItem->iOrderByCol - 1;
98370 98708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyMerge =
98372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbMallocRaw(db, sizeof(*pKeyMerge)+nOrderBy*(sizeof(CollSeq*)+1));
98709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyMerge = sqlite3KeyInfoAlloc(db, nOrderBy);
98373 98710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pKeyMerge ){
98374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyMerge->aSortOrder = (u8*)&pKeyMerge->aColl[nOrderBy];
98375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyMerge->nField = (u16)nOrderBy;
98376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyMerge->enc = ENC(db);
98377 98711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<nOrderBy; i++){
98378 98712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl;
98379 98713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pTerm = pOrderBy->a[i].pExpr;
98380 98714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->flags & EP_Collate ){
98381 98715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pColl = sqlite3ExprCollSeq(pParse, pTerm);
@@ -98408,16 +98742,12 @@
98408 98742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nExpr = p->pEList->nExpr;
98409 98743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nOrderBy>=nExpr || db->mallocFailed );
98410 98744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regPrev = pParse->nMem+1;
98411 98745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->nMem += nExpr+1;
98412 98746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Integer, 0, regPrev);
98413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyDup = sqlite3DbMallocZero(db,
98414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sizeof(*pKeyDup) + nExpr*(sizeof(CollSeq*)+1) );
98747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyDup = sqlite3KeyInfoAlloc(db, nExpr);
98415 98748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pKeyDup ){
98416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyDup->aSortOrder = (u8*)&pKeyDup->aColl[nExpr];
98417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyDup->nField = (u16)nExpr;
98418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyDup->enc = ENC(db);
98419 98749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<nExpr; i++){
98420 98750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKeyDup->aColl[i] = multiSelectCollSeq(pParse, p, i);
98421 98751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pKeyDup->aSortOrder[i] = 0;
98422 98752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98423 98753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -99679,14 +100009,16 @@
99679 100009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and/or pParse->db->mallocFailed.
99680 100010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
99681 100011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void sqlite3SelectExpand(Parse *pParse, Select *pSelect){
99682 100012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Walker w;
99683 100013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(&w, 0, sizeof(w));
99684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- w.xSelectCallback = convertCompoundSelectToSubquery;
99685 100014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.xExprCallback = exprWalkNoop;
99686 100015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.pParse = pParse;
99687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3WalkSelect(&w, pSelect);
100016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pParse->hasCompound ){
100017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ w.xSelectCallback = convertCompoundSelectToSubquery;
100018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3WalkSelect(&w, pSelect);
100019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
99688 100020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.xSelectCallback = selectExpander;
99689 100021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3WalkSelect(&w, pSelect);
99690 100022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99691 100023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
99692 100024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -100216,11 +100548,11 @@
100216 100548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will cause elements to come out in the correct order. This is
100217 100549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an optimization - the correct answer should result regardless.
100218 100550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Use the SQLITE_GroupByOrder flag with SQLITE_TESTCTRL_OPTIMIZER
100219 100551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to disable this optimization for testing purposes.
100220 100552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
100221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3ExprListCompare(p->pGroupBy, pOrderBy)==0
100553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprListCompare(p->pGroupBy, pOrderBy, -1)==0
100222 100554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& OptimizationEnabled(db, SQLITE_GroupByOrder) ){
100223 100555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOrderBy = 0;
100224 100556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100225 100557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
100226 100558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the query is DISTINCT with an ORDER BY but is not an aggregate, and
@@ -100237,11 +100569,11 @@
100237 100569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** used for both the ORDER BY and DISTINCT processing. As originally
100238 100570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** written the query must use a temp-table for at least one of the ORDER
100239 100571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** BY and DISTINCT, and an index or separate temp-table for the other.
100240 100572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
100241 100573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (p->selFlags & (SF_Distinct|SF_Aggregate))==SF_Distinct
100242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && sqlite3ExprListCompare(pOrderBy, p->pEList)==0
100574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && sqlite3ExprListCompare(pOrderBy, p->pEList, -1)==0
100243 100575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
100244 100576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->selFlags &= ~SF_Distinct;
100245 100577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pGroupBy = sqlite3ExprListDup(db, p->pEList, 0);
100246 100578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pGroupBy = p->pGroupBy;
100247 100579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOrderBy = 0;
@@ -102464,11 +102796,11 @@
102464 102796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aRegIdx = sqlite3DbMallocRaw(db, sizeof(Index*) * nIdx );
102465 102797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aRegIdx==0 ) goto update_cleanup;
102466 102798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
102467 102799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
102468 102800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int reg;
102469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( hasFK || chngRowid ){
102801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( hasFK || chngRowid || pIdx->pPartIdxWhere ){
102470 102802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
reg = ++pParse->nMem;
102471 102803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
102472 102804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
reg = 0;
102473 102805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<pIdx->nColumn; i++){
102474 102806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aXRef[pIdx->aiColumn[i]]>=0 ){
@@ -104070,12 +104402,12 @@
104070 104402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int (*x)(sqlite3_vtab *);
104071 104403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_vtab *pVtab = aVTrans[i]->pVtab;
104072 104404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pVtab && (x = pVtab->pModule->xSync)!=0 ){
104073 104405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = x(pVtab);
104074 104406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, *pzErrmsg);
104075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pzErrmsg = sqlite3DbStrDup(db, pVtab->zErrMsg);
104076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pVtab->zErrMsg);
104407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pzErrmsg = pVtab->zErrMsg;
104408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pVtab->zErrMsg = 0;
104077 104409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
104078 104410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
104079 104411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->aVTrans = aVTrans;
104080 104412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
104081 104413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -104391,10 +104723,12 @@
104391 104723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct WhereLoop WhereLoop;
104392 104724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct WherePath WherePath;
104393 104725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct WhereTerm WhereTerm;
104394 104726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct WhereLoopBuilder WhereLoopBuilder;
104395 104727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct WhereScan WhereScan;
104728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct WhereOrCost WhereOrCost;
104729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct WhereOrSet WhereOrSet;
104396 104730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104397 104731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
104398 104732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Cost X is tracked as 10*log2(X) stored in a 16-bit integer. The
104399 104733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** maximum cost for ordinary tables is 64*(2**63) which becomes 6900.
104400 104734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (Virtual tables can return a larger cost, but let's assume they do not.)
@@ -104497,10 +104831,31 @@
104497 104831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u16 nLSlot; /* Number of slots allocated for aLTerm[] */
104498 104832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm **aLTerm; /* WhereTerms used */
104499 104833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLoop *pNextLoop; /* Next WhereLoop object in the WhereClause */
104500 104834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *aLTermSpace[4]; /* Initial aLTerm[] space */
104501 104835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
104836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
104837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* This object holds the prerequisites and the cost of running a
104838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** subquery on one operand of an OR operator in the WHERE clause.
104839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** See WhereOrSet for additional information
104840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
104841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WhereOrCost {
104842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bitmask prereq; /* Prerequisites */
104843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereCost rRun; /* Cost of running this subquery */
104844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereCost nOut; /* Number of outputs for this subquery */
104845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
104846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
104847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The WhereOrSet object holds a set of possible WhereOrCosts that
104848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** correspond to the subquery(s) of OR-clause processing. At most
104849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** favorable N_OR_COST elements are retained.
104850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
104851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define N_OR_COST 3
104852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WhereOrSet {
104853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 n; /* Number of valid a[] entries */
104854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereOrCost a[N_OR_COST]; /* Set of best costs */
104855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
104856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
104502 104857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104503 104858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Forward declaration of methods */
104504 104859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int whereLoopResize(sqlite3*, WhereLoop*, int);
104505 104860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104506 104861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -104712,11 +105067,11 @@
104712 105067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct WhereLoopBuilder {
104713 105068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereInfo *pWInfo; /* Information about this WHERE */
104714 105069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereClause *pWC; /* WHERE clause terms */
104715 105070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pOrderBy; /* ORDER BY clause */
104716 105071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLoop *pNew; /* Template WhereLoop */
104717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereLoop *pBest; /* If non-NULL, store single best loop here */
105072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereOrSet *pOrSet; /* Record best loops here, if not NULL */
104718 105073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
104719 105074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104720 105075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
104721 105076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The WHERE clause processing routine has two halves. The
104722 105077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** first part does the start of the WHERE loop and the second
@@ -104854,10 +105209,58 @@
104854 105209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** UPDATE or DELETE might change subsequent WHERE clause results.
104855 105210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
104856 105211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3WhereOkOnePass(WhereInfo *pWInfo){
104857 105212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pWInfo->okOnePass;
104858 105213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
105215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
105216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Move the content of pSrc into pDest
105217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
105218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void whereOrMove(WhereOrSet *pDest, WhereOrSet *pSrc){
105219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pDest->n = pSrc->n;
105220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(pDest->a, pSrc->a, pDest->n*sizeof(pDest->a[0]));
105221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
105223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
105224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Try to insert a new prerequisite/cost entry into the WhereOrSet pSet.
105225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
105226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The new entry might overwrite an existing entry, or it might be
105227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** appended, or it might be discarded. Do whatever is the right thing
105228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** so that pSet keeps the N_OR_COST best entries seen so far.
105229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
105230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int whereOrInsert(
105231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereOrSet *pSet, /* The WhereOrSet to be updated */
105232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bitmask prereq, /* Prerequisites of the new entry */
105233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereCost rRun, /* Run-cost of the new entry */
105234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereCost nOut /* Number of outputs for the new entry */
105235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
105236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 i;
105237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereOrCost *p;
105238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=pSet->n, p=pSet->a; i>0; i--, p++){
105239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rRun<=p->rRun && (prereq & p->prereq)==prereq ){
105240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto whereOrInsert_done;
105241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rRun<=rRun && (p->prereq & prereq)==p->prereq ){
105243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
105244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSet->n<N_OR_COST ){
105247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = &pSet->a[pSet->n++];
105248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nOut = nOut;
105249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
105250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = pSet->a;
105251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=1; i<pSet->n; i++){
105252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rRun>pSet->a[i].rRun ) p = pSet->a + i;
105253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->rRun<=rRun ) return 0;
105255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereOrInsert_done:
105257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->prereq = prereq;
105258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->rRun = rRun;
105259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nOut>nOut ) p->nOut = nOut;
105260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
105261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
104859 105262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104860 105263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
104861 105264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Initialize a preallocated WhereClause structure.
104862 105265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
104863 105266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void whereClauseInit(
@@ -104933,11 +105336,11 @@
104933 105336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the pWC->a[] array.
104934 105337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
104935 105338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int whereClauseInsert(WhereClause *pWC, Expr *p, u8 wtFlags){
104936 105339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pTerm;
104937 105340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx;
104938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( wtFlags & TERM_VIRTUAL ); /* EV: R-00211-15100 */
105341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( wtFlags & TERM_VIRTUAL );
104939 105342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWC->nTerm>=pWC->nSlot ){
104940 105343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pOld = pWC->a;
104941 105344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pWC->pWInfo->pParse->db;
104942 105345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->a = sqlite3DbMallocRaw(db, sizeof(pWC->a[0])*pWC->nSlot*2 );
104943 105346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWC->a==0 ){
@@ -105078,17 +105481,10 @@
105078 105481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
105079 105482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
105080 105483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return TRUE if the given operator is one of the operators that is
105081 105484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** allowed for an indexable WHERE clause term. The allowed operators are
105082 105485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "=", "<", ">", "<=", ">=", "IN", and "IS NULL"
105083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
105084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** IMPLEMENTATION-OF: R-59926-26393 To be usable by an index a term must be
105085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of one of the following forms: column = expression column > expression
105086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** column >= expression column < expression column <= expression
105087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** expression = column expression > column expression >= column
105088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** expression < column expression <= column column IN
105089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (expression-list) column IN (subquery) column IS NULL
105090 105486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
105091 105487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int allowedOp(int op){
105092 105488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_GT>TK_EQ && TK_GT<TK_GE );
105093 105489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LT>TK_EQ && TK_LT<TK_GE );
105094 105490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LE>TK_EQ && TK_LE<TK_GE );
@@ -105403,11 +105799,11 @@
105403 105799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
op = pRight->op2;
105404 105800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105405 105801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( op==TK_VARIABLE ){
105406 105802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *pReprepare = pParse->pReprepare;
105407 105803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCol = pRight->iColumn;
105408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVal = sqlite3VdbeGetValue(pReprepare, iCol, SQLITE_AFF_NONE);
105804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pVal = sqlite3VdbeGetBoundValue(pReprepare, iCol, SQLITE_AFF_NONE);
105409 105805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pVal && sqlite3_value_type(pVal)==SQLITE_TEXT ){
105410 105806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = (char *)sqlite3_value_text(pVal);
105411 105807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105412 105808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeSetVarmask(pParse->pVdbe, iCol);
105413 105809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pRight->op==TK_VARIABLE || pRight->op==TK_REGISTER );
@@ -105758,12 +106154,10 @@
105758 106154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105759 106155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
105760 106156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* At this point, okToChngToIN is true if original pTerm satisfies
105761 106157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** case 1. In that case, construct a new virtual term that is
105762 106158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pTerm converted into an IN operator.
105763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
105764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EV: R-00211-15100
105765 106159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
105766 106160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( okToChngToIN ){
105767 106161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pDup; /* A transient duplicate expression */
105768 106162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList = 0; /* The RHS of the IN operator */
105769 106163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pLeft = 0; /* The LHS of the IN operator */
@@ -106001,13 +106395,11 @@
106001 106395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** wildcard. But if we increment '@', that will push it into the
106002 106396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** alphabetic range where case conversions will mess up the
106003 106397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** inequality. To avoid this, make sure to also run the full
106004 106398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** LIKE on all candidate expressions by clearing the isComplete flag
106005 106399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
106006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( c=='A'-1 ) isComplete = 0; /* EV: R-64339-08207 */
106007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
106008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
106400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( c=='A'-1 ) isComplete = 0;
106009 106401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
c = sqlite3UpperToLower[c];
106010 106402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106011 106403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pC = c + 1;
106012 106404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106013 106405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sCollSeqName.z = noCase ? "NOCASE" : "BINARY";
@@ -106510,11 +106902,11 @@
106510 106902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "for %s", pTable->zName));
106511 106903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
106512 106904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Fill the automatic index with content */
106513 106905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur);
106514 106906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regRecord = sqlite3GetTempReg(pParse);
106515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3GenerateIndexKey(pParse, pIdx, pLevel->iTabCur, regRecord, 1);
106907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3GenerateIndexKey(pParse, pIdx, pLevel->iTabCur, regRecord, 1, 0);
106516 106908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord);
106517 106909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);
106518 106910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1);
106519 106911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, SQLITE_STMTSTATUS_AUTOINDEX);
106520 106912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addrTop);
@@ -106867,11 +107259,11 @@
106867 107259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pExpr->op==TK_VARIABLE
106868 107260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (pExpr->op==TK_REGISTER && pExpr->op2==TK_VARIABLE)
106869 107261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
106870 107262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iVar = pExpr->iColumn;
106871 107263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeSetVarmask(pParse->pVdbe, iVar);
106872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pp = sqlite3VdbeGetValue(pParse->pReprepare, iVar, aff);
107264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pp = sqlite3VdbeGetBoundValue(pParse->pReprepare, iVar, aff);
106873 107265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
106874 107266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106875 107267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3ValueFromExpr(pParse->db, pExpr, SQLITE_UTF8, aff, pp);
106876 107268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106877 107269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -107093,13 +107485,10 @@
107093 107485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
107094 107486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The t2.z='ok' is disabled in the in (2) because it originates
107095 107487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the ON clause. The term is disabled in (3) because it is not part
107096 107488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of a LEFT OUTER JOIN. In (1), the term is not disabled.
107097 107489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
107098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** IMPLEMENTATION-OF: R-24597-58655 No tests are done for terms that are
107099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** completely satisfied by indices.
107100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
107101 107490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Disabling a term causes that term to not be tested in the inner loop
107102 107491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of the join. Disabling is an optimization. When terms are satisfied
107103 107492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** by indices, we disable them to prevent redundant tests in the inner
107104 107493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** loop. We would get the correct results if nothing were ever disabled,
107105 107494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** but joins might run a little slower. The trick is to disable as much
@@ -107325,11 +107714,11 @@
107325 107714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm = pLoop->aLTerm[j];
107326 107715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTerm!=0 );
107327 107716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The following true for indices with redundant columns.
107328 107717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Ex: CREATE INDEX i1 ON t1(a,b,a); SELECT * FROM t1 WHERE a=0 AND b=0; */
107329 107718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( (pTerm->wtFlags & TERM_CODED)!=0 );
107330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
107719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL );
107331 107720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r1 = codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, regBase+j);
107332 107721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( r1!=regBase+j ){
107333 107722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nReg==1 ){
107334 107723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempReg(pParse, regBase);
107335 107724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regBase = r1;
@@ -107525,10 +107914,11 @@
107525 107914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLevel *pLevel; /* The where level to be coded */
107526 107915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLoop *pLoop; /* The WhereLoop object being coded */
107527 107916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereClause *pWC; /* Decomposition of the entire WHERE clause */
107528 107917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pTerm; /* A WHERE clause term */
107529 107918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Parse *pParse; /* Parsing context */
107919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db; /* Database connection */
107530 107920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v; /* The prepared stmt under constructions */
107531 107921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct SrcList_item *pTabItem; /* FROM clause term being coded */
107532 107922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrBrk; /* Jump here to break out of the loop */
107533 107923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addrCont; /* Jump here to continue with next cycle */
107534 107924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iRowidReg = 0; /* Rowid is stored in this register, if not zero */
@@ -107536,10 +107926,11 @@
107536 107926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bitmask newNotReady; /* Return value */
107537 107927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
107538 107928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse = pWInfo->pParse;
107539 107929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = pParse->pVdbe;
107540 107930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC = &pWInfo->sWC;
107931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db = pParse->db;
107541 107932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel = &pWInfo->a[iLevel];
107542 107933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop = pLevel->pWLoop;
107543 107934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTabItem = &pWInfo->pTabList->a[pLevel->iFrom];
107544 107935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iCur = pTabItem->iCursor;
107545 107936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bRev = (pWInfo->revMask>>iLevel)&1;
@@ -107634,11 +108025,11 @@
107634 108025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iReleaseReg = sqlite3GetTempReg(pParse);
107635 108026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm = pLoop->aLTerm[0];
107636 108027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTerm!=0 );
107637 108028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTerm->pExpr!=0 );
107638 108029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( omitTable==0 );
107639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
108030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL );
107640 108031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, 0, bRev, iReleaseReg);
107641 108032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrNxt = pLevel->addrNxt;
107642 108033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_MustBeInt, iRowidReg, addrNxt);
107643 108034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_NotExists, iCur, addrNxt, iRowidReg);
107644 108035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCacheAffinityChange(pParse, iRowidReg, 1);
@@ -107682,11 +108073,11 @@
107682 108073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LE==TK_GT+1 ); /* Make sure the ordering.. */
107683 108074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LT==TK_GT+2 ); /* ... of the TK_xx values... */
107684 108075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_GE==TK_GT+3 ); /* ... is correcct. */
107685 108076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
107686 108077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pStart->wtFlags & TERM_VNULL)==0 );
107687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pStart->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
108078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pStart->wtFlags & TERM_VIRTUAL );
107688 108079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pX = pStart->pExpr;
107689 108080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pX!=0 );
107690 108081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pStart->leftCursor!=iCur ); /* transitive constraints */
107691 108082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r1 = sqlite3ExprCodeTemp(pParse, pX->pRight, &rTemp);
107692 108083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, aMoveOp[pX->op-TK_GT], iCur, addrBrk, r1);
@@ -107701,11 +108092,11 @@
107701 108092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pX;
107702 108093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pX = pEnd->pExpr;
107703 108094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pX!=0 );
107704 108095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (pEnd->wtFlags & TERM_VNULL)==0 );
107705 108096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pEnd->leftCursor!=iCur ); /* Transitive constraints */
107706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pEnd->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
108097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pEnd->wtFlags & TERM_VIRTUAL );
107707 108098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memEndValue = ++pParse->nMem;
107708 108099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCode(pParse, pX->pRight, memEndValue);
107709 108100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pX->op==TK_LT || pX->op==TK_GT ){
107710 108101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testOp = bRev ? OP_Le : OP_Ge;
107711 108102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -107826,11 +108217,11 @@
107826 108217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Generate code to evaluate all constraint terms using == or IN
107827 108218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and store the values of those terms in an array of registers
107828 108219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** starting at regBase.
107829 108220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
107830 108221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regBase = codeAllEqualityTerms(pParse,pLevel,bRev,nExtraReg,&zStartAff);
107831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEndAff = sqlite3DbStrDup(pParse->db, zStartAff);
108222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zEndAff = sqlite3DbStrDup(db, zStartAff);
107832 108223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrNxt = pLevel->addrNxt;
107833 108224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
107834 108225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If we are doing a reverse order scan on an ascending index, or
107835 108226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a forward order scan on a descending index, interchange the
107836 108227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** start and end terms (pRangeStart and pRangeEnd).
@@ -107867,11 +108258,11 @@
107867 108258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ExprNeedsNoAffinityChange(pRight, zStartAff[nEq]) ){
107868 108259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zStartAff[nEq] = SQLITE_AFF_NONE;
107869 108260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107870 108261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107871 108262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nConstraint++;
107872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pRangeStart->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
108263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pRangeStart->wtFlags & TERM_VIRTUAL );
107873 108264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( isMinQuery ){
107874 108265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Null, 0, regBase+nEq);
107875 108266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nConstraint++;
107876 108267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
startEq = 0;
107877 108268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
start_constraints = 1;
@@ -107909,14 +108300,14 @@
107909 108300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zEndAff[nEq] = SQLITE_AFF_NONE;
107910 108301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107911 108302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107912 108303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
codeApplyAffinity(pParse, regBase, nEq+1, zEndAff);
107913 108304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nConstraint++;
107914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pRangeEnd->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
108305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pRangeEnd->wtFlags & TERM_VIRTUAL );
107915 108306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(pParse->db, zStartAff);
107917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(pParse->db, zEndAff);
108307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, zStartAff);
108308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, zEndAff);
107918 108309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
107919 108310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Top of the loop body */
107920 108311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel->p2 = sqlite3VdbeCurrentAddr(v);
107921 108312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
107922 108313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check if the index cursor is past the end of the range. */
@@ -108039,11 +108430,11 @@
108039 108430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
108040 108431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWInfo->nLevel>1 ){
108041 108432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nNotReady; /* The number of notReady tables */
108042 108433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct SrcList_item *origSrc; /* Original list of tables */
108043 108434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nNotReady = pWInfo->nLevel - iLevel - 1;
108044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOrTab = sqlite3StackAllocRaw(pParse->db,
108435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pOrTab = sqlite3StackAllocRaw(db,
108045 108436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sizeof(*pOrTab)+ nNotReady*sizeof(pOrTab->a[0]));
108046 108437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOrTab==0 ) return notReady;
108047 108438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOrTab->nAlloc = (u8)(nNotReady + 1);
108048 108439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOrTab->nSrc = pOrTab->nAlloc;
108049 108440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pOrTab->a, pTabItem, sizeof(*pTabItem));
@@ -108089,15 +108480,16 @@
108089 108480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
108090 108481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWC->nTerm>1 ){
108091 108482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTerm;
108092 108483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(iTerm=0; iTerm<pWC->nTerm; iTerm++){
108093 108484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pExpr = pWC->a[iTerm].pExpr;
108485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( &pWC->a[iTerm] == pTerm ) continue;
108094 108486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pExpr, EP_FromJoin) ) continue;
108095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_ORINFO) ) continue;
108487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWC->a[iTerm].wtFlags & (TERM_ORINFO) ) continue;
108096 108488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue;
108097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr = sqlite3ExprDup(pParse->db, pExpr, 0);
108098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pAndExpr = sqlite3ExprAnd(pParse->db, pAndExpr, pExpr);
108489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr = sqlite3ExprDup(db, pExpr, 0);
108490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);
108099 108491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108100 108492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAndExpr ){
108101 108493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAndExpr = sqlite3PExpr(pParse, TK_AND, 0, pAndExpr, 0);
108102 108494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108103 108495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -108113,11 +108505,11 @@
108113 108505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108114 108506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Loop through table entries that match term pOrTerm. */
108115 108507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSubWInfo = sqlite3WhereBegin(pParse, pOrTab, pOrExpr, 0, 0,
108116 108508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WHERE_OMIT_OPEN_CLOSE | WHERE_AND_ONLY |
108117 108509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WHERE_FORCE_TABLE | WHERE_ONETABLE_ONLY, iCovCur);
108118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pSubWInfo || pParse->nErr || pParse->db->mallocFailed );
108510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pSubWInfo || pParse->nErr || db->mallocFailed );
108119 108511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pSubWInfo ){
108120 108512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLoop *pSubLoop;
108121 108513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
explainOneScan(
108122 108514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse, pOrTab, &pSubWInfo->a[0], iLevel, pLevel->iFrom, 0
108123 108515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -108168,17 +108560,17 @@
108168 108560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108169 108561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel->u.pCovidx = pCov;
108170 108562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pCov ) pLevel->iIdxCur = iCovCur;
108171 108563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAndExpr ){
108172 108564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAndExpr->pLeft = 0;
108173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprDelete(pParse->db, pAndExpr);
108565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprDelete(db, pAndExpr);
108174 108566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108175 108567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP1(v, iRetInit, sqlite3VdbeCurrentAddr(v));
108176 108568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrBrk);
108177 108569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, iLoopBody);
108178 108570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pWInfo->nLevel>1 ) sqlite3StackFree(pParse->db, pOrTab);
108571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pWInfo->nLevel>1 ) sqlite3StackFree(db, pOrTab);
108180 108572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !untestedTerms ) disableTerm(pLevel, pTerm);
108181 108573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
108182 108574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_OR_OPTIMIZATION */
108183 108575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108184 108576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
@@ -108195,18 +108587,14 @@
108195 108587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108196 108588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
newNotReady = notReady & ~getMask(&pWInfo->sMaskSet, iCur);
108197 108589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108198 108590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Insert code to test every subexpression that can be completely
108199 108591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** computed using the current set of tables.
108200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
108201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** IMPLEMENTATION-OF: R-49525-50935 Terms that cannot be satisfied through
108202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the use of indices become tests that are evaluated against each row of
108203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the relevant input tables.
108204 108592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
108205 108593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){
108206 108594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pE;
108207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* IMP: R-30575-11662 */
108595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL );
108208 108596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pTerm->wtFlags & TERM_CODED );
108209 108597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
108210 108598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pTerm->prereqAll & newNotReady)!=0 ){
108211 108599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pWInfo->untestedTerms==0
108212 108600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (pWInfo->wctrlFlags & WHERE_ONETABLE_ONLY)!=0 );
@@ -108229,13 +108617,12 @@
108229 108617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and we are coding the t1 loop and the t2 loop has not yet coded,
108230 108618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then we cannot use the "t1.a=t2.b" constraint, but we can code
108231 108619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the implied "t1.a=123" constraint.
108232 108620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
108233 108621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){
108234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Expr *pE;
108622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pE, *pEAlt;
108235 108623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pAlt;
108236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Expr sEq;
108237 108624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
108238 108625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->eOperator!=(WO_EQUIV|WO_EQ) ) continue;
108239 108626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->leftCursor!=iCur ) continue;
108240 108627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pLevel->iLeftJoin ) continue;
108241 108628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pE = pTerm->pExpr;
@@ -108245,13 +108632,17 @@
108245 108632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAlt==0 ) continue;
108246 108633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAlt->wtFlags & (TERM_CODED) ) continue;
108247 108634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pAlt->eOperator & WO_EQ );
108248 108635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pAlt->eOperator & WO_IN );
108249 108636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeNoopComment((v, "begin transitive constraint"));
108250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sEq = *pAlt->pExpr;
108251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sEq.pLeft = pE->pLeft;
108252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprIfFalse(pParse, &sEq, addrCont, SQLITE_JUMPIFNULL);
108637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pEAlt = sqlite3StackAllocRaw(db, sizeof(*pEAlt));
108638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pEAlt ){
108639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pEAlt = *pAlt->pExpr;
108640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pEAlt->pLeft = pE->pLeft;
108641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprIfFalse(pParse, pEAlt, addrCont, SQLITE_JUMPIFNULL);
108642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3StackFree(db, pEAlt);
108643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
108253 108644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108254 108645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108255 108646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* For a LEFT OUTER JOIN, generate code that will record the fact that
108256 108647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** at least one row of the right table has matched the left table.
108257 108648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -108259,11 +108650,11 @@
108259 108650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);
108260 108651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin);
108261 108652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "record LEFT JOIN hit"));
108262 108653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCacheClear(pParse);
108263 108654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pTerm=pWC->a, j=0; j<pWC->nTerm; j++, pTerm++){
108264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* IMP: R-30575-11662 */
108655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL );
108265 108656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pTerm->wtFlags & TERM_CODED );
108266 108657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
108267 108658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pTerm->prereqAll & newNotReady)!=0 ){
108268 108659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pWInfo->untestedTerms );
108269 108660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue;
@@ -108418,16 +108809,16 @@
108418 108809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is better and has fewer dependencies. Or the template will be ignored
108419 108810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and no insert will occur if an existing WhereLoop is faster and has
108420 108811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** fewer dependencies than the template. Otherwise a new WhereLoop is
108421 108812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** added based on the template.
108422 108813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
108423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If pBuilder->pBest is not NULL then we only care about the very
108424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** best template and that template should be stored in pBuilder->pBest.
108425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If pBuilder->pBest is NULL then a list of the best templates are stored
108426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in pBuilder->pWInfo->pLoops.
108814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If pBuilder->pOrSet is not NULL then we only care about only the
108815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** prerequisites and rRun and nOut costs of the N best loops. That
108816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** information is gathered in the pBuilder->pOrSet object. This special
108817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** processing mode is used only for OR clause processing.
108427 108818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
108428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** When accumulating multiple loops (when pBuilder->pBest is NULL) we
108819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When accumulating multiple loops (when pBuilder->pOrSet is NULL) we
108429 108820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** still might overwrite similar loops with the new template if the
108430 108821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** template is better. Loops may be overwritten if the following
108431 108822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** conditions are met:
108432 108823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
108433 108824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (1) They have the same iTab.
@@ -108440,34 +108831,26 @@
108440 108831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate){
108441 108832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLoop **ppPrev, *p, *pNext = 0;
108442 108833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereInfo *pWInfo = pBuilder->pWInfo;
108443 108834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pWInfo->pParse->db;
108444 108835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If pBuilder->pBest is defined, then only keep track of the single
108446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** best WhereLoop. pBuilder->pBest->maskSelf==0 indicates that no
108447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** prior WhereLoops have been evaluated and that the current pTemplate
108448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is therefore the first and hence the best and should be retained.
108836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If pBuilder->pOrSet is defined, then only keep track of the costs
108837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and prereqs.
108449 108838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
108450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (p = pBuilder->pBest)!=0 ){
108451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->maskSelf!=0 ){
108452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereCost rCost = whereCostAdd(p->rRun,p->rSetup);
108453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereCost rTemplate = whereCostAdd(pTemplate->rRun,pTemplate->rSetup);
108454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rCost < rTemplate ){
108455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( rCost==rTemplate-1 );
108456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto whereLoopInsert_noop;
108457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
108458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rCost==rTemplate && (p->prereq & pTemplate->prereq)==p->prereq ){
108459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto whereLoopInsert_noop;
108460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
108461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
108839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pBuilder->pOrSet!=0 ){
108840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if WHERETRACE_ENABLED
108841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 n = pBuilder->pOrSet->n;
108842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int x =
108843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
108844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereOrInsert(pBuilder->pOrSet, pTemplate->prereq, pTemplate->rRun,
108845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTemplate->nOut);
108462 108846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if WHERETRACE_ENABLED
108463 108847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3WhereTrace & 0x8 ){
108464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DebugPrintf(p->maskSelf==0 ? "ins-init: " : "ins-best: ");
108848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DebugPrintf(x?" or-%d: ":" or-X: ", n);
108465 108849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereLoopPrint(pTemplate, pWInfo->pTabList);
108466 108850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108467 108851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
108468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- whereLoopXfer(db, p, pTemplate);
108469 108852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
108470 108853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108471 108854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108472 108855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Search for an existing WhereLoop to overwrite, or which takes
108473 108856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** priority over pTemplate.
@@ -108557,11 +108940,11 @@
108557 108940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108558 108941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Jump here if the insert is a no-op */
108559 108942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereLoopInsert_noop:
108560 108943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if WHERETRACE_ENABLED
108561 108944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3WhereTrace & 0x8 ){
108562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DebugPrintf(pBuilder->pBest ? "ins-skip: " : "ins-noop: ");
108945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DebugPrintf("ins-noop: ");
108563 108946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereLoopPrint(pTemplate, pWInfo->pTabList);
108564 108947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108565 108948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
108566 108949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
108567 108950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -108708,11 +109091,12 @@
108708 109091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereEqualScanEst(pParse, pProbe, pTerm->pExpr->pRight, &nOut);
108709 109092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( (pTerm->eOperator & WO_IN)
108710 109093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !ExprHasProperty(pTerm->pExpr, EP_xIsSelect) ){
108711 109094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereInScanEst(pParse, pProbe, pTerm->pExpr->x.pList, &nOut);
108712 109095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ) pNew->nOut = whereCost(nOut);
109096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nOut==0 || rc==SQLITE_OK );
109097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nOut ) pNew->nOut = whereCost(nOut);
108714 109098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108715 109099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
108716 109100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK))==0 ){
108717 109101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Each row involves a step of the index, then a binary search of
108718 109102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the main table */
@@ -108780,10 +109164,21 @@
108780 109164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( x<BMS-1 ) m |= MASKBIT(x);
108781 109165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108782 109166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return m;
108783 109167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108784 109168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Check to see if a partial index with pPartIndexWhere can be used
109170 { 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.
109171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
109172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int whereUsablePartialIndex(int iTab, WhereClause *pWC, Expr *pWhere){
109173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
109174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereTerm *pTerm;
109175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0, pTerm=pWC->a; i<pWC->nTerm; i++, pTerm++){
109176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3ExprImpliesExpr(pTerm->pExpr, pWhere, iTab) ) return 1;
109177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
109178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
109179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
108785 109180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108786 109181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
108787 109182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Add all WhereLoop objects for a single table of the join where the table
108788 109183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is idenfied by pBuilder->pNew->iTab. That table is guaranteed to be
108789 109184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a b-tree table, not a virtual table.
@@ -108803,15 +109198,17 @@
108803 109198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK; /* Return code */
108804 109199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iSortIdx = 1; /* Index number */
108805 109200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int b; /* A boolean value */
108806 109201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereCost rSize; /* number of rows in the table */
108807 109202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereCost rLogSize; /* Logarithm of the number of rows in the table */
109203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereClause *pWC; /* The parsed WHERE clause */
108808 109204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108809 109205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = pBuilder->pNew;
108810 109206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWInfo = pBuilder->pWInfo;
108811 109207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTabList = pWInfo->pTabList;
108812 109208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSrc = pTabList->a + pNew->iTab;
109209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pWC = pBuilder->pWC;
108813 109210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !IsVirtual(pSrc->pTab) );
108814 109211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108815 109212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pSrc->pIndex ){
108816 109213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* An INDEXED BY clause specifies a particular index to use */
108817 109214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pProbe = pSrc->pIndex;
@@ -108839,19 +109236,18 @@
108839 109236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108840 109237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rSize = whereCost(pSrc->pTab->nRowEst);
108841 109238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rLogSize = estLog(rSize);
108842 109239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108843 109240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Automatic indexes */
108844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pBuilder->pBest
109241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pBuilder->pOrSet
108845 109242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0
108846 109243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& pSrc->pIndex==0
108847 109244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !pSrc->viaCoroutine
108848 109245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !pSrc->notIndexed
108849 109246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !pSrc->isCorrelated
108850 109247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
108851 109248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Generate auto-index WhereLoops */
108852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereClause *pWC = pBuilder->pWC;
108853 109249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pTerm;
108854 109250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pWCEnd = pWC->a + pWC->nTerm;
108855 109251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pTerm=pWC->a; rc==SQLITE_OK && pTerm<pWCEnd; pTerm++){
108856 109252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->prereqRight & pNew->maskSelf ) continue;
108857 109253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( termCanDriveIndex(pTerm, pSrc, 0) ){
@@ -108877,10 +109273,14 @@
108877 109273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108878 109274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108879 109275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Loop over all indices
108880 109276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
108881 109277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(; rc==SQLITE_OK && pProbe; pProbe=pProbe->pNext, iSortIdx++){
109278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pProbe->pPartIdxWhere!=0
109279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && !whereUsablePartialIndex(pNew->iTab, pWC, pProbe->pPartIdxWhere) ){
109280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue; /* Partial index inappropriate for this query */
109281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
108882 109282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->u.btree.nEq = 0;
108883 109283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->nLTerm = 0;
108884 109284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->iSortIdx = 0;
108885 109285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->rSetup = 0;
108886 109286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->prereq = mExtra;
@@ -109125,11 +109525,11 @@
109125 109525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pTerm, *pWCEnd;
109126 109526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK;
109127 109527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCur;
109128 109528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereClause tempWC;
109129 109529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereLoopBuilder sSubBuild;
109130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereLoop sBest;
109530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WhereOrSet sSum, sCur, sPrev;
109131 109531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct SrcList_item *pItem;
109132 109532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109133 109533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC = pBuilder->pWC;
109134 109534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWInfo->wctrlFlags & WHERE_AND_ONLY ) return SQLITE_OK;
109135 109535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWCEnd = pWC->a + pWC->nTerm;
@@ -109140,20 +109540,18 @@
109140 109540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0
109141 109541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
109142 109542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereClause * const pOrWC = &pTerm->u.pOrInfo->wc;
109143 109543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm * const pOrWCEnd = &pOrWC->a[pOrWC->nTerm];
109144 109544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pOrTerm;
109145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereCost rTotal = 0;
109146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WhereCost nRow = 0;
109147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bitmask prereq = mExtra;
109545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int once = 1;
109546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i, j;
109148 109547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- whereLoopInit(&sBest);
109150 109548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem = pWInfo->pTabList->a + pNew->iTab;
109151 109549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iCur = pItem->iCursor;
109152 109550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSubBuild = *pBuilder;
109153 109551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSubBuild.pOrderBy = 0;
109154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sSubBuild.pBest = &sBest;
109552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSubBuild.pOrSet = &sCur;
109155 109553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109156 109554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pOrTerm=pOrWC->a; pOrTerm<pOrWCEnd; pOrTerm++){
109157 109555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pOrTerm->eOperator & WO_AND)!=0 ){
109158 109556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSubBuild.pWC = &pOrTerm->u.pAndInfo->wc;
109159 109557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pOrTerm->leftCursor==iCur ){
@@ -109164,43 +109562,52 @@
109164 109562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tempWC.a = pOrTerm;
109165 109563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sSubBuild.pWC = &tempWC;
109166 109564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
109167 109565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue;
109168 109566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sBest.maskSelf = 0;
109170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sBest.rSetup = 0;
109171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sBest.rRun = 0;
109567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sCur.n = 0;
109172 109568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
109173 109569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( IsVirtual(pItem->pTab) ){
109174 109570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereLoopAddVirtual(&sSubBuild);
109571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<sCur.n; i++) sCur.a[i].prereq |= mExtra;
109175 109572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
109176 109573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
109177 109574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
109178 109575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereLoopAddBtree(&sSubBuild, mExtra);
109179 109576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* sBest.maskSelf is always zero if an error occurs */
109181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( rc==SQLITE_OK || sBest.maskSelf==0 );
109182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sBest.maskSelf==0 ) break;
109183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( sBest.rSetup==0 );
109184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rTotal = whereCostAdd(rTotal, sBest.rRun);
109185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nRow = whereCostAdd(nRow, sBest.nOut);
109186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- prereq |= sBest.prereq;
109187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
109188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pNew->nLSlot>=1 );
109189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sBest.maskSelf ){
109190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->nLTerm = 1;
109191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->aLTerm[0] = pTerm;
109192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->wsFlags = WHERE_MULTI_OR;
109193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->rSetup = 0;
109577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( rc==SQLITE_OK || sCur.n==0 );
109578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sCur.n==0 ){
109579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSum.n = 0;
109580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
109581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( once ){
109582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereOrMove(&sSum, &sCur);
109583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ once = 0;
109584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
109585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereOrMove(&sPrev, &sSum);
109586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sSum.n = 0;
109587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<sPrev.n; i++){
109588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<sCur.n; j++){
109589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereOrInsert(&sSum, sPrev.a[i].prereq | sCur.a[j].prereq,
109590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereCostAdd(sPrev.a[i].rRun, sCur.a[j].rRun),
109591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereCostAdd(sPrev.a[i].nOut, sCur.a[j].nOut));
109592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
109593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
109594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
109595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
109596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->nLTerm = 1;
109597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->aLTerm[0] = pTerm;
109598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->wsFlags = WHERE_MULTI_OR;
109599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->rSetup = 0;
109600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->iSortIdx = 0;
109601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&pNew->u, 0, sizeof(pNew->u));
109602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; rc==SQLITE_OK && i<sSum.n; i++){
109194 109603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* TUNING: Multiple by 3.5 for the secondary table lookup */
109195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->rRun = rTotal + 18; assert( 18==whereCost(7)-whereCost(2) );
109196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->nOut = nRow;
109197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->prereq = prereq;
109198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&pNew->u, 0, sizeof(pNew->u));
109604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->rRun = sSum.a[i].rRun + 18;
109605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->nOut = sSum.a[i].nOut;
109606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew->prereq = sSum.a[i].prereq;
109199 109607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = whereLoopInsert(pBuilder, pNew);
109200 109608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- whereLoopClear(pWInfo->pParse->db, &sBest);
109202 109609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109203 109610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109204 109611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
109205 109612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109206 109613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -109810,11 +110217,11 @@
109810 110217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->u.btree.nEq = 1;
109811 110218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* TUNING: Cost of a rowid lookup is 10 */
109812 110219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->rRun = 33; /* 33==whereCost(10) */
109813 110220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
109814 110221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
109815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pIdx->onError==OE_None ) continue;
110222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pIdx->onError==OE_None || pIdx->pPartIdxWhere!=0 ) continue;
109816 110223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<pIdx->nColumn; j++){
109817 110224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm = findTerm(pWC, iCur, pIdx->aiColumn[j], 0, WO_EQ, pIdx);
109818 110225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm==0 ) break;
109819 110226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereLoopResize(pWInfo->pParse->db, pLoop, j);
109820 110227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLoop->aLTerm[j] = pTerm;
@@ -110003,11 +110410,12 @@
110003 110410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWInfo->wctrlFlags = wctrlFlags;
110004 110411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWInfo->savedNQueryLoop = pParse->nQueryLoop;
110005 110412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pMaskSet = &pWInfo->sMaskSet;
110006 110413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sWLB.pWInfo = pWInfo;
110007 110414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sWLB.pWC = &pWInfo->sWC;
110008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sWLB.pNew = (WhereLoop*)&pWInfo->a[nTabList];
110415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sWLB.pNew = (WhereLoop*)(((char*)pWInfo)+nByteWInfo);
110416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( EIGHT_BYTE_ALIGNMENT(sWLB.pNew) );
110009 110417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereLoopInit(sWLB.pNew);
110010 110418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
110011 110419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sWLB.pNew->cId = '*';
110012 110420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
110013 110421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -110015,11 +110423,11 @@
110015 110423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** subexpression is separated by an AND operator.
110016 110424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
110017 110425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
initMaskSet(pMaskSet);
110018 110426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereClauseInit(&pWInfo->sWC, pWInfo);
110019 110427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCodeConstants(pParse, pWhere);
110020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- whereSplit(&pWInfo->sWC, pWhere, TK_AND); /* IMP: R-15842-53296 */
110428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereSplit(&pWInfo->sWC, pWhere, TK_AND);
110021 110429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CodeVerifySchema(pParse, -1); /* Insert the cookie verifier Goto */
110022 110430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
110023 110431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Special case: a WHERE clause that is constant. Evaluate the
110024 110432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expression and either jump over all of the code or fall thru.
110025 110433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -110649,11 +111057,11 @@
110649 111057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
110650 111058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserARG_SDECL Parse *pParse;
110651 111059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserARG_PDECL ,Parse *pParse
110652 111060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
110653 111061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
110654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YYNSTATE 627
111062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YYNSTATE 628
110655 111063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YYNRULE 327
110656 111064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YYFALLBACK 1
110657 111065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
110658 111066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
110659 111067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
@@ -110722,167 +111130,167 @@
110722 111130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** shifting non-terminals after a reduce.
110723 111131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** yy_default[] Default action for each state.
110724 111132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
110725 111133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_ACTTAB_COUNT (1564)
110726 111134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const YYACTIONTYPE yy_action[] = {
110727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 309, 955, 184, 417, 2, 171, 624, 594, 56, 56,
111135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 310, 956, 184, 418, 2, 171, 625, 595, 56, 56,
110728 111136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 10 */ 56, 56, 49, 54, 54, 54, 54, 53, 53, 52,
110729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 52, 52, 51, 233, 620, 619, 298, 620, 619, 234,
110730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 587, 581, 56, 56, 56, 56, 19, 54, 54, 54,
110731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 54, 53, 53, 52, 52, 52, 51, 233, 605, 57,
110732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ 58, 48, 579, 578, 580, 580, 55, 55, 56, 56,
110733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ 56, 56, 541, 54, 54, 54, 54, 53, 53, 52,
110734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 52, 52, 51, 233, 309, 594, 325, 196, 195, 194,
111137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 52, 52, 51, 233, 621, 620, 299, 621, 620, 234,
111138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ 588, 582, 56, 56, 56, 56, 19, 54, 54, 54,
111139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 54, 53, 53, 52, 52, 52, 51, 233, 606, 57,
111140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
111141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ 56, 56, 542, 54, 54, 54, 54, 53, 53, 52,
111142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ 52, 52, 51, 233, 310, 595, 326, 196, 195, 194,
110735 111143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 80 */ 33, 54, 54, 54, 54, 53, 53, 52, 52, 52,
110736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 51, 233, 617, 616, 165, 617, 616, 380, 377, 376,
110737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 407, 532, 576, 576, 587, 581, 303, 422, 375, 59,
111144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 51, 233, 618, 617, 165, 618, 617, 381, 378, 377,
111145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 408, 533, 577, 577, 588, 582, 304, 423, 376, 59,
110738 111146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 110 */ 53, 53, 52, 52, 52, 51, 233, 50, 47, 146,
110739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 574, 545, 65, 57, 58, 48, 579, 578, 580, 580,
111147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 575, 546, 65, 57, 58, 48, 580, 579, 581, 581,
110740 111148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 130 */ 55, 55, 56, 56, 56, 56, 213, 54, 54, 54,
110741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 54, 53, 53, 52, 52, 52, 51, 233, 309, 223,
110742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 539, 420, 170, 176, 138, 280, 383, 275, 382, 168,
110743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 489, 551, 409, 668, 620, 619, 271, 438, 409, 438,
110744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 550, 604, 67, 482, 507, 618, 599, 412, 587, 581,
110745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ 600, 483, 618, 412, 618, 598, 91, 439, 440, 439,
110746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 335, 598, 73, 669, 222, 266, 480, 57, 58, 48,
110747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 579, 578, 580, 580, 55, 55, 56, 56, 56, 56,
110748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 670, 54, 54, 54, 54, 53, 53, 52, 52, 52,
110749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 51, 233, 309, 279, 232, 231, 1, 132, 200, 385,
110750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 620, 619, 617, 616, 278, 435, 289, 563, 175, 262,
110751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 409, 264, 437, 497, 436, 166, 441, 568, 336, 568,
110752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 201, 537, 587, 581, 599, 412, 165, 594, 600, 380,
110753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 377, 376, 597, 598, 92, 523, 618, 569, 569, 592,
110754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 375, 57, 58, 48, 579, 578, 580, 580, 55, 55,
110755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 56, 56, 56, 56, 597, 54, 54, 54, 54, 53,
110756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 53, 52, 52, 52, 51, 233, 309, 463, 617, 616,
110757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 590, 590, 590, 174, 272, 396, 409, 272, 409, 548,
110758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 397, 620, 619, 68, 326, 620, 619, 620, 619, 618,
110759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 546, 412, 618, 412, 471, 594, 587, 581, 472, 598,
110760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 92, 598, 92, 52, 52, 52, 51, 233, 513, 512,
110761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 206, 322, 363, 464, 221, 57, 58, 48, 579, 578,
110762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 580, 580, 55, 55, 56, 56, 56, 56, 529, 54,
111149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 223,
111150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ 540, 421, 170, 176, 138, 281, 384, 276, 383, 168,
111151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 490, 552, 410, 669, 621, 620, 272, 439, 410, 439,
111152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 551, 605, 67, 483, 508, 619, 600, 413, 588, 582,
111153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 601, 484, 619, 413, 619, 599, 91, 440, 441, 440,
111154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ 336, 599, 73, 670, 222, 267, 481, 57, 58, 48,
111155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
111156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 671, 54, 54, 54, 54, 53, 53, 52, 52, 52,
111157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 51, 233, 310, 280, 232, 231, 1, 132, 200, 386,
111158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 621, 620, 618, 617, 279, 436, 290, 564, 175, 263,
111159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 410, 265, 438, 498, 437, 166, 442, 569, 337, 569,
111160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 201, 538, 588, 582, 600, 413, 165, 595, 601, 381,
111161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 378, 377, 598, 599, 92, 524, 619, 570, 570, 593,
111162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 376, 57, 58, 48, 580, 579, 581, 581, 55, 55,
111163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 56, 56, 56, 56, 598, 54, 54, 54, 54, 53,
111164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 53, 52, 52, 52, 51, 233, 310, 464, 618, 617,
111165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 591, 591, 591, 174, 273, 397, 410, 273, 410, 549,
111166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 398, 621, 620, 68, 327, 621, 620, 621, 620, 619,
111167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 547, 413, 619, 413, 472, 595, 588, 582, 473, 599,
111168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 92, 599, 92, 52, 52, 52, 51, 233, 514, 513,
111169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 206, 323, 364, 465, 221, 57, 58, 48, 580, 579,
111170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 581, 581, 55, 55, 56, 56, 56, 56, 530, 54,
110763 111171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
110764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 309, 396, 409, 396, 597, 372, 386, 530, 347, 617,
110765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 616, 575, 202, 617, 616, 617, 616, 412, 620, 619,
110766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 145, 255, 346, 254, 577, 598, 74, 351, 45, 489,
110767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 587, 581, 235, 189, 464, 544, 167, 296, 187, 469,
110768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 479, 67, 62, 39, 618, 546, 597, 345, 573, 57,
110769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 420 */ 58, 48, 579, 578, 580, 580, 55, 55, 56, 56,
111172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 310, 397, 410, 397, 598, 373, 387, 531, 348, 618,
111173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 617, 576, 202, 618, 617, 618, 617, 413, 621, 620,
111174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 145, 255, 347, 254, 578, 599, 74, 352, 45, 490,
111175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 588, 582, 235, 189, 465, 545, 167, 297, 187, 470,
111176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 480, 67, 62, 39, 619, 547, 598, 346, 574, 57,
111177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 420 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
110770 111178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 430 */ 56, 56, 6, 54, 54, 54, 54, 53, 53, 52,
110771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 440 */ 52, 52, 51, 233, 309, 562, 558, 407, 528, 576,
110772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 450 */ 576, 344, 255, 346, 254, 182, 617, 616, 503, 504,
110773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 460 */ 314, 409, 557, 235, 166, 271, 409, 352, 564, 181,
110774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 470 */ 407, 546, 576, 576, 587, 581, 412, 537, 556, 561,
110775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 480 */ 517, 412, 618, 249, 598, 16, 7, 36, 467, 598,
110776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 490 */ 92, 516, 618, 57, 58, 48, 579, 578, 580, 580,
110777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 500 */ 55, 55, 56, 56, 56, 56, 541, 54, 54, 54,
110778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 510 */ 54, 53, 53, 52, 52, 52, 51, 233, 309, 327,
110779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 520 */ 572, 571, 525, 558, 560, 394, 871, 246, 409, 248,
110780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 530 */ 171, 392, 594, 219, 407, 409, 576, 576, 502, 557,
110781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 540 */ 364, 145, 510, 412, 407, 229, 576, 576, 587, 581,
110782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 550 */ 412, 598, 92, 381, 269, 556, 166, 400, 598, 69,
110783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 560 */ 501, 419, 945, 199, 945, 198, 546, 57, 58, 48,
110784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 570 */ 579, 578, 580, 580, 55, 55, 56, 56, 56, 56,
110785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 580 */ 568, 54, 54, 54, 54, 53, 53, 52, 52, 52,
110786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 590 */ 51, 233, 309, 317, 419, 944, 508, 944, 308, 597,
110787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 600 */ 594, 565, 490, 212, 173, 247, 423, 615, 614, 613,
110788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 610 */ 323, 197, 143, 405, 572, 571, 489, 66, 50, 47,
110789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 620 */ 146, 594, 587, 581, 232, 231, 559, 427, 67, 555,
110790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 630 */ 15, 618, 186, 543, 303, 421, 35, 206, 432, 423,
110791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 640 */ 552, 57, 58, 48, 579, 578, 580, 580, 55, 55,
111179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 440 */ 52, 52, 51, 233, 310, 563, 559, 408, 529, 577,
111180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 450 */ 577, 345, 255, 347, 254, 182, 618, 617, 504, 505,
111181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 460 */ 315, 410, 558, 235, 166, 272, 410, 353, 565, 181,
111182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 470 */ 408, 547, 577, 577, 588, 582, 413, 538, 557, 562,
111183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 480 */ 518, 413, 619, 249, 599, 16, 7, 36, 468, 599,
111184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 490 */ 92, 517, 619, 57, 58, 48, 580, 579, 581, 581,
111185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 500 */ 55, 55, 56, 56, 56, 56, 542, 54, 54, 54,
111186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 510 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 328,
111187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 520 */ 573, 572, 526, 559, 561, 395, 872, 246, 410, 248,
111188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 530 */ 171, 393, 595, 219, 408, 410, 577, 577, 503, 558,
111189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 540 */ 365, 145, 511, 413, 408, 229, 577, 577, 588, 582,
111190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 550 */ 413, 599, 92, 382, 270, 557, 166, 401, 599, 69,
111191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 560 */ 502, 420, 946, 199, 946, 198, 547, 57, 58, 48,
111192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 570 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
111193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 580 */ 569, 54, 54, 54, 54, 53, 53, 52, 52, 52,
111194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 590 */ 51, 233, 310, 318, 420, 945, 509, 945, 309, 598,
111195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 600 */ 595, 566, 491, 212, 173, 247, 424, 616, 615, 614,
111196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 610 */ 324, 197, 143, 406, 573, 572, 490, 66, 50, 47,
111197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 620 */ 146, 595, 588, 582, 232, 231, 560, 428, 67, 556,
111198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 630 */ 15, 619, 186, 544, 304, 422, 35, 206, 433, 424,
111199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 640 */ 553, 57, 58, 48, 580, 579, 581, 581, 55, 55,
110792 111200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 650 */ 56, 56, 56, 56, 205, 54, 54, 54, 54, 53,
110793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 660 */ 53, 52, 52, 52, 51, 233, 309, 569, 569, 260,
110794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 670 */ 268, 597, 12, 373, 568, 166, 409, 313, 409, 420,
110795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 680 */ 409, 473, 473, 365, 618, 50, 47, 146, 597, 594,
110796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 690 */ 468, 412, 166, 412, 351, 412, 587, 581, 32, 598,
110797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 700 */ 94, 598, 97, 598, 95, 627, 625, 329, 142, 50,
110798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 710 */ 47, 146, 333, 349, 358, 57, 58, 48, 579, 578,
110799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 720 */ 580, 580, 55, 55, 56, 56, 56, 56, 409, 54,
111201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 660 */ 53, 52, 52, 52, 51, 233, 310, 570, 570, 261,
111202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 670 */ 269, 598, 12, 374, 569, 166, 410, 314, 410, 421,
111203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 680 */ 410, 474, 474, 366, 619, 50, 47, 146, 598, 595,
111204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 690 */ 256, 413, 166, 413, 352, 413, 588, 582, 32, 599,
111205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 700 */ 94, 599, 97, 599, 95, 628, 626, 330, 142, 50,
111206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 710 */ 47, 146, 334, 350, 359, 57, 58, 48, 580, 579,
111207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 720 */ 581, 581, 55, 55, 56, 56, 56, 56, 410, 54,
110800 111208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
110801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 740 */ 309, 409, 388, 412, 409, 22, 565, 404, 212, 362,
110802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 750 */ 389, 598, 104, 359, 409, 156, 412, 409, 603, 412,
110803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 760 */ 537, 331, 569, 569, 598, 103, 493, 598, 105, 412,
110804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 770 */ 587, 581, 412, 260, 549, 618, 11, 598, 106, 521,
110805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 780 */ 598, 133, 169, 457, 456, 170, 35, 601, 618, 57,
110806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 790 */ 58, 48, 579, 578, 580, 580, 55, 55, 56, 56,
110807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 800 */ 56, 56, 409, 54, 54, 54, 54, 53, 53, 52,
110808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 810 */ 52, 52, 51, 233, 309, 409, 259, 412, 409, 50,
110809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 820 */ 47, 146, 357, 318, 355, 598, 134, 527, 352, 337,
110810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 830 */ 412, 409, 356, 412, 357, 409, 357, 618, 598, 98,
110811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 840 */ 129, 598, 102, 618, 587, 581, 412, 21, 235, 618,
110812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 850 */ 412, 618, 211, 143, 598, 101, 30, 167, 598, 93,
110813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 860 */ 350, 535, 203, 57, 58, 48, 579, 578, 580, 580,
110814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 870 */ 55, 55, 56, 56, 56, 56, 409, 54, 54, 54,
110815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 880 */ 54, 53, 53, 52, 52, 52, 51, 233, 309, 409,
110816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 890 */ 526, 412, 409, 425, 215, 305, 597, 551, 141, 598,
110817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 900 */ 100, 40, 409, 38, 412, 409, 550, 412, 409, 228,
110818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 910 */ 220, 314, 598, 77, 500, 598, 96, 412, 587, 581,
110819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 920 */ 412, 338, 253, 412, 218, 598, 137, 379, 598, 136,
110820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 930 */ 28, 598, 135, 270, 715, 210, 481, 57, 58, 48,
110821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 940 */ 579, 578, 580, 580, 55, 55, 56, 56, 56, 56,
110822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 950 */ 409, 54, 54, 54, 54, 53, 53, 52, 52, 52,
110823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 960 */ 51, 233, 309, 409, 272, 412, 409, 315, 147, 597,
110824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 970 */ 272, 626, 2, 598, 76, 209, 409, 127, 412, 618,
110825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 980 */ 126, 412, 409, 621, 235, 618, 598, 90, 374, 598,
110826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 990 */ 89, 412, 587, 581, 27, 260, 350, 412, 618, 598,
110827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1000 */ 75, 321, 541, 541, 125, 598, 88, 320, 278, 597,
110828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1010 */ 618, 57, 46, 48, 579, 578, 580, 580, 55, 55,
110829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1020 */ 56, 56, 56, 56, 409, 54, 54, 54, 54, 53,
110830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1030 */ 53, 52, 52, 52, 51, 233, 309, 409, 450, 412,
110831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1040 */ 164, 284, 282, 272, 609, 424, 304, 598, 87, 370,
110832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1050 */ 409, 477, 412, 409, 608, 409, 607, 602, 618, 618,
110833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1060 */ 598, 99, 586, 585, 122, 412, 587, 581, 412, 618,
110834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1070 */ 412, 618, 618, 598, 86, 366, 598, 17, 598, 85,
110835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1080 */ 319, 185, 519, 518, 583, 582, 58, 48, 579, 578,
110836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1090 */ 580, 580, 55, 55, 56, 56, 56, 56, 409, 54,
111209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 740 */ 310, 410, 389, 413, 410, 22, 566, 405, 212, 363,
111210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 750 */ 390, 599, 104, 360, 410, 156, 413, 410, 604, 413,
111211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 760 */ 538, 332, 570, 570, 599, 103, 494, 599, 105, 413,
111212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 770 */ 588, 582, 413, 261, 550, 619, 11, 599, 106, 522,
111213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 780 */ 599, 133, 169, 458, 457, 170, 35, 602, 619, 57,
111214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 790 */ 58, 48, 580, 579, 581, 581, 55, 55, 56, 56,
111215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 800 */ 56, 56, 410, 54, 54, 54, 54, 53, 53, 52,
111216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 810 */ 52, 52, 51, 233, 310, 410, 260, 413, 410, 50,
111217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 820 */ 47, 146, 358, 319, 356, 599, 134, 528, 353, 338,
111218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 830 */ 413, 410, 357, 413, 358, 410, 358, 619, 599, 98,
111219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 840 */ 129, 599, 102, 619, 588, 582, 413, 21, 235, 619,
111220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 850 */ 413, 619, 211, 143, 599, 101, 30, 167, 599, 93,
111221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 860 */ 351, 536, 203, 57, 58, 48, 580, 579, 581, 581,
111222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 870 */ 55, 55, 56, 56, 56, 56, 410, 54, 54, 54,
111223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 880 */ 54, 53, 53, 52, 52, 52, 51, 233, 310, 410,
111224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 890 */ 527, 413, 410, 426, 215, 306, 598, 552, 141, 599,
111225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 900 */ 100, 40, 410, 38, 413, 410, 551, 413, 410, 228,
111226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 910 */ 220, 315, 599, 77, 501, 599, 96, 413, 588, 582,
111227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 920 */ 413, 339, 253, 413, 218, 599, 137, 380, 599, 136,
111228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 930 */ 28, 599, 135, 271, 716, 210, 482, 57, 58, 48,
111229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 940 */ 580, 579, 581, 581, 55, 55, 56, 56, 56, 56,
111230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 950 */ 410, 54, 54, 54, 54, 53, 53, 52, 52, 52,
111231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 960 */ 51, 233, 310, 410, 273, 413, 410, 316, 147, 598,
111232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 970 */ 273, 627, 2, 599, 76, 209, 410, 127, 413, 619,
111233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 980 */ 126, 413, 410, 622, 235, 619, 599, 90, 375, 599,
111234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 990 */ 89, 413, 588, 582, 27, 261, 351, 413, 619, 599,
111235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1000 */ 75, 322, 542, 542, 125, 599, 88, 321, 279, 598,
111236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1010 */ 619, 57, 46, 48, 580, 579, 581, 581, 55, 55,
111237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1020 */ 56, 56, 56, 56, 410, 54, 54, 54, 54, 53,
111238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1030 */ 53, 52, 52, 52, 51, 233, 310, 410, 451, 413,
111239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1040 */ 164, 285, 283, 273, 610, 425, 305, 599, 87, 371,
111240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1050 */ 410, 478, 413, 410, 609, 410, 608, 603, 619, 619,
111241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1060 */ 599, 99, 587, 586, 122, 413, 588, 582, 413, 619,
111242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1070 */ 413, 619, 619, 599, 86, 367, 599, 17, 599, 85,
111243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1080 */ 320, 185, 520, 519, 584, 583, 58, 48, 580, 579,
111244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1090 */ 581, 581, 55, 55, 56, 56, 56, 56, 410, 54,
110837 111245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233,
110838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1110 */ 309, 584, 409, 412, 409, 260, 260, 260, 408, 591,
110839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1120 */ 474, 598, 84, 170, 409, 466, 518, 412, 121, 412,
110840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1130 */ 618, 618, 618, 618, 618, 598, 83, 598, 72, 412,
110841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1140 */ 587, 581, 51, 233, 625, 329, 470, 598, 71, 257,
110842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1150 */ 159, 120, 14, 462, 157, 158, 117, 260, 448, 447,
110843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1160 */ 446, 48, 579, 578, 580, 580, 55, 55, 56, 56,
110844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1170 */ 56, 56, 618, 54, 54, 54, 54, 53, 53, 52,
110845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1180 */ 52, 52, 51, 233, 44, 403, 260, 3, 409, 459,
110846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1190 */ 260, 413, 619, 118, 398, 10, 25, 24, 554, 348,
110847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1200 */ 217, 618, 406, 412, 409, 618, 4, 44, 403, 618,
110848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1210 */ 3, 598, 82, 618, 413, 619, 455, 542, 115, 412,
110849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1220 */ 538, 401, 536, 274, 506, 406, 251, 598, 81, 216,
110850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1230 */ 273, 563, 618, 243, 453, 618, 154, 618, 618, 618,
110851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1240 */ 449, 416, 623, 110, 401, 618, 409, 236, 64, 123,
110852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1250 */ 487, 41, 42, 531, 563, 204, 409, 267, 43, 411,
110853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1260 */ 410, 412, 265, 592, 108, 618, 107, 434, 332, 598,
110854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1270 */ 80, 412, 618, 263, 41, 42, 443, 618, 409, 598,
110855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1280 */ 70, 43, 411, 410, 433, 261, 592, 149, 618, 597,
110856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1290 */ 256, 237, 188, 412, 590, 590, 590, 589, 588, 13,
110857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1300 */ 618, 598, 18, 328, 235, 618, 44, 403, 360, 3,
110858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1310 */ 418, 461, 339, 413, 619, 227, 124, 590, 590, 590,
110859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1320 */ 589, 588, 13, 618, 406, 409, 618, 409, 139, 34,
110860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1330 */ 403, 387, 3, 148, 622, 312, 413, 619, 311, 330,
110861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1340 */ 412, 460, 412, 401, 180, 353, 412, 406, 598, 79,
110862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1350 */ 598, 78, 250, 563, 598, 9, 618, 612, 611, 610,
110863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1360 */ 618, 8, 452, 442, 242, 415, 401, 618, 239, 235,
110864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1370 */ 179, 238, 428, 41, 42, 288, 563, 618, 618, 618,
110865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1380 */ 43, 411, 410, 618, 144, 592, 618, 618, 177, 61,
110866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1390 */ 618, 596, 391, 620, 619, 287, 41, 42, 414, 618,
110867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1400 */ 293, 30, 393, 43, 411, 410, 292, 618, 592, 31,
110868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1410 */ 618, 395, 291, 60, 230, 37, 590, 590, 590, 589,
110869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1420 */ 588, 13, 214, 553, 183, 290, 172, 301, 300, 299,
110870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1430 */ 178, 297, 595, 563, 451, 29, 285, 390, 540, 590,
110871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1440 */ 590, 590, 589, 588, 13, 283, 520, 534, 150, 533,
110872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1450 */ 241, 281, 384, 192, 191, 324, 515, 514, 276, 240,
110873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1460 */ 510, 523, 307, 511, 128, 592, 509, 225, 226, 486,
110874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1470 */ 485, 224, 152, 491, 464, 306, 484, 163, 153, 371,
110875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1480 */ 478, 151, 162, 258, 369, 161, 367, 208, 475, 476,
110876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1490 */ 26, 160, 465, 140, 361, 131, 590, 590, 590, 116,
110877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1500 */ 119, 454, 343, 155, 114, 342, 113, 112, 445, 111,
110878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1510 */ 130, 109, 431, 316, 426, 430, 23, 429, 20, 606,
110879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1520 */ 190, 507, 255, 341, 244, 63, 294, 593, 310, 570,
110880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1530 */ 277, 402, 354, 235, 567, 496, 495, 492, 494, 302,
110881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1540 */ 458, 378, 286, 245, 566, 5, 252, 547, 193, 444,
110882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1550 */ 233, 340, 207, 524, 368, 505, 334, 522, 499, 399,
110883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1560 */ 295, 498, 956, 488,
111246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1110 */ 310, 585, 410, 413, 410, 261, 261, 261, 409, 592,
111247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1120 */ 475, 599, 84, 170, 410, 467, 519, 413, 121, 413,
111248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1130 */ 619, 619, 619, 619, 619, 599, 83, 599, 72, 413,
111249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1140 */ 588, 582, 51, 233, 626, 330, 471, 599, 71, 258,
111250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1150 */ 159, 120, 14, 463, 157, 158, 117, 261, 449, 448,
111251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1160 */ 447, 48, 580, 579, 581, 581, 55, 55, 56, 56,
111252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1170 */ 56, 56, 619, 54, 54, 54, 54, 53, 53, 52,
111253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1180 */ 52, 52, 51, 233, 44, 404, 261, 3, 410, 460,
111254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1190 */ 261, 414, 620, 118, 399, 10, 25, 24, 555, 349,
111255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1200 */ 217, 619, 407, 413, 410, 619, 4, 44, 404, 619,
111256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1210 */ 3, 599, 82, 619, 414, 620, 456, 543, 115, 413,
111257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1220 */ 539, 402, 537, 275, 507, 407, 251, 599, 81, 216,
111258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1230 */ 274, 564, 619, 243, 454, 619, 154, 619, 619, 619,
111259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1240 */ 450, 417, 624, 110, 402, 619, 410, 236, 64, 123,
111260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1250 */ 488, 41, 42, 532, 564, 204, 410, 268, 43, 412,
111261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1260 */ 411, 413, 266, 593, 108, 619, 107, 435, 333, 599,
111262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1270 */ 80, 413, 619, 264, 41, 42, 444, 619, 410, 599,
111263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1280 */ 70, 43, 412, 411, 434, 262, 593, 149, 619, 598,
111264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1290 */ 257, 237, 188, 413, 591, 591, 591, 590, 589, 13,
111265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1300 */ 619, 599, 18, 329, 235, 619, 44, 404, 361, 3,
111266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1310 */ 419, 462, 340, 414, 620, 227, 124, 591, 591, 591,
111267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1320 */ 590, 589, 13, 619, 407, 410, 619, 410, 139, 34,
111268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1330 */ 404, 388, 3, 148, 623, 313, 414, 620, 312, 331,
111269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1340 */ 413, 461, 413, 402, 180, 354, 413, 407, 599, 79,
111270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1350 */ 599, 78, 250, 564, 599, 9, 619, 613, 612, 611,
111271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1360 */ 619, 8, 453, 443, 242, 416, 402, 619, 239, 235,
111272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1370 */ 179, 238, 429, 41, 42, 289, 564, 619, 619, 619,
111273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1380 */ 43, 412, 411, 619, 144, 593, 619, 619, 177, 61,
111274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1390 */ 619, 597, 392, 621, 620, 288, 41, 42, 415, 619,
111275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1400 */ 294, 30, 394, 43, 412, 411, 293, 619, 593, 31,
111276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1410 */ 619, 396, 292, 60, 230, 37, 591, 591, 591, 590,
111277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1420 */ 589, 13, 214, 554, 183, 291, 172, 302, 301, 300,
111278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1430 */ 178, 298, 596, 564, 452, 29, 286, 391, 541, 591,
111279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1440 */ 591, 591, 590, 589, 13, 284, 521, 535, 150, 534,
111280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1450 */ 241, 282, 385, 192, 191, 325, 516, 515, 277, 240,
111281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1460 */ 511, 524, 308, 512, 128, 593, 510, 225, 226, 487,
111282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1470 */ 486, 224, 152, 492, 465, 307, 485, 163, 153, 372,
111283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1480 */ 479, 151, 162, 259, 370, 161, 368, 208, 476, 477,
111284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1490 */ 26, 160, 469, 466, 362, 140, 591, 591, 591, 116,
111285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1500 */ 119, 455, 344, 155, 114, 343, 113, 112, 446, 111,
111286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1510 */ 131, 109, 432, 317, 130, 431, 23, 20, 430, 427,
111287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1520 */ 190, 63, 255, 342, 244, 607, 295, 287, 311, 594,
111288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1530 */ 278, 508, 496, 235, 493, 571, 497, 568, 495, 403,
111289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1540 */ 459, 379, 355, 245, 193, 303, 567, 296, 341, 5,
111290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1550 */ 445, 548, 506, 207, 525, 500, 335, 489, 252, 369,
111291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1560 */ 400, 499, 523, 233,
110884 111292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
110885 111293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const YYCODETYPE yy_lookahead[] = {
110886 111294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 0 */ 19, 142, 143, 144, 145, 24, 1, 26, 77, 78,
110887 111295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
110888 111296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 20 */ 89, 90, 91, 92, 26, 27, 15, 26, 27, 197,
@@ -111030,21 +111438,21 @@
111030 111438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1440 */ 130, 131, 132, 133, 134, 210, 175, 211, 31, 211,
111031 111439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1450 */ 33, 210, 104, 86, 87, 47, 175, 183, 175, 42,
111032 111440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1460 */ 103, 94, 178, 177, 22, 98, 175, 92, 228, 175,
111033 111441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1470 */ 175, 228, 55, 183, 57, 178, 175, 156, 61, 18,
111034 111442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1480 */ 157, 64, 156, 235, 157, 156, 45, 157, 236, 157,
111035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1490 */ 135, 156, 189, 68, 157, 218, 129, 130, 131, 22,
111443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1490 */ 135, 156, 199, 189, 157, 68, 129, 130, 131, 22,
111036 111444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 1500 */ 189, 199, 157, 156, 192, 18, 192, 192, 199, 192,
111037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1510 */ 218, 189, 40, 157, 38, 157, 240, 157, 240, 153,
111038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1520 */ 196, 181, 105, 106, 107, 243, 198, 166, 111, 230,
111039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1530 */ 176, 226, 239, 116, 230, 176, 166, 166, 176, 148,
111040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1540 */ 199, 177, 209, 209, 166, 196, 239, 208, 185, 199,
111041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1550 */ 92, 209, 233, 173, 234, 182, 139, 173, 182, 191,
111042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 1560 */ 195, 182, 250, 186,
111445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1510 */ 218, 189, 40, 157, 218, 157, 240, 240, 157, 38,
111446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1520 */ 196, 243, 105, 106, 107, 153, 198, 209, 111, 166,
111447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1530 */ 176, 181, 166, 116, 166, 230, 176, 230, 176, 226,
111448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1540 */ 199, 177, 239, 209, 185, 148, 166, 195, 209, 196,
111449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1550 */ 199, 208, 182, 233, 173, 182, 139, 186, 239, 234,
111450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 1560 */ 191, 182, 173, 92,
111043 111451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
111044 111452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_SHIFT_USE_DFLT (-70)
111045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_SHIFT_COUNT (416)
111453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_SHIFT_COUNT (417)
111046 111454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_SHIFT_MIN (-69)
111047 111455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_SHIFT_MAX (1487)
111048 111456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const short yy_shift_ofst[] = {
111049 111457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 0 */ 1143, 1188, 1417, 1188, 1287, 1287, 138, 138, -2, -19,
111050 111458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 10 */ 1287, 1287, 1287, 1287, 347, 362, 129, 129, 795, 1165,
@@ -111057,44 +111465,44 @@
111057 111465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 80 */ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869,
111058 111466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 90 */ 869, 869, 869, 943, 869, 1017, 1091, 1091, -69, -45,
111059 111467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 100 */ -45, -45, -45, -45, -1, 24, 245, 362, 362, 362,
111060 111468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 110 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
111061 111469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 120 */ 362, 362, 362, 388, 356, 362, 362, 362, 362, 362,
111062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ 732, 868, 231, 1051, 1458, -70, -70, -70, 1367, 57,
111470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 732, 868, 231, 1051, 1471, -70, -70, -70, 1367, 57,
111063 111471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 140 */ 434, 434, 289, 291, 285, 1, 204, 572, 539, 362,
111064 111472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 150 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
111065 111473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 160 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
111066 111474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 170 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
111067 111475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 180 */ 362, 506, 506, 506, 705, 1253, 1253, 1253, -70, -70,
111068 111476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 190 */ -70, 171, 171, 160, 502, 502, 502, 446, 432, 511,
111069 111477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 200 */ 422, 358, 335, -12, -12, -12, -12, 576, 294, -12,
111070 111478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 210 */ -12, 295, 595, 141, 600, 730, 723, 723, 805, 730,
111071 111479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 220 */ 805, 439, 911, 231, 865, 231, 865, 807, 865, 723,
111072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 766, 633, 633, 231, 284, 63, 608, 1476, 1308, 1308,
111073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 1472, 1472, 1308, 1477, 1425, 1275, 1487, 1487, 1487, 1487,
111074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 1308, 1461, 1275, 1477, 1425, 1425, 1308, 1461, 1355, 1441,
111075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 1308, 1308, 1461, 1308, 1461, 1308, 1461, 1442, 1348, 1348,
111076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 1348, 1408, 1375, 1375, 1442, 1348, 1357, 1348, 1408, 1348,
111077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 1348, 1316, 1331, 1316, 1331, 1316, 1331, 1308, 1308, 1280,
111078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 1288, 1289, 1285, 1279, 1275, 1253, 1336, 1346, 1346, 1338,
111079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 1338, 1338, 1338, -70, -70, -70, -70, -70, -70, 1013,
111080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 467, 612, 84, 179, -28, 870, 410, 761, 760, 667,
111081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 650, 531, 220, 361, 331, 125, 127, 97, 1306, 1300,
111082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 1270, 1151, 1272, 1203, 1232, 1261, 1244, 1148, 1174, 1139,
111083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 1156, 1124, 1220, 1115, 1210, 1233, 1099, 1193, 1184, 1174,
111084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 1173, 1029, 1121, 1120, 1085, 1162, 1119, 1037, 1152, 1147,
111085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 360 */ 1129, 1046, 1011, 1093, 1098, 1075, 1061, 1032, 960, 1057,
111086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 1031, 1030, 899, 938, 982, 936, 972, 958, 910, 955,
111087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 875, 885, 908, 857, 859, 867, 804, 590, 834, 747,
111088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 818, 513, 611, 741, 673, 637, 611, 606, 603, 579,
111089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 501, 541, 468, 386, 445, 395, 376, 281, 185, 120,
111090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 92, 75, 45, 114, 25, 11, 5,
111480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 766, 633, 633, 231, 284, 63, 608, 1481, 1308, 1308,
111481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 1472, 1472, 1308, 1477, 1427, 1275, 1487, 1487, 1487, 1487,
111482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 1308, 1461, 1275, 1477, 1427, 1427, 1275, 1308, 1461, 1355,
111483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 1441, 1308, 1308, 1461, 1308, 1461, 1308, 1461, 1442, 1348,
111484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 1348, 1348, 1408, 1375, 1375, 1442, 1348, 1357, 1348, 1408,
111485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 1348, 1348, 1316, 1331, 1316, 1331, 1316, 1331, 1308, 1308,
111486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 1280, 1288, 1289, 1285, 1279, 1275, 1253, 1336, 1346, 1346,
111487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 1338, 1338, 1338, 1338, -70, -70, -70, -70, -70, -70,
111488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 1013, 467, 612, 84, 179, -28, 870, 410, 761, 760,
111489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 667, 650, 531, 220, 361, 331, 125, 127, 97, 1306,
111490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 1300, 1270, 1151, 1272, 1203, 1232, 1261, 1244, 1148, 1174,
111491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 1139, 1156, 1124, 1220, 1115, 1210, 1233, 1099, 1193, 1184,
111492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 1174, 1173, 1029, 1121, 1120, 1085, 1162, 1119, 1037, 1152,
111493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 1147, 1129, 1046, 1011, 1093, 1098, 1075, 1061, 1032, 960,
111494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 1057, 1031, 1030, 899, 938, 982, 936, 972, 958, 910,
111495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 955, 875, 885, 908, 857, 859, 867, 804, 590, 834,
111496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 747, 818, 513, 611, 741, 673, 637, 611, 606, 603,
111497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 579, 501, 541, 468, 386, 445, 395, 376, 281, 185,
111498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 120, 92, 75, 45, 114, 25, 11, 5,
111091 111499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
111092 111500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_REDUCE_USE_DFLT (-169)
111093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_REDUCE_COUNT (308)
111501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_REDUCE_COUNT (309)
111094 111502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define YY_REDUCE_MIN (-168)
111095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define YY_REDUCE_MAX (1391)
111503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define YY_REDUCE_MAX (1397)
111096 111504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const short yy_reduce_ofst[] = {
111097 111505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 0 */ -141, 90, 1095, 222, 158, 156, 19, 17, 10, -104,
111098 111506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 10 */ 378, 316, 311, 12, 180, 249, 598, 464, 397, 1181,
111099 111507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 20 */ 1177, 1175, 1128, 1106, 1096, 1054, 1038, 974, 964, 962,
111100 111508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 30 */ 948, 905, 903, 900, 887, 874, 832, 826, 816, 813,
@@ -111111,87 +111519,87 @@
111111 111519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 140 */ 935, 892, 968, 1245, 1242, 1234, 1225, 798, 798, 1222,
111112 111520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 150 */ 1221, 1218, 1214, 1213, 1212, 1202, 1195, 1191, 1161, 1158,
111113 111521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 160 */ 1140, 1135, 1123, 1112, 1107, 1100, 1080, 1074, 1073, 1072,
111114 111522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 170 */ 1070, 1067, 1048, 1044, 969, 968, 907, 906, 904, 894,
111115 111523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 180 */ 833, 837, 836, 340, 827, 815, 775, 68, 722, 646,
111116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ -168, 1384, 1380, 1377, 1379, 1376, 1373, 1339, 1365, 1368,
111117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1320, 1319, 1365,
111118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 1365, 1339, 1378, 1349, 1391, 1350, 1342, 1334, 1307, 1341,
111119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 1293, 1364, 1363, 1371, 1362, 1370, 1359, 1340, 1354, 1333,
111120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 1305, 1304, 1299, 1361, 1328, 1324, 1366, 1282, 1360, 1358,
111121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 1278, 1276, 1356, 1292, 1322, 1309, 1317, 1315, 1314, 1312,
111122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 1345, 1347, 1302, 1277, 1311, 1303, 1337, 1335, 1252, 1248,
111123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 1332, 1330, 1329, 1327, 1326, 1323, 1321, 1297, 1301, 1295,
111124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 1294, 1290, 1243, 1240, 1284, 1291, 1286, 1283, 1274, 1281,
111125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 1271, 1238, 1241, 1236, 1235, 1227, 1226, 1267, 1266, 1189,
111126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 1229, 1223, 1211, 1206, 1201, 1197, 1239, 1237, 1219, 1216,
111127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 1209, 1208, 1185, 1089, 1086, 1087, 1137, 1136, 1164,
111524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ -168, 1389, 1381, 1371, 1379, 1373, 1370, 1343, 1352, 1369,
111525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1325, 1320, 1352,
111526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 1352, 1343, 1380, 1353, 1397, 1351, 1339, 1334, 1319, 1341,
111527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 1303, 1364, 1359, 1368, 1362, 1366, 1360, 1350, 1354, 1318,
111528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 1313, 1307, 1305, 1363, 1328, 1324, 1372, 1278, 1361, 1358,
111529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 1277, 1276, 1356, 1296, 1322, 1309, 1317, 1315, 1314, 1312,
111530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 1345, 1347, 1302, 1292, 1311, 1304, 1293, 1337, 1335, 1252,
111531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 1248, 1332, 1330, 1329, 1327, 1326, 1323, 1321, 1297, 1301,
111532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 1295, 1294, 1290, 1243, 1240, 1284, 1291, 1286, 1283, 1274,
111533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 1281, 1271, 1238, 1241, 1236, 1235, 1227, 1226, 1267, 1266,
111534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 1189, 1229, 1223, 1211, 1206, 1201, 1197, 1239, 1237, 1219,
111535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 1216, 1209, 1208, 1185, 1089, 1086, 1087, 1137, 1136, 1164,
111128 111536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
111129 111537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const YYACTIONTYPE yy_default[] = {
111130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 0 */ 632, 866, 954, 954, 866, 866, 954, 954, 954, 756,
111131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 10 */ 954, 954, 954, 864, 954, 954, 784, 784, 928, 954,
111132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 20 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 30 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 40 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 50 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 60 */ 954, 954, 954, 954, 954, 954, 954, 671, 760, 790,
111137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 70 */ 954, 954, 954, 954, 954, 954, 954, 954, 927, 929,
111138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 80 */ 798, 797, 907, 771, 795, 788, 792, 867, 860, 861,
111139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 90 */ 859, 863, 868, 954, 791, 827, 844, 826, 838, 843,
111140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 100 */ 850, 842, 839, 829, 828, 830, 831, 954, 954, 954,
111141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 110 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 120 */ 954, 954, 954, 658, 725, 954, 954, 954, 954, 954,
111143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 130 */ 954, 954, 954, 832, 833, 847, 846, 845, 954, 663,
111144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 140 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 150 */ 934, 932, 954, 879, 954, 954, 954, 954, 954, 954,
111146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 160 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 170 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 180 */ 638, 756, 756, 756, 632, 954, 954, 954, 946, 760,
111149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 190 */ 750, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 200 */ 954, 954, 954, 800, 739, 917, 919, 954, 900, 737,
111151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 210 */ 660, 758, 673, 748, 640, 794, 773, 773, 912, 794,
111152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 220 */ 912, 696, 719, 954, 784, 954, 784, 693, 784, 773,
111153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 230 */ 862, 954, 954, 954, 757, 748, 954, 939, 764, 764,
111154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 240 */ 931, 931, 764, 806, 729, 794, 736, 736, 736, 736,
111155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 250 */ 764, 655, 794, 806, 729, 729, 764, 655, 906, 904,
111156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 260 */ 764, 764, 655, 764, 655, 764, 655, 872, 727, 727,
111157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 270 */ 727, 711, 876, 876, 872, 727, 696, 727, 711, 727,
111158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 280 */ 727, 777, 772, 777, 772, 777, 772, 764, 764, 954,
111159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 290 */ 789, 778, 787, 785, 794, 954, 714, 648, 648, 637,
111160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 300 */ 637, 637, 637, 951, 951, 946, 698, 698, 681, 954,
111161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 310 */ 954, 954, 954, 954, 954, 954, 881, 954, 954, 954,
111162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 320 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 633,
111163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 330 */ 941, 954, 954, 938, 954, 954, 954, 954, 799, 954,
111164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 340 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 916,
111165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 350 */ 954, 954, 954, 954, 954, 954, 954, 910, 954, 954,
111166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 360 */ 954, 954, 954, 954, 903, 902, 954, 954, 954, 954,
111167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 370 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 380 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
111169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 390 */ 954, 954, 786, 954, 779, 954, 865, 954, 954, 954,
111170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 400 */ 954, 954, 954, 954, 954, 954, 954, 742, 815, 954,
111171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 410 */ 814, 818, 813, 665, 954, 646, 954, 629, 634, 950,
111172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 420 */ 953, 952, 949, 948, 947, 942, 940, 937, 936, 935,
111173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 430 */ 933, 930, 926, 885, 883, 890, 889, 888, 887, 886,
111174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 440 */ 884, 882, 880, 801, 796, 793, 925, 878, 738, 735,
111175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 450 */ 734, 654, 943, 909, 918, 805, 804, 807, 915, 914,
111176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 460 */ 913, 911, 908, 895, 803, 802, 730, 870, 869, 657,
111177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 470 */ 899, 898, 897, 901, 905, 896, 766, 656, 653, 662,
111178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 480 */ 717, 718, 726, 724, 723, 722, 721, 720, 716, 664,
111179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 490 */ 672, 710, 695, 694, 875, 877, 874, 873, 703, 702,
111180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 500 */ 708, 707, 706, 705, 704, 701, 700, 699, 692, 691,
111181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 510 */ 697, 690, 713, 712, 709, 689, 733, 732, 731, 728,
111182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 520 */ 688, 687, 686, 818, 685, 684, 824, 823, 811, 854,
111183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 530 */ 753, 752, 751, 763, 762, 775, 774, 809, 808, 776,
111184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 540 */ 761, 755, 754, 770, 769, 768, 767, 759, 749, 781,
111185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 550 */ 783, 782, 780, 856, 765, 853, 924, 923, 922, 921,
111186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 560 */ 920, 858, 857, 825, 822, 676, 677, 893, 892, 894,
111187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 570 */ 891, 679, 678, 675, 674, 855, 744, 743, 851, 848,
111188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 580 */ 840, 836, 852, 849, 841, 837, 835, 834, 820, 819,
111189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 590 */ 817, 816, 812, 821, 667, 745, 741, 740, 810, 747,
111190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 600 */ 746, 683, 682, 680, 661, 659, 652, 650, 649, 651,
111191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 610 */ 647, 645, 644, 643, 642, 641, 670, 669, 668, 666,
111192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 620 */ 665, 639, 636, 635, 631, 630, 628,
111538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 0 */ 633, 867, 955, 955, 867, 867, 955, 955, 955, 757,
111539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 10 */ 955, 955, 955, 865, 955, 955, 785, 785, 929, 955,
111540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 20 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 30 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 40 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 50 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 60 */ 955, 955, 955, 955, 955, 955, 955, 672, 761, 791,
111545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 70 */ 955, 955, 955, 955, 955, 955, 955, 955, 928, 930,
111546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 80 */ 799, 798, 908, 772, 796, 789, 793, 868, 861, 862,
111547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 90 */ 860, 864, 869, 955, 792, 828, 845, 827, 839, 844,
111548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 100 */ 851, 843, 840, 830, 829, 831, 832, 955, 955, 955,
111549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 110 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 120 */ 955, 955, 955, 659, 726, 955, 955, 955, 955, 955,
111551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 130 */ 955, 955, 955, 833, 834, 848, 847, 846, 955, 664,
111552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 140 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 150 */ 935, 933, 955, 880, 955, 955, 955, 955, 955, 955,
111554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 160 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 170 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 180 */ 639, 757, 757, 757, 633, 955, 955, 955, 947, 761,
111557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 190 */ 751, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 200 */ 955, 955, 955, 801, 740, 918, 920, 955, 901, 738,
111559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 210 */ 661, 759, 674, 749, 641, 795, 774, 774, 913, 795,
111560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 220 */ 913, 697, 720, 955, 785, 955, 785, 694, 785, 774,
111561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 230 */ 863, 955, 955, 955, 758, 749, 955, 940, 765, 765,
111562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 240 */ 932, 932, 765, 807, 730, 795, 737, 737, 737, 737,
111563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 250 */ 765, 656, 795, 807, 730, 730, 795, 765, 656, 907,
111564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 260 */ 905, 765, 765, 656, 765, 656, 765, 656, 873, 728,
111565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 270 */ 728, 728, 712, 877, 877, 873, 728, 697, 728, 712,
111566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 280 */ 728, 728, 778, 773, 778, 773, 778, 773, 765, 765,
111567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 290 */ 955, 790, 779, 788, 786, 795, 955, 715, 649, 649,
111568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 300 */ 638, 638, 638, 638, 952, 952, 947, 699, 699, 682,
111569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 310 */ 955, 955, 955, 955, 955, 955, 955, 882, 955, 955,
111570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 320 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 330 */ 634, 942, 955, 955, 939, 955, 955, 955, 955, 800,
111572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 340 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 350 */ 917, 955, 955, 955, 955, 955, 955, 955, 911, 955,
111574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 360 */ 955, 955, 955, 955, 955, 904, 903, 955, 955, 955,
111575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 370 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 380 */ 955, 955, 955, 955, 955, 955, 955, 955, 955, 955,
111577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 390 */ 955, 955, 955, 787, 955, 780, 955, 866, 955, 955,
111578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 400 */ 955, 955, 955, 955, 955, 955, 955, 955, 743, 816,
111579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 410 */ 955, 815, 819, 814, 666, 955, 647, 955, 630, 635,
111580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 420 */ 951, 954, 953, 950, 949, 948, 943, 941, 938, 937,
111581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 430 */ 936, 934, 931, 927, 886, 884, 891, 890, 889, 888,
111582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 440 */ 887, 885, 883, 881, 802, 797, 794, 926, 879, 739,
111583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 450 */ 736, 735, 655, 944, 910, 919, 806, 805, 808, 916,
111584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 460 */ 915, 914, 912, 909, 896, 804, 803, 731, 871, 870,
111585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 470 */ 658, 900, 899, 898, 902, 906, 897, 767, 657, 654,
111586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 480 */ 663, 718, 719, 727, 725, 724, 723, 722, 721, 717,
111587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 490 */ 665, 673, 711, 696, 695, 876, 878, 875, 874, 704,
111588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 500 */ 703, 709, 708, 707, 706, 705, 702, 701, 700, 693,
111589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 510 */ 692, 698, 691, 714, 713, 710, 690, 734, 733, 732,
111590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 520 */ 729, 689, 688, 687, 819, 686, 685, 825, 824, 812,
111591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 530 */ 855, 754, 753, 752, 764, 763, 776, 775, 810, 809,
111592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 540 */ 777, 762, 756, 755, 771, 770, 769, 768, 760, 750,
111593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 550 */ 782, 784, 783, 781, 857, 766, 854, 925, 924, 923,
111594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 560 */ 922, 921, 859, 858, 826, 823, 677, 678, 894, 893,
111595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 570 */ 895, 892, 680, 679, 676, 675, 856, 745, 744, 852,
111596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 580 */ 849, 841, 837, 853, 850, 842, 838, 836, 835, 821,
111597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 590 */ 820, 818, 817, 813, 822, 668, 746, 742, 741, 811,
111598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 600 */ 748, 747, 684, 683, 681, 662, 660, 653, 651, 650,
111599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 610 */ 652, 648, 646, 645, 644, 643, 642, 671, 670, 669,
111600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 620 */ 667, 666, 640, 637, 636, 632, 631, 629,
111193 111601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
111194 111602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111195 111603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The next table maps tokens into fallback tokens. If a construct
111196 111604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** like the following:
111197 111605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -111659,11 +112067,11 @@
111659 112067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 237 */ "case_operand ::=",
111660 112068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 238 */ "exprlist ::= nexprlist",
111661 112069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 239 */ "exprlist ::=",
111662 112070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 240 */ "nexprlist ::= nexprlist COMMA expr",
111663 112071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 241 */ "nexprlist ::= expr",
111664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 242 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP",
112072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* 242 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP where_opt",
111665 112073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 243 */ "uniqueflag ::= UNIQUE",
111666 112074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 244 */ "uniqueflag ::=",
111667 112075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 245 */ "idxlist_opt ::=",
111668 112076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 246 */ "idxlist_opt ::= LP idxlist RP",
111669 112077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* 247 */ "idxlist ::= idxlist COMMA nm collate sortorder",
@@ -112378,11 +112786,11 @@
112378 112786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 224, 0 },
112379 112787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 220, 1 },
112380 112788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 220, 0 },
112381 112789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 215, 3 },
112382 112790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 215, 1 },
112383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 147, 11 },
112791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 147, 12 },
112384 112792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 227, 1 },
112385 112793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 227, 0 },
112386 112794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 178, 0 },
112387 112795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 178, 3 },
112388 112796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 187, 5 },
@@ -112820,10 +113228,11 @@
112820 113228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 114: /* select ::= select multiselect_op oneselect */
112821 113229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
112822 113230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yymsp[0].minor.yy159 ){
112823 113231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[0].minor.yy159->op = (u8)yymsp[-1].minor.yy392;
112824 113232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymsp[0].minor.yy159->pPrior = yymsp[-2].minor.yy159;
113233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( yymsp[-1].minor.yy392!=TK_ALL ) pParse->hasCompound = 1;
112825 113234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
112826 113235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy159);
112827 113236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112828 113237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yygotominor.yy159 = yymsp[0].minor.yy159;
112829 113238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -113382,15 +113791,15 @@
113382 113791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy342.pExpr);}
113383 113792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
113384 113793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 241: /* nexprlist ::= expr */
113385 113794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy342.pExpr);}
113386 113795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
113387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 242: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
113796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 242: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP where_opt */
113388 113797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
113389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0,
113390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy442, yymsp[-9].minor.yy392,
113391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy392);
113798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
113799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy442, yymsp[-10].minor.yy392,
113800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ &yymsp[-11].minor.yy0, yymsp[0].minor.yy122, SQLITE_SO_ASC, yymsp[-8].minor.yy392);
113392 113801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
113393 113802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
113394 113803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 243: /* uniqueflag ::= UNIQUE */
113395 113804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 296: /* raisetype ::= ABORT */ yytestcase(yyruleno==296);
113396 113805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{yygotominor.yy392 = OE_Abort;}
@@ -114312,11 +114721,10 @@
114312 114721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*tokenType = TK_SPACE;
114313 114722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return i;
114314 114723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114315 114724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case '-': {
114316 114725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z[1]=='-' ){
114317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* IMP: R-50417-27976 -- syntax diagram for comments */
114318 114726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
114319 114727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*tokenType = TK_SPACE; /* IMP: R-22934-25134 */
114320 114728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return i;
114321 114729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114322 114730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*tokenType = TK_MINUS;
@@ -114345,11 +114753,10 @@
114345 114753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case '/': {
114346 114754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z[1]!='*' || z[2]==0 ){
114347 114755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*tokenType = TK_SLASH;
114348 114756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
114349 114757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* IMP: R-50417-27976 -- syntax diagram for comments */
114351 114758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
114352 114759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( c ) i++;
114353 114760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*tokenType = TK_SPACE; /* IMP: R-22934-25134 */
114354 114761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return i;
114355 114762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -116127,10 +116534,12 @@
116127 116534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
116128 116535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeaveAll(db);
116129 116536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
116130 116537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Any deferred constraint violations have now been resolved. */
116131 116538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nDeferredCons = 0;
116539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->nDeferredImmCons = 0;
116540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->flags &= ~SQLITE_DeferFKs;
116132 116541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
116133 116542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If one has been configured, invoke the rollback-hook callback */
116134 116543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){
116135 116544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->xRollbackCallback(db->pRollbackArg);
116136 116545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -116188,10 +116597,11 @@
116188 116597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_IOERR_SHMLOCK: zName = "SQLITE_IOERR_SHMLOCK"; break;
116189 116598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_IOERR_SHMMAP: zName = "SQLITE_IOERR_SHMMAP"; break;
116190 116599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_IOERR_SEEK: zName = "SQLITE_IOERR_SEEK"; break;
116191 116600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_IOERR_DELETE_NOENT: zName = "SQLITE_IOERR_DELETE_NOENT";break;
116192 116601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_IOERR_MMAP: zName = "SQLITE_IOERR_MMAP"; break;
116602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case SQLITE_IOERR_GETTEMPPATH: zName = "SQLITE_IOERR_GETTEMPPATH"; break;
116193 116603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_CORRUPT: zName = "SQLITE_CORRUPT"; break;
116194 116604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_CORRUPT_VTAB: zName = "SQLITE_CORRUPT_VTAB"; break;
116195 116605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_NOTFOUND: zName = "SQLITE_NOTFOUND"; break;
116196 116606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_FULL: zName = "SQLITE_FULL"; break;
116197 116607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_CANTOPEN: zName = "SQLITE_CANTOPEN"; break;
@@ -116388,11 +116798,11 @@
116388 116798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *pArg
116389 116799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
116390 116800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(db->mutex);
116391 116801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nOps>0 ){
116392 116802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->xProgress = xProgress;
116393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db->nProgressOps = nOps;
116803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->nProgressOps = (unsigned)nOps;
116394 116804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pProgressArg = pArg;
116395 116805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
116396 116806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->xProgress = 0;
116397 116807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nProgressOps = 0;
116398 116808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pProgressArg = 0;
@@ -117543,11 +117953,11 @@
117543 117953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->autoCommit = 1;
117544 117954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nextAutovac = -1;
117545 117955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->szMmap = sqlite3GlobalConfig.szMmap;
117546 117956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->nextPagesize = 0;
117547 117957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags |= SQLITE_ShortColNames | SQLITE_EnableTrigger
117548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if !defined(SQLITE_DEAULT_AUTOMATIC_INDEX) || SQLITE_DEFAULT_AUTOMATIC_INDEX
117958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if !defined(SQLITE_DEFAULT_AUTOMATIC_INDEX) || SQLITE_DEFAULT_AUTOMATIC_INDEX
117549 117959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
| SQLITE_AutoIndex
117550 117960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
117551 117961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_DEFAULT_FILE_FORMAT<4
117552 117962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
| SQLITE_LegacyFileFmt
117553 117963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -119087,11 +119497,11 @@
119087 119497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
119088 119498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3)
119089 119499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
119090 119500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If not building as part of the core, include sqlite3ext.h. */
119091 119501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_CORE
119092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API extern const sqlite3_api_routines *sqlite3_api;
119502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_EXTENSION_INIT3
119093 119503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
119094 119504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
119095 119505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Include fts3_tokenizer.h in the middle of fts3Int.h **********/
119096 119506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file fts3_tokenizer.h **********************************/
119097 119507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -124995,11 +125405,14 @@
124995 125405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
124996 125406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !SQLITE_CORE
124997 125407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
124998 125408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Initialize API pointer table, if required.
124999 125409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
125000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_extension_init(
125410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef _WIN32
125411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ __declspec(dllexport)
125412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
125413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_fts3_init(
125001 125414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
125002 125415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **pzErrMsg,
125003 125416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const sqlite3_api_routines *pApi
125004 125417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
125005 125418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_EXTENSION_INIT2(pApi)
@@ -128013,11 +128426,11 @@
128013 128426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
128014 128427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128015 128428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128016 128429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_TEST
128017 128430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* #include <tcl.h> */
128431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #include <tcl.h>
128019 128432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* #include <string.h> */
128020 128433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128021 128434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
128022 128435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of a special SQL scalar function for testing tokenizers
128023 128436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** designed to be used in concert with the Tcl testing framework. This
@@ -140042,11 +140455,14 @@
140042 140455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void *)pGeomCtx, geomCallback, 0, 0, doSqlite3Free
140043 140456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
140044 140457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
140045 140458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
140046 140459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !SQLITE_CORE
140047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_extension_init(
140460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef _WIN32
140461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ __declspec(dllexport)
140462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
140463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_rtree_init(
140048 140464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
140049 140465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **pzErrMsg,
140050 140466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const sqlite3_api_routines *pApi
140051 140467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
140052 140468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_EXTENSION_INIT2(pApi)
@@ -140544,11 +140960,14 @@
140544 140960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
140545 140961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
140546 140962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
140547 140963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
140548 140964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !SQLITE_CORE
140549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_extension_init(
140965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef _WIN32
140966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ __declspec(dllexport)
140967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
140968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_icu_init(
140550 140969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
140551 140970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **pzErrMsg,
140552 140971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const sqlite3_api_routines *pApi
140553 140972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
140554 140973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_EXTENSION_INIT2(pApi)
140555 140974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!