better-sqlite3-multiple-ciphers 8.2.1-beta.1 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/deps/setup.ps1 +1 -1
- package/deps/sqlite3/sqlite3.c +5046 -2412
- package/deps/sqlite3/sqlite3.h +152 -54
- package/package.json +1 -1
- package/src/better_sqlite3.cpp +33 -26
- package/src/better_sqlite3.hpp +21 -21
package/deps/sqlite3/sqlite3.h
CHANGED
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
|
|
32
32
|
#define SQLITE3MC_VERSION_MAJOR 1
|
|
33
33
|
#define SQLITE3MC_VERSION_MINOR 6
|
|
34
|
-
#define SQLITE3MC_VERSION_RELEASE
|
|
34
|
+
#define SQLITE3MC_VERSION_RELEASE 3
|
|
35
35
|
#define SQLITE3MC_VERSION_SUBRELEASE 0
|
|
36
|
-
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.6.
|
|
36
|
+
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.6.3"
|
|
37
37
|
|
|
38
38
|
#endif /* SQLITE3MC_VERSION_H_ */
|
|
39
39
|
/*** End of #include "sqlite3mc_version.h" ***/
|
|
@@ -192,9 +192,9 @@ extern "C" {
|
|
|
192
192
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
|
193
193
|
** [sqlite_version()] and [sqlite_source_id()].
|
|
194
194
|
*/
|
|
195
|
-
#define SQLITE_VERSION "3.
|
|
196
|
-
#define SQLITE_VERSION_NUMBER
|
|
197
|
-
#define SQLITE_SOURCE_ID "2023-
|
|
195
|
+
#define SQLITE_VERSION "3.42.0"
|
|
196
|
+
#define SQLITE_VERSION_NUMBER 3042000
|
|
197
|
+
#define SQLITE_SOURCE_ID "2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0"
|
|
198
198
|
|
|
199
199
|
/*
|
|
200
200
|
** CAPI3REF: Run-Time Library Version Numbers
|
|
@@ -1701,20 +1701,23 @@ SQLITE_API int sqlite3_os_end(void);
|
|
|
1701
1701
|
** must ensure that no other SQLite interfaces are invoked by other
|
|
1702
1702
|
** threads while sqlite3_config() is running.</b>
|
|
1703
1703
|
**
|
|
1704
|
-
** The sqlite3_config() interface
|
|
1705
|
-
** may only be invoked prior to library initialization using
|
|
1706
|
-
** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()].
|
|
1707
|
-
** ^If sqlite3_config() is called after [sqlite3_initialize()] and before
|
|
1708
|
-
** [sqlite3_shutdown()] then it will return SQLITE_MISUSE.
|
|
1709
|
-
** Note, however, that ^sqlite3_config() can be called as part of the
|
|
1710
|
-
** implementation of an application-defined [sqlite3_os_init()].
|
|
1711
|
-
**
|
|
1712
1704
|
** The first argument to sqlite3_config() is an integer
|
|
1713
1705
|
** [configuration option] that determines
|
|
1714
1706
|
** what property of SQLite is to be configured. Subsequent arguments
|
|
1715
1707
|
** vary depending on the [configuration option]
|
|
1716
1708
|
** in the first argument.
|
|
1717
1709
|
**
|
|
1710
|
+
** For most configuration options, the sqlite3_config() interface
|
|
1711
|
+
** may only be invoked prior to library initialization using
|
|
1712
|
+
** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()].
|
|
1713
|
+
** The exceptional configuration options that may be invoked at any time
|
|
1714
|
+
** are called "anytime configuration options".
|
|
1715
|
+
** ^If sqlite3_config() is called after [sqlite3_initialize()] and before
|
|
1716
|
+
** [sqlite3_shutdown()] with a first argument that is not an anytime
|
|
1717
|
+
** configuration option, then the sqlite3_config() call will return SQLITE_MISUSE.
|
|
1718
|
+
** Note, however, that ^sqlite3_config() can be called as part of the
|
|
1719
|
+
** implementation of an application-defined [sqlite3_os_init()].
|
|
1720
|
+
**
|
|
1718
1721
|
** ^When a configuration option is set, sqlite3_config() returns [SQLITE_OK].
|
|
1719
1722
|
** ^If the option is unknown or SQLite is unable to set the option
|
|
1720
1723
|
** then this routine returns a non-zero [error code].
|
|
@@ -1822,6 +1825,23 @@ struct sqlite3_mem_methods {
|
|
|
1822
1825
|
** These constants are the available integer configuration options that
|
|
1823
1826
|
** can be passed as the first argument to the [sqlite3_config()] interface.
|
|
1824
1827
|
**
|
|
1828
|
+
** Most of the configuration options for sqlite3_config()
|
|
1829
|
+
** will only work if invoked prior to [sqlite3_initialize()] or after
|
|
1830
|
+
** [sqlite3_shutdown()]. The few exceptions to this rule are called
|
|
1831
|
+
** "anytime configuration options".
|
|
1832
|
+
** ^Calling [sqlite3_config()] with a first argument that is not an
|
|
1833
|
+
** anytime configuration option in between calls to [sqlite3_initialize()] and
|
|
1834
|
+
** [sqlite3_shutdown()] is a no-op that returns SQLITE_MISUSE.
|
|
1835
|
+
**
|
|
1836
|
+
** The set of anytime configuration options can change (by insertions
|
|
1837
|
+
** and/or deletions) from one release of SQLite to the next.
|
|
1838
|
+
** As of SQLite version 3.42.0, the complete set of anytime configuration
|
|
1839
|
+
** options is:
|
|
1840
|
+
** <ul>
|
|
1841
|
+
** <li> SQLITE_CONFIG_LOG
|
|
1842
|
+
** <li> SQLITE_CONFIG_PCACHE_HDRSZ
|
|
1843
|
+
** </ul>
|
|
1844
|
+
**
|
|
1825
1845
|
** New configuration options may be added in future releases of SQLite.
|
|
1826
1846
|
** Existing configuration options might be discontinued. Applications
|
|
1827
1847
|
** should check the return code from [sqlite3_config()] to make sure that
|
|
@@ -2168,28 +2188,28 @@ struct sqlite3_mem_methods {
|
|
|
2168
2188
|
** compile-time option is not set, then the default maximum is 1073741824.
|
|
2169
2189
|
** </dl>
|
|
2170
2190
|
*/
|
|
2171
|
-
#define SQLITE_CONFIG_SINGLETHREAD
|
|
2172
|
-
#define SQLITE_CONFIG_MULTITHREAD
|
|
2173
|
-
#define SQLITE_CONFIG_SERIALIZED
|
|
2174
|
-
#define SQLITE_CONFIG_MALLOC
|
|
2175
|
-
#define SQLITE_CONFIG_GETMALLOC
|
|
2176
|
-
#define SQLITE_CONFIG_SCRATCH
|
|
2177
|
-
#define SQLITE_CONFIG_PAGECACHE
|
|
2178
|
-
#define SQLITE_CONFIG_HEAP
|
|
2179
|
-
#define SQLITE_CONFIG_MEMSTATUS
|
|
2180
|
-
#define SQLITE_CONFIG_MUTEX
|
|
2181
|
-
#define SQLITE_CONFIG_GETMUTEX
|
|
2182
|
-
/* previously SQLITE_CONFIG_CHUNKALLOC
|
|
2183
|
-
#define SQLITE_CONFIG_LOOKASIDE
|
|
2184
|
-
#define SQLITE_CONFIG_PCACHE
|
|
2185
|
-
#define SQLITE_CONFIG_GETPCACHE
|
|
2186
|
-
#define SQLITE_CONFIG_LOG
|
|
2187
|
-
#define SQLITE_CONFIG_URI
|
|
2188
|
-
#define SQLITE_CONFIG_PCACHE2
|
|
2189
|
-
#define SQLITE_CONFIG_GETPCACHE2
|
|
2191
|
+
#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */
|
|
2192
|
+
#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */
|
|
2193
|
+
#define SQLITE_CONFIG_SERIALIZED 3 /* nil */
|
|
2194
|
+
#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */
|
|
2195
|
+
#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */
|
|
2196
|
+
#define SQLITE_CONFIG_SCRATCH 6 /* No longer used */
|
|
2197
|
+
#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */
|
|
2198
|
+
#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */
|
|
2199
|
+
#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */
|
|
2200
|
+
#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */
|
|
2201
|
+
#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */
|
|
2202
|
+
/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
|
|
2203
|
+
#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */
|
|
2204
|
+
#define SQLITE_CONFIG_PCACHE 14 /* no-op */
|
|
2205
|
+
#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */
|
|
2206
|
+
#define SQLITE_CONFIG_LOG 16 /* xFunc, void* */
|
|
2207
|
+
#define SQLITE_CONFIG_URI 17 /* int */
|
|
2208
|
+
#define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */
|
|
2209
|
+
#define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */
|
|
2190
2210
|
#define SQLITE_CONFIG_COVERING_INDEX_SCAN 20 /* int */
|
|
2191
|
-
#define SQLITE_CONFIG_SQLLOG
|
|
2192
|
-
#define SQLITE_CONFIG_MMAP_SIZE
|
|
2211
|
+
#define SQLITE_CONFIG_SQLLOG 21 /* xSqllog, void* */
|
|
2212
|
+
#define SQLITE_CONFIG_MMAP_SIZE 22 /* sqlite3_int64, sqlite3_int64 */
|
|
2193
2213
|
#define SQLITE_CONFIG_WIN32_HEAPSIZE 23 /* int nByte */
|
|
2194
2214
|
#define SQLITE_CONFIG_PCACHE_HDRSZ 24 /* int *psz */
|
|
2195
2215
|
#define SQLITE_CONFIG_PMASZ 25 /* unsigned int szPma */
|
|
@@ -2424,7 +2444,7 @@ struct sqlite3_mem_methods {
|
|
|
2424
2444
|
** </dd>
|
|
2425
2445
|
**
|
|
2426
2446
|
** [[SQLITE_DBCONFIG_DQS_DML]]
|
|
2427
|
-
** <dt>SQLITE_DBCONFIG_DQS_DML</
|
|
2447
|
+
** <dt>SQLITE_DBCONFIG_DQS_DML</dt>
|
|
2428
2448
|
** <dd>The SQLITE_DBCONFIG_DQS_DML option activates or deactivates
|
|
2429
2449
|
** the legacy [double-quoted string literal] misfeature for DML statements
|
|
2430
2450
|
** only, that is DELETE, INSERT, SELECT, and UPDATE statements. The
|
|
@@ -2433,7 +2453,7 @@ struct sqlite3_mem_methods {
|
|
|
2433
2453
|
** </dd>
|
|
2434
2454
|
**
|
|
2435
2455
|
** [[SQLITE_DBCONFIG_DQS_DDL]]
|
|
2436
|
-
** <dt>SQLITE_DBCONFIG_DQS_DDL</
|
|
2456
|
+
** <dt>SQLITE_DBCONFIG_DQS_DDL</dt>
|
|
2437
2457
|
** <dd>The SQLITE_DBCONFIG_DQS option activates or deactivates
|
|
2438
2458
|
** the legacy [double-quoted string literal] misfeature for DDL statements,
|
|
2439
2459
|
** such as CREATE TABLE and CREATE INDEX. The
|
|
@@ -2442,7 +2462,7 @@ struct sqlite3_mem_methods {
|
|
|
2442
2462
|
** </dd>
|
|
2443
2463
|
**
|
|
2444
2464
|
** [[SQLITE_DBCONFIG_TRUSTED_SCHEMA]]
|
|
2445
|
-
** <dt>SQLITE_DBCONFIG_TRUSTED_SCHEMA</
|
|
2465
|
+
** <dt>SQLITE_DBCONFIG_TRUSTED_SCHEMA</dt>
|
|
2446
2466
|
** <dd>The SQLITE_DBCONFIG_TRUSTED_SCHEMA option tells SQLite to
|
|
2447
2467
|
** assume that database schemas are untainted by malicious content.
|
|
2448
2468
|
** When the SQLITE_DBCONFIG_TRUSTED_SCHEMA option is disabled, SQLite
|
|
@@ -2462,7 +2482,7 @@ struct sqlite3_mem_methods {
|
|
|
2462
2482
|
** </dd>
|
|
2463
2483
|
**
|
|
2464
2484
|
** [[SQLITE_DBCONFIG_LEGACY_FILE_FORMAT]]
|
|
2465
|
-
** <dt>SQLITE_DBCONFIG_LEGACY_FILE_FORMAT</
|
|
2485
|
+
** <dt>SQLITE_DBCONFIG_LEGACY_FILE_FORMAT</dt>
|
|
2466
2486
|
** <dd>The SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option activates or deactivates
|
|
2467
2487
|
** the legacy file format flag. When activated, this flag causes all newly
|
|
2468
2488
|
** created database file to have a schema format version number (the 4-byte
|
|
@@ -2471,7 +2491,7 @@ struct sqlite3_mem_methods {
|
|
|
2471
2491
|
** any SQLite version back to 3.0.0 ([dateof:3.0.0]). Without this setting,
|
|
2472
2492
|
** newly created databases are generally not understandable by SQLite versions
|
|
2473
2493
|
** prior to 3.3.0 ([dateof:3.3.0]). As these words are written, there
|
|
2474
|
-
** is now scarcely any need to
|
|
2494
|
+
** is now scarcely any need to generate database files that are compatible
|
|
2475
2495
|
** all the way back to version 3.0.0, and so this setting is of little
|
|
2476
2496
|
** practical use, but is provided so that SQLite can continue to claim the
|
|
2477
2497
|
** ability to generate new database files that are compatible with version
|
|
@@ -2482,6 +2502,38 @@ struct sqlite3_mem_methods {
|
|
|
2482
2502
|
** not considered a bug since SQLite versions 3.3.0 and earlier do not support
|
|
2483
2503
|
** either generated columns or decending indexes.
|
|
2484
2504
|
** </dd>
|
|
2505
|
+
**
|
|
2506
|
+
** [[SQLITE_DBCONFIG_STMT_SCANSTATUS]]
|
|
2507
|
+
** <dt>SQLITE_DBCONFIG_STMT_SCANSTATUS</dt>
|
|
2508
|
+
** <dd>The SQLITE_DBCONFIG_STMT_SCANSTATUS option is only useful in
|
|
2509
|
+
** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears
|
|
2510
|
+
** a flag that enables collection of the sqlite3_stmt_scanstatus_v2()
|
|
2511
|
+
** statistics. For statistics to be collected, the flag must be set on
|
|
2512
|
+
** the database handle both when the SQL statement is prepared and when it
|
|
2513
|
+
** is stepped. The flag is set (collection of statistics is enabled)
|
|
2514
|
+
** by default. This option takes two arguments: an integer and a pointer to
|
|
2515
|
+
** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
|
|
2516
|
+
** leave unchanged the statement scanstatus option. If the second argument
|
|
2517
|
+
** is not NULL, then the value of the statement scanstatus setting after
|
|
2518
|
+
** processing the first argument is written into the integer that the second
|
|
2519
|
+
** argument points to.
|
|
2520
|
+
** </dd>
|
|
2521
|
+
**
|
|
2522
|
+
** [[SQLITE_DBCONFIG_REVERSE_SCANORDER]]
|
|
2523
|
+
** <dt>SQLITE_DBCONFIG_REVERSE_SCANORDER</dt>
|
|
2524
|
+
** <dd>The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order
|
|
2525
|
+
** in which tables and indexes are scanned so that the scans start at the end
|
|
2526
|
+
** and work toward the beginning rather than starting at the beginning and
|
|
2527
|
+
** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
|
|
2528
|
+
** same as setting [PRAGMA reverse_unordered_selects]. This option takes
|
|
2529
|
+
** two arguments which are an integer and a pointer to an integer. The first
|
|
2530
|
+
** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
|
|
2531
|
+
** reverse scan order flag, respectively. If the second argument is not NULL,
|
|
2532
|
+
** then 0 or 1 is written into the integer that the second argument points to
|
|
2533
|
+
** depending on if the reverse scan order flag is set after processing the
|
|
2534
|
+
** first argument.
|
|
2535
|
+
** </dd>
|
|
2536
|
+
**
|
|
2485
2537
|
** </dl>
|
|
2486
2538
|
*/
|
|
2487
2539
|
#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
|
|
@@ -2502,7 +2554,9 @@ struct sqlite3_mem_methods {
|
|
|
2502
2554
|
#define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */
|
|
2503
2555
|
#define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */
|
|
2504
2556
|
#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
|
|
2505
|
-
#define
|
|
2557
|
+
#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
|
|
2558
|
+
#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
|
|
2559
|
+
#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
|
|
2506
2560
|
|
|
2507
2561
|
/*
|
|
2508
2562
|
** CAPI3REF: Enable Or Disable Extended Result Codes
|
|
@@ -6247,6 +6301,13 @@ SQLITE_API void sqlite3_activate_cerod(
|
|
|
6247
6301
|
** of the default VFS is not implemented correctly, or not implemented at
|
|
6248
6302
|
** all, then the behavior of sqlite3_sleep() may deviate from the description
|
|
6249
6303
|
** in the previous paragraphs.
|
|
6304
|
+
**
|
|
6305
|
+
** If a negative argument is passed to sqlite3_sleep() the results vary by
|
|
6306
|
+
** VFS and operating system. Some system treat a negative argument as an
|
|
6307
|
+
** instruction to sleep forever. Others understand it to mean do not sleep
|
|
6308
|
+
** at all. ^In SQLite version 3.42.0 and later, a negative
|
|
6309
|
+
** argument passed into sqlite3_sleep() is changed to zero before it is relayed
|
|
6310
|
+
** down into the xSleep method of the VFS.
|
|
6250
6311
|
*/
|
|
6251
6312
|
SQLITE_API int sqlite3_sleep(int);
|
|
6252
6313
|
|
|
@@ -7874,9 +7935,9 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*);
|
|
|
7874
7935
|
** is undefined if the mutex is not currently entered by the
|
|
7875
7936
|
** calling thread or is not currently allocated.
|
|
7876
7937
|
**
|
|
7877
|
-
** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(),
|
|
7878
|
-
** sqlite3_mutex_leave() is a NULL pointer,
|
|
7879
|
-
**
|
|
7938
|
+
** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(),
|
|
7939
|
+
** sqlite3_mutex_leave(), or sqlite3_mutex_free() is a NULL pointer,
|
|
7940
|
+
** then any of the four routines behaves as a no-op.
|
|
7880
7941
|
**
|
|
7881
7942
|
** See also: [sqlite3_mutex_held()] and [sqlite3_mutex_notheld()].
|
|
7882
7943
|
*/
|
|
@@ -9610,18 +9671,28 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...);
|
|
|
9610
9671
|
** [[SQLITE_VTAB_INNOCUOUS]]<dt>SQLITE_VTAB_INNOCUOUS</dt>
|
|
9611
9672
|
** <dd>Calls of the form
|
|
9612
9673
|
** [sqlite3_vtab_config](db,SQLITE_VTAB_INNOCUOUS) from within the
|
|
9613
|
-
** the [xConnect] or [xCreate] methods of a [virtual table]
|
|
9674
|
+
** the [xConnect] or [xCreate] methods of a [virtual table] implementation
|
|
9614
9675
|
** identify that virtual table as being safe to use from within triggers
|
|
9615
9676
|
** and views. Conceptually, the SQLITE_VTAB_INNOCUOUS tag means that the
|
|
9616
9677
|
** virtual table can do no serious harm even if it is controlled by a
|
|
9617
9678
|
** malicious hacker. Developers should avoid setting the SQLITE_VTAB_INNOCUOUS
|
|
9618
9679
|
** flag unless absolutely necessary.
|
|
9619
9680
|
** </dd>
|
|
9681
|
+
**
|
|
9682
|
+
** [[SQLITE_VTAB_USES_ALL_SCHEMAS]]<dt>SQLITE_VTAB_USES_ALL_SCHEMAS</dt>
|
|
9683
|
+
** <dd>Calls of the form
|
|
9684
|
+
** [sqlite3_vtab_config](db,SQLITE_VTAB_USES_ALL_SCHEMA) from within the
|
|
9685
|
+
** the [xConnect] or [xCreate] methods of a [virtual table] implementation
|
|
9686
|
+
** instruct the query planner to begin at least a read transaction on
|
|
9687
|
+
** all schemas ("main", "temp", and any ATTACH-ed databases) whenever the
|
|
9688
|
+
** virtual table is used.
|
|
9689
|
+
** </dd>
|
|
9620
9690
|
** </dl>
|
|
9621
9691
|
*/
|
|
9622
9692
|
#define SQLITE_VTAB_CONSTRAINT_SUPPORT 1
|
|
9623
9693
|
#define SQLITE_VTAB_INNOCUOUS 2
|
|
9624
9694
|
#define SQLITE_VTAB_DIRECTONLY 3
|
|
9695
|
+
#define SQLITE_VTAB_USES_ALL_SCHEMAS 4
|
|
9625
9696
|
|
|
9626
9697
|
/*
|
|
9627
9698
|
** CAPI3REF: Determine The Virtual Table Conflict Policy
|
|
@@ -10796,16 +10867,20 @@ SQLITE_API int sqlite3session_create(
|
|
|
10796
10867
|
SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
|
|
10797
10868
|
|
|
10798
10869
|
/*
|
|
10799
|
-
**
|
|
10870
|
+
** CAPI3REF: Configure a Session Object
|
|
10800
10871
|
** METHOD: sqlite3_session
|
|
10801
10872
|
**
|
|
10802
10873
|
** This method is used to configure a session object after it has been
|
|
10803
|
-
** created. At present the only valid
|
|
10804
|
-
** [SQLITE_SESSION_OBJCONFIG_SIZE].
|
|
10874
|
+
** created. At present the only valid values for the second parameter are
|
|
10875
|
+
** [SQLITE_SESSION_OBJCONFIG_SIZE] and [SQLITE_SESSION_OBJCONFIG_ROWID].
|
|
10805
10876
|
**
|
|
10806
|
-
|
|
10877
|
+
*/
|
|
10878
|
+
SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg);
|
|
10879
|
+
|
|
10880
|
+
/*
|
|
10881
|
+
** CAPI3REF: Options for sqlite3session_object_config
|
|
10807
10882
|
**
|
|
10808
|
-
** The following values may passed as the the
|
|
10883
|
+
** The following values may passed as the the 2nd parameter to
|
|
10809
10884
|
** sqlite3session_object_config().
|
|
10810
10885
|
**
|
|
10811
10886
|
** <dt>SQLITE_SESSION_OBJCONFIG_SIZE <dd>
|
|
@@ -10821,12 +10896,21 @@ SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
|
|
|
10821
10896
|
**
|
|
10822
10897
|
** It is an error (SQLITE_MISUSE) to attempt to modify this setting after
|
|
10823
10898
|
** the first table has been attached to the session object.
|
|
10899
|
+
**
|
|
10900
|
+
** <dt>SQLITE_SESSION_OBJCONFIG_ROWID <dd>
|
|
10901
|
+
** This option is used to set, clear or query the flag that enables
|
|
10902
|
+
** collection of data for tables with no explicit PRIMARY KEY.
|
|
10903
|
+
**
|
|
10904
|
+
** Normally, tables with no explicit PRIMARY KEY are simply ignored
|
|
10905
|
+
** by the sessions module. However, if this flag is set, it behaves
|
|
10906
|
+
** as if such tables have a column "_rowid_ INTEGER PRIMARY KEY" inserted
|
|
10907
|
+
** as their leftmost columns.
|
|
10908
|
+
**
|
|
10909
|
+
** It is an error (SQLITE_MISUSE) to attempt to modify this setting after
|
|
10910
|
+
** the first table has been attached to the session object.
|
|
10824
10911
|
*/
|
|
10825
|
-
|
|
10826
|
-
|
|
10827
|
-
/*
|
|
10828
|
-
*/
|
|
10829
|
-
#define SQLITE_SESSION_OBJCONFIG_SIZE 1
|
|
10912
|
+
#define SQLITE_SESSION_OBJCONFIG_SIZE 1
|
|
10913
|
+
#define SQLITE_SESSION_OBJCONFIG_ROWID 2
|
|
10830
10914
|
|
|
10831
10915
|
/*
|
|
10832
10916
|
** CAPI3REF: Enable Or Disable A Session Object
|
|
@@ -11959,9 +12043,23 @@ SQLITE_API int sqlite3changeset_apply_v2(
|
|
|
11959
12043
|
** Invert the changeset before applying it. This is equivalent to inverting
|
|
11960
12044
|
** a changeset using sqlite3changeset_invert() before applying it. It is
|
|
11961
12045
|
** an error to specify this flag with a patchset.
|
|
12046
|
+
**
|
|
12047
|
+
** <dt>SQLITE_CHANGESETAPPLY_IGNORENOOP <dd>
|
|
12048
|
+
** Do not invoke the conflict handler callback for any changes that
|
|
12049
|
+
** would not actually modify the database even if they were applied.
|
|
12050
|
+
** Specifically, this means that the conflict handler is not invoked
|
|
12051
|
+
** for:
|
|
12052
|
+
** <ul>
|
|
12053
|
+
** <li>a delete change if the row being deleted cannot be found,
|
|
12054
|
+
** <li>an update change if the modified fields are already set to
|
|
12055
|
+
** their new values in the conflicting row, or
|
|
12056
|
+
** <li>an insert change if all fields of the conflicting row match
|
|
12057
|
+
** the row being inserted.
|
|
12058
|
+
** </ul>
|
|
11962
12059
|
*/
|
|
11963
12060
|
#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
|
|
11964
12061
|
#define SQLITE_CHANGESETAPPLY_INVERT 0x0002
|
|
12062
|
+
#define SQLITE_CHANGESETAPPLY_IGNORENOOP 0x0004
|
|
11965
12063
|
|
|
11966
12064
|
/*
|
|
11967
12065
|
** CAPI3REF: Constants Passed To The Conflict Handler
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "better-sqlite3-multiple-ciphers",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.0",
|
|
4
4
|
"description": "better-sqlite3 with multiple-cipher encryption support",
|
|
5
5
|
"homepage": "https://github.com/m4heshd/better-sqlite3-multiple-ciphers",
|
|
6
6
|
"author": "Mahesh Bandara Wijerathna (m4heshd) <m4heshd@gmail.com>",
|
package/src/better_sqlite3.cpp
CHANGED
|
@@ -903,20 +903,27 @@ void Statement::JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
903
903
|
if (handle == NULL) {
|
|
904
904
|
return ThrowRangeError("The supplied SQL string contains no statements");
|
|
905
905
|
}
|
|
906
|
-
|
|
907
|
-
|
|
906
|
+
|
|
907
|
+
for (char c; (c = *tail); ) {
|
|
908
|
+
if (IS_SKIPPED(c)) {
|
|
909
|
+
++tail;
|
|
910
|
+
continue;
|
|
911
|
+
}
|
|
908
912
|
if (c == '/' && tail[1] == '*') {
|
|
909
913
|
tail += 2;
|
|
910
914
|
for (char c; (c = *tail); ++tail) {
|
|
911
915
|
if (c == '*' && tail[1] == '/') {
|
|
912
|
-
tail +=
|
|
916
|
+
tail += 2;
|
|
913
917
|
break;
|
|
914
918
|
}
|
|
915
919
|
}
|
|
916
920
|
} else if (c == '-' && tail[1] == '-') {
|
|
917
921
|
tail += 2;
|
|
918
922
|
for (char c; (c = *tail); ++tail) {
|
|
919
|
-
if (c == '\n')
|
|
923
|
+
if (c == '\n') {
|
|
924
|
+
++tail;
|
|
925
|
+
break;
|
|
926
|
+
}
|
|
920
927
|
}
|
|
921
928
|
} else {
|
|
922
929
|
sqlite3_finalize(handle);
|
|
@@ -935,9 +942,9 @@ void Statement::JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
935
942
|
|
|
936
943
|
info.GetReturnValue().Set(info.This());
|
|
937
944
|
}
|
|
938
|
-
#line
|
|
945
|
+
#line 156 "./src/objects/statement.lzz"
|
|
939
946
|
void Statement::JS_run (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
940
|
-
#line
|
|
947
|
+
#line 156 "./src/objects/statement.lzz"
|
|
941
948
|
{
|
|
942
949
|
Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; ( ( void ) 0 ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; if ( ! db -> GetState ( ) -> unsafe_mode ) { if ( db -> GetState ( ) -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; } ( ( void ) 0 ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ; db -> GetState ( ) -> busy = true ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; if ( db -> Log ( isolate , handle ) ) { db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ; } ( ( void ) 0 ) ;
|
|
943
950
|
sqlite3* db_handle = db->GetHandle();
|
|
@@ -960,9 +967,9 @@ void Statement::JS_run (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
960
967
|
}
|
|
961
968
|
db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
|
|
962
969
|
}
|
|
963
|
-
#line
|
|
970
|
+
#line 179 "./src/objects/statement.lzz"
|
|
964
971
|
void Statement::JS_get (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
965
|
-
#line
|
|
972
|
+
#line 179 "./src/objects/statement.lzz"
|
|
966
973
|
{
|
|
967
974
|
Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; if ( ! stmt -> returns_data ) return ThrowTypeError ( "This statement does not return data. Use run() instead" ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ; db -> GetState ( ) -> busy = true ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; if ( db -> Log ( isolate , handle ) ) { db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ; } ( ( void ) 0 ) ;
|
|
968
975
|
int status = sqlite3_step(handle);
|
|
@@ -977,9 +984,9 @@ void Statement::JS_get (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
977
984
|
sqlite3_reset(handle);
|
|
978
985
|
db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
|
|
979
986
|
}
|
|
980
|
-
#line
|
|
987
|
+
#line 194 "./src/objects/statement.lzz"
|
|
981
988
|
void Statement::JS_all (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
982
|
-
#line
|
|
989
|
+
#line 194 "./src/objects/statement.lzz"
|
|
983
990
|
{
|
|
984
991
|
Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; if ( ! stmt -> returns_data ) return ThrowTypeError ( "This statement does not return data. Use run() instead" ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ; db -> GetState ( ) -> busy = true ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; if ( db -> Log ( isolate , handle ) ) { db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ; } ( ( void ) 0 ) ;
|
|
985
992
|
v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
|
|
@@ -1000,9 +1007,9 @@ void Statement::JS_all (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1000
1007
|
if (js_error) db->GetState()->was_js_error = true;
|
|
1001
1008
|
db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
|
|
1002
1009
|
}
|
|
1003
|
-
#line
|
|
1010
|
+
#line 215 "./src/objects/statement.lzz"
|
|
1004
1011
|
void Statement::JS_iterate (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1005
|
-
#line
|
|
1012
|
+
#line 215 "./src/objects/statement.lzz"
|
|
1006
1013
|
{
|
|
1007
1014
|
Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
|
|
1008
1015
|
v8 :: Isolate * isolate = info . GetIsolate ( ) ;
|
|
@@ -1012,9 +1019,9 @@ void Statement::JS_iterate (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1012
1019
|
addon->privileged_info = NULL;
|
|
1013
1020
|
if (!maybeIterator.IsEmpty()) info.GetReturnValue().Set(maybeIterator.ToLocalChecked());
|
|
1014
1021
|
}
|
|
1015
|
-
#line
|
|
1022
|
+
#line 225 "./src/objects/statement.lzz"
|
|
1016
1023
|
void Statement::JS_bind (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1017
|
-
#line
|
|
1024
|
+
#line 225 "./src/objects/statement.lzz"
|
|
1018
1025
|
{
|
|
1019
1026
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1020
1027
|
if (stmt->bound) return ThrowTypeError("The bind() method can only be invoked once per statement object");
|
|
@@ -1025,9 +1032,9 @@ void Statement::JS_bind (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1025
1032
|
stmt->bound = true;
|
|
1026
1033
|
info.GetReturnValue().Set(info.This());
|
|
1027
1034
|
}
|
|
1028
|
-
#line
|
|
1035
|
+
#line 236 "./src/objects/statement.lzz"
|
|
1029
1036
|
void Statement::JS_pluck (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1030
|
-
#line
|
|
1037
|
+
#line 236 "./src/objects/statement.lzz"
|
|
1031
1038
|
{
|
|
1032
1039
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1033
1040
|
if (!stmt->returns_data) return ThrowTypeError("The pluck() method is only for statements that return data");
|
|
@@ -1038,9 +1045,9 @@ void Statement::JS_pluck (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1038
1045
|
stmt->mode = use ? Data::PLUCK : stmt->mode == Data::PLUCK ? Data::FLAT : stmt->mode;
|
|
1039
1046
|
info.GetReturnValue().Set(info.This());
|
|
1040
1047
|
}
|
|
1041
|
-
#line
|
|
1048
|
+
#line 247 "./src/objects/statement.lzz"
|
|
1042
1049
|
void Statement::JS_expand (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1043
|
-
#line
|
|
1050
|
+
#line 247 "./src/objects/statement.lzz"
|
|
1044
1051
|
{
|
|
1045
1052
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1046
1053
|
if (!stmt->returns_data) return ThrowTypeError("The expand() method is only for statements that return data");
|
|
@@ -1051,9 +1058,9 @@ void Statement::JS_expand (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1051
1058
|
stmt->mode = use ? Data::EXPAND : stmt->mode == Data::EXPAND ? Data::FLAT : stmt->mode;
|
|
1052
1059
|
info.GetReturnValue().Set(info.This());
|
|
1053
1060
|
}
|
|
1054
|
-
#line
|
|
1061
|
+
#line 258 "./src/objects/statement.lzz"
|
|
1055
1062
|
void Statement::JS_raw (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1056
|
-
#line
|
|
1063
|
+
#line 258 "./src/objects/statement.lzz"
|
|
1057
1064
|
{
|
|
1058
1065
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1059
1066
|
if (!stmt->returns_data) return ThrowTypeError("The raw() method is only for statements that return data");
|
|
@@ -1064,9 +1071,9 @@ void Statement::JS_raw (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1064
1071
|
stmt->mode = use ? Data::RAW : stmt->mode == Data::RAW ? Data::FLAT : stmt->mode;
|
|
1065
1072
|
info.GetReturnValue().Set(info.This());
|
|
1066
1073
|
}
|
|
1067
|
-
#line
|
|
1074
|
+
#line 269 "./src/objects/statement.lzz"
|
|
1068
1075
|
void Statement::JS_safeIntegers (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1069
|
-
#line
|
|
1076
|
+
#line 269 "./src/objects/statement.lzz"
|
|
1070
1077
|
{
|
|
1071
1078
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1072
1079
|
if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
|
|
@@ -1075,9 +1082,9 @@ void Statement::JS_safeIntegers (v8::FunctionCallbackInfo <v8 :: Value> const &
|
|
|
1075
1082
|
else { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; stmt -> safe_ints = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
|
|
1076
1083
|
info.GetReturnValue().Set(info.This());
|
|
1077
1084
|
}
|
|
1078
|
-
#line
|
|
1085
|
+
#line 278 "./src/objects/statement.lzz"
|
|
1079
1086
|
void Statement::JS_columns (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
1080
|
-
#line
|
|
1087
|
+
#line 278 "./src/objects/statement.lzz"
|
|
1081
1088
|
{
|
|
1082
1089
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1083
1090
|
if (!stmt->returns_data) return ThrowTypeError("The columns() method is only for statements that return data");
|
|
@@ -1120,9 +1127,9 @@ void Statement::JS_columns (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
|
|
1120
1127
|
|
|
1121
1128
|
info.GetReturnValue().Set(columns);
|
|
1122
1129
|
}
|
|
1123
|
-
#line
|
|
1130
|
+
#line 321 "./src/objects/statement.lzz"
|
|
1124
1131
|
void Statement::JS_busy (v8::Local <v8 :: String> _, v8::PropertyCallbackInfo <v8 :: Value> const & info)
|
|
1125
|
-
#line
|
|
1132
|
+
#line 321 "./src/objects/statement.lzz"
|
|
1126
1133
|
{
|
|
1127
1134
|
Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
|
|
1128
1135
|
info.GetReturnValue().Set(stmt->alive && stmt->locked);
|
package/src/better_sqlite3.hpp
CHANGED
|
@@ -344,47 +344,47 @@ private:
|
|
|
344
344
|
explicit Statement (Database * db, sqlite3_stmt * handle, sqlite3_uint64 id, bool returns_data);
|
|
345
345
|
#line 85 "./src/objects/statement.lzz"
|
|
346
346
|
static void JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
347
|
-
#line
|
|
347
|
+
#line 156 "./src/objects/statement.lzz"
|
|
348
348
|
static void JS_run (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
349
|
-
#line
|
|
349
|
+
#line 179 "./src/objects/statement.lzz"
|
|
350
350
|
static void JS_get (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
351
|
-
#line
|
|
351
|
+
#line 194 "./src/objects/statement.lzz"
|
|
352
352
|
static void JS_all (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
353
|
-
#line
|
|
353
|
+
#line 215 "./src/objects/statement.lzz"
|
|
354
354
|
static void JS_iterate (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
355
|
-
#line
|
|
355
|
+
#line 225 "./src/objects/statement.lzz"
|
|
356
356
|
static void JS_bind (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
357
|
-
#line
|
|
357
|
+
#line 236 "./src/objects/statement.lzz"
|
|
358
358
|
static void JS_pluck (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
359
|
-
#line
|
|
359
|
+
#line 247 "./src/objects/statement.lzz"
|
|
360
360
|
static void JS_expand (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
361
|
-
#line
|
|
361
|
+
#line 258 "./src/objects/statement.lzz"
|
|
362
362
|
static void JS_raw (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
363
|
-
#line
|
|
363
|
+
#line 269 "./src/objects/statement.lzz"
|
|
364
364
|
static void JS_safeIntegers (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
365
|
-
#line
|
|
365
|
+
#line 278 "./src/objects/statement.lzz"
|
|
366
366
|
static void JS_columns (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
|
367
|
-
#line
|
|
367
|
+
#line 321 "./src/objects/statement.lzz"
|
|
368
368
|
static void JS_busy (v8::Local <v8 :: String> _, v8::PropertyCallbackInfo <v8 :: Value> const & info);
|
|
369
|
-
#line
|
|
369
|
+
#line 326 "./src/objects/statement.lzz"
|
|
370
370
|
Database * const db;
|
|
371
|
-
#line
|
|
371
|
+
#line 327 "./src/objects/statement.lzz"
|
|
372
372
|
sqlite3_stmt * const handle;
|
|
373
|
-
#line
|
|
373
|
+
#line 328 "./src/objects/statement.lzz"
|
|
374
374
|
Extras * const extras;
|
|
375
|
-
#line
|
|
375
|
+
#line 329 "./src/objects/statement.lzz"
|
|
376
376
|
bool alive;
|
|
377
|
-
#line
|
|
377
|
+
#line 330 "./src/objects/statement.lzz"
|
|
378
378
|
bool locked;
|
|
379
|
-
#line
|
|
379
|
+
#line 331 "./src/objects/statement.lzz"
|
|
380
380
|
bool bound;
|
|
381
|
-
#line
|
|
381
|
+
#line 332 "./src/objects/statement.lzz"
|
|
382
382
|
bool has_bind_map;
|
|
383
|
-
#line
|
|
383
|
+
#line 333 "./src/objects/statement.lzz"
|
|
384
384
|
bool safe_ints;
|
|
385
|
-
#line
|
|
385
|
+
#line 334 "./src/objects/statement.lzz"
|
|
386
386
|
char mode;
|
|
387
|
-
#line
|
|
387
|
+
#line 335 "./src/objects/statement.lzz"
|
|
388
388
|
bool const returns_data;
|
|
389
389
|
};
|
|
390
390
|
#line 1 "./src/objects/statement-iterator.lzz"
|