@@ -53,10 +53,16 @@
53 53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* These macros are provided to "stringify" the value of the define
54 54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for those options in which the value is meaningful. */
55 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CTIMEOPT_VAL_(opt) #opt
56 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
57 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Like CTIMEOPT_VAL, but especially for SQLITE_DEFAULT_LOOKASIDE. This
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** option requires a separate macro because legal values contain a single
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** comma. e.g. (-DSQLITE_DEFAULT_LOOKASIDE="100,100") */
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define CTIMEOPT_VAL2_(opt1,opt2) #opt1 "," #opt2
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define CTIMEOPT_VAL2(opt) CTIMEOPT_VAL2_(opt)
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
58 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
59 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An array of names of all compile-time options. This array should
60 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** be sorted A-Z.
61 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
62 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This array looks large, but in a typical installation actually uses
@@ -136,11 +142,11 @@
136 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
137 143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEFAULT_LOCKING_MODE
138 144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
139 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
140 146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEFAULT_LOOKASIDE
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOOKASIDE),
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL2(SQLITE_DEFAULT_LOOKASIDE),
142 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
143 149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_DEFAULT_MEMSTATUS
144 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"DEFAULT_MEMSTATUS",
145 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
146 152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEFAULT_MMAP_SIZE
@@ -1150,11 +1156,11 @@
1150 1156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1151 1157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
1152 1158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1153 1159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION "3.25.0"
1154 1160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION_NUMBER 3025000
1155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2018-07-18 19:09:07 a5087c5c87ad65f92e3bc96bbc84afb43faf10ab6b9ed3ba16304b5c60ad069f"
1161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2018-07-24 22:02:12 2bd593332da0aade467e7a4ee89e966aa6302f37540a2c5e23671f98a6cb599c"
1156 1162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1157 1163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1158 1164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
1159 1165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version sqlite3_sourceid
1160 1166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -1912,11 +1918,12 @@
1912 1918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** interrogated. The zDbName parameter is ignored.
1913 1919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1914 1920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li>[[SQLITE_FCNTL_PERSIST_WAL]]
1915 1921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The [SQLITE_FCNTL_PERSIST_WAL] opcode is used to set or query the
1916 1922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** persistent [WAL | Write Ahead Log] setting. By default, the auxiliary
1917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** write ahead log and shared memory files used for transaction control
1923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** write ahead log ([WAL file]) and shared memory
1924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** files used for transaction control
1918 1925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are automatically deleted when the latest connection to the database
1919 1926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** closes. Setting persistent WAL mode causes those files to persist after
1920 1927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** close. Persisting the files is useful when other processes that do not
1921 1928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** have write permission on the directory containing the database file want
1922 1929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to read the database file, as the WAL and shared memory files must exist
@@ -9985,11 +9992,10 @@
9985 9992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_system_errno(sqlite3*);
9986 9993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9987 9994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
9988 9995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Database Snapshot
9989 9996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: {snapshot} {sqlite3_snapshot}
9990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL
9991 9997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
9992 9998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of the snapshot object records the state of a [WAL mode]
9993 9999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database for some specific point in history.
9994 10000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
9995 10001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** In [WAL mode], multiple [database connections] that are open on the
@@ -10002,23 +10008,18 @@
10002 10008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10003 10009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The sqlite3_snapshot object records state information about an historical
10004 10010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** version of the database file so that it is possible to later open a new read
10005 10011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** transaction that sees that historical version of the database rather than
10006 10012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the most recent version.
10007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
10008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The constructor for this object is [sqlite3_snapshot_get()]. The
10009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** [sqlite3_snapshot_open()] method causes a fresh read transaction to refer
10010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to an historical snapshot (if possible). The destructor for
10011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_snapshot objects is [sqlite3_snapshot_free()].
10012 10013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10013 10014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct sqlite3_snapshot {
10014 10015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned char hidden[48];
10015 10016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} sqlite3_snapshot;
10016 10017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10017 10018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10018 10019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Record A Database Snapshot
10019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL
10020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** CONSTRUCTOR: sqlite3_snapshot
10020 10021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10021 10022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The [sqlite3_snapshot_get(D,S,P)] interface attempts to make a
10022 10023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** new [sqlite3_snapshot] object that records the current state of
10023 10024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** schema S in database connection D. ^On success, the
10024 10025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_snapshot_get(D,S,P)] interface writes a pointer to the newly
@@ -10053,21 +10054,21 @@
10053 10054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The [sqlite3_snapshot] object returned from a successful call to
10054 10055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_snapshot_get()] must be freed using [sqlite3_snapshot_free()]
10055 10056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to avoid a memory leak.
10056 10057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10057 10058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The [sqlite3_snapshot_get()] interface is only available when the
10058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_ENABLE_SNAPSHOT compile-time option is used.
10059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
10059 10060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10060 10061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get(
10061 10062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
10062 10063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSchema,
10063 10064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snapshot **ppSnapshot
10064 10065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
10065 10066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10066 10067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10067 10068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Start a read transaction on an historical snapshot
10068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL
10069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** METHOD: sqlite3_snapshot
10069 10070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10070 10071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The [sqlite3_snapshot_open(D,S,P)] interface starts a
10071 10072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** read transaction for schema S of
10072 10073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [database connection] D such that the read transaction
10073 10074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** refers to historical [snapshot] P, rather than the most
@@ -10091,34 +10092,34 @@
10091 10092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** after the most recent I/O on the database connection.)^
10092 10093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (Hint: Run "[PRAGMA application_id]" against a newly opened
10093 10094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database connection in order to make it ready to use snapshots.)
10094 10095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10095 10096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The [sqlite3_snapshot_open()] interface is only available when the
10096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_ENABLE_SNAPSHOT compile-time option is used.
10097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
10097 10098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10098 10099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_open(
10099 10100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
10100 10101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSchema,
10101 10102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snapshot *pSnapshot
10102 10103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
10103 10104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10104 10105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10105 10106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Destroy a snapshot
10106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL
10107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** DESTRUCTOR: sqlite3_snapshot
10107 10108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10108 10109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The [sqlite3_snapshot_free(P)] interface destroys [sqlite3_snapshot] P.
10109 10110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The application must eventually free every [sqlite3_snapshot] object
10110 10111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** using this routine to avoid a memory leak.
10111 10112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10112 10113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The [sqlite3_snapshot_free()] interface is only available when the
10113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_ENABLE_SNAPSHOT compile-time option is used.
10114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
10114 10115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10115 10116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API SQLITE_EXPERIMENTAL void sqlite3_snapshot_free(sqlite3_snapshot*);
10116 10117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10117 10118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10118 10119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Compare the ages of two snapshot handles.
10119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL
10120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** METHOD: sqlite3_snapshot
10120 10121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10121 10122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The sqlite3_snapshot_cmp(P1, P2) interface is used to compare the ages
10122 10123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of two valid snapshot handles.
10123 10124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10124 10125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the two snapshot handles are not associated with the same database
@@ -10133,35 +10134,41 @@
10133 10134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is undefined.
10134 10135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10135 10136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Otherwise, this API returns a negative value if P1 refers to an older
10136 10137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** snapshot than P2, zero if the two handles refer to the same database
10137 10138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** snapshot, and a positive value if P1 is a newer snapshot than P2.
10139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
10140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This interface is only available if SQLite is compiled with the
10141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [SQLITE_ENABLE_SNAPSHOT] option.
10138 10142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10139 10143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_cmp(
10140 10144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snapshot *p1,
10141 10145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snapshot *p2
10142 10146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
10143 10147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10144 10148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10145 10149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Recover snapshots from a wal file
10146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL
10147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
10148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If all connections disconnect from a database file but do not perform
10149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a checkpoint, the existing wal file is opened along with the database
10150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** file the next time the database is opened. At this point it is only
10151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** possible to successfully call sqlite3_snapshot_open() to open the most
10152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** recent snapshot of the database (the one at the head of the wal file),
10153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** even though the wal file may contain other valid snapshots for which
10154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** clients have sqlite3_snapshot handles.
10155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
10156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function attempts to scan the wal file associated with database zDb
10150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** METHOD: sqlite3_snapshot
10151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
10152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If a [WAL file] remains on disk after all database connections close
10153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (either through the use of the [SQLITE_FCNTL_PERSIST_WAL] [file control]
10154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or because the last process to have the database opened exited without
10155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** calling [sqlite3_close()]) and a new connection is subsequently opened
10156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** on that database and [WAL file], the [sqlite3_snapshot_open()] interface
10157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** will only be able to open the last transaction added to the WAL file
10158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** even though the WAL file contains other valid transactions.
10159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
10160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function attempts to scan the WAL file associated with database zDb
10157 10161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of database handle db and make all valid snapshots available to
10158 10162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_snapshot_open(). It is an error if there is already a read
10159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** transaction open on the database, or if the database is not a wal mode
10163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** transaction open on the database, or if the database is not a WAL mode
10160 10164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database.
10161 10165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
10162 10166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_OK is returned if successful, or an SQLite error code otherwise.
10167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
10168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This interface is only available if SQLite is compiled with the
10169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [SQLITE_ENABLE_SNAPSHOT] option.
10163 10170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
10164 10171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb);
10165 10172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
10166 10173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
10167 10174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Serialize a database
@@ -18937,11 +18944,11 @@
18937 18944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3Reindex(Parse*, Token*, Token*);
18938 18945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AlterFunctions(void);
18939 18946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3AlterRenameTable(Parse*, SrcList*, Token*);
18940 18947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *, int *);
18941 18948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3NestedParse(Parse*, const char*, ...);
18942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3*);
18949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3*, int);
18943 18950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3CodeSubselect(Parse*, Expr *, int, int);
18944 18951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SelectPrep(Parse*, Select*, NameContext*);
18945 18952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3SelectWrongNumTermsError(Parse *pParse, Select *p);
18946 18953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3MatchSpanName(const char*, const char*, const char*, const char*);
18947 18954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ResolveExprNames(NameContext*, Expr*);
@@ -20025,13 +20032,13 @@
20025 20032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
20026 20033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u16 nResColumn; /* Number of columns in one row of the result set */
20027 20034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 errorAction; /* Recovery action to do in case of an error */
20028 20035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 minWriteFileFormat; /* Minimum file format for writable database files */
20029 20036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u8 prepFlags; /* SQLITE_PREPARE_* flags */
20030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- bft expired:1; /* True if the VM needs to be recompiled */
20031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- bft doingRerun:1; /* True if rerunning after an auto-reprepare */
20037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bft expired:2; /* 1: recompile VM immediately 2: when convenient */
20032 20038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bft explain:2; /* True if EXPLAIN present on SQL command */
20039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bft doingRerun:1; /* True if rerunning after an auto-reprepare */
20033 20040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bft changeCntOn:1; /* True to update the change-counter */
20034 20041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bft runOnlyOnce:1; /* Automatically expire on reset */
20035 20042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bft usesStmtJournal:1; /* True if uses a statement journal */
20036 20043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bft readOnly:1; /* True for statements that do not write */
20037 20044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bft bIsReader:1; /* True for statements that read */
@@ -28640,11 +28647,11 @@
28640 28647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewLine(pView, "FUNCTION %Q", pExpr->u.zToken);
28641 28648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28642 28649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pFarg ){
28643 28650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewExprList(pView, pFarg, pWin!=0, 0);
28644 28651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITe_OMIT_WINDOWFUNC
28652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
28646 28653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pWin ){
28647 28654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TreeViewWindow(pView, pWin, 0);
28648 28655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
28649 28656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
28650 28657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -42948,10 +42955,13 @@
42948 42955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
42949 42956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){
42950 42957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
winFile *pFile = (winFile*)id; /* File handle object */
42951 42958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK; /* Return code for this function */
42952 42959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DWORD lastErrno;
42960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if SQLITE_MAX_MMAP_SIZE>0
42961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_int64 oldMmapSize;
42962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
42953 42963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
42954 42964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFile );
42955 42965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SimulateIOError(return SQLITE_IOERR_TRUNCATE);
42956 42966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("TRUNCATE pid=%lu, pFile=%p, file=%p, size=%lld, lock=%d\n",
42957 42967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
osGetCurrentProcessId(), pFile, pFile->h, nByte, pFile->locktype));
@@ -42962,10 +42972,19 @@
42962 42972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** size).
42963 42973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
42964 42974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pFile->szChunk>0 ){
42965 42975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nByte = ((nByte + pFile->szChunk - 1)/pFile->szChunk) * pFile->szChunk;
42966 42976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
42977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
42978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if SQLITE_MAX_MMAP_SIZE>0
42979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFile->pMapRegion ){
42980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ oldMmapSize = pFile->mmapSize;
42981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
42982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ oldMmapSize = 0;
42983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
42984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ winUnmapfile(pFile);
42985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
42967 42986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
42968 42987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* SetEndOfFile() returns non-zero when successful, or zero when it fails. */
42969 42988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( winSeekFile(pFile, nByte) ){
42970 42989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = winLogError(SQLITE_IOERR_TRUNCATE, pFile->lastErrno,
42971 42990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"winTruncate1", pFile->zPath);
@@ -42975,16 +42994,16 @@
42975 42994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = winLogError(SQLITE_IOERR_TRUNCATE, pFile->lastErrno,
42976 42995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"winTruncate2", pFile->zPath);
42977 42996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
42978 42997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
42979 42998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_MAX_MMAP_SIZE>0
42980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If the file was truncated to a size smaller than the currently
42981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** mapped region, reduce the effective mapping size as well. SQLite will
42982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** use read() and write() to access data beyond this point from now on.
42983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
42984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFile->pMapRegion && nByte<pFile->mmapSize ){
42985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->mmapSize = nByte;
42999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK && oldMmapSize>0 ){
43000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( oldMmapSize>nByte ){
43001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ winMapfile(pFile, -1);
43002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
43003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ winMapfile(pFile, oldMmapSize);
43004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
42986 43005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
42987 43006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
42988 43007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
42989 43008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("TRUNCATE pid=%lu, pFile=%p, file=%p, rc=%s\n",
42990 43009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
osGetCurrentProcessId(), pFile, pFile->h, sqlite3ErrName(rc)));
@@ -56461,22 +56480,22 @@
56461 56480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
56462 56481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (rc&0xFF)==SQLITE_IOERR && rc!=SQLITE_IOERR_NOMEM ){
56463 56482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3JournalCreate(pPager->jfd);
56464 56483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
56465 56484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsClose(pPager->jfd);
56485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ goto commit_phase_one_exit;
56466 56486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56467 56487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bBatch = 0;
56468 56488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
56469 56489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsClose(pPager->jfd);
56470 56490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56471 56491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56472 56492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_ENABLE_BATCH_ATOMIC_WRITE */
56473 56493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
56474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( bBatch==0 && rc==SQLITE_OK ){
56494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bBatch==0 ){
56475 56495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = pager_write_pagelist(pPager, pList);
56476 56496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
56478 56497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
56479 56498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc!=SQLITE_IOERR_BLOCKED );
56480 56499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto commit_phase_one_exit;
56481 56500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56482 56501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3PcacheCleanAll(pPager->pPCache);
@@ -65751,10 +65770,16 @@
65751 65770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
65752 65771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){
65753 65772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto trans_begun;
65754 65773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65755 65774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pBt->inTransaction==TRANS_WRITE || IfNotOmitAV(pBt->bDoTruncate)==0 );
65775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
65776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (p->db->flags & SQLITE_ResetDatabase)
65777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && sqlite3PagerIsreadonly(pBt->pPager)==0
65778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
65779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pBt->btsFlags &= ~BTS_READ_ONLY;
65780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
65756 65781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
65757 65782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Write transactions are not possible on a read-only database */
65758 65783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){
65759 65784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_READONLY;
65760 65785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto trans_begun;
@@ -71767,12 +71792,11 @@
71767 71792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** if this is the first reference to the page.
71768 71793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
71769 71794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Also check that the page number is in bounds.
71770 71795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
71771 71796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int checkRef(IntegrityCk *pCheck, Pgno iPage){
71772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iPage==0 ) return 1;
71773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iPage>pCheck->nPage ){
71797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iPage>pCheck->nPage || iPage==0 ){
71774 71798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
checkAppendMsg(pCheck, "invalid page number %d", iPage);
71775 71799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
71776 71800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71777 71801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( getPageReferenced(pCheck, iPage) ){
71778 71802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
checkAppendMsg(pCheck, "2nd reference to page %d", iPage);
@@ -71823,21 +71847,16 @@
71823 71847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iPage, /* Page number for first page in the list */
71824 71848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int N /* Expected number of pages in the list */
71825 71849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
71826 71850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
71827 71851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int expected = N;
71828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iFirst = iPage;
71829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( N-- > 0 && pCheck->mxErr ){
71852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nErrAtStart = pCheck->nErr;
71853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( iPage!=0 && pCheck->mxErr ){
71830 71854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DbPage *pOvflPage;
71831 71855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned char *pOvflData;
71832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iPage<1 ){
71833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkAppendMsg(pCheck,
71834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "%d of %d pages missing from overflow list starting at %d",
71835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- N+1, expected, iFirst);
71836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
71837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
71838 71856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( checkRef(pCheck, iPage) ) break;
71857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ N--;
71839 71858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){
71840 71859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
checkAppendMsg(pCheck, "failed to get page %d", iPage);
71841 71860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
71842 71861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71843 71862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOvflData = (unsigned char *)sqlite3PagerGetData(pOvflPage);
@@ -71877,14 +71896,16 @@
71877 71896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71878 71897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71879 71898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
71880 71899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iPage = get4byte(pOvflData);
71881 71900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3PagerUnref(pOvflPage);
71882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
71883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isFreeList && N<(iPage!=0) ){
71884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkAppendMsg(pCheck, "free-page count in header is too small");
71885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
71901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
71902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( N && nErrAtStart==pCheck->nErr ){
71903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ checkAppendMsg(pCheck,
71904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "%s is %d but should be %d",
71905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ isFreeList ? "size" : "overflow list length",
71906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ expected-N, expected);
71886 71907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71887 71908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71888 71909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_OMIT_INTEGRITY_CHECK */
71889 71910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71890 71911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -72274,10 +72295,28 @@
72274 72295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
get4byte(&pBt->pPage1->aData[36]));
72275 72296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sCheck.zPfx = 0;
72276 72297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72277 72298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Check all the tables.
72278 72299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
72300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_AUTOVACUUM
72301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pBt->autoVacuum ){
72302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int mx = 0;
72303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int mxInHdr;
72304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; (int)i<nRoot; i++) if( mx<aRoot[i] ) mx = aRoot[i];
72305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mxInHdr = get4byte(&pBt->pPage1->aData[52]);
72306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( mx!=mxInHdr ){
72307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ checkAppendMsg(&sCheck,
72308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "max rootpage (%d) disagrees with header (%d)",
72309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mx, mxInHdr
72310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
72311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
72312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( get4byte(&pBt->pPage1->aData[64])!=0 ){
72313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ checkAppendMsg(&sCheck,
72314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "incremental_vacuum enabled with a max rootpage of zero"
72315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
72316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
72317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
72279 72318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( pBt->db->flags & SQLITE_CellSizeCk );
72280 72319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->db->flags &= ~SQLITE_CellSizeCk;
72281 72320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; (int)i<nRoot && sCheck.mxErr; i++){
72282 72321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 notUsed;
72283 72322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aRoot[i]==0 ) continue;
@@ -79974,15 +80013,23 @@
79974 80013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An expired statement means that recompilation of the statement is
79975 80014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** recommend. Statements expire when things happen that make their
79976 80015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** programs obsolete. Removing user-defined functions or collating
79977 80016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sequences, or changing an authorization function are the types of
79978 80017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** things that make prepared statements obsolete.
80018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
80019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If iCode is 1, then expiration is advisory. The statement should
80020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** be reprepared before being restarted, but if it is already running
80021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** it is allowed to run to completion.
80022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
80023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Internally, this function just sets the Vdbe.expired flag on all
80024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** prepared statements. The flag is set to 1 for an immediate expiration
80025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and set to 2 for an advisory expiration.
79979 80026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
79980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *db){
80027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *db, int iCode){
79981 80028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *p;
79982 80029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(p = db->pVdbe; p; p=p->pNext){
79983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->expired = 1;
80030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->expired = iCode+1;
79984 80031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79985 80032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
79986 80033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
79987 80034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
79988 80035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the database associated with the Vdbe.
@@ -85520,11 +85567,11 @@
85520 85567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
85521 85568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto abort_due_to_error;
85522 85569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85523 85570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85524 85571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( isSchemaChange ){
85525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
85572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
85526 85573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ResetAllSchemasOfConnection(db);
85527 85574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mDbFlags |= DBFLAG_SchemaChange;
85528 85575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85529 85576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85530 85577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -85809,11 +85856,11 @@
85809 85856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pDb->pSchema->file_format = pOp->p3;
85810 85857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85811 85858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOp->p1==1 ){
85812 85859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Invalidate all prepared statements whenever the TEMP database
85813 85860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** schema is changed. Ticket #1644 */
85814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
85861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
85815 85862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->expired = 0;
85816 85863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85817 85864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ) goto abort_due_to_error;
85818 85865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
85819 85866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -85927,11 +85974,11 @@
85927 85974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->opcode==OP_OpenWrite || pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ );
85928 85975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->bIsReader );
85929 85976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pOp->opcode==OP_OpenRead || pOp->opcode==OP_ReopenIdx
85930 85977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| p->readOnly==0 );
85931 85978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->expired ){
85979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->expired==1 ){
85933 85980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_ABORT_ROLLBACK;
85934 85981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto abort_due_to_error;
85935 85982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85936 85983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
85937 85984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nField = 0;
@@ -89108,25 +89155,32 @@
89108 89155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89109 89156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
89110 89157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89111 89158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
89112 89159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
89113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opcode: Expire P1 * * * *
89160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Opcode: Expire P1 P2 * * *
89114 89161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
89115 89162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Cause precompiled statements to expire. When an expired statement
89116 89163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is executed using sqlite3_step() it will either automatically
89117 89164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** reprepare itself (if it was originally created using sqlite3_prepare_v2())
89118 89165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or it will fail with SQLITE_SCHEMA.
89119 89166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
89120 89167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If P1 is 0, then all SQL statements become expired. If P1 is non-zero,
89121 89168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then only the currently executing statement is expired.
89169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
89170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If P2 is 0, then SQL statements are expired immediately. If P2 is 1,
89171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** then running SQL statements are allowed to continue to run to completion.
89172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The P2==1 case occurs when a CREATE INDEX or similar schema change happens
89173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that might help the statement run faster but which does not affect the
89174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** correctness of operation.
89122 89175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
89123 89176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OP_Expire: {
89177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pOp->p2==0 || pOp->p2==1 );
89124 89178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pOp->p1 ){
89125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
89179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, pOp->p2);
89126 89180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
89127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->expired = 1;
89181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->expired = pOp->p2+1;
89128 89182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89129 89183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
89130 89184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89131 89185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
89132 89186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_SHARED_CACHE
@@ -103813,11 +103867,11 @@
103813 103867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pIdx->hasStat1 ) sqlite3DefaultRowEst(pIdx);
103814 103868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
103815 103869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
103816 103870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Load the statistics from the sqlite_stat4 table. */
103817 103871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT3_OR_STAT4
103818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK && OptimizationEnabled(db, SQLITE_Stat34) ){
103872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK ){
103819 103873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->lookaside.bDisable++;
103820 103874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = loadStat4(db, sInfo.zDatabase);
103821 103875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->lookaside.bDisable--;
103822 103876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
103823 103877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=sqliteHashFirst(&pSchema->idxHash); i; i=sqliteHashNext(i)){
@@ -104545,11 +104599,11 @@
104545 104599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
104546 104600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
104547 104601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(db->mutex);
104548 104602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->xAuth = (sqlite3_xauth)xAuth;
104549 104603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pAuthArg = pArg;
104550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
104604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
104551 104605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(db->mutex);
104552 104606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
104553 104607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
104554 104608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104555 104609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -108209,11 +108263,11 @@
108209 108263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pTblName ){
108210 108264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3RefillIndex(pParse, pIndex, iMem);
108211 108265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ChangeCookie(pParse, iDb);
108212 108266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddParseSchemaOp(v, iDb,
108213 108267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName));
108214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp0(v, OP_Expire);
108268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp2(v, OP_Expire, 0, 1);
108215 108269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108216 108270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108217 108271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, pIndex->tnum);
108218 108272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
108219 108273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -131894,11 +131948,11 @@
131894 131948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
131895 131949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3BtreeHoldsAllMutexes(db) );
131896 131950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_held(db->mutex) );
131897 131951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
131898 131952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
131899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
131953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
131900 131954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do {
131901 131955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VTable *pNext = p->pNext;
131902 131956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VtabUnlock(p);
131903 131957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = pNext;
131904 131958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}while( p );
@@ -138680,11 +138734,13 @@
138680 138734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138681 138735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_ENABLE_STAT3_OR_STAT4
138682 138736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Index *p = pLoop->u.btree.pIndex;
138683 138737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nEq = pLoop->u.btree.nEq;
138684 138738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nSample>0 && nEq<p->nSampleCol ){
138739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nSample>0 && nEq<p->nSampleCol
138740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && OptimizationEnabled(pParse->db, SQLITE_Stat34)
138741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
138686 138742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nEq==pBuilder->nRecValid ){
138687 138743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UnpackedRecord *pRec = pBuilder->pRec;
138688 138744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tRowcnt a[2];
138689 138745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nBtm = pLoop->u.btree.nBtm;
138690 138746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nTop = pLoop->u.btree.nTop;
@@ -139828,10 +139884,11 @@
139828 139884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tRowcnt nOut = 0;
139829 139885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nInMul==0
139830 139886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& pProbe->nSample
139831 139887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& pNew->u.btree.nEq<=pProbe->nSampleCol
139832 139888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& ((eOp & WO_IN)==0 || !ExprHasProperty(pTerm->pExpr, EP_xIsSelect))
139889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && OptimizationEnabled(db, SQLITE_Stat34)
139833 139890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
139834 139891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pExpr = pTerm->pExpr;
139835 139892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (eOp & (WO_EQ|WO_ISNULL|WO_IS))!=0 ){
139836 139893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( eOp & WO_EQ );
139837 139894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( eOp & WO_IS );
@@ -146916,11 +146973,11 @@
146916 146973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
146917 146974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
146918 146975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Find the appropriate action for a parser given the non-terminal
146919 146976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** look-ahead token iLookAhead.
146920 146977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
146921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int yy_find_reduce_action(
146978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static YYACTIONTYPE yy_find_reduce_action(
146922 146979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
YYACTIONTYPE stateno, /* Current state number */
146923 146980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
YYCODETYPE iLookAhead /* The look-ahead token */
146924 146981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
146925 146982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
146926 146983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef YYERRORSYMBOL
@@ -147421,11 +147478,11 @@
147421 147478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yyLookahead, /* Lookahead token, or YYNOCODE if none */
147422 147479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserTOKENTYPE yyLookaheadToken /* Value of the lookahead token */
147423 147480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserCTX_PDECL /* %extra_context */
147424 147481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
147425 147482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yygoto; /* The next state */
147426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int yyact; /* The next action */
147483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ YYACTIONTYPE yyact; /* The next action */
147427 147484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyStackEntry *yymsp; /* The top of the parser's stack */
147428 147485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yysize; /* Amount to pop the stack */
147429 147486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserARG_FETCH
147430 147487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void)yyLookahead;
147431 147488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void)yyLookaheadToken;
@@ -148980,16 +149037,16 @@
148980 149037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148981 149038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
148982 149039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148983 149040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
148984 149041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( yyact==yypParser->yytos->stateno );
148985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yyact = yy_find_shift_action(yymajor,yyact);
149042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
148986 149043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yyact >= YY_MIN_REDUCE ){
148987 149044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,
148988 149045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyminor sqlite3ParserCTX_PARAM);
148989 149046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( yyact <= YY_MAX_SHIFTREDUCE ){
148990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- yy_shift(yypParser,yyact,yymajor,yyminor);
149047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
148991 149048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef YYNOERRORRECOVERY
148992 149049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yypParser->yyerrcnt--;
148993 149050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
148994 149051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
148995 149052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( yyact==YY_ACCEPT_ACTION ){
@@ -151421,11 +151478,11 @@
151421 151478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags |= aFlagOp[i].mask;
151422 151479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( onoff==0 ){
151423 151480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->flags &= ~aFlagOp[i].mask;
151424 151481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
151425 151482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( oldFlags!=db->flags ){
151426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
151483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
151427 151484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
151428 151485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pRes ){
151429 151486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pRes = (db->flags & aFlagOp[i].mask)!=0;
151430 151487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
151431 151488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_OK;
@@ -151864,11 +151921,11 @@
151864 151921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
151865 151922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VtabRollback(db);
151866 151923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3EndBenignMalloc();
151867 151924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
151868 151925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( schemaChange ){
151869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
151926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
151870 151927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ResetAllSchemasOfConnection(db);
151871 151928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
151872 151929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeaveAll(db);
151873 151930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
151874 151931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Any deferred constraint violations have now been resolved. */
@@ -152319,11 +152376,11 @@
152319 152376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorWithMsg(db, SQLITE_BUSY,
152320 152377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"unable to delete/modify user-function due to active statements");
152321 152378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !db->mallocFailed );
152322 152379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_BUSY;
152323 152380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
152324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
152381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
152325 152382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
152326 152383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
152327 152384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
152328 152385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = sqlite3FindFunction(db, zFunctionName, nArg, (u8)enc, 1);
152329 152386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(p || db->mallocFailed);
@@ -153094,11 +153151,11 @@
153094 153151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->nVdbeActive ){
153095 153152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ErrorWithMsg(db, SQLITE_BUSY,
153096 153153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"unable to delete/modify collation sequence due to active statements");
153097 153154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_BUSY;
153098 153155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
153099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3ExpirePreparedStatements(db);
153156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3ExpirePreparedStatements(db, 0);
153100 153157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
153101 153158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If collation sequence pColl was created directly by a call to
153102 153159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_create_collation, and not generated by synthCollSeq(),
153103 153160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then any copies made by synthCollSeq() need to be invalidated.
153104 153161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Also, collation destructor - CollSeq.xDel() - function may need
@@ -194031,16 +194088,18 @@
194031 194088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_function(db, aFunc[i].zName, aFunc[i].nArg,
194032 194089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8 | SQLITE_DETERMINISTIC,
194033 194090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void*)&aFunc[i].flag,
194034 194091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aFunc[i].xFunc, 0, 0);
194035 194092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
194093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifndef SQLITE_OMIT_WINDOWFUNC
194036 194094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<sizeof(aAgg)/sizeof(aAgg[0]) && rc==SQLITE_OK; i++){
194037 194095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_window_function(db, aAgg[i].zName, aAgg[i].nArg,
194038 194096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
194039 194097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aAgg[i].xStep, aAgg[i].xFinal,
194040 194098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aAgg[i].xValue, jsonGroupInverse, 0);
194041 194099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
194100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
194042 194101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_VIRTUALTABLE
194043 194102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<sizeof(aMod)/sizeof(aMod[0]) && rc==SQLITE_OK; i++){
194044 194103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_module(db, aMod[i].zName, aMod[i].pModule, 0);
194045 194104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
194046 194105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -196237,11 +196296,11 @@
196237 196296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
196238 196297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
196239 196298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Find the appropriate action for a parser given the non-terminal
196240 196299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** look-ahead token iLookAhead.
196241 196300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
196242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int fts5yy_find_reduce_action(
196301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static fts5YYACTIONTYPE fts5yy_find_reduce_action(
196243 196302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5YYACTIONTYPE stateno, /* Current state number */
196244 196303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5YYCODETYPE iLookAhead /* The look-ahead token */
196245 196304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
196246 196305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
196247 196306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef fts5YYERRORSYMBOL
@@ -196405,11 +196464,11 @@
196405 196464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fts5yyLookahead, /* Lookahead token, or fts5YYNOCODE if none */
196406 196465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Fts5ParserFTS5TOKENTYPE fts5yyLookaheadToken /* Value of the lookahead token */
196407 196466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Fts5ParserCTX_PDECL /* %extra_context */
196408 196467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
196409 196468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fts5yygoto; /* The next state */
196410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int fts5yyact; /* The next action */
196469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fts5YYACTIONTYPE fts5yyact; /* The next action */
196411 196470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5yyStackEntry *fts5yymsp; /* The top of the parser's stack */
196412 196471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fts5yysize; /* Amount to pop the stack */
196413 196472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Fts5ParserARG_FETCH
196414 196473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void)fts5yyLookahead;
196415 196474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(void)fts5yyLookaheadToken;
@@ -196761,16 +196820,16 @@
196761 196820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
196762 196821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
196763 196822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
196764 196823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
196765 196824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( fts5yyact==fts5yypParser->fts5yytos->stateno );
196766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fts5yyact = fts5yy_find_shift_action(fts5yymajor,fts5yyact);
196825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fts5yyact = fts5yy_find_shift_action((fts5YYCODETYPE)fts5yymajor,fts5yyact);
196767 196826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fts5yyact >= fts5YY_MIN_REDUCE ){
196768 196827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5yyact = fts5yy_reduce(fts5yypParser,fts5yyact-fts5YY_MIN_REDUCE,fts5yymajor,
196769 196828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5yyminor sqlite3Fts5ParserCTX_PARAM);
196770 196829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){
196771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fts5yy_shift(fts5yypParser,fts5yyact,fts5yymajor,fts5yyminor);
196830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fts5yy_shift(fts5yypParser,fts5yyact,(fts5YYCODETYPE)fts5yymajor,fts5yyminor);
196772 196831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef fts5YYNOERRORRECOVERY
196773 196832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts5yypParser->fts5yyerrcnt--;
196774 196833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
196775 196834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
196776 196835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( fts5yyact==fts5YY_ACCEPT_ACTION ){
@@ -211513,11 +211572,11 @@
211513 211572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg, /* Number of args */
211514 211573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_value **apUnused /* Function arguments */
211515 211574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
211516 211575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nArg==0 );
211517 211576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAM2(nArg, apUnused);
211518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_result_text(pCtx, "fts5: 2018-07-18 19:09:07 a5087c5c87ad65f92e3bc96bbc84afb43faf10ab6b9ed3ba16304b5c60ad069f", -1, SQLITE_TRANSIENT);
211577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(pCtx, "fts5: 2018-07-24 22:02:12 2bd593332da0aade467e7a4ee89e966aa6302f37540a2c5e23671f98a6cb599c", -1, SQLITE_TRANSIENT);
211519 211578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
211520 211579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
211521 211580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts5Init(sqlite3 *db){
211522 211581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const sqlite3_module fts5Mod = {
211523 211582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* iVersion */ 2,
@@ -214799,11 +214858,11 @@
214799 214858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTbl = 0;
214800 214859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( i<128 ){
214801 214860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bToken = aArray[ aFts5UnicodeData[iTbl] & 0x1F ];
214802 214861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n = (aFts5UnicodeData[iTbl] >> 5) + i;
214803 214862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(; i<128 && i<n; i++){
214804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- aAscii[i] = bToken;
214863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aAscii[i] = (u8)bToken;
214805 214864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
214806 214865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iTbl++;
214807 214866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
214808 214867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
214809 214868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -216223,12 +216282,12 @@
216223 216282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
216224 216283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_CORE */
216225 216284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
216226 216285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
216227 216286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of stmt.c ************************************************/
216228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if __LINE__!=216228
216287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if __LINE__!=216287
216229 216288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#undef SQLITE_SOURCE_ID
216230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2018-07-18 19:09:07 a5087c5c87ad65f92e3bc96bbc84afb43faf10ab6b9ed3ba16304b5c60adalt2"
216289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2018-07-24 22:02:12 2bd593332da0aade467e7a4ee89e966aa6302f37540a2c5e23671f98a6cbalt2"
216231 216290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
216232 216291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Return the source-id for this library */
216233 216292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
216234 216293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************************** End of sqlite3.c ******************************/
216235 216294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!