@@ -1,8 +1,8 @@
1 1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/******************************************************************************
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This file is an amalgamation of many separate C source files from SQLite
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** version 3.7.0. By combining all the individual C code files into this
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** version 3.7.1. By combining all the individual C code files into this
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** single large file, the entire code can be compiled as a one translation
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unit. This allows many compilers to do optimizations that would not be
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** possible if the files were compiled separately. Performance improvements
7 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of 5% are more are commonly seen when SQLite is compiled as a single
8 8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** translation unit.
@@ -641,13 +641,13 @@
641 641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
642 642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** See also: [sqlite3_libversion()],
643 643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
644 644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
645 645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_VERSION "3.7.0"
647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_VERSION_NUMBER 3007000
648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2010-07-21 16:16:28 b36b105eab6fd3195f4bfba6cb5cda0f063b7460"
646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_VERSION "3.7.1"
647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_VERSION_NUMBER 3007001
648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2010-08-05 03:21:40 fbe70e1106bcc5086ceb9d8f39cc39baf3643092"
649 649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
650 650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
651 651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
652 652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version, sqlite3_sourceid
653 653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -2710,11 +2710,17 @@
2710 2710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** contain a UTF-8 SQL comment that identifies the trigger.)^
2711 2711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2712 2712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The callback function registered by sqlite3_profile() is invoked
2713 2713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** as each SQL statement finishes. ^The profile callback contains
2714 2714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the original statement text and an estimate of wall-clock time
2715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of how long that statement took to run.
2715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of how long that statement took to run. ^The profile callback
2716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** time is in units of nanoseconds, however the current implementation
2717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is only capable of millisecond resolution so the six least significant
2718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** digits in the time are meaningless. Future versions of SQLite
2719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** might provide greater resolution on the profiler callback. The
2720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3_profile() function is considered experimental and is
2721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** subject to change in future versions of SQLite.
2716 2722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2717 2723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
2718 2724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
2719 2725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void(*xProfile)(void*,const char*,sqlite3_uint64), void*);
2720 2726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -4859,22 +4865,25 @@
4859 4865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4860 4866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
4861 4867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Virtual Table Indexing Information
4862 4868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_index_info
4863 4869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The sqlite3_index_info structure and its substructures is used to
4870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The sqlite3_index_info structure and its substructures is used as part
4871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the [virtual table] interface to
4865 4872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pass information into and receive the reply from the [xBestIndex]
4866 4873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** method of a [virtual table module]. The fields under **Inputs** are the
4867 4874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** inputs to xBestIndex and are read-only. xBestIndex inserts its
4868 4875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** results into the **Outputs** fields.
4869 4876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4870 4877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(The aConstraint[] array records WHERE clause constraints of the form:
4871 4878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <pre>column OP expr</pre>
4879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <blockquote>column OP expr</blockquote>
4873 4880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4874 4881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is
4875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** stored in aConstraint[].op.)^ ^(The index of the column is stored in
4882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** stored in aConstraint[].op using one of the
4883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^
4884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^(The index of the column is stored in
4876 4885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the
4877 4886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expr on the right-hand side can be evaluated (and thus the constraint
4878 4887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is usable) and false if it cannot.)^
4879 4888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
4880 4889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The optimizer automatically inverts terms of the form "expr OP column"
@@ -4930,10 +4939,19 @@
4930 4939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *idxStr; /* String, possibly obtained from sqlite3_malloc */
4931 4940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */
4932 4941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int orderByConsumed; /* True if output is already ordered */
4933 4942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double estimatedCost; /* Estimated cost of using this index */
4934 4943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
4944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
4945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
4946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** CAPI3REF: Virtual Table Constraint Operator Codes
4947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
4948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** These macros defined the allowed values for the
4949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [sqlite3_index_info].aConstraint[].op field. Each value represents
4950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** an operator that is part of a constraint term in the wHERE clause of
4951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a query that uses a [virtual table].
4952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
4935 4953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_INDEX_CONSTRAINT_EQ 2
4936 4954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_INDEX_CONSTRAINT_GT 4
4937 4955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_INDEX_CONSTRAINT_LE 8
4938 4956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_INDEX_CONSTRAINT_LT 16
4939 4957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_INDEX_CONSTRAINT_GE 32
@@ -5670,10 +5688,13 @@
5670 5688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** handed to [sqlite3_malloc()] or [sqlite3_realloc()] (or their
5671 5689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** internal equivalents). Only the value returned in the
5672 5690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** *pHighwater parameter to [sqlite3_status()] is of interest.
5673 5691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The value written into the *pCurrent parameter is undefined.</dd>)^
5674 5692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^(<dt>SQLITE_STATUS_MALLOC_COUNT</dt>
5694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <dd>This parameter records the number of separate memory allocations.</dd>)^
5695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5675 5696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(<dt>SQLITE_STATUS_PAGECACHE_USED</dt>
5676 5697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <dd>This parameter returns the number of pages used out of the
5677 5698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [pagecache memory allocator] that was configured using
5678 5699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [SQLITE_CONFIG_PAGECACHE]. The
5679 5700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** value returned is in pages, not in bytes.</dd>)^
@@ -5731,10 +5752,11 @@
5731 5752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_STATUS_SCRATCH_OVERFLOW 4
5732 5753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_STATUS_MALLOC_SIZE 5
5733 5754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_STATUS_PARSER_STACK 6
5734 5755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_STATUS_PAGECACHE_SIZE 7
5735 5756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_STATUS_SCRATCH_SIZE 8
5757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_STATUS_MALLOC_COUNT 9
5736 5758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5737 5759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
5738 5760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Database Connection Status
5739 5761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5740 5762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^This interface is used to retrieve runtime status information
@@ -5770,20 +5792,37 @@
5770 5792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <dl>
5771 5793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_USED</dt>
5772 5794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <dd>This parameter returns the number of lookaside memory slots currently
5773 5795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** checked out.</dd>)^
5774 5796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <dt>SQLITE_DBSTATUS_CACHE_USED</dt>
5776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <dd>^This parameter returns the approximate number of of bytes of heap
5777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** memory used by all pager caches associated with the database connection.
5797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^(<dt>SQLITE_DBSTATUS_CACHE_USED</dt>
5798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <dd>This parameter returns the approximate number of of bytes of heap
5799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** memory used by all pager caches associated with the database connection.)^
5778 5800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0.
5801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^(<dt>SQLITE_DBSTATUS_SCHEMA_USED</dt>
5803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <dd>This parameter returns the approximate number of of bytes of heap
5804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** memory used to store the schema for all databases associated
5805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with the connection - main, temp, and any [ATTACH]-ed databases.)^
5806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The full amount of memory used by the schemas is reported, even if the
5807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** schema memory is shared with other database connections due to
5808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [shared cache mode] being enabled.
5809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0.
5810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
5811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^(<dt>SQLITE_DBSTATUS_STMT_USED</dt>
5812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** <dd>This parameter returns the approximate number of of bytes of heap
5813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and lookaside memory used by all prepared statements associated with
5814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the database connection.)^
5815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The highwater mark associated with SQLITE_DBSTATUS_STMT_USED is always 0.
5779 5816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </dd>
5780 5817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </dl>
5781 5818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
5782 5819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_LOOKASIDE_USED 0
5783 5820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_DBSTATUS_CACHE_USED 1
5784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_DBSTATUS_MAX 1 /* Largest defined DBSTATUS */
5821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_DBSTATUS_SCHEMA_USED 2
5822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_DBSTATUS_STMT_USED 3
5823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_DBSTATUS_MAX 3 /* Largest defined DBSTATUS */
5785 5824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5786 5825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5787 5826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
5788 5827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Prepared Statement Status
5789 5828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -7257,10 +7296,14 @@
7257 7296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_TEST
7258 7297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeCursorInfo(BtCursor*, int*, int);
7259 7298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3BtreeCursorList(Btree*);
7260 7299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
7261 7300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WAL
7302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3BtreeCheckpoint(Btree*);
7303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
7304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
7262 7305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
7263 7306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If we are not using shared cache, then there is no need to
7264 7307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** use mutexes to access the BtShared structures. So make the
7265 7308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Enter and Leave procedures no-ops.
7266 7309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -7386,12 +7429,12 @@
7386 7429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct SubProgram {
7387 7430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeOp *aOp; /* Array of opcodes for sub-program */
7388 7431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nOp; /* Elements in aOp[] */
7389 7432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nMem; /* Number of memory cells required */
7390 7433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCsr; /* Number of cursors required */
7391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nRef; /* Number of pointers to this structure */
7392 7434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *token; /* id that may be used to recursive triggers */
7435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SubProgram *pNext; /* Next sub-program already visited */
7393 7436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
7394 7437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7395 7438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
7396 7439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A smaller version of VdbeOp used for the VdbeAddOpList() function because
7397 7440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** it takes up less space.
@@ -7675,10 +7718,11 @@
7675 7718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeUsesBtree(Vdbe*, int);
7676 7719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe*, int);
7677 7720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeMakeLabel(Vdbe*);
7678 7721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeRunOnlyOnce(Vdbe*);
7679 7722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeDelete(Vdbe*);
7723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeDeleteObject(sqlite3*,Vdbe*);
7680 7724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeMakeReady(Vdbe*,int,int,int,int,int,int);
7681 7725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe*);
7682 7726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe*, int);
7683 7727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe*);
7684 7728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
@@ -7692,20 +7736,23 @@
7692 7736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeCountChanges(Vdbe*);
7693 7737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE sqlite3 *sqlite3VdbeDb(Vdbe*);
7694 7738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetSql(Vdbe*, const char *z, int n, int);
7695 7739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSwap(Vdbe*,Vdbe*);
7696 7740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE VdbeOp *sqlite3VdbeTakeOpArray(Vdbe*, int*, int*);
7697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeProgramDelete(sqlite3 *, SubProgram *, int);
7698 7741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetValue(Vdbe*, int, u8);
7699 7742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe*, int);
7700 7743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TRACE
7701 7744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE char *sqlite3VdbeExpandSql(Vdbe*, const char*);
7702 7745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
7703 7746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7704 7747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE UnpackedRecord *sqlite3VdbeRecordUnpack(KeyInfo*,int,const void*,char*,int);
7705 7748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeDeleteUnpackedRecord(UnpackedRecord*);
7706 7749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VdbeRecordCompare(int,const void*,UnpackedRecord*);
7750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
7751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_TRIGGER
7752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeLinkSubProgram(Vdbe *, SubProgram *);
7753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
7707 7754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7708 7755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7709 7756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
7710 7757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeComment(Vdbe*, const char*, ...);
7711 7758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define VdbeComment(X) sqlite3VdbeComment X
@@ -7851,10 +7898,11 @@
7851 7898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7852 7899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Functions used to manage pager transactions and savepoints. */
7853 7900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerPagecount(Pager*, int*);
7854 7901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerBegin(Pager*, int exFlag, int);
7855 7902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne(Pager*,const char *zMaster, int);
7903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3PagerExclusiveLock(Pager*);
7856 7904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerSync(Pager *pPager);
7857 7905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerCommitPhaseTwo(Pager*);
7858 7906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerRollback(Pager*);
7859 7907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerOpenSavepoint(Pager *pPager, int n);
7860 7908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint);
@@ -8442,18 +8490,10 @@
8442 8490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Schema *pSchema; /* Pointer to database schema (possibly shared) */
8443 8491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
8444 8492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8445 8493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
8446 8494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of the following structure stores a database schema.
8447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
8448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If there are no virtual tables configured in this schema, the
8449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Schema.db variable is set to NULL. After the first virtual table
8450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** has been added, it is set to point to the database connection
8451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** used to create the connection. Once a virtual table has been
8452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** added to the Schema structure and the Schema.db variable populated,
8453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** only that database connection may use the Schema to prepare
8454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** statements.
8455 8495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
8456 8496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct Schema {
8457 8497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int schema_cookie; /* Database schema version number for this file */
8458 8498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Hash tblHash; /* All tables indexed by name */
8459 8499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Hash idxHash; /* All (named) indices indexed by name */
@@ -8462,13 +8502,10 @@
8462 8502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pSeqTab; /* The sqlite_sequence table used by AUTOINCREMENT */
8463 8503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 file_format; /* Schema format version for this file */
8464 8504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 enc; /* Text encoding used by this database */
8465 8505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u16 flags; /* Flags associated with this schema */
8466 8506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cache_size; /* Number of pages to use in the cache */
8467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_VIRTUALTABLE
8468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db; /* "Owner" connection. See comment above */
8469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
8470 8507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
8471 8508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8472 8509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
8473 8510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These macros can be used to test, set, or clear bits in the
8474 8511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Db.pSchema->flags field.
@@ -8652,10 +8689,11 @@
8652 8689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Savepoint *pSavepoint; /* List of active savepoints */
8653 8690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nSavepoint; /* Number of non-transaction savepoints */
8654 8691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nStatement; /* Number of nested statement-transactions */
8655 8692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 isTransactionSavepoint; /* True if the outermost savepoint is a TS */
8656 8693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nDeferredCons; /* Net deferred constraints this transaction. */
8694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *pnBytesFreed; /* If not NULL, increment this in DbFree() */
8657 8695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8658 8696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_UNLOCK_NOTIFY
8659 8697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The following variables are all protected by the STATIC_MASTER
8660 8698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** mutex, not by sqlite3.mutex. They are used by code in notify.c.
8661 8699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -9009,11 +9047,10 @@
9009 9047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page number. Transient tables are used to hold the results of a
9010 9048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sub-query that appears instead of a real table name in the FROM clause
9011 9049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of a SELECT statement.
9012 9050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
9013 9051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct Table {
9014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *dbMem; /* DB connection used for lookaside allocations. */
9015 9052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zName; /* Name of the table or view */
9016 9053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iPKey; /* If not negative, use aCol[iPKey] as the primary key */
9017 9054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCol; /* Number of columns in this table */
9018 9055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Column *aCol; /* Information about each column */
9019 9056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIndex; /* List of SQL indexes on this table. */
@@ -10118,11 +10155,11 @@
10118 10155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zText; /* The string collected so far */
10119 10156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nChar; /* Length of the string so far */
10120 10157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nAlloc; /* Amount of space allocated in zText */
10121 10158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int mxAlloc; /* Maximum allowed string length */
10122 10159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 mallocFailed; /* Becomes true if any memory allocation fails */
10123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 useMalloc; /* True if zText is enlargeable using realloc */
10160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 useMalloc; /* 0: none, 1: sqlite3DbMalloc, 2: sqlite3_malloc */
10124 10161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 tooBig; /* Becomes true if string size exceeds limits */
10125 10162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
10126 10163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10127 10164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10128 10165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A pointer to this structure is used to communicate information
@@ -10416,11 +10453,11 @@
10416 10453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
10417 10454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3ViewGetColumnNames(A,B) 0
10418 10455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
10419 10456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10420 10457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3DropTable(Parse*, SrcList*, int, int);
10421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3DeleteTable(Table*);
10458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3*, Table*);
10422 10459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_AUTOINCREMENT
10423 10460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse);
10424 10461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AutoincrementEnd(Parse *pParse);
10425 10462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
10426 10463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3AutoincrementBegin(X)
@@ -10650,11 +10687,12 @@
10650 10687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE const char *sqlite3ErrStr(int);
10651 10688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ReadSchema(Parse *pParse);
10652 10689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE CollSeq *sqlite3FindCollSeq(sqlite3*,u8 enc, const char*,int);
10653 10690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE CollSeq *sqlite3LocateCollSeq(Parse *pParse, const char*zName);
10654 10691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr);
10655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE Expr *sqlite3ExprSetColl(Parse *pParse, Expr *, Token *);
10692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Expr *sqlite3ExprSetColl(Expr*, CollSeq*);
10693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Expr *sqlite3ExprSetCollByToken(Parse *pParse, Expr*, Token*);
10656 10694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3CheckCollSeq(Parse *, CollSeq *);
10657 10695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3CheckObjectName(Parse *, const char *);
10658 10696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeSetChanges(sqlite3 *, int);
10659 10697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10660 10698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE const void *sqlite3ValueText(sqlite3_value*, u8);
@@ -10700,11 +10738,11 @@
10700 10738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3Analyze(Parse*, Token*, Token*);
10701 10739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3InvokeBusyHandler(BusyHandler*);
10702 10740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3FindDb(sqlite3*, Token*);
10703 10741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3FindDbName(sqlite3 *, const char *);
10704 10742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3AnalysisLoad(sqlite3*,int iDB);
10705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3DeleteIndexSamples(Index*);
10743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3DeleteIndexSamples(sqlite3*,Index*);
10706 10744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3DefaultRowEst(Index*);
10707 10745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3RegisterLikeFunctions(sqlite3*, int);
10708 10746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3IsLikeFunction(sqlite3*,Expr*,int*,char*);
10709 10747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3MinimumFileFormat(Parse*, int, int);
10710 10748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SchemaFree(void *);
@@ -10762,11 +10800,11 @@
10762 10800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabInSync(db) 0
10763 10801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabLock(X)
10764 10802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabUnlock(X)
10765 10803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabUnlockList(X)
10766 10804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
10767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VtabClear(Table*);
10805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VtabClear(sqlite3 *db, Table*);
10768 10806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabSync(sqlite3 *db, char **);
10769 10807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabRollback(sqlite3 *db);
10770 10808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabCommit(sqlite3 *db);
10771 10809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabLock(VTable *);
10772 10810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabUnlock(VTable *);
@@ -10815,13 +10853,13 @@
10815 10853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3FkDropTable(a,b,c)
10816 10854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3FkOldmask(a,b) 0
10817 10855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3FkRequired(a,b,c,d) 0
10818 10856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
10819 10857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_FOREIGN_KEY
10820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3FkDelete(Table*);
10858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3FkDelete(sqlite3 *, Table*);
10821 10859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
10822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define sqlite3FkDelete(a)
10860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define sqlite3FkDelete(a,b)
10823 10861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
10824 10862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10825 10863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10826 10864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10827 10865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Available fault injectors. Should be numbered beginning with 0.
@@ -10910,36 +10948,40 @@
10910 10948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a single bit set.
10911 10949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10912 10950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3MemdebugHasType() returns true if any of the bits in its second
10913 10951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument match the type set by the previous sqlite3MemdebugSetType().
10914 10952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3MemdebugHasType() is intended for use inside assert() statements.
10915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** For example:
10916 10953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) );
10954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3MemdebugNoType() returns true if none of the bits in its second
10955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argument match the type set by the previous sqlite3MemdebugSetType().
10918 10956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10919 10957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Perhaps the most important point is the difference between MEMTYPE_HEAP
10920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and MEMTYPE_DB. If an allocation is MEMTYPE_DB, that means it might have
10921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** been allocated by lookaside, except the allocation was too large or
10922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** lookaside was already full. It is important to verify that allocations
10923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that might have been satisfied by lookaside are not passed back to
10924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** non-lookaside free() routines. Asserts such as the example above are
10925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** placed on the non-lookaside free() routines to verify this constraint.
10958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and MEMTYPE_LOOKASIDE. If an allocation is MEMTYPE_LOOKASIDE, that means
10959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** it might have been allocated by lookaside, except the allocation was
10960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** too large or lookaside was already full. It is important to verify
10961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that allocations that might have been satisfied by lookaside are not
10962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** passed back to non-lookaside free() routines. Asserts such as the
10963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** example above are placed on the non-lookaside free() routines to verify
10964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this constraint.
10926 10965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10927 10966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** All of this is no-op for a production build. It only comes into
10928 10967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** play when the SQLITE_MEMDEBUG compile-time option is used.
10929 10968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10930 10969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_MEMDEBUG
10931 10970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3MemdebugSetType(void*,u8);
10932 10971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3MemdebugHasType(void*,u8);
10972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3MemdebugNoType(void*,u8);
10933 10973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
10934 10974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3MemdebugSetType(X,Y) /* no-op */
10935 10975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3MemdebugHasType(X,Y) 1
10976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3MemdebugNoType(X,Y) 1
10936 10977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
10937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEMTYPE_HEAP 0x01 /* General heap allocations */
10938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEMTYPE_DB 0x02 /* Associated with a database connection */
10939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEMTYPE_SCRATCH 0x04 /* Scratch allocations */
10940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEMTYPE_PCACHE 0x08 /* Page cache allocations */
10978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEMTYPE_HEAP 0x01 /* General heap allocations */
10979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEMTYPE_LOOKASIDE 0x02 /* Might have been lookaside memory */
10980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEMTYPE_SCRATCH 0x04 /* Scratch allocations */
10981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEMTYPE_PCACHE 0x08 /* Page cache allocations */
10982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEMTYPE_DB 0x10 /* Uses sqlite3DbMalloc, not sqlite_malloc */
10941 10983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10942 10984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* _SQLITEINT_H_ */
10943 10985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10944 10986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of sqliteInt.h *******************************************/
10945 10987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file global.c ******************************************/
@@ -11566,18 +11608,442 @@
11566 11608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*************************************************************************
11567 11609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
11568 11610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This module implements the sqlite3_status() interface and related
11569 11611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** functionality.
11570 11612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
11613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************** Include vdbeInt.h in the middle of status.c ******************/
11614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************** Begin file vdbeInt.h *****************************************/
11615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 2003 September 6
11617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The author disclaims copyright to this source code. In place of
11619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a legal notice, here is a blessing:
11620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** May you do good and not evil.
11622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** May you find forgiveness for yourself and forgive others.
11623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** May you share freely, never taking more than you give.
11624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *************************************************************************
11626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This is the header file for information that is private to the
11627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** VDBE. This information used to all be at the top of the single
11628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** source code file "vdbe.c". When that file became too big (over
11629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 6000 lines long) it was split up into several smaller files and
11630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this header information was factored out.
11631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef _VDBEINT_H_
11633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define _VDBEINT_H_
11634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQL is translated into a sequence of instructions to be
11637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** executed by a virtual machine. Each instruction is an instance
11638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the following structure.
11639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct VdbeOp Op;
11641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Boolean values
11644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef unsigned char Bool;
11646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A cursor is a pointer into a single BTree within a database file.
11649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The cursor can seek to a BTree entry with a particular key, or
11650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** loop over all entries of the Btree. You can also insert new BTree
11651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** entries or retrieve the key or data from the entry that the cursor
11652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is currently pointing to.
11653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Every cursor that the virtual machine has open is represented by an
11655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** instance of the following structure.
11656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the VdbeCursor.isTriggerRow flag is set it means that this cursor is
11658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** really a single row that represents the NEW or OLD pseudo-table of
11659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a row trigger. The data for the row is stored in VdbeCursor.pData and
11660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the rowid is in VdbeCursor.iKey.
11661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct VdbeCursor {
11663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ BtCursor *pCursor; /* The cursor structure of the backend */
11664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iDb; /* Index of cursor database in db->aDb[] (or -1) */
11665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 lastRowid; /* Last rowid from a Next or NextIdx operation */
11666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool zeroed; /* True if zeroed out and ready for reuse */
11667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool rowidIsValid; /* True if lastRowid is valid */
11668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool atFirst; /* True if pointing to first entry */
11669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool useRandomRowid; /* Generate new record numbers semi-randomly */
11670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool nullRow; /* True if pointing to a row with no data */
11671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool deferredMoveto; /* A call to sqlite3BtreeMoveto() is needed */
11672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool isTable; /* True if a table requiring integer keys */
11673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bool isIndex; /* True if an index containing keys only - no data */
11674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 movetoTarget; /* Argument to the deferred sqlite3BtreeMoveto() */
11675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Btree *pBt; /* Separate file holding temporary table */
11676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int pseudoTableReg; /* Register holding pseudotable content. */
11677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ KeyInfo *pKeyInfo; /* Info about index keys needed by index cursors */
11678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nField; /* Number of fields in the header */
11679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 seqCount; /* Sequence counter */
11680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_vtab_cursor *pVtabCursor; /* The cursor for a virtual table */
11681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const sqlite3_module *pModule; /* Module for cursor pVtabCursor */
11682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Result of last sqlite3BtreeMoveto() done by an OP_NotExists or
11684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** OP_IsUnique opcode on this cursor. */
11685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int seekResult;
11686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Cached information about the header for the data record that the
11688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cursor is currently pointing to. Only valid if cacheStatus matches
11689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Vdbe.cacheCtr. Vdbe.cacheCtr will never take on the value of
11690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** CACHE_STALE and so setting cacheStatus=CACHE_STALE guarantees that
11691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the cache is out of date.
11692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** aRow might point to (ephemeral) data for the current row, or it might
11694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be NULL.
11695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 cacheStatus; /* Cache is valid if this matches Vdbe.cacheCtr */
11697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int payloadSize; /* Total number of bytes in the record */
11698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 *aType; /* Type values for all entries in the record */
11699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 *aOffset; /* Cached offsets to the start of each columns data */
11700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 *aRow; /* Data for the current row, if all on one page */
11701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct VdbeCursor VdbeCursor;
11703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When a sub-program is executed (OP_Program), a structure of this type
11706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is allocated to store the current value of the program counter, as
11707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** well as the current memory cell array and various other frame specific
11708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** values stored in the Vdbe struct. When the sub-program is finished,
11709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** these values are copied back to the Vdbe from the VdbeFrame structure,
11710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** restoring the state of the VM to as it was before the sub-program
11711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** began executing.
11712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Frames are stored in a linked list headed at Vdbe.pParent. Vdbe.pParent
11714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is the parent of the current frame, or zero if the current frame
11715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is the main Vdbe program.
11716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct VdbeFrame VdbeFrame;
11718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct VdbeFrame {
11719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *v; /* VM this frame belongs to */
11720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int pc; /* Program Counter */
11721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Op *aOp; /* Program instructions */
11722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nOp; /* Size of aOp array */
11723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *aMem; /* Array of memory cells */
11724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nMem; /* Number of entries in aMem */
11725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCursor **apCsr; /* Element of Vdbe cursors */
11726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 nCursor; /* Number of entries in apCsr */
11727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *token; /* Copy of SubProgram.token */
11728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nChildMem; /* Number of memory cells for child frame */
11729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nChildCsr; /* Number of cursors for child frame */
11730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 lastRowid; /* Last insert rowid (sqlite3.lastRowid) */
11731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nChange; /* Statement changes (Vdbe.nChanges) */
11732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeFrame *pParent; /* Parent of this frame */
11733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define VdbeFrameMem(p) ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))])
11736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A value for VdbeCursor.cacheValid that means the cache is always invalid.
11739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define CACHE_STALE 0
11741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Internally, the vdbe manipulates nearly all SQL values as Mem
11744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** structures. Each Mem struct may cache multiple representations (string,
11745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** integer etc.) of the same value. A value (and therefore Mem structure)
11746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** has the following properties:
11747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Each value has a manifest type. The manifest type of the value stored
11749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in a Mem struct is returned by the MemType(Mem*) macro. The type is
11750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** one of SQLITE_NULL, SQLITE_INTEGER, SQLITE_REAL, SQLITE_TEXT or
11751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_BLOB.
11752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Mem {
11754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ union {
11755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 i; /* Integer value. */
11756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nZero; /* Used when bit MEM_Zero is set in flags */
11757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pDef; /* Used only when flags==MEM_Agg */
11758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ RowSet *pRowSet; /* Used only when flags==MEM_RowSet */
11759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeFrame *pFrame; /* Used when flags==MEM_Frame */
11760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } u;
11761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ double r; /* Real value */
11762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db; /* The associated database connection */
11763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *z; /* String or BLOB value */
11764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n; /* Number of characters in string value, excluding '\0' */
11765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 flags; /* Some combination of MEM_Null, MEM_Str, MEM_Dyn, etc. */
11766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 type; /* One of SQLITE_NULL, SQLITE_TEXT, SQLITE_INTEGER, etc */
11767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 enc; /* SQLITE_UTF8, SQLITE_UTF16BE, SQLITE_UTF16LE */
11768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xDel)(void *); /* If not null, call this function to delete Mem.z */
11769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zMalloc; /* Dynamic buffer allocated by sqlite3_malloc() */
11770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* One or more of the following flags are set to indicate the validOK
11773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** representations of the value stored in the Mem struct.
11774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the MEM_Null flag is set, then the value is an SQL NULL value.
11776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** No other flags may be set in this case.
11777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the MEM_Str flag is set then Mem.z points at a string representation.
11779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usually this is encoded in the same unicode encoding as the main
11780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** database (see below for exceptions). If the MEM_Term flag is also
11781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** set, then the string is nul terminated. The MEM_Int and MEM_Real
11782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** flags may coexist with the MEM_Str flag.
11783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Multiple of these values can appear in Mem.flags. But only one
11785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** at a time can appear in Mem.type.
11786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Null 0x0001 /* Value is NULL */
11788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Str 0x0002 /* Value is a string */
11789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Int 0x0004 /* Value is an integer */
11790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Real 0x0008 /* Value is a real number */
11791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Blob 0x0010 /* Value is a BLOB */
11792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_RowSet 0x0020 /* Value is a RowSet object */
11793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Frame 0x0040 /* Value is a VdbeFrame object */
11794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_TypeMask 0x00ff /* Mask of type bits */
11795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Whenever Mem contains a valid string or blob representation, one of
11797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the following flags must be set to determine the memory management
11798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** policy for Mem.z. The MEM_Term flag tells us whether or not the
11799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** string is \000 or \u0000 terminated
11800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Term 0x0200 /* String rep is nul terminated */
11802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Dyn 0x0400 /* Need to call sqliteFree() on Mem.z */
11803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Static 0x0800 /* Mem.z points to a static string */
11804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Ephem 0x1000 /* Mem.z points to an ephemeral string */
11805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Agg 0x2000 /* Mem.z points to an agg function context */
11806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Zero 0x4000 /* Mem.i contains count of 0s appended to blob */
11807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_OMIT_INCRBLOB
11809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #undef MEM_Zero
11810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MEM_Zero 0x0000
11811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
11812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Clear any existing type flags from a Mem and replace them with f
11816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MemSetTypeFlag(p, f) \
11818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
11819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* A VdbeFunc is just a FuncDef (defined in sqliteInt.h) that contains
11822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** additional information about auxiliary information bound to arguments
11823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the function. This is used to implement the sqlite3_get_auxdata()
11824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and sqlite3_set_auxdata() APIs. The "auxdata" is some auxiliary data
11825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that can be associated with a constant argument to a function. This
11826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** allows functions such as "regexp" to compile their constant regular
11827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** expression argument once and reused the compiled code for multiple
11828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** invocations.
11829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct VdbeFunc {
11831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc; /* The definition of the function */
11832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nAux; /* Number of entries allocated for apAux[] */
11833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct AuxData {
11834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *pAux; /* Aux data for the i-th argument */
11835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void (*xDelete)(void *); /* Destructor for the aux data */
11836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } apAux[1]; /* One slot for each function argument */
11837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The "context" argument for a installable function. A pointer to an
11841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** instance of this structure is the first argument to the routines used
11842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** implement the SQL functions.
11843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** There is a typedef for this structure in sqlite.h. So all routines,
11845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** even the public interface to SQLite, can use a pointer to this structure.
11846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** But this file is the only place where the internal details of this
11847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** structure are known.
11848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This structure is defined inside of vdbeInt.h because it uses substructures
11850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (Mem) which are only defined there.
11851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct sqlite3_context {
11853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FuncDef *pFunc; /* Pointer to function information. MUST BE FIRST */
11854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeFunc *pVdbeFunc; /* Auxilary data, if created. */
11855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem s; /* The return value is stored here */
11856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *pMem; /* Memory cell used to store aggregate context */
11857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isError; /* Error code returned by the function. */
11858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CollSeq *pColl; /* Collating sequence */
11859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A Set structure is used for quick testing to see if a value
11863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is part of a small set. Sets are used to implement code like
11864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this:
11865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** x.y IN ('hi','hoo','hum')
11866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef struct Set Set;
11868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Set {
11869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Hash hash; /* A set is just a hash table */
11870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ HashElem *prev; /* Previously accessed hash elemen */
11871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** An instance of the virtual machine. This structure contains the complete
11875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** state of the virtual machine.
11876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The "sqlite3_stmt" structure pointer that is returned by sqlite3_compile()
11878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is really a pointer to an instance of this structure.
11879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
11880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The Vdbe.inVtabMethod variable is set to non-zero for the duration of
11881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** any virtual table method invocations made by the vdbe program. It is
11882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** set to 2 for xDestroy method calls and 1 for all other methods. This
11883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** variable is used for two purposes: to allow xDestroy methods to execute
11884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** "DROP TABLE" statements and to prevent some nasty side effects of
11885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** malloc failure when SQLite is invoked recursively by a virtual table
11886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** method function.
11887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Vdbe {
11889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db; /* The database connection that owns this statement */
11890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Vdbe *pPrev,*pNext; /* Linked list of VDBEs with the same Vdbe.db */
11891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nOp; /* Number of instructions in the program */
11892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nOpAlloc; /* Number of slots allocated for aOp[] */
11893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Op *aOp; /* Space to hold the virtual machine's program */
11894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nLabel; /* Number of labels used */
11895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nLabelAlloc; /* Number of slots allocated in aLabel[] */
11896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *aLabel; /* Space to hold the labels */
11897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem **apArg; /* Arguments to currently executing user function */
11898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *aColName; /* Column names to return */
11899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *pResultSet; /* Pointer to an array of results */
11900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 nResColumn; /* Number of columns in one row of the result set */
11901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u16 nCursor; /* Number of slots in apCsr[] */
11902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeCursor **apCsr; /* One element of this array for each open cursor */
11903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 errorAction; /* Recovery action to do in case of an error */
11904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 okVar; /* True if azVar[] has been initialized */
11905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ynVar nVar; /* Number of entries in aVar[] */
11906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *aVar; /* Values for the OP_Variable opcode. */
11907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char **azVar; /* Name of variables */
11908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 magic; /* Magic number for sanity checking */
11909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nMem; /* Number of memory locations currently allocated */
11910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *aMem; /* The memory locations */
11911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 cacheCtr; /* VdbeCursor row cache generation counter */
11912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int pc; /* The program counter */
11913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc; /* Value to return */
11914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zErrMsg; /* Error message written here */
11915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 explain; /* True if EXPLAIN present on SQL command */
11916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 changeCntOn; /* True to update the change-counter */
11917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 expired; /* True if the VM needs to be recompiled */
11918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 runOnlyOnce; /* Automatically expire on reset */
11919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 minWriteFileFormat; /* Minimum file format for writable database files */
11920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 inVtabMethod; /* See comments above */
11921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 usesStmtJournal; /* True if uses a statement journal */
11922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 readOnly; /* True for read-only statements */
11923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 isPrepareV2; /* True if prepared with prepare_v2() */
11924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nChange; /* Number of db changes made since last reset */
11925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int btreeMask; /* Bitmask of db->aDb[] entries referenced */
11926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 startTime; /* Time when query started - used for profiling */
11927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ BtreeMutexArray aMutex; /* An array of Btree used here and needing locks */
11928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int aCounter[3]; /* Counters used by sqlite3_stmt_status() */
11929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zSql; /* Text of the SQL statement that generated this */
11930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *pFree; /* Free this when deleting the vdbe */
11931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nFkConstraint; /* Number of imm. FK constraints this VM */
11932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i64 nStmtDefCons; /* Number of def. constraints when stmt started */
11933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iStatement; /* Statement number (or 0 if has not opened stmt) */
11934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
11935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FILE *trace; /* Write an execution trace here, if not NULL */
11936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
11937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VdbeFrame *pFrame; /* Parent frame */
11938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nFrame; /* Number of frames in pFrame list */
11939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u32 expmask; /* Binding to these vars invalidates VM */
11940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SubProgram *pProgram; /* Linked list of all sub-programs used by VM */
11941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
11942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The following are allowed values for Vdbe.magic
11945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define VDBE_MAGIC_INIT 0x26bceaa5 /* Building a VDBE program */
11947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define VDBE_MAGIC_RUN 0xbdf20da3 /* VDBE is ready to execute */
11948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define VDBE_MAGIC_HALT 0x519c2973 /* VDBE has completed execution */
11949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define VDBE_MAGIC_DEAD 0xb606c3c8 /* The VDBE has been deallocated */
11950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
11952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Function prototypes
11953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
11954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeFreeCursor(Vdbe *, VdbeCursor*);
11955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void sqliteVdbePopStack(Vdbe*,int);
11956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeCursorMoveto(VdbeCursor*);
11957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE)
11958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, Op*);
11959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
11960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen(u32);
11961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE u32 sqlite3VdbeSerialType(Mem*, int);
11962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE u32 sqlite3VdbeSerialPut(unsigned char*, int, Mem*, int);
11963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE u32 sqlite3VdbeSerialGet(const unsigned char*, u32, Mem*);
11964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(VdbeFunc*, int);
11965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *);
11967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare(VdbeCursor*,UnpackedRecord*,int*);
11968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeIdxRowid(sqlite3*, BtCursor *, i64 *);
11969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3MemCompare(const Mem*, const Mem*, const CollSeq*);
11970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeExec(Vdbe*);
11971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeList(Vdbe*);
11972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeHalt(Vdbe*);
11973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeChangeEncoding(Mem *, int);
11974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemTooBig(Mem*);
11975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemCopy(Mem*, const Mem*);
11976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy(Mem*, const Mem*, int);
11977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemMove(Mem*, Mem*);
11978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemNulTerminate(Mem*);
11979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem*, const char*, int, u8, void(*)(void*));
11980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem*, i64);
11981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_OMIT_FLOATING_POINT
11982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3VdbeMemSetDouble sqlite3VdbeMemSetInt64
11983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
11984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemSetDouble(Mem*, double);
11985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
11986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemSetNull(Mem*);
11987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob(Mem*,int);
11988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemSetRowSet(Mem*);
11989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem*);
11990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem*, int);
11991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE i64 sqlite3VdbeIntValue(Mem*);
11992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemIntegerify(Mem*);
11993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE double sqlite3VdbeRealValue(Mem*);
11994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem*);
11995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemRealify(Mem*);
11996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemNumerify(Mem*);
11997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemFromBtree(BtCursor*,int,int,int,Mem*);
11998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemRelease(Mem *p);
11999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemReleaseExternal(Mem *p);
12000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemFinalize(Mem*, FuncDef*);
12001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE const char *sqlite3OpcodeName(int);
12002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemGrow(Mem *pMem, int n, int preserve);
12003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeCloseStatement(Vdbe *, int);
12004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame*);
12005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeFrameRestore(VdbeFrame *);
12006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemStoreType(Mem *pMem);
12007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_FOREIGN_KEY
12009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeCheckFk(Vdbe *, int);
12010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
12011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3VdbeCheckFk(p,i) 0
12012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
12013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_SHARED_CACHE
12015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMutexArrayEnter(Vdbe *p);
12016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
12017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3VdbeMutexArrayEnter(p)
12018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
12019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemTranslate(Mem*, u8);
12021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
12022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbePrintSql(Vdbe*);
12023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf);
12024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
12025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemHandleBom(Mem *pMem);
12026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_INCRBLOB
12028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *);
12029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
12030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define sqlite3VdbeMemExpandBlob(x) SQLITE_OK
12031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
12032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* !defined(_VDBEINT_H_) */
12034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************** End of vdbeInt.h *********************************************/
12036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************** Continuing where we left off in status.c *********************/
11571 12037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11572 12038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
11573 12039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Variables in which to record status information.
11574 12040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
11575 12041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct sqlite3StatType sqlite3StatType;
11576 12042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static SQLITE_WSD struct sqlite3StatType {
11577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nowValue[9]; /* Current value */
11578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int mxValue[9]; /* Maximum value */
12043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nowValue[10]; /* Current value */
12044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int mxValue[10]; /* Maximum value */
11579 12045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} sqlite3Stat = { {0,}, {0,} };
11580 12046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11581 12047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11582 12048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The "wsdStat" macro will resolve to the status information
11583 12049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** state vector. If writable static data is unsupported on the target,
@@ -11655,10 +12121,12 @@
11655 12121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int op, /* Status verb */
11656 12122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *pCurrent, /* Write current value here */
11657 12123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *pHighwater, /* Write high-water mark here */
11658 12124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int resetFlag /* Reset high-water mark if true */
11659 12125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
12126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK; /* Return code */
12127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_enter(db->mutex);
11660 12128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( op ){
11661 12129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_DBSTATUS_LOOKASIDE_USED: {
11662 12130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pCurrent = db->lookaside.nOut;
11663 12131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pHighwater = db->lookaside.mxOut;
11664 12132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( resetFlag ){
@@ -11673,26 +12141,92 @@
11673 12141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** highwater mark is meaningless and is returned as zero.
11674 12142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
11675 12143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_DBSTATUS_CACHE_USED: {
11676 12144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int totalUsed = 0;
11677 12145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
12146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3BtreeEnterAll(db);
11678 12147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<db->nDb; i++){
11679 12148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt = db->aDb[i].pBt;
11680 12149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt ){
11681 12150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Pager *pPager = sqlite3BtreePager(pBt);
11682 12151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
totalUsed += sqlite3PagerMemUsed(pPager);
11683 12152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
11684 12153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
12154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3BtreeLeaveAll(db);
11685 12155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pCurrent = totalUsed;
11686 12156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pHighwater = 0;
11687 12157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
11688 12158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
12159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
12161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** *pCurrent gets an accurate estimate of the amount of memory used
12162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to store the schema for all databases (main, temp, and any ATTACHed
12163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** databases. *pHighwater is set to zero.
12164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
12165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case SQLITE_DBSTATUS_SCHEMA_USED: {
12166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i; /* Used to iterate through schemas */
12167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nByte = 0; /* Used to accumulate return value */
12168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->pnBytesFreed = &nByte;
12170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<db->nDb; i++){
12171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Schema *pSchema = db->aDb[i].pSchema;
12172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ALWAYS(pSchema!=0) ){
12173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ HashElem *p;
12174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nByte += sqlite3GlobalConfig.m.xRoundup(sizeof(HashElem)) * (
12176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSchema->tblHash.count
12177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + pSchema->trigHash.count
12178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + pSchema->idxHash.count
12179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + pSchema->fkeyHash.count
12180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
12181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nByte += sqlite3MallocSize(pSchema->tblHash.ht);
12182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nByte += sqlite3MallocSize(pSchema->trigHash.ht);
12183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nByte += sqlite3MallocSize(pSchema->idxHash.ht);
12184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nByte += sqlite3MallocSize(pSchema->fkeyHash.ht);
12185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(p=sqliteHashFirst(&pSchema->trigHash); p; p=sqliteHashNext(p)){
12187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTrigger(db, (Trigger*)sqliteHashData(p));
12188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){
12190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, (Table *)sqliteHashData(p));
12191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->pnBytesFreed = 0;
12195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pHighwater = 0;
12197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pCurrent = nByte;
12198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
12199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
12202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** *pCurrent gets an accurate estimate of the amount of memory used
12203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to store all prepared statements.
12204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** *pHighwater is set to zero.
12205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
12206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case SQLITE_DBSTATUS_STMT_USED: {
12207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Vdbe *pVdbe; /* Used to iterate through VMs */
12208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nByte = 0; /* Used to accumulate return value */
12209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->pnBytesFreed = &nByte;
12211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pVdbe=db->pVdbe; pVdbe; pVdbe=pVdbe->pNext){
12212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeDeleteObject(db, pVdbe);
12213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->pnBytesFreed = 0;
12215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pHighwater = 0;
12217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pCurrent = nByte;
12218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
12220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
12221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11689 12222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: {
11690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_ERROR;
12223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_ERROR;
11691 12224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
11692 12225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
11693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
12226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_leave(db->mutex);
12227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
11694 12228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
11695 12229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11696 12230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of status.c **********************************************/
11697 12231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file date.c ********************************************/
11698 12232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -13820,23 +14354,38 @@
13820 14354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 1;
13821 14355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
13822 14356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct MemBlockHdr *pHdr;
13823 14357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pHdr = sqlite3MemsysGetHeader(p);
13824 14358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pHdr->iForeGuard==FOREGUARD ); /* Allocation is valid */
13825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (pHdr->eType & (pHdr->eType-1))==0 ); /* Only one type bit set */
13826 14359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pHdr->eType&eType)==0 ){
13827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void **pBt;
13828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pBt = (void**)pHdr;
13829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pBt -= pHdr->nBacktraceSlots;
13830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- backtrace_symbols_fd(pBt, pHdr->nBacktrace, fileno(stderr));
13831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "\n");
14360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 0;
14361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
14362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
14363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
14364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
14365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
14366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
14367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return TRUE if the mask of type in eType matches no bits of the type of the
14368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** allocation p. Also return true if p==NULL.
14369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
14370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This routine is designed for use within an assert() statement, to
14371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** verify the type of an allocation. For example:
14372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
14373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** assert( sqlite3MemdebugNoType(p, MEMTYPE_DB) );
14374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
14375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3MemdebugNoType(void *p, u8 eType){
14376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = 1;
14377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
14378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct MemBlockHdr *pHdr;
14379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pHdr = sqlite3MemsysGetHeader(p);
14380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pHdr->iForeGuard==FOREGUARD ); /* Allocation is valid */
14381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (pHdr->eType&eType)!=0 ){
13832 14382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = 0;
13833 14383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13834 14384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13835 14385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
13836 14386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
13838 14387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13839 14388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13840 14389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Set the number of backtrace levels kept for each allocation.
13841 14390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A value of zero turns off backtracing. The number is always rounded
13842 14391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** up to a multiple of 2.
@@ -16773,10 +17322,11 @@
16773 17322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3GlobalConfig.m.xMalloc(nFull);
16774 17323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16775 17324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
16776 17325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nFull = sqlite3MallocSize(p);
16777 17326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StatusAdd(SQLITE_STATUS_MEMORY_USED, nFull);
17327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3StatusAdd(SQLITE_STATUS_MALLOC_COUNT, 1);
16778 17328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16779 17329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pp = p;
16780 17330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return nFull;
16781 17331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16782 17332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -16890,16 +17440,18 @@
16890 17440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
16891 17441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3GlobalConfig.pScratch==0
16892 17442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| p<sqlite3GlobalConfig.pScratch
16893 17443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| p>=(void*)mem0.aScratchFree ){
16894 17444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3MemdebugHasType(p, MEMTYPE_SCRATCH) );
17445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugNoType(p, ~MEMTYPE_SCRATCH) );
16895 17446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3MemdebugSetType(p, MEMTYPE_HEAP);
16896 17447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3GlobalConfig.bMemstat ){
16897 17448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iSize = sqlite3MallocSize(p);
16898 17449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(mem0.mutex);
16899 17450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StatusAdd(SQLITE_STATUS_SCRATCH_OVERFLOW, -iSize);
16900 17451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StatusAdd(SQLITE_STATUS_MEMORY_USED, -iSize);
17452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3StatusAdd(SQLITE_STATUS_MALLOC_COUNT, -1);
16901 17453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.m.xFree(p);
16902 17454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(mem0.mutex);
16903 17455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
16904 17456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.m.xFree(p);
16905 17457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -16930,11 +17482,11 @@
16930 17482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16931 17483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TRUE if p is a lookaside memory allocation from db
16932 17484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
16933 17485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_LOOKASIDE
16934 17486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int isLookaside(sqlite3 *db, void *p){
16935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return db && p && p>=db->lookaside.pStart && p<db->lookaside.pEnd;
17487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return p && p>=db->lookaside.pStart && p<db->lookaside.pEnd;
16936 17488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16937 17489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
16938 17490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define isLookaside(A,B) 0
16939 17491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
16940 17492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -16942,32 +17494,36 @@
16942 17494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the size of a memory allocation previously obtained from
16943 17495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3Malloc() or sqlite3_malloc().
16944 17496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
16945 17497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3MallocSize(void *p){
16946 17498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) );
17499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugNoType(p, MEMTYPE_DB) );
16947 17500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3GlobalConfig.m.xSize(p);
16948 17501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16949 17502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3DbMallocSize(sqlite3 *db, void *p){
16950 17503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db==0 || sqlite3_mutex_held(db->mutex) );
16951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isLookaside(db, p) ){
17504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db && isLookaside(db, p) ){
16952 17505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return db->lookaside.sz;
16953 17506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
16954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( sqlite3MemdebugHasType(p,
16955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db ? (MEMTYPE_DB|MEMTYPE_HEAP) : MEMTYPE_HEAP) );
17507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugHasType(p, MEMTYPE_DB) );
17508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugHasType(p, MEMTYPE_LOOKASIDE|MEMTYPE_HEAP) );
17509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db!=0 || sqlite3MemdebugNoType(p, MEMTYPE_LOOKASIDE) );
16956 17510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3GlobalConfig.m.xSize(p);
16957 17511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16958 17512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16959 17513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16960 17514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16961 17515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Free memory previously obtained from sqlite3Malloc().
16962 17516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
16963 17517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API void sqlite3_free(void *p){
16964 17518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p==0 ) return;
17519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugNoType(p, MEMTYPE_DB) );
16965 17520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) );
16966 17521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3GlobalConfig.bMemstat ){
16967 17522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(mem0.mutex);
16968 17523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StatusAdd(SQLITE_STATUS_MEMORY_USED, -sqlite3MallocSize(p));
17524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3StatusAdd(SQLITE_STATUS_MALLOC_COUNT, -1);
16969 17525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.m.xFree(p);
16970 17526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(mem0.mutex);
16971 17527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
16972 17528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.m.xFree(p);
16973 17529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -16977,20 +17533,28 @@
16977 17533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Free memory that might be associated with a particular database
16978 17534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** connection.
16979 17535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
16980 17536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *db, void *p){
16981 17537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db==0 || sqlite3_mutex_held(db->mutex) );
16982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isLookaside(db, p) ){
16983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LookasideSlot *pBuf = (LookasideSlot*)p;
16984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pBuf->pNext = db->lookaside.pFree;
16985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db->lookaside.pFree = pBuf;
16986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db->lookaside.nOut--;
16987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
16988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( sqlite3MemdebugHasType(p, MEMTYPE_DB|MEMTYPE_HEAP) );
16989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3MemdebugSetType(p, MEMTYPE_HEAP);
16990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(p);
16991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db ){
17539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pnBytesFreed ){
17540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *db->pnBytesFreed += sqlite3DbMallocSize(db, p);
17541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
17542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
17543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isLookaside(db, p) ){
17544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ LookasideSlot *pBuf = (LookasideSlot*)p;
17545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pBuf->pNext = db->lookaside.pFree;
17546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->lookaside.pFree = pBuf;
17547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->lookaside.nOut--;
17548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
17549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
17550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
17551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugHasType(p, MEMTYPE_DB) );
17552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugHasType(p, MEMTYPE_LOOKASIDE|MEMTYPE_HEAP) );
17553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db!=0 || sqlite3MemdebugNoType(p, MEMTYPE_LOOKASIDE) );
17554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3MemdebugSetType(p, MEMTYPE_HEAP);
17555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(p);
16992 17556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
16993 17557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16994 17558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
16995 17559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Change the size of an existing memory allocation
16996 17560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -17018,10 +17582,11 @@
17018 17582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED)+nNew-nOld >=
17019 17583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mem0.alarmThreshold ){
17020 17584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3MallocAlarm(nNew-nOld);
17021 17585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17022 17586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3MemdebugHasType(pOld, MEMTYPE_HEAP) );
17587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugNoType(pOld, ~MEMTYPE_HEAP) );
17023 17588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = sqlite3GlobalConfig.m.xRealloc(pOld, nNew);
17024 17589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pNew==0 && mem0.alarmCallback ){
17025 17590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3MallocAlarm(nBytes);
17026 17591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = sqlite3GlobalConfig.m.xRealloc(pOld, nNew);
17027 17592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -17090,10 +17655,11 @@
17090 17655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that all prior mallocs (ex: "a") worked too.
17091 17656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
17092 17657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void *sqlite3DbMallocRaw(sqlite3 *db, int n){
17093 17658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p;
17094 17659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db==0 || sqlite3_mutex_held(db->mutex) );
17660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db==0 || db->pnBytesFreed==0 );
17095 17661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_LOOKASIDE
17096 17662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db ){
17097 17663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LookasideSlot *pBuf;
17098 17664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed ){
17099 17665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
@@ -17115,12 +17681,12 @@
17115 17681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
17116 17682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3Malloc(n);
17117 17683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !p && db ){
17118 17684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
17119 17685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3MemdebugSetType(p,
17121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (db && db->lookaside.bEnabled) ? MEMTYPE_DB : MEMTYPE_HEAP);
17686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3MemdebugSetType(p, MEMTYPE_DB |
17687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ((db && db->lookaside.bEnabled) ? MEMTYPE_LOOKASIDE : MEMTYPE_HEAP));
17122 17688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return p;
17123 17689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17124 17690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17125 17691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17126 17692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Resize the block of memory pointed to by p to n bytes. If the
@@ -17142,18 +17708,20 @@
17142 17708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pNew ){
17143 17709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pNew, p, db->lookaside.sz);
17144 17710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p);
17145 17711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17146 17712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
17147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( sqlite3MemdebugHasType(p, MEMTYPE_DB|MEMTYPE_HEAP) );
17713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugHasType(p, MEMTYPE_DB) );
17714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3MemdebugHasType(p, MEMTYPE_LOOKASIDE|MEMTYPE_HEAP) );
17148 17715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3MemdebugSetType(p, MEMTYPE_HEAP);
17149 17716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = sqlite3_realloc(p, n);
17150 17717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pNew ){
17718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3MemdebugSetType(p, MEMTYPE_DB|MEMTYPE_HEAP);
17151 17719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
17152 17720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3MemdebugSetType(pNew,
17154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db->lookaside.bEnabled ? MEMTYPE_DB : MEMTYPE_HEAP);
17721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3MemdebugSetType(pNew, MEMTYPE_DB |
17722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (db->lookaside.bEnabled ? MEMTYPE_LOOKASIDE : MEMTYPE_HEAP));
17155 17723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17156 17724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17157 17725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pNew;
17158 17726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17159 17727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -18022,11 +18590,15 @@
18022 18590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->tooBig = 1;
18023 18591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
18024 18592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
18025 18593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nAlloc = (int)szNew;
18026 18594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
18027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zNew = sqlite3DbMallocRaw(p->db, p->nAlloc );
18595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->useMalloc==1 ){
18596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zNew = sqlite3DbMallocRaw(p->db, p->nAlloc );
18597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
18598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zNew = sqlite3_malloc(p->nAlloc);
18599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
18028 18600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zNew ){
18029 18601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(zNew, p->zText, p->nChar);
18030 18602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StrAccumReset(p);
18031 18603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zText = zNew;
18032 18604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -18047,11 +18619,15 @@
18047 18619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
18048 18620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum *p){
18049 18621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->zText ){
18050 18622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zText[p->nChar] = 0;
18051 18623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->useMalloc && p->zText==p->zBase ){
18052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 );
18624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->useMalloc==1 ){
18625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 );
18626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
18627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->zText = sqlite3_malloc(p->nChar+1);
18628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
18053 18629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->zText ){
18054 18630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(p->zText, p->zBase, p->nChar+1);
18055 18631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
18056 18632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->mallocFailed = 1;
18057 18633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -18063,11 +18639,15 @@
18063 18639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
18064 18640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Reset an StrAccum string. Reclaim all malloced memory.
18065 18641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
18066 18642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3StrAccumReset(StrAccum *p){
18067 18643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->zText!=p->zBase ){
18068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(p->db, p->zText);
18644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->useMalloc==1 ){
18645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(p->db, p->zText);
18646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
18647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(p->zText);
18648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
18069 18649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
18070 18650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zText = 0;
18071 18651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
18072 18652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18073 18653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -18145,10 +18725,11 @@
18145 18725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
StrAccum acc;
18146 18726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_AUTOINIT
18147 18727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3_initialize() ) return 0;
18148 18728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
18149 18729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StrAccumInit(&acc, zBase, sizeof(zBase), SQLITE_MAX_LENGTH);
18730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ acc.useMalloc = 2;
18150 18731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VXPrintf(&acc, 0, zFormat, ap);
18151 18732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = sqlite3StrAccumFinish(&acc);
18152 18733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return z;
18153 18734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
18154 18735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -18438,433 +19019,10 @@
18438 19019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** BOM or Byte Order Mark:
18439 19020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 0xff 0xfe little-endian utf-16 follows
18440 19021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 0xfe 0xff big-endian utf-16 follows
18441 19022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
18442 19023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
18443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Include vdbeInt.h in the middle of utf.c *********************/
18444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Begin file vdbeInt.h *****************************************/
18445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2003 September 6
18447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The author disclaims copyright to this source code. In place of
18449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a legal notice, here is a blessing:
18450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you do good and not evil.
18452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you find forgiveness for yourself and forgive others.
18453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you share freely, never taking more than you give.
18454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *************************************************************************
18456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This is the header file for information that is private to the
18457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** VDBE. This information used to all be at the top of the single
18458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** source code file "vdbe.c". When that file became too big (over
18459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 6000 lines long) it was split up into several smaller files and
18460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this header information was factored out.
18461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef _VDBEINT_H_
18463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _VDBEINT_H_
18464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQL is translated into a sequence of instructions to be
18467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** executed by a virtual machine. Each instruction is an instance
18468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the following structure.
18469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct VdbeOp Op;
18471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Boolean values
18474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef unsigned char Bool;
18476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A cursor is a pointer into a single BTree within a database file.
18479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The cursor can seek to a BTree entry with a particular key, or
18480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** loop over all entries of the Btree. You can also insert new BTree
18481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** entries or retrieve the key or data from the entry that the cursor
18482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is currently pointing to.
18483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Every cursor that the virtual machine has open is represented by an
18485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** instance of the following structure.
18486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the VdbeCursor.isTriggerRow flag is set it means that this cursor is
18488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** really a single row that represents the NEW or OLD pseudo-table of
18489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a row trigger. The data for the row is stored in VdbeCursor.pData and
18490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the rowid is in VdbeCursor.iKey.
18491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct VdbeCursor {
18493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- BtCursor *pCursor; /* The cursor structure of the backend */
18494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iDb; /* Index of cursor database in db->aDb[] (or -1) */
18495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 lastRowid; /* Last rowid from a Next or NextIdx operation */
18496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool zeroed; /* True if zeroed out and ready for reuse */
18497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool rowidIsValid; /* True if lastRowid is valid */
18498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool atFirst; /* True if pointing to first entry */
18499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool useRandomRowid; /* Generate new record numbers semi-randomly */
18500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool nullRow; /* True if pointing to a row with no data */
18501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool deferredMoveto; /* A call to sqlite3BtreeMoveto() is needed */
18502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool isTable; /* True if a table requiring integer keys */
18503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bool isIndex; /* True if an index containing keys only - no data */
18504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 movetoTarget; /* Argument to the deferred sqlite3BtreeMoveto() */
18505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Btree *pBt; /* Separate file holding temporary table */
18506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int pseudoTableReg; /* Register holding pseudotable content. */
18507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- KeyInfo *pKeyInfo; /* Info about index keys needed by index cursors */
18508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nField; /* Number of fields in the header */
18509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 seqCount; /* Sequence counter */
18510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_vtab_cursor *pVtabCursor; /* The cursor for a virtual table */
18511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const sqlite3_module *pModule; /* Module for cursor pVtabCursor */
18512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Result of last sqlite3BtreeMoveto() done by an OP_NotExists or
18514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** OP_IsUnique opcode on this cursor. */
18515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int seekResult;
18516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Cached information about the header for the data record that the
18518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** cursor is currently pointing to. Only valid if cacheStatus matches
18519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Vdbe.cacheCtr. Vdbe.cacheCtr will never take on the value of
18520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** CACHE_STALE and so setting cacheStatus=CACHE_STALE guarantees that
18521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the cache is out of date.
18522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** aRow might point to (ephemeral) data for the current row, or it might
18524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be NULL.
18525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 cacheStatus; /* Cache is valid if this matches Vdbe.cacheCtr */
18527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int payloadSize; /* Total number of bytes in the record */
18528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 *aType; /* Type values for all entries in the record */
18529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 *aOffset; /* Cached offsets to the start of each columns data */
18530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 *aRow; /* Data for the current row, if all on one page */
18531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct VdbeCursor VdbeCursor;
18533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** When a sub-program is executed (OP_Program), a structure of this type
18536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is allocated to store the current value of the program counter, as
18537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** well as the current memory cell array and various other frame specific
18538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** values stored in the Vdbe struct. When the sub-program is finished,
18539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** these values are copied back to the Vdbe from the VdbeFrame structure,
18540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** restoring the state of the VM to as it was before the sub-program
18541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** began executing.
18542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Frames are stored in a linked list headed at Vdbe.pParent. Vdbe.pParent
18544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is the parent of the current frame, or zero if the current frame
18545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is the main Vdbe program.
18546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct VdbeFrame VdbeFrame;
18548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct VdbeFrame {
18549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Vdbe *v; /* VM this frame belongs to */
18550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int pc; /* Program Counter */
18551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Op *aOp; /* Program instructions */
18552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nOp; /* Size of aOp array */
18553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem *aMem; /* Array of memory cells */
18554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nMem; /* Number of entries in aMem */
18555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeCursor **apCsr; /* Element of Vdbe cursors */
18556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 nCursor; /* Number of entries in apCsr */
18557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *token; /* Copy of SubProgram.token */
18558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nChildMem; /* Number of memory cells for child frame */
18559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nChildCsr; /* Number of cursors for child frame */
18560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 lastRowid; /* Last insert rowid (sqlite3.lastRowid) */
18561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nChange; /* Statement changes (Vdbe.nChanges) */
18562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFrame *pParent; /* Parent of this frame */
18563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define VdbeFrameMem(p) ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))])
18566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A value for VdbeCursor.cacheValid that means the cache is always invalid.
18569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define CACHE_STALE 0
18571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Internally, the vdbe manipulates nearly all SQL values as Mem
18574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** structures. Each Mem struct may cache multiple representations (string,
18575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** integer etc.) of the same value. A value (and therefore Mem structure)
18576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** has the following properties:
18577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Each value has a manifest type. The manifest type of the value stored
18579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in a Mem struct is returned by the MemType(Mem*) macro. The type is
18580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** one of SQLITE_NULL, SQLITE_INTEGER, SQLITE_REAL, SQLITE_TEXT or
18581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_BLOB.
18582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct Mem {
18584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- union {
18585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 i; /* Integer value. */
18586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nZero; /* Used when bit MEM_Zero is set in flags */
18587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FuncDef *pDef; /* Used only when flags==MEM_Agg */
18588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- RowSet *pRowSet; /* Used only when flags==MEM_RowSet */
18589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFrame *pFrame; /* Used when flags==MEM_Frame */
18590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } u;
18591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- double r; /* Real value */
18592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db; /* The associated database connection */
18593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *z; /* String or BLOB value */
18594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n; /* Number of characters in string value, excluding '\0' */
18595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 flags; /* Some combination of MEM_Null, MEM_Str, MEM_Dyn, etc. */
18596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 type; /* One of SQLITE_NULL, SQLITE_TEXT, SQLITE_INTEGER, etc */
18597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 enc; /* SQLITE_UTF8, SQLITE_UTF16BE, SQLITE_UTF16LE */
18598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xDel)(void *); /* If not null, call this function to delete Mem.z */
18599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zMalloc; /* Dynamic buffer allocated by sqlite3_malloc() */
18600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* One or more of the following flags are set to indicate the validOK
18603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** representations of the value stored in the Mem struct.
18604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the MEM_Null flag is set, then the value is an SQL NULL value.
18606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** No other flags may be set in this case.
18607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the MEM_Str flag is set then Mem.z points at a string representation.
18609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usually this is encoded in the same unicode encoding as the main
18610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** database (see below for exceptions). If the MEM_Term flag is also
18611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** set, then the string is nul terminated. The MEM_Int and MEM_Real
18612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** flags may coexist with the MEM_Str flag.
18613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Multiple of these values can appear in Mem.flags. But only one
18615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** at a time can appear in Mem.type.
18616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Null 0x0001 /* Value is NULL */
18618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Str 0x0002 /* Value is a string */
18619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Int 0x0004 /* Value is an integer */
18620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Real 0x0008 /* Value is a real number */
18621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Blob 0x0010 /* Value is a BLOB */
18622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_RowSet 0x0020 /* Value is a RowSet object */
18623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Frame 0x0040 /* Value is a VdbeFrame object */
18624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_TypeMask 0x00ff /* Mask of type bits */
18625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Whenever Mem contains a valid string or blob representation, one of
18627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the following flags must be set to determine the memory management
18628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** policy for Mem.z. The MEM_Term flag tells us whether or not the
18629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** string is \000 or \u0000 terminated
18630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Term 0x0200 /* String rep is nul terminated */
18632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Dyn 0x0400 /* Need to call sqliteFree() on Mem.z */
18633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Static 0x0800 /* Mem.z points to a static string */
18634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Ephem 0x1000 /* Mem.z points to an ephemeral string */
18635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Agg 0x2000 /* Mem.z points to an agg function context */
18636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Zero 0x4000 /* Mem.i contains count of 0s appended to blob */
18637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_OMIT_INCRBLOB
18639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #undef MEM_Zero
18640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MEM_Zero 0x0000
18641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Clear any existing type flags from a Mem and replace them with f
18646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define MemSetTypeFlag(p, f) \
18648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
18649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* A VdbeFunc is just a FuncDef (defined in sqliteInt.h) that contains
18652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** additional information about auxiliary information bound to arguments
18653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the function. This is used to implement the sqlite3_get_auxdata()
18654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and sqlite3_set_auxdata() APIs. The "auxdata" is some auxiliary data
18655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that can be associated with a constant argument to a function. This
18656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** allows functions such as "regexp" to compile their constant regular
18657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** expression argument once and reused the compiled code for multiple
18658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** invocations.
18659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct VdbeFunc {
18661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FuncDef *pFunc; /* The definition of the function */
18662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nAux; /* Number of entries allocated for apAux[] */
18663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct AuxData {
18664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *pAux; /* Aux data for the i-th argument */
18665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*xDelete)(void *); /* Destructor for the aux data */
18666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } apAux[1]; /* One slot for each function argument */
18667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The "context" argument for a installable function. A pointer to an
18671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** instance of this structure is the first argument to the routines used
18672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** implement the SQL functions.
18673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** There is a typedef for this structure in sqlite.h. So all routines,
18675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** even the public interface to SQLite, can use a pointer to this structure.
18676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** But this file is the only place where the internal details of this
18677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** structure are known.
18678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This structure is defined inside of vdbeInt.h because it uses substructures
18680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (Mem) which are only defined there.
18681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct sqlite3_context {
18683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FuncDef *pFunc; /* Pointer to function information. MUST BE FIRST */
18684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFunc *pVdbeFunc; /* Auxilary data, if created. */
18685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem s; /* The return value is stored here */
18686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem *pMem; /* Memory cell used to store aggregate context */
18687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isError; /* Error code returned by the function. */
18688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CollSeq *pColl; /* Collating sequence */
18689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A Set structure is used for quick testing to see if a value
18693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is part of a small set. Sets are used to implement code like
18694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this:
18695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** x.y IN ('hi','hoo','hum')
18696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct Set Set;
18698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct Set {
18699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Hash hash; /* A set is just a hash table */
18700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HashElem *prev; /* Previously accessed hash elemen */
18701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** An instance of the virtual machine. This structure contains the complete
18705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** state of the virtual machine.
18706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The "sqlite3_stmt" structure pointer that is returned by sqlite3_compile()
18708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is really a pointer to an instance of this structure.
18709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The Vdbe.inVtabMethod variable is set to non-zero for the duration of
18711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** any virtual table method invocations made by the vdbe program. It is
18712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** set to 2 for xDestroy method calls and 1 for all other methods. This
18713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** variable is used for two purposes: to allow xDestroy methods to execute
18714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** "DROP TABLE" statements and to prevent some nasty side effects of
18715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** malloc failure when SQLite is invoked recursively by a virtual table
18716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** method function.
18717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct Vdbe {
18719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db; /* The database connection that owns this statement */
18720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Vdbe *pPrev,*pNext; /* Linked list of VDBEs with the same Vdbe.db */
18721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nOp; /* Number of instructions in the program */
18722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nOpAlloc; /* Number of slots allocated for aOp[] */
18723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Op *aOp; /* Space to hold the virtual machine's program */
18724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nLabel; /* Number of labels used */
18725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nLabelAlloc; /* Number of slots allocated in aLabel[] */
18726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int *aLabel; /* Space to hold the labels */
18727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem **apArg; /* Arguments to currently executing user function */
18728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem *aColName; /* Column names to return */
18729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem *pResultSet; /* Pointer to an array of results */
18730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 nResColumn; /* Number of columns in one row of the result set */
18731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u16 nCursor; /* Number of slots in apCsr[] */
18732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeCursor **apCsr; /* One element of this array for each open cursor */
18733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 errorAction; /* Recovery action to do in case of an error */
18734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 okVar; /* True if azVar[] has been initialized */
18735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ynVar nVar; /* Number of entries in aVar[] */
18736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem *aVar; /* Values for the OP_Variable opcode. */
18737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char **azVar; /* Name of variables */
18738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 magic; /* Magic number for sanity checking */
18739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nMem; /* Number of memory locations currently allocated */
18740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Mem *aMem; /* The memory locations */
18741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 cacheCtr; /* VdbeCursor row cache generation counter */
18742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int pc; /* The program counter */
18743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc; /* Value to return */
18744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zErrMsg; /* Error message written here */
18745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 explain; /* True if EXPLAIN present on SQL command */
18746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 changeCntOn; /* True to update the change-counter */
18747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 expired; /* True if the VM needs to be recompiled */
18748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 runOnlyOnce; /* Automatically expire on reset */
18749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 minWriteFileFormat; /* Minimum file format for writable database files */
18750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 inVtabMethod; /* See comments above */
18751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 usesStmtJournal; /* True if uses a statement journal */
18752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 readOnly; /* True for read-only statements */
18753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 isPrepareV2; /* True if prepared with prepare_v2() */
18754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nChange; /* Number of db changes made since last reset */
18755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int btreeMask; /* Bitmask of db->aDb[] entries referenced */
18756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 startTime; /* Time when query started - used for profiling */
18757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- BtreeMutexArray aMutex; /* An array of Btree used here and needing locks */
18758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int aCounter[3]; /* Counters used by sqlite3_stmt_status() */
18759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zSql; /* Text of the SQL statement that generated this */
18760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *pFree; /* Free this when deleting the vdbe */
18761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 nFkConstraint; /* Number of imm. FK constraints this VM */
18762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i64 nStmtDefCons; /* Number of def. constraints when stmt started */
18763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iStatement; /* Statement number (or 0 if has not opened stmt) */
18764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
18765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILE *trace; /* Write an execution trace here, if not NULL */
18766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- VdbeFrame *pFrame; /* Parent frame */
18768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nFrame; /* Number of frames in pFrame list */
18769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 expmask; /* Binding to these vars invalidates VM */
18770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
18771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following are allowed values for Vdbe.magic
18774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define VDBE_MAGIC_INIT 0x26bceaa5 /* Building a VDBE program */
18776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define VDBE_MAGIC_RUN 0xbdf20da3 /* VDBE is ready to execute */
18777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define VDBE_MAGIC_HALT 0x519c2973 /* VDBE has completed execution */
18778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define VDBE_MAGIC_DEAD 0xb606c3c8 /* The VDBE has been deallocated */
18779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
18781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Function prototypes
18782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
18783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeFreeCursor(Vdbe *, VdbeCursor*);
18784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void sqliteVdbePopStack(Vdbe*,int);
18785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeCursorMoveto(VdbeCursor*);
18786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE)
18787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, Op*);
18788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen(u32);
18790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE u32 sqlite3VdbeSerialType(Mem*, int);
18791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE u32 sqlite3VdbeSerialPut(unsigned char*, int, Mem*, int);
18792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE u32 sqlite3VdbeSerialGet(const unsigned char*, u32, Mem*);
18793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(VdbeFunc*, int);
18794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *);
18796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare(VdbeCursor*,UnpackedRecord*,int*);
18797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeIdxRowid(sqlite3*, BtCursor *, i64 *);
18798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3MemCompare(const Mem*, const Mem*, const CollSeq*);
18799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeExec(Vdbe*);
18800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeList(Vdbe*);
18801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeHalt(Vdbe*);
18802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeChangeEncoding(Mem *, int);
18803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemTooBig(Mem*);
18804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemCopy(Mem*, const Mem*);
18805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy(Mem*, const Mem*, int);
18806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemMove(Mem*, Mem*);
18807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemNulTerminate(Mem*);
18808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem*, const char*, int, u8, void(*)(void*));
18809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem*, i64);
18810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_OMIT_FLOATING_POINT
18811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define sqlite3VdbeMemSetDouble sqlite3VdbeMemSetInt64
18812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
18813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemSetDouble(Mem*, double);
18814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemSetNull(Mem*);
18816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob(Mem*,int);
18817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemSetRowSet(Mem*);
18818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem*);
18819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem*, int);
18820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE i64 sqlite3VdbeIntValue(Mem*);
18821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemIntegerify(Mem*);
18822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE double sqlite3VdbeRealValue(Mem*);
18823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem*);
18824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemRealify(Mem*);
18825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemNumerify(Mem*);
18826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemFromBtree(BtCursor*,int,int,int,Mem*);
18827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemRelease(Mem *p);
18828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemReleaseExternal(Mem *p);
18829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemFinalize(Mem*, FuncDef*);
18830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE const char *sqlite3OpcodeName(int);
18831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemGrow(Mem *pMem, int n, int preserve);
18832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeCloseStatement(Vdbe *, int);
18833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame*);
18834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeFrameRestore(VdbeFrame *);
18835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemStoreType(Mem *pMem);
18836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_FOREIGN_KEY
18838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeCheckFk(Vdbe *, int);
18839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
18840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define sqlite3VdbeCheckFk(p,i) 0
18841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_SHARED_CACHE
18844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMutexArrayEnter(Vdbe *p);
18845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
18846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define sqlite3VdbeMutexArrayEnter(p)
18847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemTranslate(Mem*, u8);
18850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
18851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbePrintSql(Vdbe*);
18852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf);
18853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemHandleBom(Mem *pMem);
18855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_INCRBLOB
18857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *);
18858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
18859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define sqlite3VdbeMemExpandBlob(x) SQLITE_OK
18860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
18861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* !defined(_VDBEINT_H_) */
18863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
18864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** End of vdbeInt.h *********************************************/
18865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Continuing where we left off in utf.c ************************/
18866 19024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18867 19025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_AMALGAMATION
18868 19026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
18869 19027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The following constant value is used by the SQLITE_BIGENDIAN and
18870 19028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_LITTLEENDIAN macros.
@@ -21891,11 +22049,11 @@
21891 22049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
21892 22050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21893 22051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21894 22052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset( pFile, 0, sizeof(*pFile) );
21895 22053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE( "OPEN want %d\n", flags ));
22054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OSTRACE(( "OPEN want %d\n", flags ));
21897 22055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21898 22056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( flags & SQLITE_OPEN_READWRITE ){
21899 22057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ulOpenMode |= OPEN_ACCESS_READWRITE;
21900 22058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(( "OPEN read/write\n" ));
21901 22059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -32701,15 +32859,15 @@
32701 32859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** back to sqlite3Malloc().
32702 32860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
32703 32861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void *pcache1Alloc(int nByte){
32704 32862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p;
32705 32863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_held(pcache1.mutex) );
32864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3StatusSet(SQLITE_STATUS_PAGECACHE_SIZE, nByte);
32706 32865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nByte<=pcache1.szSlot && pcache1.pFree ){
32707 32866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pcache1.isInit );
32708 32867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = (PgHdr1 *)pcache1.pFree;
32709 32868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pcache1.pFree = pcache1.pFree->pNext;
32710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3StatusSet(SQLITE_STATUS_PAGECACHE_SIZE, nByte);
32711 32869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StatusAdd(SQLITE_STATUS_PAGECACHE_USED, 1);
32712 32870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
32713 32871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
32714 32872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Allocate a new buffer using sqlite3Malloc. Before doing so, exit the
32715 32873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** global pcache mutex and unlock the pager-cache object pCache. This is
@@ -34150,34 +34308,42 @@
34150 34308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** It is used when committing or otherwise ending a transaction. If
34151 34309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the dbModified flag is clear then less work has to be done.
34152 34310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34153 34311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** journalStarted
34154 34312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This flag is set whenever the the main journal is opened and
34156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** initialized
34313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This flag is set during a write-transaction after the first
34314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** journal-header is written and synced to disk.
34157 34315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The point of this flag is that it must be set after the
34159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** first journal header in a journal file has been synced to disk.
34160 34316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** After this has happened, new pages appended to the database
34161 34317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** do not need the PGHDR_NEED_SYNC flag set, as they do not need
34162 34318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to wait for a journal sync before they can be written out to
34163 34319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the database file (see function pager_write()).
34164 34320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34165 34321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** setMaster
34166 34322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This variable is used to ensure that the master journal file name
34168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (if any) is only written into the journal file once.
34323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When PagerCommitPhaseOne() is called to commit a transaction, it may
34324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (or may not) specify a master-journal name to be written into the
34325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** journal file before it is synced to disk.
34169 34326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** When committing a transaction, the master journal file name (if any)
34171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** may be written into the journal file while the pager is still in
34172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** PAGER_RESERVED state (see CommitPhaseOne() for the action). It
34173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then attempts to upgrade to an exclusive lock. If this attempt
34174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fails, then SQLITE_BUSY may be returned to the user and the user
34175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** may attempt to commit the transaction again later (calling
34176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** CommitPhaseOne() again). This flag is used to ensure that the
34177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** master journal name is only written to the journal file the first
34178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** time CommitPhaseOne() is called.
34327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Whether or not a journal file contains a master-journal pointer affects
34328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the way in which the journal file is finalized after the transaction is
34329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** committed or rolled back when running in "journal_mode=PERSIST" mode.
34330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If a journal file does not contain a master-journal pointer, it is
34331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** finalized by overwriting the first journal header with zeroes. If,
34332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** on the other hand, it does contain a master-journal pointer, the
34333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** journal file is finalized by truncating it to zero bytes, just as if
34334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the connection were running in "journal_mode=truncate" mode.
34335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
34336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Journal files that contain master journal pointers cannot be finalized
34337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** simply by overwriting the first journal-header with zeroes, as the
34338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** master journal pointer could interfere with hot-journal rollback of any
34339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** subsequently interrupted transaction that reuses the journal file.
34340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
34341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The flag is cleared as soon as the journal file is finalized (either
34342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the
34343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** journal file from being successfully finalized, the setMaster flag
34344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is cleared anyway.
34179 34345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34180 34346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** doNotSpill, doNotSyncSpill
34181 34347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34182 34348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** When enabled, cache spills are prohibited. The doNotSpill variable
34183 34349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** inhibits all cache spill and doNotSyncSpill inhibits those spills that
@@ -34941,11 +35107,12 @@
34941 35107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nMaster; /* Length of string zMaster */
34942 35108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 iHdrOff; /* Offset of header in journal file */
34943 35109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 jrnlSize; /* Size of journal file on disk */
34944 35110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 cksum = 0; /* Checksum of string zMaster */
34945 35111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !zMaster || pPager->setMaster
35112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pPager->setMaster==0 );
35113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !zMaster
34947 35114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pPager->journalMode==PAGER_JOURNALMODE_MEMORY
34948 35115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pPager->journalMode==PAGER_JOURNALMODE_OFF
34949 35116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
34950 35117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
34951 35118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -38928,10 +39095,30 @@
38928 39095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
38929 39096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3OsSync(pPager->fd, pPager->sync_flags);
38930 39097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
38931 39098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
38932 39099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
39100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
39101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
39102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function may only be called while a write-transaction is active in
39103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** rollback. If the connection is in WAL mode, this call is a no-op.
39104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Otherwise, if the connection does not already have an EXCLUSIVE lock on
39105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the database file, an attempt is made to obtain one.
39106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
39107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the EXCLUSIVE lock is already held or the attempt to obtain it is
39108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** successful, or the connection is in WAL mode, SQLITE_OK is returned.
39109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Otherwise, either SQLITE_BUSY or an SQLITE_IOERR_XXX error code is
39110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** returned.
39111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
39112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3PagerExclusiveLock(Pager *pPager){
39113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK;
39114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pPager->state>=PAGER_RESERVED );
39115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0==pagerUseWal(pPager) ){
39116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = pager_wait_on_lock(pPager, PAGER_EXCLUSIVE);
39117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
39118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
39119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
38933 39120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
38934 39121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
38935 39122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Sync the database file for the pager pPager. zMaster points to the name
38936 39123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of a master journal file that should be written into the individual
38937 39124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** journal file. zMaster may be NULL, which is interpreted as no master
@@ -38977,11 +39164,11 @@
38977 39164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this is an in-memory db, or no pages have been written to, or this
38978 39165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function has already been called, it is mostly a no-op. However, any
38979 39166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** backup in progress needs to be restarted.
38980 39167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
38981 39168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BackupRestart(pPager->pBackup);
38982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( pPager->state!=PAGER_SYNCED && pPager->dbModified ){
39169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( pPager->dbModified ){
38983 39170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pagerUseWal(pPager) ){
38984 39171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache);
38985 39172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pList ){
38986 39173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = pagerWalFrames(pPager, pList, pPager->dbSize, 1,
38987 39174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(pPager->fullSync ? pPager->sync_flags : 0)
@@ -39115,10 +39302,11 @@
39115 39302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3OsSync(pPager->fd, pPager->sync_flags);
39116 39303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
39117 39304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
IOTRACE(("DBSYNC %p\n", pPager))
39118 39305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
39119 39306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
39307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pPager->state!=PAGER_SYNCED );
39120 39308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPager->state = PAGER_SYNCED;
39121 39309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
39122 39310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
39123 39311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
commit_phase_one_exit:
39124 39312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
@@ -39282,13 +39470,15 @@
39282 39470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
39283 39471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the approximate number of bytes of memory currently
39284 39472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** used by the pager and its associated cache.
39285 39473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
39286 39474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3PagerMemUsed(Pager *pPager){
39287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int perPageSize = pPager->pageSize + pPager->nExtra + 20;
39475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int perPageSize = pPager->pageSize + pPager->nExtra + sizeof(PgHdr)
39476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + 5*sizeof(void*);
39288 39477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return perPageSize*sqlite3PcachePagecount(pPager->pPCache)
39289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- + sqlite3MallocSize(pPager);
39478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + sqlite3MallocSize(pPager)
39479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + pPager->pageSize;
39290 39480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
39291 39481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
39292 39482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
39293 39483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the number of references to the specified page.
39294 39484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -45683,11 +45873,11 @@
45683 45873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !pBt->pCursor );
45684 45874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3PagerClose(pBt->pPager);
45685 45875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt->xFreeSchema && pBt->pSchema ){
45686 45876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->xFreeSchema(pBt->pSchema);
45687 45877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
45688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pBt->pSchema);
45878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(0, pBt->pSchema);
45689 45879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
freeTempSpace(pBt);
45690 45880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(pBt);
45691 45881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
45692 45882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
45693 45883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_SHARED_CACHE
@@ -46248,17 +46438,31 @@
46248 46438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
46249 46439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->inTrans = (wrflag?TRANS_WRITE:TRANS_READ);
46250 46440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->inTrans>pBt->inTransaction ){
46251 46441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->inTransaction = p->inTrans;
46252 46442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
46253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_SHARED_CACHE
46254 46443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( wrflag ){
46444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MemPage *pPage1 = pBt->pPage1;
46445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_SHARED_CACHE
46255 46446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !pBt->pWriter );
46256 46447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->pWriter = p;
46257 46448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->isExclusive = (u8)(wrflag>1);
46449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
46450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
46451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If the db-size header field is incorrect (as it may be if an old
46452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** client has been writing the database file), update it now. Doing
46453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** this sooner rather than later means the database size can safely
46454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** re-read the database size from page 1 if a savepoint or transaction
46455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** rollback occurs within the transaction.
46456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
46457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pBt->nPage!=get4byte(&pPage1->aData[28]) ){
46458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3PagerWrite(pPage1->pDbPage);
46459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK ){
46460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ put4byte(&pPage1->aData[28], pBt->nPage);
46461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
46462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
46258 46463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
46259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
46260 46464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
46261 46465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
46262 46466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
46263 46467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
trans_begun:
46264 46468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK && wrflag ){
@@ -46993,13 +47197,15 @@
46993 47197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3PagerSavepoint(pBt->pPager, op, iSavepoint);
46994 47198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
46995 47199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iSavepoint<0 && pBt->initiallyEmpty ) pBt->nPage = 0;
46996 47200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = newDatabase(pBt);
46997 47201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->nPage = get4byte(28 + pBt->pPage1->aData);
46998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pBt->nPage==0 ){
46999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3PagerPagecount(pBt->pPager, (int*)&pBt->nPage);
47000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
47202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
47203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The database size was written into the offset 28 of the header
47204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** when the transaction started, so we know that the value at offset
47205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 28 is nonzero. */
47206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pBt->nPage>0 );
47001 47207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
47002 47208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeave(p);
47003 47209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
47004 47210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
47005 47211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -51428,10 +51634,11 @@
51428 51634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = PENDING_BYTE_PAGE(pBt);
51429 51635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i<=sCheck.nPage ){
51430 51636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sCheck.anRef[i] = 1;
51431 51637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
51432 51638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StrAccumInit(&sCheck.errMsg, zErr, sizeof(zErr), 20000);
51639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sCheck.errMsg.useMalloc = 2;
51433 51640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
51434 51641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check the integrity of the freelist
51435 51642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
51436 51643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
checkList(&sCheck, 1, get4byte(&pBt->pPage1->aData[32]),
51437 51644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
get4byte(&pBt->pPage1->aData[36]), "Main freelist: ");
@@ -51526,10 +51733,33 @@
51526 51733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeIsInTrans(Btree *p){
51527 51734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p==0 || sqlite3_mutex_held(p->db->mutex) );
51528 51735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (p && (p->inTrans==TRANS_WRITE));
51529 51736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
51530 51737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
51738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WAL
51739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
51740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Run a checkpoint on the Btree passed as the first argument.
51741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
51742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return SQLITE_LOCKED if this or any other connection has an open
51743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** transaction on the shared-cache the argument Btree is connected to.
51744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
51745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3BtreeCheckpoint(Btree *p){
51746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK;
51747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
51748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ BtShared *pBt = p->pBt;
51749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3BtreeEnter(p);
51750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pBt->inTransaction!=TRANS_NONE ){
51751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_LOCKED;
51752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
51753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3PagerCheckpoint(pBt->pPager);
51754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
51755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3BtreeLeave(p);
51756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
51757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
51758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
51759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
51760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
51531 51761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
51532 51762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return non-zero if a read (or write) transaction is active.
51533 51763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
51534 51764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3BtreeIsInReadTrans(Btree *p){
51535 51765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p );
@@ -51565,11 +51795,11 @@
51565 51795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
51566 51796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void *sqlite3BtreeSchema(Btree *p, int nBytes, void(*xFree)(void *)){
51567 51797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
BtShared *pBt = p->pBt;
51568 51798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeEnter(p);
51569 51799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pBt->pSchema && nBytes ){
51570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pBt->pSchema = sqlite3MallocZero(nBytes);
51800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pBt->pSchema = sqlite3DbMallocZero(0, nBytes);
51571 51801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->xFreeSchema = xFree;
51572 51802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
51573 51803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeave(p);
51574 51804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pBt->pSchema;
51575 51805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -53373,11 +53603,11 @@
53373 53603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*ppVal = 0;
53374 53604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
53375 53605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
53376 53606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
op = pExpr->op;
53377 53607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
53378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* op can only be TK_REGISTER is we have compiled with SQLITE_ENABLE_STAT2.
53608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* op can only be TK_REGISTER if we have compiled with SQLITE_ENABLE_STAT2.
53379 53609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The ifdef here is to enable us to achieve 100% branch test coverage even
53380 53610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** when SQLITE_ENABLE_STAT2 is omitted.
53381 53611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
53382 53612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT2
53383 53613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( op==TK_REGISTER ) op = pExpr->op2;
@@ -54051,47 +54281,55 @@
54051 54281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ALWAYS(pDef) && (pDef->flags & SQLITE_FUNC_EPHEM)!=0 ){
54052 54282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pDef);
54053 54283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54054 54284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54055 54285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
54286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void vdbeFreeOpArray(sqlite3 *, Op *, int);
54287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
54056 54288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
54057 54289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Delete a P4 value if necessary.
54058 54290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
54059 54291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void freeP4(sqlite3 *db, int p4type, void *p4){
54060 54292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p4 ){
54293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db );
54061 54294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( p4type ){
54062 54295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_REAL:
54063 54296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_INT64:
54064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case P4_MPRINTF:
54065 54297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_DYNAMIC:
54066 54298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_KEYINFO:
54067 54299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_INTARRAY:
54068 54300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_KEYINFO_HANDOFF: {
54069 54301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p4);
54070 54302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
54303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
54304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case P4_MPRINTF: {
54305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pnBytesFreed==0 ) sqlite3_free(p4);
54306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
54071 54307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54072 54308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_VDBEFUNC: {
54073 54309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeFunc *pVdbeFunc = (VdbeFunc *)p4;
54074 54310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
freeEphemeralFunction(db, pVdbeFunc->pFunc);
54075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeDeleteAuxData(pVdbeFunc, 0);
54311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pnBytesFreed==0 ) sqlite3VdbeDeleteAuxData(pVdbeFunc, 0);
54076 54312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pVdbeFunc);
54077 54313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
54078 54314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54079 54315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_FUNCDEF: {
54080 54316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
freeEphemeralFunction(db, (FuncDef*)p4);
54081 54317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
54082 54318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54083 54319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_MEM: {
54084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ValueFree((sqlite3_value*)p4);
54320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pnBytesFreed==0 ){
54321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ValueFree((sqlite3_value*)p4);
54322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
54323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Mem *p = (Mem*)p4;
54324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->zMalloc);
54325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p);
54326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
54085 54327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
54086 54328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54087 54329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case P4_VTAB : {
54088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VtabUnlock((VTable *)p4);
54089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
54090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
54091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case P4_SUBPROGRAM : {
54092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeProgramDelete(db, (SubProgram *)p4, 1);
54330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4);
54093 54331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
54094 54332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54095 54333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54096 54334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54097 54335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -54113,38 +54351,18 @@
54113 54351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54114 54352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, aOp);
54115 54353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54116 54354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
54117 54355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
54118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Decrement the ref-count on the SubProgram structure passed as the
54119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** second argument. If the ref-count reaches zero, free the structure.
54120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
54121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The array of VDBE opcodes stored as SubProgram.aOp is freed if
54122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** either the ref-count reaches zero or parameter freeop is non-zero.
54123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
54124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Since the array of opcodes pointed to by SubProgram.aOp may directly
54125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** or indirectly contain a reference to the SubProgram structure itself.
54126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** By passing a non-zero freeop parameter, the caller may ensure that all
54127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SubProgram structures and their aOp arrays are freed, even when there
54128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are such circular references.
54356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Link the SubProgram object passed as the second argument into the linked
54357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** list at Vdbe.pSubProgram. This list is used to delete all sub-program
54358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** objects when the VM is no longer required.
54129 54359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
54130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeProgramDelete(sqlite3 *db, SubProgram *p, int freeop){
54131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p ){
54132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->nRef>0 );
54133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( freeop || p->nRef==1 ){
54134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Op *aOp = p->aOp;
54135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->aOp = 0;
54136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- vdbeFreeOpArray(db, aOp, p->nOp);
54137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->nOp = 0;
54138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
54139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->nRef--;
54140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nRef==0 ){
54141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p);
54142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
54143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
54144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
54145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
54360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeLinkSubProgram(Vdbe *pVdbe, SubProgram *p){
54361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pNext = pVdbe->pProgram;
54362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pVdbe->pProgram = p;
54363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
54146 54364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
54147 54365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
54148 54366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Change N opcodes starting at addr to No-ops.
54149 54367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
54150 54368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeChangeToNoop(Vdbe *p, int addr, int N){
@@ -54217,11 +54435,11 @@
54217 54435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKeyInfo;
54218 54436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nField, nByte;
54219 54437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
54220 54438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nField = ((KeyInfo*)zP4)->nField;
54221 54439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nByte = sizeof(*pKeyInfo) + (nField-1)*sizeof(pKeyInfo->aColl[0]) + nField;
54222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pKeyInfo = sqlite3Malloc( nByte );
54440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pKeyInfo = sqlite3DbMallocRaw(0, nByte);
54223 54441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOp->p4.pKeyInfo = pKeyInfo;
54224 54442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pKeyInfo ){
54225 54443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 *aSortOrder;
54226 54444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy((char*)pKeyInfo, zP4, nByte - nField);
54227 54445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aSortOrder = pKeyInfo->aSortOrder;
@@ -54481,10 +54699,16 @@
54481 54699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void releaseMemArray(Mem *p, int N){
54482 54700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p && N ){
54483 54701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem *pEnd;
54484 54702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = p->db;
54485 54703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 malloc_failed = db->mallocFailed;
54704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pnBytesFreed ){
54705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pEnd=&p[N]; p<pEnd; p++){
54706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->zMalloc);
54707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
54708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
54709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
54486 54710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pEnd=&p[N]; p<pEnd; p++){
54487 54711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (&p[1])==pEnd || p[0].db==p[1].db );
54488 54712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
54489 54713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This block is really an inlined version of sqlite3VdbeMemRelease()
54490 54714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that takes advantage of the fact that the memory cell value is
@@ -55130,26 +55354,27 @@
55130 55354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** be done before determining whether a master journal file is
55131 55355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** required, as an xSync() callback may add an attached database
55132 55356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to the transaction.
55133 55357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
55134 55358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VtabSync(db, &p->zErrMsg);
55135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc!=SQLITE_OK ){
55136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
55137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
55138 55359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
55139 55360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This loop determines (a) if the commit hook should be invoked and
55140 55361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (b) how many database files have open write transactions, not
55141 55362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** including the temp database. (b) is important because if more than
55142 55363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** one database file has an open write transaction, a master journal
55143 55364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** file is required for an atomic commit.
55144 55365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
55145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<db->nDb; i++){
55366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; rc==SQLITE_OK && i<db->nDb; i++){
55146 55367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Btree *pBt = db->aDb[i].pBt;
55147 55368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3BtreeIsInTrans(pBt) ){
55148 55369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
needXcommit = 1;
55149 55370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i!=1 ) nTrans++;
55371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3PagerExclusiveLock(sqlite3BtreePager(pBt));
55150 55372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
55374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc!=SQLITE_OK ){
55375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
55151 55376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55152 55377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
55153 55378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there are any write-transactions at all, invoke the commit hook */
55154 55379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( needXcommit && db->xCommitCallback ){
55155 55380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = db->xCommitCallback(db->pCommitArg);
@@ -55285,10 +55510,11 @@
55285 55510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt ){
55286 55511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3BtreeCommitPhaseOne(pBt, zMaster);
55287 55512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55288 55513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55289 55514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsCloseFree(pMaster);
55515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( rc!=SQLITE_BUSY );
55290 55516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
55291 55517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zMaster);
55292 55518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
55293 55519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55294 55520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -55812,10 +56038,34 @@
55812 56038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55813 56039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAux->pAux = 0;
55814 56040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55815 56041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55816 56042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
56044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
56045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Free all memory associated with the Vdbe passed as the second argument.
56046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The difference between this function and sqlite3VdbeDelete() is that
56047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** VdbeDelete() also unlinks the Vdbe from the list of VMs associated with
56048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the database connection.
56049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
56050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeDeleteObject(sqlite3 *db, Vdbe *p){
56051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SubProgram *pSub, *pNext;
56052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->db==0 || p->db==db );
56053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ releaseMemArray(p->aVar, p->nVar);
56054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ releaseMemArray(p->aColName, p->nResColumn*COLNAME_N);
56055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(pSub=p->pProgram; pSub; pSub=pNext){
56056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNext = pSub->pNext;
56057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vdbeFreeOpArray(db, pSub->aOp, pSub->nOp);
56058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, pSub);
56059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
56060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vdbeFreeOpArray(db, p->aOp, p->nOp);
56061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->aLabel);
56062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->aColName);
56063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->zSql);
56064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->pFree);
56065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p);
56066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
55817 56067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
55818 56068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
55819 56069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Delete an entire VDBE.
55820 56070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
55821 56071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeDelete(Vdbe *p){
@@ -55830,20 +56080,13 @@
55830 56080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pVdbe = p->pNext;
55831 56081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55832 56082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pNext ){
55833 56083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pNext->pPrev = p->pPrev;
55834 56084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- releaseMemArray(p->aVar, p->nVar);
55836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- releaseMemArray(p->aColName, p->nResColumn*COLNAME_N);
55837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- vdbeFreeOpArray(db, p->aOp, p->nOp);
55838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->aLabel);
55839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->aColName);
55840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zSql);
55841 56085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->magic = VDBE_MAGIC_DEAD;
55842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->pFree);
55843 56086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->db = 0;
55844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p);
56087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeDeleteObject(db, p);
55845 56088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
55846 56089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
55847 56090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
55848 56091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Make sure the cursor p is ready to read or write the row to which it
55849 56092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** was last positioned. Return an error code if an OOM fault or I/O error
@@ -55865,15 +56108,12 @@
55865 56108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
55866 56109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->isTable );
55867 56110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3BtreeMovetoUnpacked(p->pCursor, 0, p->movetoTarget, 0, &res);
55868 56111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ) return rc;
55869 56112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->lastRowid = p->movetoTarget;
55870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->rowidIsValid = ALWAYS(res==0) ?1:0;
55871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( NEVER(res<0) ){
55872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeNext(p->pCursor, &res);
55873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc ) return rc;
55874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
56113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( res!=0 ) return SQLITE_CORRUPT_BKPT;
56114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->rowidIsValid = 1;
55875 56115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_TEST
55876 56116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_search_count++;
55877 56117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
55878 56118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->deferredMoveto = 0;
55879 56119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->cacheStatus = CACHE_STALE;
@@ -57013,11 +57253,11 @@
57013 57253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Invoke the profile callback if there is one
57014 57254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
57015 57255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_ROW && db->xProfile && !db->init.busy && p->zSql ){
57016 57256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iNow;
57017 57257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsCurrentTimeInt64(db->pVfs, &iNow);
57018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db->xProfile(db->pProfileArg, p->zSql, iNow - p->startTime);
57258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->xProfile(db->pProfileArg, p->zSql, (iNow - p->startTime)*1000000);
57019 57259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
57020 57260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
57021 57261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
57022 57262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_DONE ){
57023 57263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->rc==SQLITE_OK );
@@ -58628,10 +58868,24 @@
58628 58868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(p=db->pSavepoint; p; p=p->pNext) n++;
58629 58869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( n==(db->nSavepoint + db->isTransactionSavepoint) );
58630 58870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
58631 58871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58632 58872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
58873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
58874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
58875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Transfer error message text from an sqlite3_vtab.zErrMsg (text stored
58876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in memory obtained from sqlite3_malloc) into a Vdbe.zErrMsg (text stored
58877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in memory obtained from sqlite3DbMalloc).
58878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
58879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void importVtabErrMsg(Vdbe *p, sqlite3_vtab *pVtab){
58880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *db = p->db;
58881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->zErrMsg);
58882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->zErrMsg = sqlite3DbStrDup(db, pVtab->zErrMsg);
58883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(pVtab->zErrMsg);
58884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pVtab->zErrMsg = 0;
58885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
58886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
58633 58887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58634 58888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
58635 58889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Execute as much of a VDBE program as we can then return.
58636 58890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
58637 58891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3VdbeMakeReady() must be called before this routine in order to
@@ -62627,13 +62881,11 @@
62627 62881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( u.bi.pC->pVtabCursor ){
62628 62882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.bi.pVtab = u.bi.pC->pVtabCursor->pVtab;
62629 62883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.bi.pModule = u.bi.pVtab->pModule;
62630 62884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bi.pModule->xRowid );
62631 62885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.bi.pModule->xRowid(u.bi.pC->pVtabCursor, &u.bi.v);
62632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
62633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.bi.pVtab->zErrMsg;
62634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.bi.pVtab->zErrMsg = 0;
62886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.bi.pVtab);
62635 62887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_VIRTUALTABLE */
62636 62888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
62637 62889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bi.pC->pCursor!=0 );
62638 62890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VdbeCursorMoveto(u.bi.pC);
62639 62891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ) goto abort_due_to_error;
@@ -64018,15 +64270,11 @@
64018 64270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if 0 /* local variables moved into u.cf */
64019 64271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VTable *pVTab;
64020 64272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* local variables moved into u.cf */
64021 64273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cf.pVTab = pOp->p4.pVtab;
64022 64274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VtabBegin(db, u.cf.pVTab);
64023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( u.cf.pVTab ){
64024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.cf.pVTab->pVtab->zErrMsg;
64026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.cf.pVTab->pVtab->zErrMsg = 0;
64027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
64275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( u.cf.pVTab ) importVtabErrMsg(p, u.cf.pVTab->pVtab);
64028 64276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
64029 64277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64030 64278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_VIRTUALTABLE */
64031 64279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64032 64280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -64074,13 +64322,11 @@
64074 64322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cg.pVtabCursor = 0;
64075 64323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cg.pVtab = pOp->p4.pVtab->pVtab;
64076 64324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cg.pModule = (sqlite3_module *)u.cg.pVtab->pModule;
64077 64325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(u.cg.pVtab && u.cg.pModule);
64078 64326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.cg.pModule->xOpen(u.cg.pVtab, &u.cg.pVtabCursor);
64079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.cg.pVtab->zErrMsg;
64081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.cg.pVtab->zErrMsg = 0;
64327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.cg.pVtab);
64082 64328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK==rc ){
64083 64329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Initialize sqlite3_vtab_cursor base class */
64084 64330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cg.pVtabCursor->pVtab = u.cg.pVtab;
64085 64331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64086 64332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Initialise vdbe cursor object */
@@ -64155,13 +64401,11 @@
64155 64401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64156 64402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64157 64403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->inVtabMethod = 1;
64158 64404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.ch.pModule->xFilter(u.ch.pVtabCursor, u.ch.iQuery, pOp->p4.z, u.ch.nArg, u.ch.apArg);
64159 64405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->inVtabMethod = 0;
64160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.ch.pVtab->zErrMsg;
64162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ch.pVtab->zErrMsg = 0;
64406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.ch.pVtab);
64163 64407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
64164 64408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.ch.res = u.ch.pModule->xEof(u.ch.pVtabCursor);
64165 64409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64166 64410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64167 64411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.ch.res ){
@@ -64209,13 +64453,11 @@
64209 64453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
64210 64454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemMove(&u.ci.sContext.s, u.ci.pDest);
64211 64455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
MemSetTypeFlag(&u.ci.sContext.s, MEM_Null);
64212 64456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64213 64457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.ci.pModule->xColumn(pCur->pVtabCursor, &u.ci.sContext, pOp->p2);
64214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.ci.pVtab->zErrMsg;
64216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ci.pVtab->zErrMsg = 0;
64458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.ci.pVtab);
64217 64459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.ci.sContext.isError ){
64218 64460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.ci.sContext.isError;
64219 64461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64220 64462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64221 64463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Copy the result of the function to the P3 register. We
@@ -64266,13 +64508,11 @@
64266 64508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** some other method is next invoked on the save virtual table cursor.
64267 64509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
64268 64510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->inVtabMethod = 1;
64269 64511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.cj.pModule->xNext(u.cj.pCur->pVtabCursor);
64270 64512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->inVtabMethod = 0;
64271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.cj.pVtab->zErrMsg;
64273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.cj.pVtab->zErrMsg = 0;
64513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.cj.pVtab);
64274 64514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
64275 64515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cj.res = u.cj.pModule->xEof(u.cj.pCur->pVtabCursor);
64276 64516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64277 64517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64278 64518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !u.cj.res ){
@@ -64300,13 +64540,11 @@
64300 64540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.ck.pName = &aMem[pOp->p1];
64301 64541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.ck.pVtab->pModule->xRename );
64302 64542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
REGISTER_TRACE(pOp->p1, u.ck.pName);
64303 64543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.ck.pName->flags & MEM_Str );
64304 64544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.ck.pVtab->pModule->xRename(u.ck.pVtab, u.ck.pName->z);
64305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.ck.pVtab->zErrMsg;
64307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.ck.pVtab->zErrMsg = 0;
64545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.ck.pVtab);
64308 64546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
64309 64547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
64310 64548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64311 64549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
64312 64550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -64356,13 +64594,11 @@
64356 64594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeMemStoreType(u.cl.pX);
64357 64595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cl.apArg[u.cl.i] = u.cl.pX;
64358 64596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.cl.pX++;
64359 64597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64360 64598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = u.cl.pModule->xUpdate(u.cl.pVtab, u.cl.nArg, u.cl.apArg, &u.cl.rowid);
64361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, p->zErrMsg);
64362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zErrMsg = u.cl.pVtab->zErrMsg;
64363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u.cl.pVtab->zErrMsg = 0;
64599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ importVtabErrMsg(p, u.cl.pVtab);
64364 64600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK && pOp->p1 ){
64365 64601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.cl.nArg>1 && u.cl.apArg[0] && (u.cl.apArg[0]->flags&MEM_Null) );
64366 64602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->lastRowid = u.cl.rowid;
64367 64603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
64368 64604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nChange++;
@@ -66811,30 +67047,37 @@
66811 67047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pExpr->pTab && j<pExpr->pTab->nCol );
66812 67048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pExpr->pTab->aCol[j].affinity;
66813 67049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
66814 67050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pExpr->affinity;
66815 67051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
67053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
67054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Set the explicit collating sequence for an expression to the
67055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** collating sequence supplied in the second argument.
67056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
67057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Expr *sqlite3ExprSetColl(Expr *pExpr, CollSeq *pColl){
67058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pExpr && pColl ){
67059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->pColl = pColl;
67060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr->flags |= EP_ExpCollate;
67061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
67062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pExpr;
67063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
66816 67064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66817 67065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
66818 67066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Set the collating sequence for expression pExpr to be the collating
66819 67067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sequence named by pToken. Return a pointer to the revised expression.
66820 67068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The collating sequence is marked as "explicit" using the EP_ExpCollate
66821 67069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** flag. An explicit collating sequence will override implicit
66822 67070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** collating sequences.
66823 67071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
66824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE Expr *sqlite3ExprSetColl(Parse *pParse, Expr *pExpr, Token *pCollName){
67072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE Expr *sqlite3ExprSetCollByToken(Parse *pParse, Expr *pExpr, Token *pCollName){
66825 67073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zColl = 0; /* Dequoted name of collation sequence */
66826 67074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CollSeq *pColl;
66827 67075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pParse->db;
66828 67076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zColl = sqlite3NameFromToken(db, pCollName);
66829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pExpr && zColl ){
66830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pColl = sqlite3LocateCollSeq(pParse, zColl);
66831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pColl ){
66832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->pColl = pColl;
66833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pExpr->flags |= EP_ExpCollate;
66834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
66835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
67077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pColl = sqlite3LocateCollSeq(pParse, zColl);
67078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetColl(pExpr, pColl);
66836 67079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zColl);
66837 67080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pExpr;
66838 67081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
66839 67082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66840 67083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -68262,18 +68505,24 @@
68262 68505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68263 68506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( eType==0 ){
68264 68507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Could not found an existing table or index to use as the RHS b-tree.
68265 68508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** We will have to generate an ephemeral table to do the job.
68266 68509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
68510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ double savedNQueryLoop = pParse->nQueryLoop;
68267 68511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rMayHaveNull = 0;
68268 68512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eType = IN_INDEX_EPH;
68269 68513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( prNotFound ){
68270 68514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*prNotFound = rMayHaveNull = ++pParse->nMem;
68271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( pX->pLeft->iColumn<0 && !ExprHasAnyProperty(pX, EP_xIsSelect) ){
68272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- eType = IN_INDEX_ROWID;
68515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
68516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pParse->nQueryLoop>(double)1 );
68517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nQueryLoop = (double)1;
68518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pX->pLeft->iColumn<0 && !ExprHasAnyProperty(pX, EP_xIsSelect) ){
68519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eType = IN_INDEX_ROWID;
68520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
68273 68521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68274 68522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CodeSubselect(pParse, pX, rMayHaveNull, eType==IN_INDEX_ROWID);
68523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParse->nQueryLoop = savedNQueryLoop;
68275 68524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
68276 68525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pX->iTable = iTab;
68277 68526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68278 68527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return eType;
68279 68528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -71302,11 +71551,10 @@
71302 71551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
71303 71552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = (Table*)sqlite3DbMallocZero(db, sizeof(Table));
71304 71553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pNew ) goto exit_begin_add_column;
71305 71554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pNewTable = pNew;
71306 71555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->nRef = 1;
71307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNew->dbMem = pTab->dbMem;
71308 71556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->nCol = pTab->nCol;
71309 71557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pNew->nCol>0 );
71310 71558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nAlloc = (((pNew->nCol-1)/8)*8)+8;
71311 71559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nAlloc>=pNew->nCol && nAlloc%8==0 && nAlloc-pNew->nCol<8 );
71312 71560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->aCol = (Column*)sqlite3DbMallocZero(db, sizeof(Column)*nAlloc);
@@ -71831,23 +72079,21 @@
71831 72079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71832 72080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
71833 72081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the Index.aSample variable is not NULL, delete the aSample[] array
71834 72082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and its contents.
71835 72083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
71836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3DeleteIndexSamples(Index *pIdx){
72084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx){
71837 72085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT2
71838 72086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIdx->aSample ){
71839 72087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j;
71840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *dbMem = pIdx->pTable->dbMem;
71841 72088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=0; j<SQLITE_INDEX_SAMPLES; j++){
71842 72089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
IndexSample *p = &pIdx->aSample[j];
71843 72090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->eType==SQLITE_TEXT || p->eType==SQLITE_BLOB ){
71844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(pIdx->pTable->dbMem, p->u.z);
72091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->u.z);
71845 72092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71846 72093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(dbMem, pIdx->aSample);
71848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pIdx->aSample = 0;
72094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, pIdx->aSample);
71849 72095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71850 72096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
71851 72097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(pIdx);
71852 72098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
71853 72099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -71884,11 +72130,12 @@
71884 72130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71885 72131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Clear any prior statistics */
71886 72132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=sqliteHashFirst(&db->aDb[iDb].pSchema->idxHash);i;i=sqliteHashNext(i)){
71887 72133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIdx = sqliteHashData(i);
71888 72134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DefaultRowEst(pIdx);
71889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteIndexSamples(pIdx);
72135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteIndexSamples(db, pIdx);
72136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIdx->aSample = 0;
71890 72137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71891 72138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71892 72139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check to make sure the sqlite_stat1 table exists */
71893 72140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sInfo.db = db;
71894 72141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sInfo.zDatabase = db->aDb[iDb].zName;
@@ -71928,22 +72175,21 @@
71928 72175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( sqlite3_step(pStmt)==SQLITE_ROW ){
71929 72176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zIndex = (char *)sqlite3_column_text(pStmt, 0);
71930 72177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIdx = sqlite3FindIndex(db, zIndex, sInfo.zDatabase);
71931 72178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIdx ){
71932 72179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iSample = sqlite3_column_int(pStmt, 1);
71933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *dbMem = pIdx->pTable->dbMem;
71934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( dbMem==db || dbMem==0 );
71935 72180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iSample<SQLITE_INDEX_SAMPLES && iSample>=0 ){
71936 72181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int eType = sqlite3_column_type(pStmt, 2);
71937 72182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71938 72183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIdx->aSample==0 ){
71939 72184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const int sz = sizeof(IndexSample)*SQLITE_INDEX_SAMPLES;
71940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pIdx->aSample = (IndexSample *)sqlite3DbMallocZero(dbMem, sz);
72185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIdx->aSample = (IndexSample *)sqlite3DbMallocRaw(0, sz);
71941 72186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIdx->aSample==0 ){
71942 72187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
71943 72188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
71944 72189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
72190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(pIdx->aSample, 0, sz);
71945 72191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71946 72192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71947 72193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pIdx->aSample );
71948 72194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
71949 72195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
IndexSample *pSample = &pIdx->aSample[iSample];
@@ -71962,14 +72208,12 @@
71962 72208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71963 72209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSample->nByte = (u8)n;
71964 72210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n < 1){
71965 72211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSample->u.z = 0;
71966 72212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
71967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pSample->u.z = sqlite3DbMallocRaw(dbMem, n);
71968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pSample->u.z ){
71969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(pSample->u.z, z, n);
71970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
72213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSample->u.z = sqlite3DbStrNDup(0, z, n);
72214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pSample->u.z==0 ){
71971 72215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
71972 72216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
71973 72217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71974 72218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71975 72219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -73128,37 +73372,18 @@
73128 73372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73129 73373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73130 73374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73131 73375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Reclaim the memory used by an index
73132 73376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
73133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void freeIndex(Index *p){
73134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db = p->pTable->dbMem;
73377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void freeIndex(sqlite3 *db, Index *p){
73135 73378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_ANALYZE
73136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteIndexSamples(p);
73379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteIndexSamples(db, p);
73137 73380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
73138 73381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p->zColAff);
73139 73382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p);
73140 73383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73141 73384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
73143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Remove the given index from the index hash table, and free
73144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** its memory structures.
73145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
73146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The index is removed from the database hash tables but
73147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** it is not unlinked from the Table that it indexes.
73148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Unlinking from the Table must be done by the calling function.
73149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
73150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void sqlite3DeleteIndex(Index *p){
73151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Index *pOld;
73152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zName = p->zName;
73153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
73154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOld = sqlite3HashInsert(&p->pSchema->idxHash, zName,
73155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Strlen30(zName), 0);
73156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pOld==0 || pOld==p );
73157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- freeIndex(p);
73158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
73159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
73160 73385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73161 73386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** For the index called zIdxName which is found in the database iDb,
73162 73387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unlike that index from its Table then remove the index from
73163 73388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the index hash table and free all memory structures associated
73164 73389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** with the index.
@@ -73181,11 +73406,11 @@
73181 73406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }
73182 73407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ALWAYS(p && p->pNext==pIndex) ){
73183 73408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pNext = pIndex->pNext;
73184 73409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73185 73410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- freeIndex(pIndex);
73411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ freeIndex(db, pIndex);
73187 73412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73188 73413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags |= SQLITE_InternChanges;
73189 73414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73190 73415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73191 73416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -73252,17 +73477,16 @@
73252 73477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3CommitInternalChanges(sqlite3 *db){
73253 73478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags &= ~SQLITE_InternChanges;
73254 73479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73255 73480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73256 73481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Clear the column names from a table or view.
73482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Delete memory allocated for the column names of a table or view (the
73483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Table.aCol[] array).
73258 73484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
73259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void sqliteResetColumnNames(Table *pTable){
73485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void sqliteDeleteColumnNames(sqlite3 *db, Table *pTable){
73260 73486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
73261 73487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Column *pCol;
73262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db = pTable->dbMem;
73263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( db==0 );
73264 73488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTable!=0 );
73265 73489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pCol = pTable->aCol)!=0 ){
73266 73490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<pTable->nCol; i++, pCol++){
73267 73491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pCol->zName);
73268 73492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprDelete(db, pCol->pDflt);
@@ -73270,12 +73494,10 @@
73270 73494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pCol->zType);
73271 73495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pCol->zColl);
73272 73496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73273 73497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pTable->aCol);
73274 73498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTable->aCol = 0;
73276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTable->nCol = 0;
73277 73499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73278 73500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73279 73501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73280 73502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Remove the memory data structures associated with the given
73281 73503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Table. No changes are made to disk by this routine.
@@ -73283,46 +73505,48 @@
73283 73505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine just deletes the data structure. It does not unlink
73284 73506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the table data structure from the hash table. But it does destroy
73285 73507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** memory structures of the indices and foreign keys associated with
73286 73508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the table.
73287 73509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
73288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3DeleteTable(Table *pTable){
73510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3 *db, Table *pTable){
73289 73511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIndex, *pNext;
73290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db;
73291 73512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pTable==0 ) return;
73293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db = pTable->dbMem;
73294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( db==0 );
73513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( !pTable || pTable->nRef>0 );
73295 73514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73296 73515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do not delete the table until the reference count reaches zero. */
73297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTable->nRef--;
73298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pTable->nRef>0 ){
73299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return;
73300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
73301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pTable->nRef==0 );
73302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
73303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Delete all indices associated with this table
73304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
73516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !pTable ) return;
73517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ((!db || db->pnBytesFreed==0) && (--pTable->nRef)>0) ) return;
73518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
73519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Delete all indices associated with this table. */
73305 73520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){
73306 73521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNext = pIndex->pNext;
73307 73522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pIndex->pSchema==pTable->pSchema );
73308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteIndex(pIndex);
73523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !db || db->pnBytesFreed==0 ){
73524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zName = pIndex->zName;
73525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TESTONLY ( Index *pOld = ) sqlite3HashInsert(
73526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ &pIndex->pSchema->idxHash, zName, sqlite3Strlen30(zName), 0
73527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
73528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOld==pIndex || pOld==0 );
73529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
73530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ freeIndex(db, pIndex);
73309 73531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73310 73532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73311 73533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Delete any foreign keys attached to this table. */
73312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3FkDelete(pTable);
73534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3FkDelete(db, pTable);
73313 73535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73314 73536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Delete the Table structure itself.
73315 73537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
73316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqliteResetColumnNames(pTable);
73538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqliteDeleteColumnNames(db, pTable);
73317 73539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pTable->zName);
73318 73540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pTable->zColAff);
73319 73541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDelete(db, pTable->pSelect);
73320 73542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_CHECK
73321 73543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprDelete(db, pTable->pCheck);
73322 73544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
73323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VtabClear(pTable);
73545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_VIRTUALTABLE
73546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VtabClear(db, pTable);
73547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
73324 73548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pTable);
73325 73549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73326 73550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73327 73551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73328 73552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Unlink the given table from the hash tables and the delete the
@@ -73337,11 +73561,11 @@
73337 73561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( zTabName );
73338 73562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( zTabName[0]==0 ); /* Zero-length table names are allowed */
73339 73563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pDb = &db->aDb[iDb];
73340 73564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3HashInsert(&pDb->pSchema->tblHash, zTabName,
73341 73565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Strlen30(zTabName),0);
73342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(p);
73566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, p);
73343 73567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags |= SQLITE_InternChanges;
73344 73568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73345 73569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73346 73570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
73347 73571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Given a token, return a string that consists of the text of that
@@ -73605,11 +73829,10 @@
73605 73829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73606 73830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->zName = zName;
73607 73831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->iPKey = -1;
73608 73832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->pSchema = db->aDb[iDb].pSchema;
73609 73833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->nRef = 1;
73610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTable->dbMem = 0;
73611 73834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->pNewTable==0 );
73612 73835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pNewTable = pTable;
73613 73836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
73614 73837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this is the magic sqlite_sequence table used by autoincrement,
73615 73838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then record a pointer to this table in the main database structure
@@ -74157,11 +74380,11 @@
74157 74380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSep = "\n ";
74158 74381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSep2 = ",\n ";
74159 74382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zEnd = "\n)";
74160 74383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74161 74384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n += 35 + 6*p->nCol;
74162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zStmt = sqlite3Malloc( n );
74385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zStmt = sqlite3DbMallocRaw(0, n);
74163 74386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zStmt==0 ){
74164 74387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
74165 74388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
74166 74389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74167 74390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(n, zStmt, "CREATE TABLE ");
@@ -74338,11 +74561,11 @@
74338 74561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->aCol==0 );
74339 74562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nCol = pSelTab->nCol;
74340 74563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aCol = pSelTab->aCol;
74341 74564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSelTab->nCol = 0;
74342 74565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSelTab->aCol = 0;
74343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pSelTab);
74566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, pSelTab);
74344 74567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74345 74568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74346 74569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74347 74570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Compute the complete text of the CREATE statement */
74348 74571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pSelect ){
@@ -74582,11 +74805,11 @@
74582 74805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTable->aCol==0 );
74583 74806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->nCol = pSelTab->nCol;
74584 74807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->aCol = pSelTab->aCol;
74585 74808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSelTab->nCol = 0;
74586 74809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSelTab->aCol = 0;
74587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pSelTab);
74810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, pSelTab);
74588 74811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->pSchema->flags |= DB_UnresetViews;
74589 74812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
74590 74813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTable->nCol = 0;
74591 74814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nErr++;
74592 74815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -74607,11 +74830,13 @@
74607 74830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
HashElem *i;
74608 74831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !DbHasProperty(db, idx, DB_UnresetViews) ) return;
74609 74832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=sqliteHashFirst(&db->aDb[idx].pSchema->tblHash); i;i=sqliteHashNext(i)){
74610 74833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = sqliteHashData(i);
74611 74834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTab->pSelect ){
74612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqliteResetColumnNames(pTab);
74835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqliteDeleteColumnNames(db, pTab);
74836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->aCol = 0;
74837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab->nCol = 0;
74613 74838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74614 74839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74615 74840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DbClearProperty(db, idx, DB_UnresetViews);
74616 74841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74617 74842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
@@ -75604,11 +75829,11 @@
75604 75829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75605 75830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
75606 75831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Clean up before exiting */
75607 75832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
exit_create_index:
75608 75833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIndex ){
75609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pIndex->zColAff);
75834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, pIndex->zColAff);
75610 75835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pIndex);
75611 75836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75612 75837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListDelete(db, pList);
75613 75838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SrcListDelete(db, pTblName);
75614 75839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, zName);
@@ -75983,11 +76208,11 @@
75983 76208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pItem=pList->a, i=0; i<pList->nSrc; i++, pItem++){
75984 76209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pItem->zDatabase);
75985 76210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pItem->zName);
75986 76211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pItem->zAlias);
75987 76212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pItem->zIndex);
75988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pItem->pTab);
76213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, pItem->pTab);
75989 76214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDelete(db, pItem->pSelect);
75990 76215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprDelete(db, pItem->pOn);
75991 76216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3IdListDelete(db, pItem->pUsing);
75992 76217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75993 76218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pList);
@@ -76914,12 +77139,11 @@
76914 77139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76915 77140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3HashClear(&temp2);
76916 77141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3HashInit(&pSchema->tblHash);
76917 77142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){
76918 77143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = sqliteHashData(pElem);
76919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pTab->dbMem==0 );
76920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pTab);
77144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(0, pTab);
76921 77145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76922 77146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3HashClear(&temp1);
76923 77147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3HashClear(&pSchema->fkeyHash);
76924 77148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSchema->pSeqTab = 0;
76925 77149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pSchema->flags &= ~DB_SchemaLoaded;
@@ -76932,11 +77156,11 @@
76932 77156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Schema *sqlite3SchemaGet(sqlite3 *db, Btree *pBt){
76933 77157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Schema * p;
76934 77158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt ){
76935 77159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = (Schema *)sqlite3BtreeSchema(pBt, sizeof(Schema), sqlite3SchemaFree);
76936 77160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
76937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = (Schema *)sqlite3MallocZero(sizeof(Schema));
77161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p = (Schema *)sqlite3DbMallocZero(0, sizeof(Schema));
76938 77162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76939 77163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !p ){
76940 77164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
76941 77165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if ( 0==p->file_format ){
76942 77166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3HashInit(&p->tblHash);
@@ -76973,11 +77197,11 @@
76973 77197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE Table *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc){
76974 77198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct SrcList_item *pItem = pSrc->a;
76975 77199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab;
76976 77200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pItem && pSrc->nSrc==1 );
76977 77201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab = sqlite3LocateTable(pParse, 0, pItem->zName, pItem->zDatabase);
76978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pItem->pTab);
77202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(pParse->db, pItem->pTab);
76979 77203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pItem->pTab = pTab;
76980 77204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTab ){
76981 77205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->nRef++;
76982 77206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76983 77207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3IndexedByLookup(pParse, pItem) ){
@@ -78370,12 +78594,14 @@
78370 78594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value **argv
78371 78595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
78372 78596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zOptName;
78373 78597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( argc==1 );
78374 78598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(argc);
78375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* IMP: R-xxxx This function is an SQL wrapper around the
78376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_compileoption_used() C interface. */
78599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* IMP: R-39564-36305 The sqlite_compileoption_used() SQL
78600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function is a wrapper around the sqlite3_compileoption_used() C/C++
78601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function.
78602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
78377 78603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (zOptName = (const char*)sqlite3_value_text(argv[0]))!=0 ){
78378 78604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_int(context, sqlite3_compileoption_used(zOptName));
78379 78605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78380 78606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78381 78607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
@@ -78392,12 +78618,13 @@
78392 78618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value **argv
78393 78619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
78394 78620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n;
78395 78621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( argc==1 );
78396 78622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(argc);
78397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* IMP: R-xxxx This function is an SQL wrapper around the
78398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_compileoption_get() C interface. */
78623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* IMP: R-04922-24076 The sqlite_compileoption_get() SQL function
78624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is a wrapper around the sqlite3_compileoption_get() C/C++ function.
78625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
78399 78626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = sqlite3_value_int(argv[0]);
78400 78627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_text(context, sqlite3_compileoption_get(n), -1, SQLITE_STATIC);
78401 78628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78402 78629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
78403 78630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -78592,18 +78819,18 @@
78592 78819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nOut += nRep - nPattern;
78593 78820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( nOut-1==db->aLimit[SQLITE_LIMIT_LENGTH] );
78594 78821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( nOut-2==db->aLimit[SQLITE_LIMIT_LENGTH] );
78595 78822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nOut-1>db->aLimit[SQLITE_LIMIT_LENGTH] ){
78596 78823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_error_toobig(context);
78597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, zOut);
78824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(zOut);
78598 78825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
78599 78826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78600 78827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOld = zOut;
78601 78828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOut = sqlite3_realloc(zOut, (int)nOut);
78602 78829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zOut==0 ){
78603 78830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_error_nomem(context);
78604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, zOld);
78831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(zOld);
78605 78832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
78606 78833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78607 78834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(&zOut[j], zRep, nRep);
78608 78835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j += nRep;
78609 78836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i += nPattern-1;
@@ -78960,11 +79187,11 @@
78960 79187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAccum = (StrAccum*)sqlite3_aggregate_context(context, sizeof(*pAccum));
78961 79188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
78962 79189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pAccum ){
78963 79190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = sqlite3_context_db_handle(context);
78964 79191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int firstTerm = pAccum->useMalloc==0;
78965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pAccum->useMalloc = 1;
79192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pAccum->useMalloc = 2;
78966 79193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAccum->mxAlloc = db->aLimit[SQLITE_LIMIT_LENGTH];
78967 79194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !firstTerm ){
78968 79195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc==2 ){
78969 79196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSep = (char*)sqlite3_value_text(argv[1]);
78970 79197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nSep = sqlite3_value_bytes(argv[1]);
@@ -79677,11 +79904,12 @@
79677 79904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Set the collation sequence and affinity of the LHS of each TK_EQ
79678 79905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expression to the parent key column defaults. */
79679 79906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIdx ){
79680 79907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Column *pCol;
79681 79908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iCol = pIdx->aiColumn[i];
79682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCol = &pIdx->pTable->aCol[iCol];
79909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pCol = &pTab->aCol[iCol];
79910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTab->iPKey==iCol ) iCol = -1;
79683 79911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLeft->iTable = regData+iCol+1;
79684 79912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLeft->affinity = pCol->affinity;
79685 79913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLeft->pColl = sqlite3LocateCollSeq(pParse, pCol->zColl);
79686 79914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
79687 79915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLeft->iTable = regData;
@@ -80238,15 +80466,11 @@
80238 80466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, 0, 0, 0, 0, 0
80239 80467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
80240 80468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWhere = 0;
80241 80469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80242 80470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* In the current implementation, pTab->dbMem==0 for all tables except
80244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** for temporary tables used to describe subqueries. And temporary
80245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** tables do not have foreign key constraints. Hence, pTab->dbMem
80246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** should always be 0 there.
80247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
80471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Disable lookaside memory allocation */
80248 80472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enableLookaside = db->lookaside.bEnabled;
80249 80473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->lookaside.bEnabled = 0;
80250 80474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80251 80475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTrigger = (Trigger *)sqlite3DbMallocZero(db,
80252 80476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sizeof(Trigger) + /* struct Trigger */
@@ -80332,41 +80556,43 @@
80332 80556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
80333 80557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Free all memory associated with foreign key definitions attached to
80334 80558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** table pTab. Remove the deleted foreign keys from the Schema.fkeyHash
80335 80559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** hash table.
80336 80560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
80337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3FkDelete(Table *pTab){
80561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3FkDelete(sqlite3 *db, Table *pTab){
80338 80562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FKey *pFKey; /* Iterator variable */
80339 80563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FKey *pNext; /* Copy of pFKey->pNextFrom */
80340 80564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80341 80565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pFKey=pTab->pFKey; pFKey; pFKey=pNext){
80342 80566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80343 80567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Remove the FK from the fkeyHash hash table. */
80344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFKey->pPrevTo ){
80345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFKey->pPrevTo->pNextTo = pFKey->pNextTo;
80346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
80347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *data = (void *)pFKey->pNextTo;
80348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *z = (data ? pFKey->pNextTo->zTo : pFKey->zTo);
80349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3HashInsert(&pTab->pSchema->fkeyHash, z, sqlite3Strlen30(z), data);
80350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
80351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFKey->pNextTo ){
80352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFKey->pNextTo->pPrevTo = pFKey->pPrevTo;
80353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
80354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
80355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Delete any triggers created to implement actions for this FK. */
80356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_TRIGGER
80357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fkTriggerDelete(pTab->dbMem, pFKey->apTrigger[0]);
80358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fkTriggerDelete(pTab->dbMem, pFKey->apTrigger[1]);
80359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
80568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !db || db->pnBytesFreed==0 ){
80569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFKey->pPrevTo ){
80570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pFKey->pPrevTo->pNextTo = pFKey->pNextTo;
80571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
80572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *p = (void *)pFKey->pNextTo;
80573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *z = (p ? pFKey->pNextTo->zTo : pFKey->zTo);
80574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3HashInsert(&pTab->pSchema->fkeyHash, z, sqlite3Strlen30(z), p);
80575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
80576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFKey->pNextTo ){
80577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pFKey->pNextTo->pPrevTo = pFKey->pPrevTo;
80578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
80579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
80360 80580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80361 80581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* EV: R-30323-21917 Each foreign key constraint in SQLite is
80362 80582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** classified as either immediate or deferred.
80363 80583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
80364 80584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFKey->isDeferred==0 || pFKey->isDeferred==1 );
80585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
80586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Delete any triggers created to implement actions for this FK. */
80587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_TRIGGER
80588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fkTriggerDelete(db, pFKey->apTrigger[0]);
80589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fkTriggerDelete(db, pFKey->apTrigger[1]);
80590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
80365 80591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80366 80592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNext = pFKey->pNextFrom;
80367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(pTab->dbMem, pFKey);
80593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, pFKey);
80368 80594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80369 80595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80370 80596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* ifndef SQLITE_OMIT_FOREIGN_KEY */
80371 80597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80372 80598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of fkey.c ************************************************/
@@ -80437,11 +80663,11 @@
80437 80663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** up.
80438 80664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
80439 80665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n;
80440 80666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = pIdx->pTable;
80441 80667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = sqlite3VdbeDb(v);
80442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pIdx->zColAff = (char *)sqlite3Malloc(pIdx->nColumn+2);
80668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pIdx->zColAff = (char *)sqlite3DbMallocRaw(0, pIdx->nColumn+2);
80443 80669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pIdx->zColAff ){
80444 80670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
80445 80671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
80446 80672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80447 80673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(n=0; n<pIdx->nColumn; n++){
@@ -80479,11 +80705,11 @@
80479 80705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pTab->zColAff ){
80480 80706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zColAff;
80481 80707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
80482 80708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = sqlite3VdbeDb(v);
80483 80709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zColAff = (char *)sqlite3Malloc(pTab->nCol+1);
80710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zColAff = (char *)sqlite3DbMallocRaw(0, pTab->nCol+1);
80485 80711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !zColAff ){
80486 80712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
80487 80713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
80488 80714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
80489 80715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -81590,10 +81816,11 @@
81590 81816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprIfTrue(pParse, pTab->pCheck, allOk, SQLITE_JUMPIFNULL);
81591 81817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onError = overrideError!=OE_Default ? overrideError : OE_Abort;
81592 81818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( onError==OE_Ignore ){
81593 81819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Goto, 0, ignoreDest);
81594 81820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
81821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( onError==OE_Replace ) onError = OE_Abort; /* IMP: R-15569-63625 */
81595 81822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3HaltConstraint(pParse, onError, 0, 0);
81596 81823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81597 81824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeResolveLabel(v, allOk);
81598 81825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81599 81826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* !defined(SQLITE_OMIT_CHECK) */
@@ -83104,32 +83331,28 @@
83104 83331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83105 83332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
83106 83333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
handle = sqlite3OsDlOpen(pVfs, zFile);
83107 83334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( handle==0 ){
83108 83335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pzErrMsg ){
83109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zErrmsg = sqlite3StackAllocZero(db, nMsg);
83336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pzErrMsg = zErrmsg = sqlite3_malloc(nMsg);
83110 83337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zErrmsg ){
83111 83338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(nMsg, zErrmsg,
83112 83339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"unable to open shared library [%s]", zFile);
83113 83340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsDlError(pVfs, nMsg-1, zErrmsg);
83114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pzErrMsg = sqlite3DbStrDup(0, zErrmsg);
83115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3StackFree(db, zErrmsg);
83116 83341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83117 83342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83118 83343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_ERROR;
83119 83344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83120 83345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
xInit = (int(*)(sqlite3*,char**,const sqlite3_api_routines*))
83121 83346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsDlSym(pVfs, handle, zProc);
83122 83347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( xInit==0 ){
83123 83348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pzErrMsg ){
83124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zErrmsg = sqlite3StackAllocZero(db, nMsg);
83349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pzErrMsg = zErrmsg = sqlite3_malloc(nMsg);
83125 83350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zErrmsg ){
83126 83351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(nMsg, zErrmsg,
83127 83352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"no entry point [%s] in shared library [%s]", zProc,zFile);
83128 83353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsDlError(pVfs, nMsg-1, zErrmsg);
83129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pzErrMsg = sqlite3DbStrDup(0, zErrmsg);
83130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3StackFree(db, zErrmsg);
83131 83354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83132 83355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsDlClose(pVfs, handle);
83133 83356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
83134 83357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_ERROR;
83135 83358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( xInit(db, &zErrmsg, &sqlite3Apis) ){
@@ -84104,11 +84327,11 @@
84104 84327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
84105 84328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
invalidateTempStorage(pParse);
84106 84329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84107 84330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(sqlite3_temp_directory);
84108 84331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zRight[0] ){
84109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_temp_directory = sqlite3DbStrDup(0, zRight);
84332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_temp_directory = sqlite3_mprintf("%s", zRight);
84110 84333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
84111 84334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_temp_directory = 0;
84112 84335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84113 84336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_WSD */
84114 84337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -85525,11 +85748,10 @@
85525 85748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85526 85749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Delete any TriggerPrg structures allocated while parsing this statement. */
85527 85750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( pParse->pTriggerPrg ){
85528 85751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TriggerPrg *pT = pParse->pTriggerPrg;
85529 85752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pTriggerPrg = pT->pNext;
85530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeProgramDelete(db, pT->pProgram, 0);
85531 85753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pT);
85532 85754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85533 85755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85534 85756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
end_prepare:
85535 85757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -87016,20 +87238,19 @@
87016 87238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab = sqlite3DbMallocZero(db, sizeof(Table) );
87017 87239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTab==0 ){
87018 87240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
87019 87241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87020 87242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The sqlite3ResultSetOfSelect() is only used n contexts where lookaside
87021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is disabled, so we might as well hard-code pTab->dbMem to NULL. */
87243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is disabled */
87022 87244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db->lookaside.bEnabled==0 );
87023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->dbMem = 0;
87024 87245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->nRef = 1;
87025 87246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->zName = 0;
87026 87247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectColumnsFromExprList(pParse, pSelect->pEList, &pTab->nCol, &pTab->aCol);
87027 87248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectAddColumnTypeAndCollation(pParse, pTab->nCol, pTab->aCol, pSelect);
87028 87249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->iPKey = -1;
87029 87250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed ){
87030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pTab);
87251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, pTab);
87031 87252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
87032 87253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87033 87254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return pTab;
87034 87255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87035 87256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -88814,11 +89035,10 @@
88814 89035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pSel!=0 );
88815 89036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFrom->pTab==0 );
88816 89037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3WalkSelect(pWalker, pSel);
88817 89038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFrom->pTab = pTab = sqlite3DbMallocZero(db, sizeof(Table));
88818 89039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTab==0 ) return WRC_Abort;
88819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTab->dbMem = db->lookaside.bEnabled ? db : 0;
88820 89040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->nRef = 1;
88821 89041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->zName = sqlite3MPrintf(db, "sqlite_subquery_%p_", (void*)pTab);
88822 89042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( pSel->pPrior ){ pSel = pSel->pPrior; }
88823 89043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectColumnsFromExprList(pParse, pSel->pEList, &pTab->nCol, &pTab->aCol);
88824 89044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab->iPKey = -1;
@@ -91028,10 +91248,11 @@
91028 91248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SubProgram *pProgram = 0; /* Sub-vdbe for trigger program */
91029 91249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Parse *pSubParse; /* Parse context for sub-vdbe */
91030 91250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iEndTrigger = 0; /* Label to jump to if WHEN is false */
91031 91251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91032 91252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) );
91253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pTop->pVdbe );
91033 91254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91034 91255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Allocate the TriggerPrg and SubProgram objects. To ensure that they
91035 91256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are freed if an error occurs, link them into the Parse.pTriggerPrg
91036 91257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** list of the top-level Parse object sooner rather than later. */
91037 91258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg = sqlite3DbMallocZero(db, sizeof(TriggerPrg));
@@ -91038,11 +91259,11 @@
91038 91259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pPrg ) return 0;
91039 91260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg->pNext = pTop->pTriggerPrg;
91040 91261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTop->pTriggerPrg = pPrg;
91041 91262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg->pProgram = pProgram = sqlite3DbMallocZero(db, sizeof(SubProgram));
91042 91263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pProgram ) return 0;
91043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pProgram->nRef = 1;
91264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeLinkSubProgram(pTop->pVdbe, pProgram);
91044 91265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg->pTrigger = pTrigger;
91045 91266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg->orconf = orconf;
91046 91267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg->aColmask[0] = 0xffffffff;
91047 91268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrg->aColmask[1] = 0xffffffff;
91048 91269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -91172,22 +91393,23 @@
91172 91393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pPrg || pParse->nErr || pParse->db->mallocFailed );
91173 91394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91174 91395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Code the OP_Program opcode in the parent VDBE. P4 of the OP_Program
91175 91396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is a pointer to the sub-vdbe containing the trigger program. */
91176 91397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPrg ){
91398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers));
91399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
91177 91400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_Program, reg, ignoreJump, ++pParse->nMem);
91178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pPrg->pProgram->nRef++;
91179 91401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP4(v, -1, (const char *)pPrg->pProgram, P4_SUBPROGRAM);
91180 91402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment(
91181 91403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(v, "Call: %s.%s", (p->zName?p->zName:"fkey"), onErrorText(orconf)));
91182 91404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91183 91405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Set the P5 operand of the OP_Program instruction to non-zero if
91184 91406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** recursive invocation of this trigger program is disallowed. Recursive
91185 91407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** invocation is disallowed if (a) the sub-program is really a trigger,
91186 91408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** not a foreign key action, and (b) the flag to enable recursive triggers
91187 91409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is clear. */
91188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeChangeP5(v, (u8)(p->zName && !(pParse->db->flags&SQLITE_RecTriggers)));
91410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeChangeP5(v, (u8)bRecursive);
91189 91411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91190 91412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91191 91413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91192 91414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
91193 91415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This is called to code the required FOR EACH ROW triggers for an operation
@@ -91332,11 +91554,11 @@
91332 91554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
91333 91555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** May you do good and not evil.
91334 91556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** May you find forgiveness for yourself and forgive others.
91335 91557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** May you share freely, never taking more than you give.
91336 91558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
91337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite*************************************************************************
91559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *************************************************************************
91338 91560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This file contains C code routines that are called by the parser
91339 91561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to handle UPDATE statements.
91340 91562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
91341 91563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91342 91564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -92551,18 +92773,18 @@
92551 92773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** connection db is decremented immediately (which may lead to the
92552 92774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** structure being xDisconnected and free). Any other VTable structures
92553 92775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the list are moved to the sqlite3.pDisconnect list of the associated
92554 92776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database connection.
92555 92777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
92556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VtabClear(Table *p){
92557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- vtabDisconnectAll(0, p);
92778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VtabClear(sqlite3 *db, Table *p){
92779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !db || db->pnBytesFreed==0 ) vtabDisconnectAll(0, p);
92558 92780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->azModuleArg ){
92559 92781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
92560 92782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<p->nModuleArg; i++){
92561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(p->dbMem, p->azModuleArg[i]);
92783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->azModuleArg[i]);
92562 92784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(p->dbMem, p->azModuleArg);
92785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(db, p->azModuleArg);
92564 92786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92565 92787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92566 92788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
92567 92789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
92568 92790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Add a new module argument to pTable->azModuleArg[].
@@ -92723,11 +92945,10 @@
92723 92945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOld ){
92724 92946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 1;
92725 92947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTab==pOld ); /* Malloc must have failed inside HashInsert() */
92726 92948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
92727 92949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pSchema->db = pParse->db;
92729 92950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pNewTable = 0;
92730 92951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92731 92952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92732 92953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
92733 92954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -92797,11 +93018,11 @@
92797 93018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK!=rc ){
92798 93019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zErr==0 ){
92799 93020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pzErr = sqlite3MPrintf(db, "vtable constructor failed: %s", zModuleName);
92800 93021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else {
92801 93022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pzErr = sqlite3MPrintf(db, "%s", zErr);
92802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, zErr);
93023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(zErr);
92803 93024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
92804 93025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pVTable);
92805 93026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( ALWAYS(pVTable->pVtab) ){
92806 93027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Justification of ALWAYS(): A correct vtab constructor must allocate
92807 93028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the sqlite3_vtab object if successful. */
@@ -93004,19 +93225,19 @@
93004 93225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pNewTable->aCol = 0;
93005 93226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93006 93227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pVTab = 0;
93007 93228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
93008 93229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Error(db, SQLITE_ERROR, zErr);
93009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, zErr);
93230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(zErr);
93010 93231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_ERROR;
93011 93232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93012 93233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->declareVtab = 0;
93013 93234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93014 93235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pParse->pVdbe ){
93015 93236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeFinalize(pParse->pVdbe);
93016 93237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pParse->pNewTable);
93238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, pParse->pNewTable);
93018 93239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StackFree(db, pParse);
93019 93240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93020 93241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93021 93242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (rc&0xff)==rc );
93022 93243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3ApiExit(db, rc);
@@ -93099,12 +93320,12 @@
93099 93320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int (*x)(sqlite3_vtab *);
93100 93321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_vtab *pVtab = aVTrans[i]->pVtab;
93101 93322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pVtab && (x = pVtab->pModule->xSync)!=0 ){
93102 93323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = x(pVtab);
93103 93324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, *pzErrmsg);
93104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pzErrmsg = pVtab->zErrMsg;
93105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pVtab->zErrMsg = 0;
93325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pzErrmsg = sqlite3DbStrDup(db, pVtab->zErrMsg);
93326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(pVtab->zErrMsg);
93106 93327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93107 93328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93108 93329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->aVTrans = aVTrans;
93109 93330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
93110 93331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -93600,10 +93821,11 @@
93600 93821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the pWC->a[] array.
93601 93822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
93602 93823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int whereClauseInsert(WhereClause *pWC, Expr *p, u8 wtFlags){
93603 93824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pTerm;
93604 93825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx;
93826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( wtFlags & TERM_VIRTUAL ); /* EV: R-00211-15100 */
93605 93827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWC->nTerm>=pWC->nSlot ){
93606 93828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereTerm *pOld = pWC->a;
93607 93829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pWC->pParse->db;
93608 93830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWC->a = sqlite3DbMallocRaw(db, sizeof(pWC->a[0])*pWC->nSlot*2 );
93609 93831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWC->a==0 ){
@@ -93745,10 +93967,17 @@
93745 93967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93746 93968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
93747 93969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return TRUE if the given operator is one of the operators that is
93748 93970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** allowed for an indexable WHERE clause term. The allowed operators are
93749 93971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "=", "<", ">", "<=", ">=", and "IN".
93972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
93973 { 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
93974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of one of the following forms: column = expression column > expression
93975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** column >= expression column < expression column <= expression
93976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** expression = column expression > column expression >= column
93977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** expression < column expression <= column column IN
93978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (expression-list) column IN (subquery) column IS NULL
93750 93979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
93751 93980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int allowedOp(int op){
93752 93981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_GT>TK_EQ && TK_GT<TK_GE );
93753 93982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LT>TK_EQ && TK_LT<TK_GE );
93754 93983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LE>TK_EQ && TK_LE<TK_GE );
@@ -93908,11 +94137,10 @@
93908 94137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pRight, *pLeft; /* Right and left size of LIKE operator */
93909 94138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList; /* List of operands to the LIKE operator */
93910 94139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int c; /* One character in z[] */
93911 94140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cnt; /* Number of non-wildcard prefix characters */
93912 94141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char wc[3]; /* Wildcard characters */
93913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CollSeq *pColl; /* Collating sequence for LHS */
93914 94142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pParse->db; /* Database connection */
93915 94143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value *pVal = 0;
93916 94144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int op; /* Opcode of pRight */
93917 94145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93918 94146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3IsLikeFunction(db, pExpr, pnoCase, wc) ){
@@ -93927,23 +94155,10 @@
93927 94155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* IMP: R-02065-49465 The left-hand side of the LIKE or GLOB operator must
93928 94156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** be the name of an indexed column with TEXT affinity. */
93929 94157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
93930 94158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93931 94159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pLeft->iColumn!=(-1) ); /* Because IPK never has AFF_TEXT */
93932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pColl = sqlite3ExprCollSeq(pParse, pLeft);
93933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pColl==0 ) return 0; /* Happens when LHS has an undefined collation */
93934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (pColl->type!=SQLITE_COLL_BINARY || *pnoCase) &&
93935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (pColl->type!=SQLITE_COLL_NOCASE || !*pnoCase) ){
93936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* IMP: R-09003-32046 For the GLOB operator, the column must use the
93937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** default BINARY collating sequence.
93938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** IMP: R-41408-28306 For the LIKE operator, if case_sensitive_like mode
93939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is enabled then the column must use the default BINARY collating
93940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sequence, or if case_sensitive_like mode is disabled then the column
93941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** must use the built-in NOCASE collating sequence.
93942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
93943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
93944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
93945 94160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
93946 94161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRight = pList->a[0].pExpr;
93947 94162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
op = pRight->op;
93948 94163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( op==TK_REGISTER ){
93949 94164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
op = pRight->op2;
@@ -93962,13 +94177,13 @@
93962 94177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z ){
93963 94178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cnt = 0;
93964 94179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
93965 94180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cnt++;
93966 94181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( cnt!=0 && c!=0 && 255!=(u8)z[cnt-1] ){
94182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( cnt!=0 && 255!=(u8)z[cnt-1] ){
93968 94183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pPrefix;
93969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pisComplete = z[cnt]==wc[0] && z[cnt+1]==0;
94184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pisComplete = c==wc[0] && z[cnt+1]==0;
93970 94185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPrefix = sqlite3Expr(db, TK_STRING, z);
93971 94186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPrefix ) pPrefix->u.zToken[cnt] = 0;
93972 94187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*ppPrefix = pPrefix;
93973 94188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( op==TK_VARIABLE ){
93974 94189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v = pParse->pVdbe;
@@ -94303,10 +94518,12 @@
94303 94518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94304 94519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94305 94520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* At this point, okToChngToIN is true if original pTerm satisfies
94306 94521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** case 1. In that case, construct a new virtual term that is
94307 94522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pTerm converted into an IN operator.
94523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
94524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** EV: R-00211-15100
94308 94525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94309 94526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( okToChngToIN ){
94310 94527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pDup; /* A transient duplicate expression */
94311 94528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pList = 0; /* The RHS of the IN operator */
94312 94529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pLeft = 0; /* The LHS of the IN operator */
@@ -94519,10 +94736,11 @@
94519 94736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pStr2; /* Copy of pStr1 - RHS of LIKE/GLOB operator */
94520 94737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pNewExpr1;
94521 94738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pNewExpr2;
94522 94739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idxNew1;
94523 94740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idxNew2;
94741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CollSeq *pColl; /* Collating sequence to use */
94524 94742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94525 94743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLeft = pExpr->x.pList->a[1].pExpr;
94526 94744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStr2 = sqlite3ExprDup(db, pStr1, 0);
94527 94745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !db->mallocFailed ){
94528 94746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 c, *pC; /* Last character before the first wildcard */
@@ -94533,21 +94751,27 @@
94533 94751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** wildcard. But if we increment '@', that will push it into the
94534 94752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** alphabetic range where case conversions will mess up the
94535 94753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** inequality. To avoid this, make sure to also run the full
94536 94754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** LIKE on all candidate expressions by clearing the isComplete flag
94537 94755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
94538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( c=='A'-1 ) isComplete = 0;
94756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( c=='A'-1 ) isComplete = 0; /* EV: R-64339-08207 */
94757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
94539 94758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94540 94759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
c = sqlite3UpperToLower[c];
94541 94760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94542 94761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pC = c + 1;
94543 94762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
94544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNewExpr1 = sqlite3PExpr(pParse, TK_GE, sqlite3ExprDup(db,pLeft,0),pStr1,0);
94763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pColl = sqlite3FindCollSeq(db, SQLITE_UTF8, noCase ? "NOCASE" : "BINARY",0);
94764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
94765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetColl(sqlite3ExprDup(db,pLeft,0), pColl),
94766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStr1, 0);
94545 94767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idxNew1 = whereClauseInsert(pWC, pNewExpr1, TERM_VIRTUAL|TERM_DYNAMIC);
94546 94768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( idxNew1==0 );
94547 94769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
exprAnalyze(pSrc, pWC, idxNew1);
94548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNewExpr2 = sqlite3PExpr(pParse, TK_LT, sqlite3ExprDup(db,pLeft,0),pStr2,0);
94770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNewExpr2 = sqlite3PExpr(pParse, TK_LT,
94771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetColl(sqlite3ExprDup(db,pLeft,0), pColl),
94772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStr2, 0);
94549 94773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
idxNew2 = whereClauseInsert(pWC, pNewExpr2, TERM_VIRTUAL|TERM_DYNAMIC);
94550 94774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( idxNew2==0 );
94551 94775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
exprAnalyze(pSrc, pWC, idxNew2);
94552 94776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm = &pWC->a[idxTerm];
94553 94777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( isComplete ){
@@ -95295,11 +95519,11 @@
95295 95519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "%s", sqlite3ErrStr(rc));
95296 95520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
95297 95521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse, "%s", pVtab->zErrMsg);
95298 95522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
95299 95523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
95300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(pParse->db, pVtab->zErrMsg);
95524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(pVtab->zErrMsg);
95301 95525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pVtab->zErrMsg = 0;
95302 95526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
95303 95527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<p->nConstraint; i++){
95304 95528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !p->aConstraint[i].usable && p->aConstraintUsage[i].argvIndex>0 ){
95305 95529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorMsg(pParse,
@@ -96159,10 +96383,13 @@
96159 96383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (3) SELECT * FROM t1, t2 WHERE t1.a=t2.x AND t2.z='ok'
96160 96384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
96161 96385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The t2.z='ok' is disabled in the in (2) because it originates
96162 96386 { 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
96163 96387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of a LEFT OUTER JOIN. In (1), the term is not disabled.
96388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
96389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** IMPLEMENTATION-OF: R-24597-58655 No tests are done for terms that are
96390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** completely satisfied by indices.
96164 96391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
96165 96392 { 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
96166 96393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of the join. Disabling is an optimization. When terms are satisfied
96167 96394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** by indices, we disable them to prevent redundant tests in the inner
96168 96395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** loop. We would get the correct results if nothing were ever disabled,
@@ -96371,10 +96598,11 @@
96371 96598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm = findTerm(pWC, iCur, k, notReady, pLevel->plan.wsFlags, pIdx);
96372 96599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( NEVER(pTerm==0) ) break;
96373 96600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The following true for indices with redundant columns.
96374 96601 { 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; */
96375 96602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( (pTerm->wtFlags & TERM_CODED)!=0 );
96603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
96376 96604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r1 = codeEqualityTerm(pParse, pTerm, pLevel, regBase+j);
96377 96605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( r1!=regBase+j ){
96378 96606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nReg==1 ){
96379 96607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ReleaseTempReg(pParse, regBase);
96380 96608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regBase = r1;
@@ -96514,10 +96742,11 @@
96514 96742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTerm = findTerm(pWC, iCur, -1, notReady, WO_EQ|WO_IN, 0);
96515 96743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTerm!=0 );
96516 96744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTerm->pExpr!=0 );
96517 96745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTerm->leftCursor==iCur );
96518 96746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( omitTable==0 );
96747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
96519 96748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, iReleaseReg);
96520 96749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addrNxt = pLevel->addrNxt;
96521 96750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_MustBeInt, iRowidReg, addrNxt);
96522 96751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_NotExists, iCur, addrNxt, iRowidReg);
96523 96752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCacheStore(pParse, iCur, -1, iRowidReg);
@@ -96554,10 +96783,11 @@
96554 96783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
96555 96784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LE==TK_GT+1 ); /* Make sure the ordering.. */
96556 96785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_LT==TK_GT+2 ); /* ... of the TK_xx values... */
96557 96786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( TK_GE==TK_GT+3 ); /* ... is correcct. */
96558 96787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
96788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pStart->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
96559 96789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pX = pStart->pExpr;
96560 96790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pX!=0 );
96561 96791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pStart->leftCursor==iCur );
96562 96792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r1 = sqlite3ExprCodeTemp(pParse, pX->pRight, &rTemp);
96563 96793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, aMoveOp[pX->op-TK_GT], iCur, addrBrk, r1);
@@ -96571,10 +96801,11 @@
96571 96801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pEnd ){
96572 96802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pX;
96573 96803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pX = pEnd->pExpr;
96574 96804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pX!=0 );
96575 96805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pEnd->leftCursor==iCur );
96806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pEnd->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
96576 96807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memEndValue = ++pParse->nMem;
96577 96808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCode(pParse, pX->pRight, memEndValue);
96578 96809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pX->op==TK_LT || pX->op==TK_GT ){
96579 96810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testOp = bRev ? OP_Le : OP_Ge;
96580 96811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -96738,10 +96969,11 @@
96738 96969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ExprNeedsNoAffinityChange(pRight, zStartAff[nEq]) ){
96739 96970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zStartAff[nEq] = SQLITE_AFF_NONE;
96740 96971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96741 96972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96742 96973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nConstraint++;
96974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pRangeStart->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
96743 96975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( isMinQuery ){
96744 96976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Null, 0, regBase+nEq);
96745 96977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nConstraint++;
96746 96978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
startEq = 0;
96747 96979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
start_constraints = 1;
@@ -96777,10 +97009,11 @@
96777 97009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zEndAff[nEq] = SQLITE_AFF_NONE;
96778 97010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96779 97011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96780 97012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
codeApplyAffinity(pParse, regBase, nEq+1, zEndAff);
96781 97013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nConstraint++;
97014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pRangeEnd->wtFlags & TERM_VIRTUAL ); /* EV: R-30575-11662 */
96782 97015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96783 97016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(pParse->db, zStartAff);
96784 97017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(pParse->db, zEndAff);
96785 97018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
96786 97019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Top of the loop body */
@@ -96983,15 +97216,19 @@
96983 97216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
96984 97217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
notReady &= ~getMask(pWC->pMaskSet, iCur);
96985 97218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
96986 97219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Insert code to test every subexpression that can be completely
96987 97220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** computed using the current set of tables.
97221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
97222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** IMPLEMENTATION-OF: R-49525-50935 Terms that cannot be satisfied through
97223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the use of indices become tests that are evaluated against each row of
97224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the relevant input tables.
96988 97225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
96989 97226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
k = 0;
96990 97227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){
96991 97228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pE;
96992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pTerm->wtFlags & TERM_VIRTUAL );
97229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* IMP: R-30575-11662 */
96993 97230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pTerm->wtFlags & TERM_CODED );
96994 97231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
96995 97232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pTerm->prereqAll & notReady)!=0 ){
96996 97233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pWInfo->untestedTerms==0
96997 97234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (pWInfo->wctrlFlags & WHERE_ONETABLE_ONLY)!=0 );
@@ -97015,11 +97252,11 @@
97015 97252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);
97016 97253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin);
97017 97254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VdbeComment((v, "record LEFT JOIN hit"));
97018 97255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCacheClear(pParse);
97019 97256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pTerm=pWC->a, j=0; j<pWC->nTerm; j++, pTerm++){
97020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- testcase( pTerm->wtFlags & TERM_VIRTUAL );
97257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ testcase( pTerm->wtFlags & TERM_VIRTUAL ); /* IMP: R-30575-11662 */
97021 97258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pTerm->wtFlags & TERM_CODED );
97022 97259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
97023 97260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pTerm->prereqAll & notReady)!=0 ){
97024 97261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pWInfo->untestedTerms );
97025 97262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue;
@@ -97233,11 +97470,11 @@
97233 97470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** subexpression is separated by an AND operator.
97234 97471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
97235 97472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
initMaskSet(pMaskSet);
97236 97473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
whereClauseInit(pWC, pParse, pMaskSet);
97237 97474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprCodeConstants(pParse, pWhere);
97238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- whereSplit(pWC, pWhere, TK_AND);
97475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whereSplit(pWC, pWhere, TK_AND); /* IMP: R-15842-53296 */
97239 97476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97240 97477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Special case: a WHERE clause that is constant. Evaluate the
97241 97478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** expression and either jump over all of the code or fall thru.
97242 97479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
97243 97480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWhere && (nTabList==0 || sqlite3ExprIsConstantNotJoin(pWhere)) ){
@@ -97321,10 +97558,12 @@
97321 97558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *pIdx; /* Index for FROM table at pTabItem */
97322 97559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int j; /* For looping over FROM tables */
97323 97560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bestJ = -1; /* The value of j */
97324 97561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Bitmask m; /* Bitmask value for j or bestJ */
97325 97562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isOptimal; /* Iterator for optimal/non-optimal search */
97563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nUnconstrained; /* Number tables without INDEXED BY */
97564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bitmask notIndexed; /* Mask of tables that cannot use an index */
97326 97565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97327 97566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(&bestPlan, 0, sizeof(bestPlan));
97328 97567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bestPlan.rCost = SQLITE_BIG_DBL;
97329 97568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97330 97569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Loop through the remaining entries in the FROM clause to find the
@@ -97362,12 +97601,14 @@
97362 97601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** However, since the cost of a linear scan through table t2 is the same
97363 97602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** as the cost of a linear scan through table t1, a simple greedy
97364 97603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** algorithm may choose to use t2 for the outer loop, which is a much
97365 97604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** costlier approach.
97366 97605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
97606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nUnconstrained = 0;
97607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notIndexed = 0;
97367 97608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(isOptimal=(iFrom<nTabList-1); isOptimal>=0; isOptimal--){
97368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Bitmask mask; /* Mask of tables not yet ready */
97609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Bitmask mask; /* Mask of tables not yet ready */
97369 97610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(j=iFrom, pTabItem=&pTabList->a[j]; j<nTabList; j++, pTabItem++){
97370 97611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int doNotReorder; /* True if this table should not be reordered */
97371 97612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WhereCost sCost; /* Cost information from best[Virtual]Index() */
97372 97613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ExprList *pOrderBy; /* ORDER BY clause for index to optimize */
97373 97614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -97378,10 +97619,11 @@
97378 97619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( j==iFrom ) iFrom++;
97379 97620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue;
97380 97621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
97381 97622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask = (isOptimal ? m : notReady);
97382 97623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOrderBy = ((i==0 && ppOrderBy )?*ppOrderBy:0);
97624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTabItem->pIndex==0 ) nUnconstrained++;
97383 97625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97384 97626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pTabItem->pTab );
97385 97627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
97386 97628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( IsVirtual(pTabItem->pTab) ){
97387 97629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_index_info **pp = &pWInfo->a[j].pIdxInfo;
@@ -97391,13 +97633,47 @@
97391 97633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
97392 97634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bestBtreeIndex(pParse, pWC, pTabItem, mask, pOrderBy, &sCost);
97393 97635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
97394 97636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( isOptimal || (sCost.used¬Ready)==0 );
97395 97637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
97396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (sCost.used¬Ready)==0
97397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && (bestJ<0 || sCost.rCost<bestPlan.rCost
97398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (sCost.rCost<=bestPlan.rCost && sCost.nRow<bestPlan.nRow))
97638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If an INDEXED BY clause is present, then the plan must use that
97639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** index if it uses any index at all */
97640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pTabItem->pIndex==0
97641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (sCost.plan.wsFlags & WHERE_NOT_FULLSCAN)==0
97642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || sCost.plan.u.pIdx==pTabItem->pIndex );
97643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
97644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isOptimal && (sCost.plan.wsFlags & WHERE_NOT_FULLSCAN)==0 ){
97645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ notIndexed |= m;
97646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
97647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
97648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Conditions under which this table becomes the best so far:
97649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
97650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (1) The table must not depend on other tables that have not
97651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** yet run.
97652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
97653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (2) A full-table-scan plan cannot supercede another plan unless
97654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** it is an "optimal" plan as defined above.
97655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
97656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (3) All tables have an INDEXED BY clause or this table lacks an
97657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** INDEXED BY clause or this table uses the specific
97658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** index specified by its INDEXED BY clause. This rule ensures
97659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that a best-so-far is always selected even if an impossible
97660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** combination of INDEXED BY clauses are given. The error
97661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** will be detected and relayed back to the application later.
97662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The NEVER() comes about because rule (2) above prevents
97663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** An indexable full-table-scan from reaching rule (3).
97664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
97665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (4) The plan cost must be lower than prior plans or else the
97666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cost must be the same and the number of rows must be lower.
97667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
97668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (sCost.used¬Ready)==0 /* (1) */
97669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (bestJ<0 || (notIndexed&m)!=0 /* (2) */
97670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (sCost.plan.wsFlags & WHERE_NOT_FULLSCAN)!=0)
97671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (nUnconstrained==0 || pTabItem->pIndex==0 /* (3) */
97672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || NEVER((sCost.plan.wsFlags & WHERE_NOT_FULLSCAN)!=0))
97673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (bestJ<0 || sCost.rCost<bestPlan.rCost /* (4) */
97674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (sCost.rCost<=bestPlan.rCost && sCost.nRow<bestPlan.nRow))
97399 97675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
97400 97676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WHERETRACE(("... best so far with cost=%g and nRow=%g\n",
97401 97677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sCost.rCost, sCost.nRow));
97402 97678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bestPlan = sCost;
97403 97679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bestJ = j;
@@ -100408,11 +100684,11 @@
100408 100684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
100409 100685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100410 100686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
100411 100687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 195: /* expr ::= expr COLLATE ids */
100412 100688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
100413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yygotominor.yy118.pExpr = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy118.pExpr, &yymsp[0].minor.yy0);
100689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yygotominor.yy118.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy118.pExpr, &yymsp[0].minor.yy0);
100414 100690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yygotominor.yy118.zStart = yymsp[-2].minor.yy118.zStart;
100415 100691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
100416 100692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100417 100693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
100418 100694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 196: /* expr ::= CAST LP expr AS typetoken RP */
@@ -100664,11 +100940,11 @@
100664 100940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 248: /* idxlist ::= idxlist COMMA nm collate sortorder */
100665 100941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
100666 100942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *p = 0;
100667 100943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yymsp[-1].minor.yy0.n>0 ){
100668 100944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
100669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0);
100945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
100670 100946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100671 100947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, p);
100672 100948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListSetName(pParse,yygotominor.yy322,&yymsp[-2].minor.yy0,1);
100673 100949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListCheckLength(pParse, yygotominor.yy322, "index");
100674 100950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy4;
@@ -100677,11 +100953,11 @@
100677 100953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 249: /* idxlist ::= nm collate sortorder */
100678 100954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
100679 100955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *p = 0;
100680 100956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yymsp[-1].minor.yy0.n>0 ){
100681 100957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
100682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0);
100958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
100683 100959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
100684 100960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yygotominor.yy322 = sqlite3ExprListAppend(pParse,0, p);
100685 100961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1);
100686 100962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ExprListCheckLength(pParse, yygotominor.yy322, "index");
100687 100963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy4;
@@ -101957,19 +102233,19 @@
101957 102233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->aTableLock = 0;
101958 102234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->nTableLock = 0;
101959 102235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
101960 102236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
101961 102237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
101962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(db, pParse->apVtabLock);
102238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(pParse->apVtabLock);
101963 102239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
101964 102240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
101965 102241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !IN_DECLARE_VTAB ){
101966 102242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the pParse->declareVtab flag is set, do not delete any table
101967 102243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** structure built up in pParse->pNewTable. The calling code (see vtab.c)
101968 102244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will take responsibility for freeing the Table structure.
101969 102245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
101970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(pParse->pNewTable);
102246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, pParse->pNewTable);
101971 102247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
101972 102248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
101973 102249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DeleteTrigger(db, pParse->pNewTrigger);
101974 102250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pParse->apVarExpr);
101975 102251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, pParse->aAlias);
@@ -101979,11 +102255,11 @@
101979 102255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3DbFree(db, p);
101980 102256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
101981 102257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( pParse->pZombieTab ){
101982 102258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *p = pParse->pZombieTab;
101983 102259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->pZombieTab = p->pNextZombie;
101984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DeleteTable(p);
102260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DeleteTable(db, p);
101985 102261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
101986 102262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nErr>0 && pParse->rc==SQLITE_OK ){
101987 102263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->rc = SQLITE_ERROR;
101988 102264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
101989 102265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return nErr;
@@ -103671,20 +103947,11 @@
103671 103947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
103672 103948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_held(db->mutex) );
103673 103949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
103674 103950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<db->nDb && rc==SQLITE_OK; i++){
103675 103951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i==iDb || iDb==SQLITE_MAX_ATTACHED ){
103676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Btree *pBt = db->aDb[i].pBt;
103677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pBt ){
103678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3BtreeIsInReadTrans(pBt) ){
103679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_LOCKED;
103680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
103681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3BtreeEnter(pBt);
103682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3PagerCheckpoint(sqlite3BtreePager(pBt));
103683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3BtreeLeave(pBt);
103684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
103685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
103952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3BtreeCheckpoint(db->aDb[i].pBt);
103686 103953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
103687 103954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
103688 103955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
103689 103956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
103690 103957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -105129,11 +105396,11 @@
105129 105396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
105130 105397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BeginBenignMalloc();
105131 105398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( aArg==aDyn || (aDyn==0 && aArg==aStatic) );
105132 105399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nArg<=(int)ArraySize(aStatic) || aArg==aDyn );
105133 105400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (!aDyn && nArg==(int)ArraySize(aStatic))
105134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (aDyn && nArg==(int)(sqlite3DbMallocSize(db, aDyn)/sizeof(void*)))
105401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (aDyn && nArg==(int)(sqlite3MallocSize(aDyn)/sizeof(void*)))
105135 105402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
105136 105403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The aArg[] array needs to grow. */
105137 105404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void **pNew = (void **)sqlite3Malloc(nArg*sizeof(void *)*2);
105138 105405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pNew ){
105139 105406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pNew, aArg, nArg*sizeof(void *));
105140 105407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!