summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-10-04 12:33:46 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-10-04 12:33:46 +0000
commitdf2adc036012768598d9773f893c7479c5b18805 (patch)
tree75b6ceac20ef99f685e15208af5fbe64e856e7b7
parentefd609ff80fed83c4ff0e9af3c6cc048b38b1a22 (diff)
downloadfpc-df2adc036012768598d9773f893c7479c5b18805.tar.gz
* Patch from Laco to update to version 3.14.2
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@34618 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/sqlite/src/sqlite3.inc278
1 files changed, 232 insertions, 46 deletions
diff --git a/packages/sqlite/src/sqlite3.inc b/packages/sqlite/src/sqlite3.inc
index c1adcd1820..a16ff61260 100644
--- a/packages/sqlite/src/sqlite3.inc
+++ b/packages/sqlite/src/sqlite3.inc
@@ -18,9 +18,9 @@ uses
{$else}
DynLibs;
-{$ifdef darwin}
-{$linklib sqlite3}
-{$endif}
+ {$ifdef darwin}
+ {$linklib sqlite3}
+ {$endif}
{$endif}
const
@@ -37,8 +37,7 @@ const
{$ENDIF}
{
- Header converted from Sqlite version 3.7.9
- SOURCE_ID = '2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e'
+ Header converted from Sqlite version 3.14.2
}
//SQLITE_EXTERN const char sqlite3_version[];
@@ -59,7 +58,7 @@ type
const
SQLITE_STATIC = sqlite3_destructor_type(nil);
- SQLITE_TRANSIENT = pointer(-1);//sqlite3_destructor_type(-1);
+ SQLITE_TRANSIENT = pointer(-1); //sqlite3_destructor_type(-1);
type
@@ -76,6 +75,7 @@ type
sqlite3_uint64 = sqlite_uint64;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_close{$IFDEF D}: function{$ENDIF}(ref: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_close_v2{$IFDEF D}: function{$ENDIF}(ref: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
sqlite3_callback = function(user: pointer; cols: cint; values, name: ppansichar): cint; cdecl;
@@ -117,6 +117,8 @@ const
SQLITE_FORMAT = 24; (* Auxiliary database format error *)
SQLITE_RANGE = 25; (* 2nd parameter to sqlite3_bind out of range *)
SQLITE_NOTADB = 26; (* File opened that is not a database file *)
+ SQLITE_NOTICE = 27; (* Notifications from sqlite3_log() *)
+ SQLITE_WARNING = 28; (* Warnings from sqlite3_log() *)
SQLITE_ROW = 100; (* sqlite3_step() has another row ready *)
SQLITE_DONE = 101; (* sqlite3_step() has finished executing *)
@@ -142,18 +144,49 @@ const
SQLITE_IOERR_SHMLOCK = (SQLITE_IOERR or (20 shl 8));
SQLITE_IOERR_SHMMAP = (SQLITE_IOERR or (21 shl 8));
SQLITE_IOERR_SEEK = (SQLITE_IOERR or (22 shl 8));
+ SQLITE_IOERR_DELETE_NOENT = (SQLITE_IOERR or (23 shl 8));
+ SQLITE_IOERR_MMAP = (SQLITE_IOERR or (24 shl 8));
+ SQLITE_IOERR_GETTEMPPATH = (SQLITE_IOERR or (25 shl 8));
+ SQLITE_IOERR_CONVPATH = (SQLITE_IOERR or (26 shl 8));
+ SQLITE_IOERR_VNODE = (SQLITE_IOERR or (27 shl 8));
+ SQLITE_IOERR_AUTH = (SQLITE_IOERR or (28 shl 8));
SQLITE_LOCKED_SHAREDCACHE = (SQLITE_LOCKED or (1 shl 8));
SQLITE_BUSY_RECOVERY = (SQLITE_BUSY or (1 shl 8));
+ SQLITE_BUSY_SNAPSHOT = (SQLITE_BUSY or (2 shl 8));
SQLITE_CANTOPEN_NOTEMPDIR = (SQLITE_CANTOPEN or (1 shl 8));
+ SQLITE_CANTOPEN_ISDIR = (SQLITE_CANTOPEN or (2 shl 8));
+ SQLITE_CANTOPEN_FULLPATH = (SQLITE_CANTOPEN or (3 shl 8));
+ SQLITE_CANTOPEN_CONVPATH = (SQLITE_CANTOPEN or (4 shl 8));
SQLITE_CORRUPT_VTAB = (SQLITE_CORRUPT or (1 shl 8));
SQLITE_READONLY_RECOVERY = (SQLITE_READONLY or (1 shl 8));
SQLITE_READONLY_CANTLOCK = (SQLITE_READONLY or (2 shl 8));
+ SQLITE_READONLY_ROLLBACK = (SQLITE_READONLY or (3 shl 8));
+ SQLITE_READONLY_DBMOVED = (SQLITE_READONLY or (4 shl 8));
+ SQLITE_ABORT_ROLLBACK = (SQLITE_ABORT or (2 shl 8));
+ SQLITE_CONSTRAINT_CHECK = (SQLITE_CONSTRAINT or (1 shl 8));
+ SQLITE_CONSTRAINT_COMMITHOOK = (SQLITE_CONSTRAINT or (2 shl 8));
+ SQLITE_CONSTRAINT_FOREIGNKEY = (SQLITE_CONSTRAINT or (3 shl 8));
+ SQLITE_CONSTRAINT_FUNCTION = (SQLITE_CONSTRAINT or (4 shl 8));
+ SQLITE_CONSTRAINT_NOTNULL = (SQLITE_CONSTRAINT or (5 shl 8));
+ SQLITE_CONSTRAINT_PRIMARYKEY = (SQLITE_CONSTRAINT or (6 shl 8));
+ SQLITE_CONSTRAINT_TRIGGER = (SQLITE_CONSTRAINT or (7 shl 8));
+ SQLITE_CONSTRAINT_UNIQUE = (SQLITE_CONSTRAINT or (8 shl 8));
+ SQLITE_CONSTRAINT_VTAB = (SQLITE_CONSTRAINT or (9 shl 8));
+ SQLITE_CONSTRAINT_ROWID = (SQLITE_CONSTRAINT or (10 shl 8));
+ SQLITE_NOTICE_RECOVER_WAL = (SQLITE_NOTICE or (1 shl 8));
+ SQLITE_NOTICE_RECOVER_ROLLBACK = (SQLITE_NOTICE or (2 shl 8));
+ SQLITE_WARNING_AUTOINDEX = (SQLITE_WARNING or (1 shl 8));
+ SQLITE_AUTH_USER = (SQLITE_AUTH or (1 shl 8));
+ SQLITE_OK_LOAD_PERMANENTLY = (SQLITE_OK or (1 shl 8));
SQLITE_OPEN_READONLY = $00000001;
SQLITE_OPEN_READWRITE = $00000002;
SQLITE_OPEN_CREATE = $00000004;
SQLITE_OPEN_DELETEONCLOSE = $00000008;
SQLITE_OPEN_EXCLUSIVE = $00000010;
+ SQLITE_OPEN_AUTOPROXY = $00000020; (* VFS only *)
+ SQLITE_OPEN_URI = $00000040; (* Ok for sqlite3_open_v2() *)
+ SQLITE_OPEN_MEMORY = $00000080; (* Ok for sqlite3_open_v2() *)
SQLITE_OPEN_MAIN_DB = $00000100;
SQLITE_OPEN_TEMP_DB = $00000200;
SQLITE_OPEN_TRANSIENT_DB = $00000400;
@@ -180,7 +213,9 @@ const
SQLITE_IOCAP_SAFE_APPEND = $00000200;
SQLITE_IOCAP_SEQUENTIAL = $00000400;
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = $00000800;
-
+ SQLITE_IOCAP_POWERSAFE_OVERWRITE = $00001000;
+ SQLITE_IOCAP_IMMUTABLE = $00002000;
+
SQLITE_LOCK_NONE = 0;
SQLITE_LOCK_SHARED = 1;
SQLITE_LOCK_RESERVED = 2;
@@ -218,21 +253,46 @@ type
xShmLock : function(f : psqlite3_file; offset: cint; n : cint; flags : cint) : cint; stdcall;
xShmBarrier : procedure (f : psqlite3_file); stdcall;
xShmUnmap : function(f : psqlite3_file; deleteFlag : cint) : cint; stdcall;
- (* Additional methods may be added in future releases *)
+ (* Methods above are valid for version 2 *)
+ xFetch : function(f: psqlite3_file; iOfst: sqlite3_int64; iAmt: cint; pp: PPointer) : cint; stdcall;
+ xUnfetch : function(f: psqlite3_file; iOfst: sqlite3_int64; p: Pointer) : cint; stdcall;
+ (* Methods above are valid for version 3 *)
+ (* Additional methods may be added in future releases *)
end;
const
- SQLITE_FCNTL_LOCKSTATE = 1;
- SQLITE_GET_LOCKPROXYFILE = 2;
- SQLITE_SET_LOCKPROXYFILE = 3;
- SQLITE_LAST_ERRNO = 4;
- SQLITE_FCNTL_SIZE_HINT = 5;
- SQLITE_FCNTL_CHUNK_SIZE = 6;
- SQLITE_FCNTL_FILE_POINTER = 7;
- SQLITE_FCNTL_SYNC_OMITTED = 8;
- SQLITE_FCNTL_WIN32_AV_RETRY = 9;
- SQLITE_FCNTL_PERSIST_WAL = 10;
- SQLITE_FCNTL_OVERWRITE = 11;
+ SQLITE_FCNTL_LOCKSTATE = 1;
+ SQLITE_FCNTL_GET_LOCKPROXYFILE = 2;
+ SQLITE_FCNTL_SET_LOCKPROXYFILE = 3;
+ SQLITE_FCNTL_LAST_ERRNO = 4;
+ SQLITE_FCNTL_SIZE_HINT = 5;
+ SQLITE_FCNTL_CHUNK_SIZE = 6;
+ SQLITE_FCNTL_FILE_POINTER = 7;
+ SQLITE_FCNTL_SYNC_OMITTED = 8;
+ SQLITE_FCNTL_WIN32_AV_RETRY = 9;
+ SQLITE_FCNTL_PERSIST_WAL = 10;
+ SQLITE_FCNTL_OVERWRITE = 11;
+ SQLITE_FCNTL_VFSNAME = 12;
+ SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13;
+ SQLITE_FCNTL_PRAGMA = 14;
+ SQLITE_FCNTL_BUSYHANDLER = 15;
+ SQLITE_FCNTL_TEMPFILENAME = 16;
+ SQLITE_FCNTL_MMAP_SIZE = 18;
+ SQLITE_FCNTL_TRACE = 19;
+ SQLITE_FCNTL_HAS_MOVED = 20;
+ SQLITE_FCNTL_SYNC = 21;
+ SQLITE_FCNTL_COMMIT_PHASETWO = 22;
+ SQLITE_FCNTL_WIN32_SET_HANDLE = 23;
+ SQLITE_FCNTL_WAL_BLOCK = 24;
+ SQLITE_FCNTL_ZIPVFS = 25;
+ SQLITE_FCNTL_RBU = 26;
+ SQLITE_FCNTL_VFS_POINTER = 27;
+ SQLITE_FCNTL_JOURNAL_POINTER = 28;
+
+ (* deprecated names *)
+ SQLITE_GET_LOCKPROXYFILE = SQLITE_FCNTL_GET_LOCKPROXYFILE;
+ SQLITE_SET_LOCKPROXYFILE = SQLITE_FCNTL_SET_LOCKPROXYFILE;
+ SQLITE_LAST_ERRNO = SQLITE_FCNTL_LAST_ERRNO;
type
psqlite3_mutex = ^sqlite3_mutex;
@@ -335,10 +395,21 @@ Const
SQLITE_CONFIG_GETPCACHE = 15;
SQLITE_CONFIG_LOG = 16;
SQLITE_CONFIG_URI = 17;
+ SQLITE_CONFIG_PCACHE2 = 18; (* sqlite3_pcache_methods2* *)
+ SQLITE_CONFIG_GETPCACHE2 = 19; (* sqlite3_pcache_methods2* *)
+ SQLITE_CONFIG_COVERING_INDEX_SCAN = 20; (* int *)
+ SQLITE_CONFIG_SQLLOG = 21; (* xSqllog, void* *)
+ SQLITE_CONFIG_MMAP_SIZE = 22; (* sqlite3_int64, sqlite3_int64 *)
+ SQLITE_CONFIG_WIN32_HEAPSIZE = 23; (* int nByte *)
+ SQLITE_CONFIG_PCACHE_HDRSZ = 24; (* int *psz *)
+ SQLITE_CONFIG_PMASZ = 25; (* unsigned int szPma *)
+ SQLITE_CONFIG_STMTJRNL_SPILL = 26; (* int nByte *)
SQLITE_DBCONFIG_LOOKASIDE = 1001;
SQLITE_DBCONFIG_ENABLE_FKEY = 1002;
SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003;
+ SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004;
+ SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_extended_result_codes{$IFDEF D}: function{$ENDIF}(db: psqlite3; onoff: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -369,8 +440,11 @@ type
//char *sqlite3_snprintf(int,char*,const char*, ...);
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_malloc{$IFDEF D}: function{$ENDIF}(size: cint): pointer;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_malloc64{$IFDEF D}: function{$ENDIF}(size: sqlite3_uint64): pointer;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_realloc{$IFDEF D}: function{$ENDIF}(ptr: pointer; size: cint): pointer;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_realloc64{$IFDEF D}: function{$ENDIF}(ptr: pointer; size: sqlite3_uint64): pointer;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_free{$IFDEF D}: procedure{$ENDIF}(ptr: pointer);cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_msize{$IFDEF D}: function{$ENDIF}(ptr: pointer): sqlite3_uint64;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_memory_used{$IFDEF D}: function{$ENDIF}(): sqlite3_int64; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_memory_highwater{$IFDEF D}: function{$ENDIF}(resetFlag: cint): sqlite3_int64; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -424,11 +498,12 @@ const
SQLITE_FUNCTION = 31; (* Function Name NULL *)
SQLITE_SAVEPOINT = 32; (* Operation Savepoint Name *)
SQLITE_COPY = 0; (* No longer used *)
+ SQLITE_RECURSIVE = 33; (* NULL NULL *)
type
- xTrace = procedure(user: pointer; s: pansichar); cdecl;
- xProfile = procedure(user: pointer; s: pansichar; i: sqlite3_uint64); cdecl;
+ xTrace = procedure(user: pointer; s: pansichar); cdecl; deprecated;
+ xProfile = procedure(user: pointer; s: pansichar; i: sqlite3_uint64); cdecl; deprecated;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_trace{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: xTrace; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_profile{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: xProfile; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -455,18 +530,15 @@ type
zVfs: pansichar (* Name of VFS module to use *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}
-function sqlite3_uri_parameter(zFilename : pansichar; zParam :pansichar) : pansichar;cdecl;external Sqlite3Lib;
-{$ENDIF}
-{$IFDEF D}
-var
- sqlite3_uri_parameter : function(zFilename : pansichar; zParam :pansichar) : pansichar;cdecl;
-{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_uri_parameter{$IFDEF D}: function{$ENDIF}(zFilename : pansichar; zParam: pansichar) : pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_uri_boolean{$IFDEF D}: function{$ENDIF}(zFile : pansichar; zParam :pansichar; bDefault: cint) : cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_uri_int64{$IFDEF D}: function{$ENDIF}(zFile : pansichar; zParam :pansichar; iDefault: sqlite3_int64) : sqlite3_int64; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errcode{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_extended_errcode{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errmsg{$IFDEF D}: function{$ENDIF}(db: psqlite3): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errmsg16{$IFDEF D}: function{$ENDIF}(db: psqlite3): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errstr{$IFDEF D}: function{$ENDIF}(errCode: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
ppsqlite3_stmt = ^psqlite3_stmt;
@@ -489,7 +561,8 @@ const
SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8;
SQLITE_LIMIT_VARIABLE_NUMBER = 9;
SQLITE_LIMIT_TRIGGER_DEPTH = 10;
-
+ SQLITE_LIMIT_WORKER_THREADS = 11;
+
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_prepare{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Database handle *)
@@ -525,6 +598,7 @@ const
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_sql{$IFDEF D}: function{$ENDIF}(pStmt: psqlite3_stmt): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_expanded_sql{$IFDEF D}: function{$ENDIF}(pStmt: psqlite3_stmt): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
@@ -537,14 +611,17 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_blob{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pointer; L: cint; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_blob64{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pointer; L: sqlite3_uint64; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_double{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: cdouble): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_int{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_int64{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: sqlite3_int64): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_null{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_text{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pansichar; L: cint; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_text16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pwidechar; L: cint; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_text64{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pansichar; L: sqlite3_uint64; D: sqlite3_destructor_type; encoding: cuchar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_value{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: psqlite3_value): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_zeroblob{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_zeroblob64{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: sqlite3_uint64): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_count{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_index{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; zName: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -630,9 +707,11 @@ const
SQLITE_UTF16LE = 2;
SQLITE_UTF16BE = 3;
SQLITE_UTF16 = 4; (* Use native byte order *)
- SQLITE_ANY = 5; (* sqlite3_create_function only *)
+ SQLITE_ANY = 5; (* Deprecated *)
SQLITE_UTF16_ALIGNED = 8; (* sqlite3_create_collation only *)
+ SQLITE_DETERMINISTIC = $800;
+
{$IFDEF SQLITE_OBSOLETE}
type
memory_alarm_cb = function(user: pointer; i64: sqlite3_int64; i: cint): pointer; cdecl;
@@ -657,6 +736,10 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_text16be{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_type{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_numeric_type{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_subtype{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): cuint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_dup{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): psqlite3_value; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_value_free{$IFDEF D}: procedure{$ENDIF}(val: psqlite3_value); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_aggregate_context{$IFDEF D}: function{$ENDIF}(ctx: psqlite3_context; nBytes: cint): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_user_data{$IFDEF D}: function{$ENDIF}(ctx: psqlite3_context): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_context_db_handle{$IFDEF D}: function{$ENDIF}(ctx: psqlite3_context): psqlite3; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -668,6 +751,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_get_auxdata{$IFDEF D}: function{$ENDIF}(ctx: psqlite3_context; N: cint): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_set_auxdata{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; N: cint; P: pointer; cb: set_auxdata_cb); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_blob{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pointer; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_blob64{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pointer; N: sqlite3_uint64; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_double{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: cdouble); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pansichar; N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error16{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -678,11 +762,13 @@ type
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_int64{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: sqlite3_int64); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_null{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pansichar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text64{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pansichar; N: sqlite3_uint64; D: sqlite3_destructor_type; encoding: cuchar); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text16{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text16le{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text16be{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_value{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: psqlite3_value); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_zeroblob{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_zeroblob{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_result_zeroblob64{$IFDEF D}: function{$ENDIF}(ctx: psqlite3_context; N: sqlite3_uint64): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
xCompare = function(user: pointer; A: cint; B: pointer; C: cint; D: pointer): cint; cdecl;
@@ -726,25 +812,39 @@ type
user: pointer;
cb: collation_needed_cb
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_key{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Database to be rekeyed *)
pKey: pointer; nKey: cint (* The key *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_key_v2{$IFDEF D}: function{$ENDIF}(
+ db: psqlite3; (* Database to be rekeyed *)
+ zDbName: pansichar; (* Name of the database *)
+ pKey: pointer; nKey: cint (* The key *)
+): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_rekey{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Database to be rekeyed *)
pKey: pointer; nKey: cint (* The new key *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_rekey_v2{$IFDEF D}: function{$ENDIF}(
+ db: psqlite3; (* Database to be rekeyed *)
+ zDbName: pansichar; (* Name of the database *)
+ pKey: pointer; nKey: cint (* The new key *)
+): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_sleep{$IFDEF D}: function{$ENDIF}(M: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$ifndef win32}
var
sqlite3_temp_directory: pansichar; cvar; external {Sqlite3Lib};
+ sqlite3_data_directory: pansichar; cvar; external {Sqlite3Lib};
{$endif}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_get_autocommit{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_db_handle{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): psqlite3; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_next_stmt{$IFDEF D}: function{$ENDIF}(db: psqlite3;stmt: psqlite3_stmt):psqlite3_stmt;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_db_filename{$IFDEF D}: function{$ENDIF}(db: psqlite3; zDbName: pansichar): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_db_readonly{$IFDEF D}: function{$ENDIF}(db: psqlite3; zDbName: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_next_stmt{$IFDEF D}: function{$ENDIF}(db: psqlite3;stmt: psqlite3_stmt):psqlite3_stmt;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
commit_callback = function(user: pointer): cint; cdecl;
@@ -757,6 +857,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_update_hook{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: update_callback; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_enable_shared_cache{$IFDEF D}: function{$ENDIF}(B: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_release_memory{$IFDEF D}: function{$ENDIF}(N: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_db_release_memory{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_soft_heap_limit{$IFDEF D}: procedure{$ENDIF}(N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_soft_heap_limit64{$IFDEF D}: function{$ENDIF}(N: int64):int64;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -780,6 +881,7 @@ type
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_enable_load_extension{$IFDEF D}: function{$ENDIF}(db: psqlite3; onoff: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_auto_extension{$IFDEF D}: function{$ENDIF}(xEntrypoint: pointer): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_cancel_auto_extension{$IFDEF D}: function{$ENDIF}(xEntrypoint: pointer): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_reset_auto_extension{$IFDEF D}: procedure{$ENDIF}(); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -819,7 +921,7 @@ type
type
psqlite3_index_constracint = ^sqlite3_index_constracint;
sqlite3_index_constracint = record
- iColumn: cint; (* Column on left-hand side of constracint *)
+ iColumn: cint; (* Column constrained. -1 for ROWID *)
op: char; (* Constracint operator *)
usable: char; (* True if this constracint is usable *)
iTermOffset: cint; (* Used cinternally - xBestIndex should ignore *)
@@ -839,29 +941,39 @@ type
psqlite3_index_info = ^sqlite3_index_info;
sqlite3_index_info = record
- (* Inputs *)
+ (* Inputs *)
nConstracint: cint; (* Number of entries in aConstracint *)
aConstracint: psqlite3_index_constracint;
nOrderBy: cint; (* Number of terms in the ORDER BY clause *)
aOrderBy: psqlite3_index_orderby;
- (* Outputs *)
+ (* Outputs *)
aConstracintUsage: psqlite3_index_constracint_usage;
- idxNum: cint; (* Number used to identify the index *)
- idxStr: pansichar; (* String; possibly obtained from sqlite3_malloc *)
- needToFreeIdxStr: cint; (* Free idxStr using sqlite3_free() if true *)
- orderByConsumed: cint; (* True if output is already ordered *)
- estimatedCost: cdouble; (* Estimated cost of using this index *)
+ idxNum: cint; (* Number used to identify the index *)
+ idxStr: pansichar; (* String; possibly obtained from sqlite3_malloc *)
+ needToFreeIdxStr: cint; (* Free idxStr using sqlite3_free() if true *)
+ orderByConsumed: cint; (* True if output is already ordered *)
+ estimatedCost: cdouble; (* Estimated cost of using this index *)
+ (* Fields below are only available in SQLite 3.8.2 and later *)
+ estimatedRows: sqlite3_int64; (* Estimated number of rows returned *)
+ (* Fields below are only available in SQLite 3.9.0 and later *)
+ idxFlags: cint ; (* Mask of SQLITE_INDEX_SCAN_* flags *)
+ (* Fields below are only available in SQLite 3.10.0 and later *)
+ colUsed: sqlite3_uint64; (* Input: Mask of columns used by statement *)
end;
const
+ SQLITE_INDEX_SCAN_UNIQUE = 1;
SQLITE_INDEX_CONSTRAINT_EQ = 2;
SQLITE_INDEX_CONSTRAINT_GT = 4;
SQLITE_INDEX_CONSTRAINT_LE = 8;
SQLITE_INDEX_CONSTRAINT_LT = 16;
SQLITE_INDEX_CONSTRAINT_GE = 32;
SQLITE_INDEX_CONSTRAINT_MATCH = 64;
+ SQLITE_INDEX_CONSTRAINT_LIKE = 65;
+ SQLITE_INDEX_CONSTRAINT_GLOB = 66;
+ SQLITE_INDEX_CONSTRAINT_REGEXP= 67;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_module{$IFDEF D}: function{$ENDIF}(
@@ -942,14 +1054,16 @@ const
SQLITE_MUTEX_STATIC_PRNG = 5; (* sqlite3_random() *)
SQLITE_MUTEX_STATIC_LRU = 6; (* lru page list *)
SQLITE_MUTEX_STATIC_LRU2 = 7; (* lru page list *)
+ SQLITE_MUTEX_STATIC_APP1 = 8; (* For use by application *)
+ SQLITE_MUTEX_STATIC_APP2 = 9; (* For use by application *)
+ SQLITE_MUTEX_STATIC_APP3 = 10; (* For use by application *)
+ SQLITE_MUTEX_STATIC_VFS1 = 11; (* For use by built-in VFS *)
+ SQLITE_MUTEX_STATIC_VFS2 = 12; (* For use by extension VFS *)
+ SQLITE_MUTEX_STATIC_VFS3 = 13; (* For use by application VFS *)
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_file_control{$IFDEF D}: function{$ENDIF}(db: psqlite3; zDbName: pansichar; op: cint; p: pointer): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_test_control{$IFDEF D}: function{$ENDIF}(op: cint; args: array of const): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_status{$IFDEF D}: function{$ENDIF}(op: cint; pcurrent:pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_db_status{$IFDEF D}: function{$ENDIF}(db : psqlite3;op: cint; pcurrent:pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_stmt_status{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt;op: cint; pcurrent:pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-
const
SQLITE_TESTCTRL_FAULT_CONFIG = 1;
SQLITE_TESTCTRL_FAULT_FAILURES = 2;
@@ -959,6 +1073,55 @@ const
SQLITE_TESTCTRL_PRNG_RESTORE = 6;
SQLITE_TESTCTRL_PRNG_RESET = 7;
SQLITE_TESTCTRL_BITVEC_TEST = 8;
+ SQLITE_TESTCTRL_FAULT_INSTALL = 9;
+ SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS = 10;
+ SQLITE_TESTCTRL_PENDING_BYTE = 11;
+ SQLITE_TESTCTRL_ASSERT = 12;
+ SQLITE_TESTCTRL_ALWAYS = 13;
+ SQLITE_TESTCTRL_RESERVE = 14;
+ SQLITE_TESTCTRL_OPTIMIZATIONS = 15;
+ SQLITE_TESTCTRL_ISKEYWORD = 16;
+ SQLITE_TESTCTRL_SCRATCHMALLOC = 17;
+ SQLITE_TESTCTRL_LOCALTIME_FAULT = 18;
+ SQLITE_TESTCTRL_EXPLAIN_STMT = 19; (* NOT USED *)
+ SQLITE_TESTCTRL_NEVER_CORRUPT = 20;
+ SQLITE_TESTCTRL_VDBE_COVERAGE = 21;
+ SQLITE_TESTCTRL_BYTEORDER = 22;
+ SQLITE_TESTCTRL_ISINIT = 23;
+ SQLITE_TESTCTRL_SORTER_MMAP = 24;
+ SQLITE_TESTCTRL_IMPOSTER = 25;
+ SQLITE_TESTCTRL_LAST = 25;
+
+
+ SQLITE_STATUS_MEMORY_USED = 0;
+ SQLITE_STATUS_PAGECACHE_USED = 1;
+ SQLITE_STATUS_PAGECACHE_OVERFLOW = 2;
+ SQLITE_STATUS_SCRATCH_USED = 3;
+ SQLITE_STATUS_SCRATCH_OVERFLOW = 4;
+ SQLITE_STATUS_MALLOC_SIZE = 5;
+ SQLITE_STATUS_PARSER_STACK = 6;
+ SQLITE_STATUS_PAGECACHE_SIZE = 7;
+ SQLITE_STATUS_SCRATCH_SIZE = 8;
+ SQLITE_STATUS_MALLOC_COUNT = 9;
+
+ SQLITE_DBSTATUS_LOOKASIDE_USED = 0;
+ SQLITE_DBSTATUS_CACHE_USED = 1;
+ SQLITE_DBSTATUS_SCHEMA_USED = 2;
+ SQLITE_DBSTATUS_STMT_USED = 3;
+ SQLITE_DBSTATUS_LOOKASIDE_HIT = 4;
+ SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE = 5;
+ SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL = 6;
+ SQLITE_DBSTATUS_CACHE_HIT = 7;
+ SQLITE_DBSTATUS_CACHE_MISS = 8;
+ SQLITE_DBSTATUS_CACHE_WRITE = 9;
+ SQLITE_DBSTATUS_DEFERRED_FKS = 10;
+ SQLITE_DBSTATUS_CACHE_USED_SHARED = 11;
+ SQLITE_DBSTATUS_MAX = 11; (* Largest defined DBSTATUS *)
+
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_status{$IFDEF D}: function{$ENDIF}(op: cint; pCurrent: pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_status64{$IFDEF D}: function{$ENDIF}(op: cint; pCurrent: psqlite3_int64; pHighwater: psqlite3_int64; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_db_status{$IFDEF D}: function{$ENDIF}(db : psqlite3;op: cint; pCurrent:pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_stmt_status{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt;op: cint; pcurrent:pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{Backup api}
@@ -984,7 +1147,17 @@ Type
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_autocheckpoint{$IFDEF D}: function{$ENDIF}(db:psqlite3;n : cint): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_checkpoint{$IFDEF D}: function{$ENDIF}(db:psqlite3;zDB: pansichar): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_checkpoint_v2{$IFDEF D}: function{$ENDIF}(db:psqlite3;zDB: pansichar;emode:cint;nLog:pcint;nCkpt:pcint): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-
+
+Const
+ SQLITE_CHECKPOINT_PASSIVE = 0; (* Do as much as possible w/o blocking *)
+ SQLITE_CHECKPOINT_FULL = 1; (* Wait for writers, then checkpoint *)
+ SQLITE_CHECKPOINT_RESTART = 2; (* Like FULL but wait for for readers *)
+ SQLITE_CHECKPOINT_TRUNCATE = 3; (* Like RESTART but also truncate WAL *)
+
+
+{String handling api}
+{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_strglob {$IFDEF D}:function{$ENDIF}(zGlob, zStr: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_strlike {$IFDEF D}:function{$ENDIF}(zGlob, zStr: pansichar; cEsc: cuint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF LOAD_DYNAMICALLY}
@@ -1022,6 +1195,7 @@ begin
pointer(sqlite3_libversion_number) := GetProcedureAddress(LibHandle,'sqlite3_libversion_number');
pointer(sqlite3_threadsafe) := GetProcedureAddress(LibHandle,'sqlite3_threadsafe');
pointer(sqlite3_close) := GetProcedureAddress(LibHandle,'sqlite3_close');
+ pointer(sqlite3_close_v2) := GetProcedureAddress(LibHandle,'sqlite3_close_v2');
pointer(sqlite3_exec) := GetProcedureAddress(LibHandle,'sqlite3_exec');
pointer(sqlite3_extended_result_codes) := GetProcedureAddress(LibHandle,'sqlite3_extended_result_codes');
pointer(sqlite3_last_insert_rowid) := GetProcedureAddress(LibHandle,'sqlite3_last_insert_rowid');
@@ -1046,21 +1220,26 @@ begin
pointer(sqlite3_extended_errcode) := GetProcedureAddress(LibHandle,'sqlite3_extended_errcode');
pointer(sqlite3_errmsg) := GetProcedureAddress(LibHandle,'sqlite3_errmsg');
pointer(sqlite3_errmsg16) := GetProcedureAddress(LibHandle,'sqlite3_errmsg16');
+ pointer(sqlite3_errstr) := GetProcedureAddress(LibHandle,'sqlite3_errstr');
pointer(sqlite3_limit) := GetProcedureAddress(LibHandle,'sqlite3_limit');
pointer(sqlite3_prepare) := GetProcedureAddress(LibHandle,'sqlite3_prepare');
pointer(sqlite3_prepare_v2) := GetProcedureAddress(LibHandle,'sqlite3_prepare_v2');
pointer(sqlite3_prepare16) := GetProcedureAddress(LibHandle,'sqlite3_prepare16');
pointer(sqlite3_prepare16_v2) := GetProcedureAddress(LibHandle,'sqlite3_prepare16_v2');
pointer(sqlite3_sql) := GetProcedureAddress(LibHandle,'sqlite3_sql');
+ pointer(sqlite3_expanded_sql) := GetProcedureAddress(LibHandle,'sqlite3_expanded_sql');
pointer(sqlite3_bind_blob) := GetProcedureAddress(LibHandle,'sqlite3_bind_blob');
+ pointer(sqlite3_bind_blob64) := GetProcedureAddress(LibHandle,'sqlite3_bind_blob64');
pointer(sqlite3_bind_double) := GetProcedureAddress(LibHandle,'sqlite3_bind_double');
pointer(sqlite3_bind_int) := GetProcedureAddress(LibHandle,'sqlite3_bind_int');
pointer(sqlite3_bind_int64) := GetProcedureAddress(LibHandle,'sqlite3_bind_int64');
pointer(sqlite3_bind_null) := GetProcedureAddress(LibHandle,'sqlite3_bind_null');
pointer(sqlite3_bind_text) := GetProcedureAddress(LibHandle,'sqlite3_bind_text');
+ pointer(sqlite3_bind_text64) := GetProcedureAddress(LibHandle,'sqlite3_bind_text64');
pointer(sqlite3_bind_text16) := GetProcedureAddress(LibHandle,'sqlite3_bind_text16');
pointer(sqlite3_bind_value) := GetProcedureAddress(LibHandle,'sqlite3_bind_value');
pointer(sqlite3_bind_zeroblob) := GetProcedureAddress(LibHandle,'sqlite3_bind_zeroblob');
+ pointer(sqlite3_bind_zeroblob64) := GetProcedureAddress(LibHandle,'sqlite3_bind_zeroblob64');
pointer(sqlite3_bind_parameter_count) := GetProcedureAddress(LibHandle,'sqlite3_bind_parameter_count');
pointer(sqlite3_bind_parameter_name) := GetProcedureAddress(LibHandle,'sqlite3_bind_parameter_name');
pointer(sqlite3_bind_parameter_index) := GetProcedureAddress(LibHandle,'sqlite3_bind_parameter_index');
@@ -1105,6 +1284,7 @@ begin
pointer(sqlite3_value_text16be) := GetProcedureAddress(LibHandle,'sqlite3_value_text16be');
pointer(sqlite3_value_type) := GetProcedureAddress(LibHandle,'sqlite3_value_type');
pointer(sqlite3_value_numeric_type) := GetProcedureAddress(LibHandle,'sqlite3_value_numeric_type');
+ pointer(sqlite3_value_subtype) := GetProcedureAddress(LibHandle,'sqlite3_value_subtype');
pointer(sqlite3_aggregate_context) := GetProcedureAddress(LibHandle,'sqlite3_aggregate_context');
pointer(sqlite3_user_data) := GetProcedureAddress(LibHandle,'sqlite3_user_data');
pointer(sqlite3_context_db_handle) := GetProcedureAddress(LibHandle,'sqlite3_context_db_handle');
@@ -1115,7 +1295,9 @@ begin
pointer(sqlite3_collation_needed) := GetProcedureAddress(LibHandle,'sqlite3_collation_needed');
pointer(sqlite3_collation_needed16) := GetProcedureAddress(LibHandle,'sqlite3_collation_needed16');
pointer(sqlite3_key) := GetProcedureAddress(LibHandle,'sqlite3_key');
+ pointer(sqlite3_key_v2) := GetProcedureAddress(LibHandle,'sqlite3_key_v2');
pointer(sqlite3_rekey) := GetProcedureAddress(LibHandle,'sqlite3_rekey');
+ pointer(sqlite3_rekey_v2) := GetProcedureAddress(LibHandle,'sqlite3_rekey_v2');
pointer(sqlite3_sleep) := GetProcedureAddress(LibHandle,'sqlite3_sleep');
pointer(sqlite3_get_autocommit) := GetProcedureAddress(LibHandle,'sqlite3_get_autocommit');
pointer(sqlite3_db_handle) := GetProcedureAddress(LibHandle,'sqlite3_db_handle');
@@ -1149,6 +1331,7 @@ begin
pointer(sqlite3_file_control) := GetProcedureAddress(LibHandle,'sqlite3_file_control');
pointer(sqlite3_test_control) := GetProcedureAddress(LibHandle,'sqlite3_test_control');
pointer(sqlite3_status) := GetProcedureAddress(LibHandle,'sqlite3_status');
+ pointer(sqlite3_status64) := GetProcedureAddress(LibHandle,'sqlite3_status64');
pointer(sqlite3_db_status) := GetProcedureAddress(LibHandle,'sqlite3_db_status');
pointer(sqlite3_stmt_status) := GetProcedureAddress(LibHandle,'sqlite3_stmt_status');
pointer(sqlite3_interrupt) := GetProcedureAddress(LibHandle,'sqlite3_interrupt');
@@ -1158,6 +1341,7 @@ begin
pointer(sqlite3_progress_handler) := GetProcedureAddress(LibHandle,'sqlite3_progress_handler');
pointer(sqlite3_set_auxdata) := GetProcedureAddress(LibHandle,'sqlite3_set_auxdata');
pointer(sqlite3_result_blob) := GetProcedureAddress(LibHandle,'sqlite3_result_blob');
+ pointer(sqlite3_result_blob64) := GetProcedureAddress(LibHandle,'sqlite3_result_blob64');
pointer(sqlite3_result_double) := GetProcedureAddress(LibHandle,'sqlite3_result_double');
pointer(sqlite3_result_error) := GetProcedureAddress(LibHandle,'sqlite3_result_error');
pointer(sqlite3_result_error16) := GetProcedureAddress(LibHandle,'sqlite3_result_error16');
@@ -1168,11 +1352,13 @@ begin
pointer(sqlite3_result_int64) := GetProcedureAddress(LibHandle,'sqlite3_result_int64');
pointer(sqlite3_result_null) := GetProcedureAddress(LibHandle,'sqlite3_result_null');
pointer(sqlite3_result_text) := GetProcedureAddress(LibHandle,'sqlite3_result_text');
+ pointer(sqlite3_result_text64) := GetProcedureAddress(LibHandle,'sqlite3_result_text64');
pointer(sqlite3_result_text16) := GetProcedureAddress(LibHandle,'sqlite3_result_text16');
pointer(sqlite3_result_text16le) := GetProcedureAddress(LibHandle,'sqlite3_result_text16le');
pointer(sqlite3_result_text16be) := GetProcedureAddress(LibHandle,'sqlite3_result_text16be');
pointer(sqlite3_result_value) := GetProcedureAddress(LibHandle,'sqlite3_result_value');
pointer(sqlite3_result_zeroblob) := GetProcedureAddress(LibHandle,'sqlite3_result_zeroblob');
+ pointer(sqlite3_result_zeroblob64) := GetProcedureAddress(LibHandle,'sqlite3_result_zeroblob64');
pointer(sqlite3_soft_heap_limit) := GetProcedureAddress(LibHandle,'sqlite3_soft_heap_limit');
pointer(sqlite3_soft_heap_limit64) := GetProcedureAddress(LibHandle,'sqlite3_soft_heap_limit64');
pointer(sqlite3_reset_auto_extension) := GetProcedureAddress(LibHandle,'sqlite3_reset_auto_extension');
@@ -1190,7 +1376,7 @@ begin
pointer(sqlite3_wal_autocheckpoint) := GetProcedureAddress(LibHandle,'sqlite3_wal_autocheckpoint');
pointer(sqlite3_wal_checkpoint) := GetProcedureAddress(LibHandle,'sqlite3_wal_checkpoint');
pointer(sqlite3_wal_checkpoint_v2) := GetProcedureAddress(LibHandle,'sqlite3_wal_checkpoint_v2');
-
+ pointer(sqlite3_strlike) := GetProcedureAddress(LibHandle,'sqlite3_strlike');
pointer(sqlite3_initialize) := GetProcedureAddress(LibHandle,'sqlite3_initialize');
pointer(sqlite3_shutdown) := GetProcedureAddress(LibHandle,'sqlite3_shutdown');