aboutsummaryrefslogtreecommitdiff
path: root/lib/sqlite_linux_amd64.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlite_linux_amd64.go')
-rw-r--r--lib/sqlite_linux_amd64.go10719
1 files changed, 6487 insertions, 4232 deletions
diff --git a/lib/sqlite_linux_amd64.go b/lib/sqlite_linux_amd64.go
index 8b999e0..3c40c14 100644
--- a/lib/sqlite_linux_amd64.go
+++ b/lib/sqlite_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo -DSQLITE_PRIVATE= -ccgo-export-defines -ccgo-export-externs X -ccgo-export-fields F -ccgo-export-typedefs -ccgo-pkgname sqlite3 -o lib/sqlite_linux_amd64.go testdata/sqlite-amalgamation-3320300/sqlite3.c -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_PAGE_SIZE=1024 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_DQS=0 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_MUTEX_APPDEF=1 -DSQLITE_MUTEX_NOOP -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_UTF16 -DSQLITE_TEST -DSQLITE_THREADSAFE=2 -ccgo-long-double-is-double', DO NOT EDIT.
+// Code generated by 'ccgo -DSQLITE_PRIVATE= -ccgo-export-defines -ccgo-export-externs X -ccgo-export-fields F -ccgo-export-typedefs -ccgo-pkgname sqlite3 -o lib/sqlite_linux_amd64.go testdata/sqlite-amalgamation-3320300/sqlite3.c -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_CORE -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_PAGE_SIZE=1024 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_DQS=0 -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_ENABLE_DESERIALIZE -DSQLITE_ENABLE_STMTVTAB -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_MAX_MMAP_SIZE=8589934592 -DSQLITE_MUTEX_APPDEF=1 -DSQLITE_MUTEX_NOOP -DSQLITE_NO_SYNC=1 -DSQLITE_OS_UNIX=1 -DSQLITE_SERIES_CONSTRAINT_VERIFY=1 -DSQLITE_SERVER=1 -DSQLITE_TEMP_STORE=1 -DSQLITE_TEST -DSQLITE_THREADSAFE=1 -ccgo-long-double-is-double', DO NOT EDIT.
package sqlite3
@@ -1250,7 +1250,11 @@ const (
SQLITE_ECEL_OMITREF = 0x08
SQLITE_ECEL_REF = 0x04
SQLITE_EMPTY = 16
+ SQLITE_ENABLE_BYTECODE_VTAB = 1
+ SQLITE_ENABLE_DBPAGE_VTAB = 1
+ SQLITE_ENABLE_DESERIALIZE = 1
SQLITE_ENABLE_LOCKING_STYLE = 0
+ SQLITE_ENABLE_STMTVTAB = 1
SQLITE_ENABLE_UNLOCK_NOTIFY = 1
SQLITE_ERROR = 1
SQLITE_ERROR_MISSING_COLLSEQ = 257
@@ -1342,6 +1346,7 @@ const (
SQLITE_GroupByOrder = 0x0004
SQLITE_HASH_H = 0
SQLITE_HAVE_OS_TRACE = 0
+ SQLITE_HAVE_ZLIB = 1
SQLITE_IDXTYPE_APPDEF = 0
SQLITE_IDXTYPE_IPK = 3
SQLITE_IDXTYPE_PRIMARYKEY = 2
@@ -1466,7 +1471,7 @@ const (
SQLITE_MAX_LENGTH = 1000000000
SQLITE_MAX_LIKE_PATTERN_LENGTH = 50000
SQLITE_MAX_MEMORY = 0
- SQLITE_MAX_MMAP_SIZE = 0x7fff0000
+ SQLITE_MAX_MMAP_SIZE = 8589934592
SQLITE_MAX_PAGE_COUNT = 1073741823
SQLITE_MAX_PAGE_SIZE = 65536
SQLITE_MAX_PMASZ = 536870912
@@ -1515,6 +1520,7 @@ const (
SQLITE_NOTICE_RECOVER_WAL = 283
SQLITE_NOTNULL = 0x90
SQLITE_NOWILDCARDMATCH = 2
+ SQLITE_NO_SYNC = 1
SQLITE_NO_TSAN = 0
SQLITE_NULL = 5
SQLITE_NULLEQ = 0x80
@@ -1527,8 +1533,6 @@ const (
SQLITE_OK = 0
SQLITE_OK_LOAD_PERMANENTLY = 256
SQLITE_OK_SYMLINK = 512
- SQLITE_OMIT_PROGRESS_CALLBACK = 1
- SQLITE_OMIT_UTF16 = 1
SQLITE_OPEN_AUTOPROXY = 0x00000020
SQLITE_OPEN_CREATE = 0x00000004
SQLITE_OPEN_DELETEONCLOSE = 0x00000008
@@ -1550,7 +1554,6 @@ const (
SQLITE_OPEN_TRANSIENT_DB = 0x00000400
SQLITE_OPEN_URI = 0x00000040
SQLITE_OPEN_WAL = 0x00080000
- SQLITE_OS_OTHER = 0
SQLITE_OS_SETUP_H = 0
SQLITE_OS_UNIX = 1
SQLITE_OS_WIN = 0
@@ -1606,6 +1609,8 @@ const (
SQLITE_SCHEMA = 17
SQLITE_SELECT = 21
SQLITE_SERIALIZE_NOCOPY = 0x001
+ SQLITE_SERIES_CONSTRAINT_VERIFY = 1
+ SQLITE_SERVER = 1
SQLITE_SET_LOCKPROXYFILE = 3
SQLITE_SHM_EXCLUSIVE = 8
SQLITE_SHM_LOCK = 2
@@ -1682,7 +1687,7 @@ const (
SQLITE_TESTCTRL_SORTER_MMAP = 24
SQLITE_TESTCTRL_VDBE_COVERAGE = 21
SQLITE_TEXT = 3
- SQLITE_THREADSAFE = 2
+ SQLITE_THREADSAFE = 1
SQLITE_TOKEN_KEYWORD = 0x2
SQLITE_TOKEN_QUOTED = 0x1
SQLITE_TOOBIG = 18
@@ -1746,6 +1751,17 @@ const (
STDERR_FILENO = 2
STDIN_FILENO = 0
STDOUT_FILENO = 1
+ STMT_COLUMN_BUSY = 3
+ STMT_COLUMN_MEM = 10
+ STMT_COLUMN_NAIDX = 6
+ STMT_COLUMN_NCOL = 1
+ STMT_COLUMN_NSCAN = 4
+ STMT_COLUMN_NSORT = 5
+ STMT_COLUMN_NSTEP = 7
+ STMT_COLUMN_REPREP = 8
+ STMT_COLUMN_RO = 2
+ STMT_COLUMN_RUN = 9
+ STMT_COLUMN_SQL = 0
S_IFBLK = 24576
S_IFCHR = 8192
S_IFDIR = 16384
@@ -2426,40 +2442,18 @@ const (
EtTOKEN = 11
Linux = 1
Math_errhandling = 3
- MemJM = 0
Sqlite3ParserARG_FETCH = 0
Sqlite3ParserARG_PARAM = 0
Sqlite3ParserARG_PDECL = 0
Sqlite3ParserARG_SDECL = 0
Sqlite3ParserARG_STORE = 0
Sqlite3Parser_ENGINEALWAYSONSTACK = 1
- Sqlite3_bind_text16 = 0
- Sqlite3_collation_needed16 = 0
Sqlite3_column_database_name = 0
Sqlite3_column_database_name16 = 0
- Sqlite3_column_decltype16 = 0
- Sqlite3_column_name16 = 0
Sqlite3_column_origin_name = 0
Sqlite3_column_origin_name16 = 0
Sqlite3_column_table_name = 0
Sqlite3_column_table_name16 = 0
- Sqlite3_column_text16 = 0
- Sqlite3_complete16 = 0
- Sqlite3_create_collation16 = 0
- Sqlite3_create_function16 = 0
- Sqlite3_errmsg16 = 0
- Sqlite3_open16 = 0
- Sqlite3_prepare16 = 0
- Sqlite3_prepare16_v2 = 0
- Sqlite3_prepare16_v3 = 0
- Sqlite3_progress_handler = 0
- Sqlite3_result_error16 = 0
- Sqlite3_result_text16 = 0
- Sqlite3_result_text16be = 0
- Sqlite3_result_text16le = 0
- Sqlite3_value_text16 = 0
- Sqlite3_value_text16be = 0
- Sqlite3_value_text16le = 0
TkCREATE = 4
TkEND = 7
TkEXPLAIN = 3
@@ -2530,19 +2524,22 @@ type Wchar_t = int32 /* <builtin>:15:24 */
// This array looks large, but in a typical installation actually uses
// only a handful of compile-time options, so most times this array is usually
// rather short and uses little memory space.
-var sqlite3azCompileOpt = [10]uintptr{
+var sqlite3azCompileOpt = [13]uintptr{
// BEGIN CODE GENERATED BY tool/mkctime.tcl
ts, /* "DEFAULT_PAGE_SIZ..." */
ts + 23, /* "DEFAULT_WAL_SYNC..." */
- ts + 49, /* "ENABLE_UNLOCK_NO..." */
- ts + 70, /* "LIKE_DOESNT_MATC..." */
- ts + 94, /* "MAX_EXPR_DEPTH=0" */
- ts + 111, /* "MUTEX_NOOP" */
- ts + 122, /* "OMIT_PROGRESS_CA..." */
- ts + 145, /* "OMIT_UTF16" */
- ts + 156, /* "TEST" */
- ts + 161, /* "THREADSAFE=2" */
+ ts + 49, /* "ENABLE_BYTECODE_..." */
+ ts + 70, /* "ENABLE_STMTVTAB" */
+ ts + 86, /* "ENABLE_UNLOCK_NO..." */
+ ts + 107, /* "LIKE_DOESNT_MATC..." */
+ ts + 131, /* "MAX_EXPR_DEPTH=0" */
+ ts + 148, /* "MAX_MMAP_SIZE=85..." */
+ ts + 173, /* "MUTEX_NOOP" */
+ ts + 184, /* "NO_SYNC" */
+ ts + 192, /* "TEMP_STORE=1" */
+ ts + 205, /* "TEST" */
+ ts + 210, /* "THREADSAFE=1" */
// END CODE GENERATED BY tool/mkctime.tcl
} /* sqlite3.c:72:19 */
@@ -2648,7 +2645,7 @@ type Va_list = uintptr /* stdarg.h:99:24 */
// of the hash might be different from [SQLITE_SOURCE_ID].)^
//
// See also: [sqlite_version()] and [sqlite_source_id()].
-var Xsqlite3_version = *(*[7]int8)(unsafe.Pointer(ts + 174 /* "3.32.3" */)) /* sqlite3.c:1201:23 */
+var Xsqlite3_version = *(*[7]int8)(unsafe.Pointer(ts + 223 /* "3.32.3" */)) /* sqlite3.c:1201:23 */
// CAPI3REF: Database Connection Handle
// KEYWORDS: {database connection} {database connections}
@@ -2738,6 +2735,9 @@ type sqlite3 = struct {
Flookaside Lookaside
FxAuth Sqlite3_xauth
FpAuthArg uintptr
+ FxProgress uintptr
+ FpProgressArg uintptr
+ FnProgressOps uint32
FnVTrans int32
FaModule Hash
FpVtabCtx uintptr
@@ -7828,6 +7828,7 @@ type Sqlite3Config = struct {
FpInitMutex uintptr
FxLog uintptr
FpLogArg uintptr
+ FmxMemdbSize Sqlite3_int64
FxTestCallback uintptr
FbLocaltimeFault int32
FiOnceResetThreshold int32
@@ -8139,7 +8140,7 @@ var Xsqlite3CtypeMap = [256]uint8{
// the SQLite library.
var Xsqlite3Config = Sqlite3Config{FbMemstat: 0, FbCoreMutex: // bMemstat
U8(1), FbFullMutex:// bCoreMutex
-(U8(crt.Bool32(2 == 1))), FbOpenUri:// bFullMutex
+(U8(crt.Bool32(1 == 1))), FbOpenUri:// bFullMutex
U8(0), FbUseCis:// bOpenUri
U8(1), FbSmallMalloc:// bUseCis
U8(0), FbExtraSchemaChecks:// bSmallMalloc
@@ -8155,7 +8156,7 @@ uintptr(0), FnHeap:// pHeap
0, FmnReq:// nHeap
0, FmxReq: 0, FszMmap: // mnHeap, mxHeap
int64(0), FmxMmap:// szMmap
-int64(0x7fff0000), FpPage:// mxMmap
+8589934592, FpPage:// mxMmap
uintptr(0), FszPage:// pPage
0, FnPage:// szPage
20, FmxParserStack:// nPage
@@ -8171,7 +8172,8 @@ U32(250), FisInit:// szPma
0, FpInitMutex:// nRefInitMutex
uintptr(0), FxLog:// pInitMutex
uintptr(0), FpLogArg:// xLog
-uintptr(0), FxTestCallback:// pLogArg
+uintptr(0), FmxMemdbSize:// pLogArg
+int64(1073741824), FxTestCallback:// mxMemdbSize
uintptr(0), FbLocaltimeFault:// xTestCallback
0, FiOnceResetThreshold:// bLocaltimeFault
0x7ffffffe, FszSorterRef:// iOnceResetThreshold
@@ -8210,7 +8212,7 @@ var Xsqlite3PendingByte int32 = 0x40000000 /* sqlite3.c:20628:20 */
var Xsqlite3OpcodeProperty = [176]uint8{ /* 0 */ uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x00), uint8(0x10) /* 8 */, uint8(0x00), uint8(0x01), uint8(0x00), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x03), uint8(0x03) /* 16 */, uint8(0x01), uint8(0x01), uint8(0x03), uint8(0x12), uint8(0x03), uint8(0x01), uint8(0x09), uint8(0x09) /* 24 */, uint8(0x09), uint8(0x09), uint8(0x01), uint8(0x09), uint8(0x09), uint8(0x09), uint8(0x09), uint8(0x09) /* 32 */, uint8(0x09), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01) /* 40 */, uint8(0x01), uint8(0x01), uint8(0x23), uint8(0x26), uint8(0x26), uint8(0x0b), uint8(0x01), uint8(0x01) /* 48 */, uint8(0x03), uint8(0x03), uint8(0x03), uint8(0x03), uint8(0x0b), uint8(0x0b), uint8(0x0b), uint8(0x0b) /* 56 */, uint8(0x0b), uint8(0x0b), uint8(0x01), uint8(0x03), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x00) /* 64 */, uint8(0x00), uint8(0x02), uint8(0x02), uint8(0x08), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x10) /* 72 */, uint8(0x10), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x10) /* 80 */, uint8(0x00), uint8(0x00), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x00), uint8(0x00), uint8(0x12) /* 88 */, uint8(0x20), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x00) /* 96 */, uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x26), uint8(0x26), uint8(0x26) /* 104 */, uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x00) /* 112 */, uint8(0x12), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x10) /* 120 */, uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x10) /* 128 */, uint8(0x00), uint8(0x00), uint8(0x04), uint8(0x04), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x00) /* 136 */, uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00) /* 144 */, uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x06), uint8(0x10), uint8(0x00), uint8(0x10), uint8(0x04) /* 152 */, uint8(0x1a), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00) /* 160 */, uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00) /* 168 */, uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00)} /* sqlite3.c:20638:36 */
// Name of the default collating sequence
-var Xsqlite3StrBINARY = *(*[7]int8)(unsafe.Pointer(ts + 181 /* "BINARY" */)) /* sqlite3.c:20643:27 */
+var Xsqlite3StrBINARY = *(*[7]int8)(unsafe.Pointer(ts + 230 /* "BINARY" */)) /* sqlite3.c:20643:27 */
//************* End of global.c *********************************************
//************* Begin file status.c *****************************************
@@ -9259,7 +9261,7 @@ __6:
__4:
;
zDate++
- if !(getDigits(tls, zDate, ts+188 /* "20b:20e" */, crt.VaList(bp, bp+16 /* &nHr */, bp+20 /* &nMn */)) != 2) {
+ if !(getDigits(tls, zDate, ts+237 /* "20b:20e" */, crt.VaList(bp, bp+16 /* &nHr */, bp+20 /* &nMn */)) != 2) {
goto __9
}
return 1
@@ -9296,13 +9298,13 @@ func parseHhMmSs(tls *crt.TLS, zDate uintptr, p uintptr) int32 { /* sqlite3.c:21
// var s int32 at bp+32, 4
var ms float64 = 0.0
- if getDigits(tls, zDate, ts+196 /* "20c:20e" */, crt.VaList(bp, bp+24 /* &h */, bp+28 /* &m */)) != 2 {
+ if getDigits(tls, zDate, ts+245 /* "20c:20e" */, crt.VaList(bp, bp+24 /* &h */, bp+28 /* &m */)) != 2 {
return 1
}
zDate += uintptr(5)
if int32(*(*int8)(unsafe.Pointer(zDate))) == ':' {
zDate++
- if getDigits(tls, zDate, ts+204 /* "20e" */, crt.VaList(bp+16, bp+32 /* &s */)) != 1 {
+ if getDigits(tls, zDate, ts+253 /* "20e" */, crt.VaList(bp+16, bp+32 /* &s */)) != 1 {
return 1
}
zDate += uintptr(2)
@@ -9421,7 +9423,7 @@ func parseYyyyMmDd(tls *crt.TLS, zDate uintptr, p uintptr) int32 { /* sqlite3.c:
} else {
neg = 0
}
- if getDigits(tls, zDate, ts+208 /* "40f-21a-21d" */, crt.VaList(bp, bp+24 /* &Y */, bp+28 /* &M */, bp+32 /* &D */)) != 3 {
+ if getDigits(tls, zDate, ts+257 /* "40f-21a-21d" */, crt.VaList(bp, bp+24 /* &Y */, bp+28 /* &M */, bp+32 /* &D */)) != 3 {
return 1
}
zDate += uintptr(10)
@@ -9501,7 +9503,7 @@ func parseDateOrTime(tls *crt.TLS, context uintptr, zDate uintptr, p uintptr) in
return 0
} else if parseHhMmSs(tls, zDate, p) == 0 {
return 0
- } else if (Xsqlite3StrICmp(tls, zDate, ts+220 /* "now" */) == 0) && (Xsqlite3NotPureFunc(tls, context) != 0) {
+ } else if (Xsqlite3StrICmp(tls, zDate, ts+269 /* "now" */) == 0) && (Xsqlite3NotPureFunc(tls, context) != 0) {
return setDateTimeToCurrent(tls, context, p)
} else if Xsqlite3AtoF(tls, zDate, bp /* &r */, Xsqlite3Strlen30(tls, zDate), uint8(1)) > 0 {
setRawDateNumber(tls, p, *(*float64)(unsafe.Pointer(bp /* r */)))
@@ -9683,7 +9685,7 @@ func localtimeOffset(tls *crt.TLS, p uintptr, pCtx uintptr, pRc uintptr) Sqlite3
computeJD(tls, bp+56 /* &x */)
*(*Time_t)(unsafe.Pointer(bp + 104 /* t */)) = (Time_t(((*DateTime)(unsafe.Pointer(bp+56 /* &x */)).FiJD / int64(1000)) - (int64(21086676) * int64(10000))))
if osLocaltime(tls, bp+104 /* &t */, bp /* &sLocal */) != 0 {
- Xsqlite3_result_error(tls, pCtx, ts+224 /* "local time unava..." */, -1)
+ Xsqlite3_result_error(tls, pCtx, ts+273 /* "local time unava..." */, -1)
*(*int32)(unsafe.Pointer(pRc)) = 1
return int64(0)
}
@@ -9717,12 +9719,12 @@ var aXformType = [6]struct {
FrLimit float64
FrXform float64
}{
- {FeType: U8(0), FnName: U8(6), FzName: ts + 247 /* "second" */, FrLimit: 464269060800.0, FrXform: 1000.0},
- {FeType: U8(0), FnName: U8(6), FzName: ts + 254 /* "minute" */, FrLimit: 7737817680.0, FrXform: 60000.0},
- {FeType: U8(0), FnName: U8(4), FzName: ts + 261 /* "hour" */, FrLimit: 128963628.0, FrXform: 3600000.0},
- {FeType: U8(0), FnName: U8(3), FzName: ts + 266 /* "day" */, FrLimit: 5373485.0, FrXform: 86400000.0},
- {FeType: U8(1), FnName: U8(5), FzName: ts + 270 /* "month" */, FrLimit: 176546.0, FrXform: 2592000000.0},
- {FeType: U8(2), FnName: U8(4), FzName: ts + 276 /* "year" */, FrLimit: 14713.0, FrXform: 31536000000.0},
+ {FeType: U8(0), FnName: U8(6), FzName: ts + 296 /* "second" */, FrLimit: 464269060800.0, FrXform: 1000.0},
+ {FeType: U8(0), FnName: U8(6), FzName: ts + 303 /* "minute" */, FrLimit: 7737817680.0, FrXform: 60000.0},
+ {FeType: U8(0), FnName: U8(4), FzName: ts + 310 /* "hour" */, FrLimit: 128963628.0, FrXform: 3600000.0},
+ {FeType: U8(0), FnName: U8(3), FzName: ts + 315 /* "day" */, FrLimit: 5373485.0, FrXform: 86400000.0},
+ {FeType: U8(1), FnName: U8(5), FzName: ts + 319 /* "month" */, FrLimit: 176546.0, FrXform: 2592000000.0},
+ {FeType: U8(2), FnName: U8(4), FzName: ts + 325 /* "year" */, FrLimit: 14713.0, FrXform: 31536000000.0},
} /* sqlite3.c:22292:3 */
// Process a modifier to a date-time stamp. The modifiers are
@@ -9761,7 +9763,7 @@ func parseModifier(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, p uintptr) in
//
// Assuming the current time value is UTC (a.k.a. GMT), shift it to
// show local time.
- if (Xsqlite3_stricmp(tls, z, ts+281 /* "localtime" */) == 0) && (Xsqlite3NotPureFunc(tls, pCtx) != 0) {
+ if (Xsqlite3_stricmp(tls, z, ts+330 /* "localtime" */) == 0) && (Xsqlite3NotPureFunc(tls, pCtx) != 0) {
computeJD(tls, p)
*(*Sqlite3_int64)(unsafe.Pointer(p /* &.iJD */)) += (localtimeOffset(tls, p, pCtx, bp /* &rc */))
clearYMD_HMS_TZ(tls, p)
@@ -9774,7 +9776,7 @@ func parseModifier(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, p uintptr) in
//
// Treat the current value of p->s as the number of
// seconds since 1970. Convert to a real julian day number.
- if (Xsqlite3_stricmp(tls, z, ts+291 /* "unixepoch" */) == 0) && ((*DateTime)(unsafe.Pointer(p)).FrawS != 0) {
+ if (Xsqlite3_stricmp(tls, z, ts+340 /* "unixepoch" */) == 0) && ((*DateTime)(unsafe.Pointer(p)).FrawS != 0) {
*(*float64)(unsafe.Pointer(bp + 8 /* r */)) = (((*DateTime)(unsafe.Pointer(p)).Fs * 1000.0) + 210866760000000.0)
if (*(*float64)(unsafe.Pointer(bp + 8 /* r */)) >= 0.0) && (*(*float64)(unsafe.Pointer(bp + 8 /* r */)) < 464269060800000.0) {
clearYMD_HMS_TZ(tls, p)
@@ -9783,7 +9785,7 @@ func parseModifier(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, p uintptr) in
(*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
*(*int32)(unsafe.Pointer(bp /* rc */)) = 0
}
- } else if (Xsqlite3_stricmp(tls, z, ts+301 /* "utc" */) == 0) && (Xsqlite3NotPureFunc(tls, pCtx) != 0) {
+ } else if (Xsqlite3_stricmp(tls, z, ts+350 /* "utc" */) == 0) && (Xsqlite3NotPureFunc(tls, pCtx) != 0) {
if int32((*DateTime)(unsafe.Pointer(p)).FtzSet) == 0 {
var c1 Sqlite3_int64
computeJD(tls, p)
@@ -9807,7 +9809,7 @@ func parseModifier(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, p uintptr) in
// Move the date to the same time on the next occurrence of
// weekday N where 0==Sunday, 1==Monday, and so forth. If the
// date is already on the appropriate weekday, this is a no-op.
- if ((((Xsqlite3_strnicmp(tls, z, ts+305 /* "weekday " */, 8) == 0) &&
+ if ((((Xsqlite3_strnicmp(tls, z, ts+354 /* "weekday " */, 8) == 0) &&
(Xsqlite3AtoF(tls, (z+uintptr(8)), bp+8 /* &r */, Xsqlite3Strlen30(tls, (z+uintptr(8))), uint8(1)) > 0)) &&
((float64(crt.AssignInt32(&n, int32(*(*float64)(unsafe.Pointer(bp + 8 /* r */)))))) == *(*float64)(unsafe.Pointer(bp + 8 /* r */)))) && (n >= 0)) && (*(*float64)(unsafe.Pointer(bp + 8 /* r */)) < float64(7)) {
var Z Sqlite3_int64
@@ -9831,7 +9833,7 @@ func parseModifier(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, p uintptr) in
//
// Move the date backwards to the beginning of the current day,
// or month or year.
- if Xsqlite3_strnicmp(tls, z, ts+314 /* "start of " */, 9) != 0 {
+ if Xsqlite3_strnicmp(tls, z, ts+363 /* "start of " */, 9) != 0 {
break
}
if (!(int32((*DateTime)(unsafe.Pointer(p)).FvalidJD) != 0) && !(int32((*DateTime)(unsafe.Pointer(p)).FvalidYMD) != 0)) && !(int32((*DateTime)(unsafe.Pointer(p)).FvalidHMS) != 0) {
@@ -9845,14 +9847,14 @@ func parseModifier(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, p uintptr) in
(*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
(*DateTime)(unsafe.Pointer(p)).FvalidTZ = int8(0)
(*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
- if Xsqlite3_stricmp(tls, z, ts+270 /* "month" */) == 0 {
+ if Xsqlite3_stricmp(tls, z, ts+319 /* "month" */) == 0 {
(*DateTime)(unsafe.Pointer(p)).FD = 1
*(*int32)(unsafe.Pointer(bp /* rc */)) = 0
- } else if Xsqlite3_stricmp(tls, z, ts+276 /* "year" */) == 0 {
+ } else if Xsqlite3_stricmp(tls, z, ts+325 /* "year" */) == 0 {
(*DateTime)(unsafe.Pointer(p)).FM = 1
(*DateTime)(unsafe.Pointer(p)).FD = 1
*(*int32)(unsafe.Pointer(bp /* rc */)) = 0
- } else if Xsqlite3_stricmp(tls, z, ts+266 /* "day" */) == 0 {
+ } else if Xsqlite3_stricmp(tls, z, ts+315 /* "day" */) == 0 {
*(*int32)(unsafe.Pointer(bp /* rc */)) = 0
}
break
@@ -10064,7 +10066,7 @@ func datetimeFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /*
// var zBuf [100]int8 at bp+96, 100
computeYMD_HMS(tls, bp+48 /* &x */)
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([100]int8{})), bp+96 /* &zBuf[0] */, ts+324, /* "%04d-%02d-%02d %..." */
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([100]int8{})), bp+96 /* &zBuf[0] */, ts+373, /* "%04d-%02d-%02d %..." */
crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+48 /* &x */)).FY, (*DateTime)(unsafe.Pointer(bp+48 /* &x */)).FM, (*DateTime)(unsafe.Pointer(bp+48 /* &x */)).FD, (*DateTime)(unsafe.Pointer(bp+48 /* &x */)).Fh, (*DateTime)(unsafe.Pointer(bp+48 /* &x */)).Fm, int32((*DateTime)(unsafe.Pointer(bp+48 /* &x */)).Fs)))
Xsqlite3_result_text(tls, context, bp+96 /* &zBuf[0] */, -1, crt.UintptrFromInt32(-1))
}
@@ -10083,7 +10085,7 @@ func timeFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqli
// var zBuf [100]int8 at bp+72, 100
computeHMS(tls, bp+24 /* &x */)
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([100]int8{})), bp+72 /* &zBuf[0] */, ts+354 /* "%02d:%02d:%02d" */, crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).Fh, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).Fm, int32((*DateTime)(unsafe.Pointer(bp+24 /* &x */)).Fs)))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([100]int8{})), bp+72 /* &zBuf[0] */, ts+403 /* "%02d:%02d:%02d" */, crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).Fh, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).Fm, int32((*DateTime)(unsafe.Pointer(bp+24 /* &x */)).Fs)))
Xsqlite3_result_text(tls, context, bp+72 /* &zBuf[0] */, -1, crt.UintptrFromInt32(-1))
}
}
@@ -10101,7 +10103,7 @@ func dateFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqli
// var zBuf [100]int8 at bp+72, 100
computeYMD(tls, bp+24 /* &x */)
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([100]int8{})), bp+72 /* &zBuf[0] */, ts+369 /* "%04d-%02d-%02d" */, crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).FY, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).FM, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).FD))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([100]int8{})), bp+72 /* &zBuf[0] */, ts+418 /* "%04d-%02d-%02d" */, crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).FY, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).FM, (*DateTime)(unsafe.Pointer(bp+24 /* &x */)).FD))
Xsqlite3_result_text(tls, context, bp+72 /* &zBuf[0] */, -1, crt.UintptrFromInt32(-1))
}
}
@@ -10227,7 +10229,7 @@ __3:
i++
switch int32(*(*int8)(unsafe.Pointer(zFmt + uintptr(i)))) {
case 'd':
- Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+384 /* "%02d" */, crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FD))
+ Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+433 /* "%02d" */, crt.VaList(bp, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FD))
j = j + (uint64(2))
break
fallthrough
@@ -10237,13 +10239,13 @@ __3:
if s > 59.999 {
s = 59.999
}
- Xsqlite3_snprintf(tls, 7, (z + uintptr(j)), ts+389 /* "%06.3f" */, crt.VaList(bp+8, s))
+ Xsqlite3_snprintf(tls, 7, (z + uintptr(j)), ts+438 /* "%06.3f" */, crt.VaList(bp+8, s))
j = j + (Size_t(Xsqlite3Strlen30(tls, (z + uintptr(j)))))
break
}
fallthrough
case 'H':
- Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+384 /* "%02d" */, crt.VaList(bp+16, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).Fh))
+ Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+433 /* "%02d" */, crt.VaList(bp+16, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).Fh))
j = j + (uint64(2))
break
fallthrough
@@ -10261,10 +10263,10 @@ __3:
if int32(*(*int8)(unsafe.Pointer(zFmt + uintptr(i)))) == 'W' {
var wd int32 // 0=Monday, 1=Tuesday, ... 6=Sunday
wd = (int32((((*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FiJD + int64(43200000)) / int64(86400000)) % int64(7)))
- Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+384 /* "%02d" */, crt.VaList(bp+24, (((nDay+7)-wd)/7)))
+ Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+433 /* "%02d" */, crt.VaList(bp+24, (((nDay+7)-wd)/7)))
j = j + (uint64(2))
} else {
- Xsqlite3_snprintf(tls, 4, (z + uintptr(j)), ts+396 /* "%03d" */, crt.VaList(bp+32, (nDay+1)))
+ Xsqlite3_snprintf(tls, 4, (z + uintptr(j)), ts+445 /* "%03d" */, crt.VaList(bp+32, (nDay+1)))
j = j + (uint64(3))
}
break
@@ -10272,31 +10274,31 @@ __3:
fallthrough
case 'J':
{
- Xsqlite3_snprintf(tls, 20, (z + uintptr(j)), ts+401 /* "%.16g" */, crt.VaList(bp+40, (float64((*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FiJD)/86400000.0)))
+ Xsqlite3_snprintf(tls, 20, (z + uintptr(j)), ts+450 /* "%.16g" */, crt.VaList(bp+40, (float64((*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FiJD)/86400000.0)))
j = j + (Size_t(Xsqlite3Strlen30(tls, (z + uintptr(j)))))
break
}
fallthrough
case 'm':
- Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+384 /* "%02d" */, crt.VaList(bp+48, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FM))
+ Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+433 /* "%02d" */, crt.VaList(bp+48, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FM))
j = j + (uint64(2))
break
fallthrough
case 'M':
- Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+384 /* "%02d" */, crt.VaList(bp+56, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).Fm))
+ Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+433 /* "%02d" */, crt.VaList(bp+56, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).Fm))
j = j + (uint64(2))
break
fallthrough
case 's':
{
- Xsqlite3_snprintf(tls, 30, (z + uintptr(j)), ts+407, /* "%lld" */
+ Xsqlite3_snprintf(tls, 30, (z + uintptr(j)), ts+456, /* "%lld" */
crt.VaList(bp+64, (((*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FiJD/int64(1000))-(int64(21086676)*int64(10000)))))
j = j + (Size_t(Xsqlite3Strlen30(tls, (z + uintptr(j)))))
break
}
fallthrough
case 'S':
- Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+384 /* "%02d" */, crt.VaList(bp+72, int32((*DateTime)(unsafe.Pointer(bp+88 /* &x */)).Fs)))
+ Xsqlite3_snprintf(tls, 3, (z + uintptr(j)), ts+433 /* "%02d" */, crt.VaList(bp+72, int32((*DateTime)(unsafe.Pointer(bp+88 /* &x */)).Fs)))
j = j + (uint64(2))
break
fallthrough
@@ -10308,7 +10310,7 @@ __3:
fallthrough
case 'Y':
{
- Xsqlite3_snprintf(tls, 5, (z + uintptr(j)), ts+412 /* "%04d" */, crt.VaList(bp+80, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FY))
+ Xsqlite3_snprintf(tls, 5, (z + uintptr(j)), ts+461 /* "%04d" */, crt.VaList(bp+80, (*DateTime)(unsafe.Pointer(bp+88 /* &x */)).FY))
j = j + (Size_t(Xsqlite3Strlen30(tls, (z + uintptr(j)))))
break
}
@@ -10364,14 +10366,14 @@ func Xsqlite3RegisterDateTimeFunctions(tls *crt.TLS) { /* sqlite3.c:22900:21: */
}
var aDateTimeFuncs = [8]FuncDef{
- {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 417 /* "julianday" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 427 /* "date" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 432 /* "time" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 437 /* "datetime" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 446 /* "strftime" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 455 /* "current_time" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 468 /* "current_timestam..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 486 /* "current_date" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 466 /* "julianday" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 476 /* "date" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 481 /* "time" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 486 /* "datetime" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x2000 | 1) | 0x0800)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 495 /* "strftime" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 504 /* "current_time" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 517 /* "current_timestam..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 535 /* "current_date" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
} /* sqlite3.c:22901:18 */
//************* End of date.c ***********************************************
@@ -10674,7 +10676,7 @@ func Xsqlite3OsRandomness(tls *crt.TLS, pVfs uintptr, nByte int32, zBufOut uintp
if nByte > int32(unsafe.Sizeof(uint32(0))) {
nByte = int32(unsafe.Sizeof(uint32(0)))
}
- crt.Xmemcpy(tls, zBufOut, (uintptr(unsafe.Pointer(&Xsqlite3Config)) + 412 /* &.iPrngSeed */), uint64(nByte))
+ crt.Xmemcpy(tls, zBufOut, (uintptr(unsafe.Pointer(&Xsqlite3Config)) + 420 /* &.iPrngSeed */), uint64(nByte))
return 0
} else {
return (*(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer((pVfs + 104 /* &.xRandomness */))))(tls, pVfs, nByte, zBufOut)
@@ -11028,7 +11030,7 @@ func sqlite3MemMalloc(tls *crt.TLS, nByte int32) uintptr { /* sqlite3.c:23635:13
p += 8
} else {
- Xsqlite3_log(tls, 7, ts+499 /* "failed to alloca..." */, crt.VaList(bp, nByte))
+ Xsqlite3_log(tls, 7, ts+548 /* "failed to alloca..." */, crt.VaList(bp, nByte))
}
return p
}
@@ -11079,7 +11081,7 @@ func sqlite3MemRealloc(tls *crt.TLS, pPrior uintptr, nByte int32) uintptr { /* s
} else {
Xsqlite3_log(tls, 7,
- ts+537, /* "failed memory re..." */
+ ts+586, /* "failed memory re..." */
crt.VaList(bp, sqlite3MemSize(tls, pPrior), nByte))
}
return p
@@ -12209,8 +12211,8 @@ type Et_info = et_info /* sqlite3.c:28154:3 */
// The following table is searched linearly, so it is good to put the
// most frequently used conversion types first.
-var aDigits = *(*[33]int8)(unsafe.Pointer(ts + 573 /* "0123456789ABCDEF..." */)) /* sqlite3.c:28167:19 */
-var aPrefix = *(*[7]int8)(unsafe.Pointer(ts + 606 /* "-x0\x00X0" */)) /* sqlite3.c:28168:19 */
+var aDigits = *(*[33]int8)(unsafe.Pointer(ts + 622 /* "0123456789ABCDEF..." */)) /* sqlite3.c:28167:19 */
+var aPrefix = *(*[7]int8)(unsafe.Pointer(ts + 655 /* "-x0\x00X0" */)) /* sqlite3.c:28168:19 */
var fmtinfo = [23]Et_info{
{Ffmttype: int8('d'), Fbase: EtByte(10), Fflags: EtByte(1), Ftype: EtByte(16), Fcharset: EtByte(0), Fprefix: EtByte(0)},
{Ffmttype: int8('s'), Fbase: EtByte(0), Fflags: EtByte(4), Ftype: EtByte(5), Fcharset: EtByte(0), Fprefix: EtByte(0)},
@@ -12459,7 +12461,7 @@ __6:
if !((crt.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(crt.PreIncUintptr(&fmt, 1)))))) == 0) {
goto __11
}
- Xsqlite3_str_append(tls, pAccum, ts+613 /* "%" */, 1)
+ Xsqlite3_str_append(tls, pAccum, ts+662 /* "%" */, 1)
goto __5
__11:
;
@@ -13047,7 +13049,7 @@ __127:
if !(Xsqlite3IsNaN(tls, *(*float64)(unsafe.Pointer(bp + 88 /* realvalue */))) != 0) {
goto __129
}
- bufpt = ts + 615 /* "NaN" */
+ bufpt = ts + 664 /* "NaN" */
length = 3
goto __58
__129:
@@ -13107,7 +13109,7 @@ __140:
}
bufpt = bp /* &buf[0] */
*(*int8)(unsafe.Pointer(bp /* &buf[0] */ + uintptr(0))) = prefix
- crt.Xmemcpy(tls, (bp /* &buf[0] */ + uintptr((crt.Bool32(int32(prefix) != 0)))), ts+619 /* "Inf" */, uint64(4))
+ crt.Xmemcpy(tls, (bp /* &buf[0] */ + uintptr((crt.Bool32(int32(prefix) != 0)))), ts+668 /* "Inf" */, uint64(4))
length = (3 + (crt.Bool32(int32(prefix) != 0)))
goto __58
__141:
@@ -13463,7 +13465,7 @@ __199:
if !(bufpt == uintptr(0)) {
goto __200
}
- bufpt = ts + 623 /* "" */
+ bufpt = ts + 672 /* "" */
goto __201
__200:
if !(int32(xtype) == 6) {
@@ -13591,9 +13593,9 @@ __221:
}
escarg = func() uintptr {
if int32(xtype) == 10 {
- return ts + 624 /* "NULL" */
+ return ts + 673 /* "NULL" */
}
- return ts + 629 /* "(NULL)" */
+ return ts + 678 /* "(NULL)" */
}()
__222:
;
@@ -13719,7 +13721,7 @@ __241:
goto __242
}
Xsqlite3_str_appendall(tls, pAccum, (*SrcList_item)(unsafe.Pointer(pItem)).FzDatabase)
- Xsqlite3_str_append(tls, pAccum, ts+636 /* "." */, 1)
+ Xsqlite3_str_append(tls, pAccum, ts+685 /* "." */, 1)
__242:
;
Xsqlite3_str_appendall(tls, pAccum, (*SrcList_item)(unsafe.Pointer(pItem)).FzName)
@@ -13775,7 +13777,7 @@ __5:
// End for loop over the format string
}
-var zOrd = *(*[9]int8)(unsafe.Pointer(ts + 638 /* "thstndrd" */)) /* sqlite3.c:28568:29 */ // End of function
+var zOrd = *(*[9]int8)(unsafe.Pointer(ts + 687 /* "thstndrd" */)) /* sqlite3.c:28568:29 */ // End of function
// Enlarge the memory allocation on a StrAccum object so that it is
// able to accept at least N more bytes of text.
@@ -14157,7 +14159,7 @@ func Xsqlite3DebugPrintf(tls *crt.TLS, zFormat uintptr, va uintptr) { /* sqlite3
Xsqlite3_str_vappendf(tls, bp+8 /* &acc */, zFormat, ap)
_ = ap
Xsqlite3StrAccumFinish(tls, bp+8 /* &acc */)
- crt.Xfprintf(tls, crt.Xstdout, ts+647 /* "%s" */, crt.VaList(bp, bp+40 /* &zBuf[0] */))
+ crt.Xfprintf(tls, crt.Xstdout, ts+696 /* "%s" */, crt.VaList(bp, bp+40 /* &zBuf[0] */))
crt.Xfflush(tls, crt.Xstdout)
}
@@ -14502,6 +14504,359 @@ func Xsqlite3Utf8Read(tls *crt.TLS, pz uintptr) U32 { /* sqlite3.c:30750:20: */
*/
// #define TRANSLATE_TRACE 1
+// This routine transforms the internal text encoding used by pMem to
+// desiredEnc. It is an error if the string is already of the desired
+// encoding, or if *pMem does not contain a string value.
+func Xsqlite3VdbeMemTranslate(tls *crt.TLS, pMem uintptr, desiredEnc U8) int32 { /* sqlite3.c:30786:36: */
+ var len Sqlite3_int64 // Maximum length of output string in bytes
+ var zOut uintptr // Output buffer
+ var zIn uintptr // Input iterator
+ var zTerm uintptr // End of input
+ var z uintptr // Output iterator
+ var c uint32
+ var temp U8
+ var rc int32
+ var c2 int32
+ var c21 int32
+
+ // If the translation is between UTF-16 little and big endian, then
+ // all that is required is to swap the byte order. This case is handled
+ // differently from the others.
+ if !((int32((*Mem)(unsafe.Pointer(pMem)).Fenc) != 1) && (int32(desiredEnc) != 1)) {
+ goto __1
+ }
+ rc = Xsqlite3VdbeMemMakeWriteable(tls, pMem)
+ if !(rc != 0) {
+ goto __2
+ }
+
+ return 7
+__2:
+ ;
+ zIn = (*Mem)(unsafe.Pointer(pMem)).Fz
+ zTerm = (zIn + uintptr(((*Mem)(unsafe.Pointer(pMem)).Fn & ^int32(crt.Int32FromInt32(1)))))
+__3:
+ if !(zIn < zTerm) {
+ goto __4
+ }
+ temp = *(*uint8)(unsafe.Pointer(zIn))
+ *(*uint8)(unsafe.Pointer(zIn)) = *(*uint8)(unsafe.Pointer((zIn + uintptr(1))))
+ zIn++
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))) = temp
+ goto __3
+__4:
+ ;
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = desiredEnc
+ goto translate_out
+__1:
+ ;
+
+ // Set len to the maximum number of bytes required in the output buffer.
+ if !(int32(desiredEnc) == 1) {
+ goto __5
+ }
+ // When converting from UTF-16, the maximum growth results from
+ // translating a 2-byte character to a 4-byte UTF-8 character.
+ // A single byte is required for the output string
+ // nul-terminator.
+ *(*int32)(unsafe.Pointer(pMem + 12 /* &.n */)) &= (^int32(crt.Int32FromInt32(1)))
+ len = ((int64(2) * Sqlite3_int64((*Mem)(unsafe.Pointer(pMem)).Fn)) + int64(1))
+ goto __6
+__5:
+ // When converting from UTF-8 to UTF-16 the maximum growth is caused
+ // when a 1-byte UTF-8 character is translated into a 2-byte UTF-16
+ // character. Two bytes are required in the output buffer for the
+ // nul-terminator.
+ len = ((int64(2) * Sqlite3_int64((*Mem)(unsafe.Pointer(pMem)).Fn)) + int64(2))
+__6:
+ ;
+
+ // Set zIn to point at the start of the input buffer and zTerm to point 1
+ // byte past the end.
+ //
+ // Variable zOut is set to point at the output buffer, space obtained
+ // from sqlite3_malloc().
+ zIn = (*Mem)(unsafe.Pointer(pMem)).Fz
+ zTerm = (zIn + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn))
+ zOut = Xsqlite3DbMallocRaw(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, uint64(len))
+ if !(!(zOut != 0)) {
+ goto __7
+ }
+ return 7
+__7:
+ ;
+ z = zOut
+
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fenc) == 1) {
+ goto __8
+ }
+ if !(int32(desiredEnc) == 2) {
+ goto __10
+ }
+ // UTF-8 -> UTF-16 Little-endian
+__12:
+ if !(zIn < zTerm) {
+ goto __13
+ }
+ c = uint32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))
+ if !(c >= uint32(0xc0)) {
+ goto __14
+ }
+ c = uint32(sqlite3Utf8Trans1[(c - uint32(0xc0))])
+__15:
+ if !((zIn != zTerm) && ((int32(*(*uint8)(unsafe.Pointer(zIn))) & 0xc0) == 0x80)) {
+ goto __16
+ }
+ c = ((c << 6) + (uint32(0x3f & int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1)))))))
+ goto __15
+__16:
+ ;
+ if !(((c < uint32(0x80)) || ((c & 0xFFFFF800) == uint32(0xD800))) || ((c & 0xFFFFFFFE) == uint32(0xFFFE))) {
+ goto __17
+ }
+ c = uint32(0xFFFD)
+__17:
+ ;
+__14:
+ ;
+
+ if !(c <= uint32(0xFFFF)) {
+ goto __18
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(c & uint32(0x00FF)))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8((c >> 8) & uint32(0x00FF)))
+ goto __19
+__18:
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(((c >> 10) & uint32(0x003F)) + (((c - uint32(0x10000)) >> 10) & uint32(0x00C0))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(uint32(0x00D8) + (((c - uint32(0x10000)) >> 18) & uint32(0x03))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(c & uint32(0x00FF)))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(uint32(0x00DC) + ((c >> 8) & uint32(0x03))))
+__19:
+ ;
+ goto __12
+__13:
+ ;
+ goto __11
+__10:
+ ;
+ // UTF-8 -> UTF-16 Big-endian
+__20:
+ if !(zIn < zTerm) {
+ goto __21
+ }
+ c = uint32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))
+ if !(c >= uint32(0xc0)) {
+ goto __22
+ }
+ c = uint32(sqlite3Utf8Trans1[(c - uint32(0xc0))])
+__23:
+ if !((zIn != zTerm) && ((int32(*(*uint8)(unsafe.Pointer(zIn))) & 0xc0) == 0x80)) {
+ goto __24
+ }
+ c = ((c << 6) + (uint32(0x3f & int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1)))))))
+ goto __23
+__24:
+ ;
+ if !(((c < uint32(0x80)) || ((c & 0xFFFFF800) == uint32(0xD800))) || ((c & 0xFFFFFFFE) == uint32(0xFFFE))) {
+ goto __25
+ }
+ c = uint32(0xFFFD)
+__25:
+ ;
+__22:
+ ;
+
+ if !(c <= uint32(0xFFFF)) {
+ goto __26
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8((c >> 8) & uint32(0x00FF)))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(c & uint32(0x00FF)))
+ goto __27
+__26:
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(uint32(0x00D8) + (((c - uint32(0x10000)) >> 18) & uint32(0x03))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(((c >> 10) & uint32(0x003F)) + (((c - uint32(0x10000)) >> 10) & uint32(0x00C0))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(uint32(0x00DC) + ((c >> 8) & uint32(0x03))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(c & uint32(0x00FF)))
+__27:
+ ;
+ goto __20
+__21:
+ ;
+__11:
+ ;
+ (*Mem)(unsafe.Pointer(pMem)).Fn = (int32((int64(z) - int64(zOut)) / 1))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = uint8(0)
+ goto __9
+__8:
+ ;
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fenc) == 2) {
+ goto __28
+ }
+ // UTF-16 Little-endian -> UTF-8
+__30:
+ if !(zIn < zTerm) {
+ goto __31
+ }
+ c = uint32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))
+ c = c + (uint32((int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))) << 8))
+ if !((c >= uint32(0xd800)) && (c < uint32(0xe000))) {
+ goto __32
+ }
+ if !(zIn < zTerm) {
+ goto __33
+ }
+ c2 = int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))
+ c2 = c2 + ((int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))) << 8)
+ c = (((uint32(c2 & 0x03FF)) + ((c & uint32(0x003F)) << 10)) + (((c & uint32(0x03C0)) + uint32(0x0040)) << 10))
+__33:
+ ;
+__32:
+ ;
+ if !(c < uint32(0x00080)) {
+ goto __34
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(c & uint32(0xFF)))
+ goto __35
+__34:
+ if !(c < uint32(0x00800)) {
+ goto __36
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0xC0 + int32((U8((c >> 6) & uint32(0x1F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8(c & uint32(0x3F))))))
+ goto __37
+__36:
+ if !(c < uint32(0x10000)) {
+ goto __38
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0xE0 + int32((U8((c >> 12) & uint32(0x0F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8((c >> 6) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8(c & uint32(0x3F))))))
+ goto __39
+__38:
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0xF0 + int32((U8((c >> 18) & uint32(0x07))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8((c >> 12) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8((c >> 6) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8(c & uint32(0x3F))))))
+__39:
+ ;
+__37:
+ ;
+__35:
+ ;
+ goto __30
+__31:
+ ;
+ goto __29
+__28:
+ // UTF-16 Big-endian -> UTF-8
+__40:
+ if !(zIn < zTerm) {
+ goto __41
+ }
+ c = (uint32((int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))) << 8))
+ c = c + (uint32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1)))))
+ if !((c >= uint32(0xd800)) && (c < uint32(0xe000))) {
+ goto __42
+ }
+ if !(zIn < zTerm) {
+ goto __43
+ }
+ c21 = ((int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1))))) << 8)
+ c21 = c21 + (int32(*(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&zIn, 1)))))
+ c = (((uint32(c21 & 0x03FF)) + ((c & uint32(0x003F)) << 10)) + (((c & uint32(0x03C0)) + uint32(0x0040)) << 10))
+__43:
+ ;
+__42:
+ ;
+ if !(c < uint32(0x00080)) {
+ goto __44
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (U8(c & uint32(0xFF)))
+ goto __45
+__44:
+ if !(c < uint32(0x00800)) {
+ goto __46
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0xC0 + int32((U8((c >> 6) & uint32(0x1F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8(c & uint32(0x3F))))))
+ goto __47
+__46:
+ if !(c < uint32(0x10000)) {
+ goto __48
+ }
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0xE0 + int32((U8((c >> 12) & uint32(0x0F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8((c >> 6) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8(c & uint32(0x3F))))))
+ goto __49
+__48:
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0xF0 + int32((U8((c >> 18) & uint32(0x07))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8((c >> 12) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8((c >> 6) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&z, 1))) = (uint8(0x80 + int32((U8(c & uint32(0x3F))))))
+__49:
+ ;
+__47:
+ ;
+__45:
+ ;
+ goto __40
+__41:
+ ;
+__29:
+ ;
+ (*Mem)(unsafe.Pointer(pMem)).Fn = (int32((int64(z) - int64(zOut)) / 1))
+__9:
+ ;
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+
+ c = uint32((*Mem)(unsafe.Pointer(pMem)).Fflags)
+ Xsqlite3VdbeMemRelease(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = (U16((uint32(0x0002 | 0x0200)) | (c & (uint32(0x003f | 0x8000)))))
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = desiredEnc
+ (*Mem)(unsafe.Pointer(pMem)).Fz = zOut
+ (*Mem)(unsafe.Pointer(pMem)).FzMalloc = (*Mem)(unsafe.Pointer(pMem)).Fz
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = Xsqlite3DbMallocSize(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).Fz)
+
+translate_out:
+ return 0
+}
+
+// This routine checks for a byte-order mark at the beginning of the
+// UTF-16 string stored in *pMem. If one is present, it is removed and
+// the encoding of the Mem adjusted. This routine does not do any
+// byte-swapping, it just sets Mem.enc appropriately.
+//
+// The allocation (static, dynamic etc.) and encoding of the Mem may be
+// changed by this function.
+func Xsqlite3VdbeMemHandleBom(tls *crt.TLS, pMem uintptr) int32 { /* sqlite3.c:30981:20: */
+ var rc int32 = 0
+ var bom U8 = U8(0)
+
+ if (*Mem)(unsafe.Pointer(pMem)).Fn > 1 {
+ var b1 U8 = *(*U8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz))
+ var b2 U8 = *(*U8)(unsafe.Pointer((((*Mem)(unsafe.Pointer(pMem)).Fz) + uintptr(1))))
+ if (int32(b1) == 0xFE) && (int32(b2) == 0xFF) {
+ bom = U8(3)
+ }
+ if (int32(b1) == 0xFF) && (int32(b2) == 0xFE) {
+ bom = U8(2)
+ }
+ }
+
+ if bom != 0 {
+ rc = Xsqlite3VdbeMemMakeWriteable(tls, pMem)
+ if rc == 0 {
+ *(*int32)(unsafe.Pointer(pMem + 12 /* &.n */)) -= (2)
+ crt.Xmemmove(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, ((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr(2)), uint64((*Mem)(unsafe.Pointer(pMem)).Fn))
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn))) = int8(0)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr(((*Mem)(unsafe.Pointer(pMem)).Fn + 1)))) = int8(0)
+ *(*U16)(unsafe.Pointer(pMem + 8 /* &.flags */)) |= U16((0x0200))
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = bom
+ }
+ }
+ return rc
+}
+
// pZ is a UTF-8 encoded unicode string. If nByte is less than zero,
// return the number of unicode characters in pZ up to (but not including)
// the first 0x00 byte. If nByte is not less than zero, return the
@@ -14534,6 +14889,107 @@ func Xsqlite3Utf8CharLen(tls *crt.TLS, zIn uintptr, nByte int32) int32 { /* sqli
// This test function is not currently used by the automated test-suite.
// Hence it is only available in debug builds.
+// Convert a UTF-16 string in the native encoding into a UTF-8 string.
+// Memory to hold the UTF-8 string is obtained from sqlite3_malloc and must
+// be freed by the calling function.
+//
+// NULL is returned if there is an allocation error.
+func Xsqlite3Utf16to8(tls *crt.TLS, db uintptr, z uintptr, nByte int32, enc U8) uintptr { /* sqlite3.c:31073:21: */
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ // var m Mem at bp, 56
+
+ crt.Xmemset(tls, bp /* &m */, 0, uint64(unsafe.Sizeof(Mem{})))
+ (*Mem)(unsafe.Pointer(bp /* &m */)).Fdb = db
+ Xsqlite3VdbeMemSetStr(tls, bp /* &m */, z, nByte, enc, uintptr(0))
+ Xsqlite3VdbeChangeEncoding(tls, bp /* &m */, 1)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3VdbeMemRelease(tls, bp /* &m */)
+ (*Mem)(unsafe.Pointer(bp /* &m */)).Fz = uintptr(0)
+ }
+
+ return (*Mem)(unsafe.Pointer(bp /* &m */)).Fz
+}
+
+// zIn is a UTF-16 encoded unicode string at least nChar characters long.
+// Return the number of bytes in the first nChar unicode characters
+// in pZ. nChar must be non-negative.
+func Xsqlite3Utf16ByteLen(tls *crt.TLS, zIn uintptr, nChar int32) int32 { /* sqlite3.c:31094:20: */
+ var c int32
+ var z uintptr = zIn
+ var n int32 = 0
+
+ if 2 == 2 {
+ z++
+ }
+ for n < nChar {
+ c = int32(*(*uint8)(unsafe.Pointer(z + uintptr(0))))
+ z += uintptr(2)
+ if (((c >= 0xd8) && (c < 0xdc)) && (int32(*(*uint8)(unsafe.Pointer(z + uintptr(0)))) >= 0xdc)) && (int32(*(*uint8)(unsafe.Pointer(z + uintptr(0)))) < 0xe0) {
+ z += uintptr(2)
+ }
+ n++
+ }
+ return ((int32((int64(z) - int64(zIn)) / 1)) -
+ (crt.Bool32(2 == 2)))
+}
+
+// This routine is called from the TCL test function "translate_selftest".
+// It checks that the primitives for serializing and deserializing
+// characters in each encoding are inverses of each other.
+func Xsqlite3UtfSelfTest(tls *crt.TLS) { /* sqlite3.c:31116:21: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var i uint32
+ var t uint32
+ _ = t
+ // var zBuf [20]uint8 at bp, 20
+
+ // var z uintptr at bp+24, 8
+
+ var n int32
+ _ = n
+ var c uint32
+ _ = c
+
+ for i = uint32(0); i < uint32(0x00110000); i++ {
+ *(*uintptr)(unsafe.Pointer(bp + 24 /* z */)) = bp /* &zBuf[0] */
+ {
+ if i < uint32(0x00080) {
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (U8(i & uint32(0xFF)))
+ } else if i < uint32(0x00800) {
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0xC0 + int32((U8((i >> 6) & uint32(0x1F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0x80 + int32((U8(i & uint32(0x3F))))))
+ } else if i < uint32(0x10000) {
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0xE0 + int32((U8((i >> 12) & uint32(0x0F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0x80 + int32((U8((i >> 6) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0x80 + int32((U8(i & uint32(0x3F))))))
+ } else {
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0xF0 + int32((U8((i >> 18) & uint32(0x07))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0x80 + int32((U8((i >> 12) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0x80 + int32((U8((i >> 6) & uint32(0x3F))))))
+ *(*uint8)(unsafe.Pointer(crt.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)), 1))) = (uint8(0x80 + int32((U8(i & uint32(0x3F))))))
+ }
+ }
+
+ n = (int32(int64((*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)) - bp /* &zBuf[0] */) / 1)))
+
+ *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* z */)) + uintptr(0))) = uint8(0)
+ *(*uintptr)(unsafe.Pointer(bp + 24 /* z */)) = bp /* &zBuf[0] */
+ c = Xsqlite3Utf8Read(tls, bp+24 /* &z */)
+ t = i
+ if (i >= uint32(0xD800)) && (i <= uint32(0xDFFF)) {
+ t = uint32(0xFFFD)
+ }
+ if (i & 0xFFFFFFFE) == uint32(0xFFFE) {
+ t = uint32(0xFFFD)
+ }
+
+ }
+}
+
//************* End of utf.c ************************************************
//************* Begin file util.c *******************************************
// 2001 September 15
@@ -15566,7 +16022,7 @@ func compare2pow63(tls *crt.TLS, zNum uintptr, incr int32) int32 { /* sqlite3.c:
var c int32 = 0
var i int32
// 012345678901234567
- var pow63 uintptr = ts + 650 /* "9223372036854775..." */
+ var pow63 uintptr = ts + 699 /* "9223372036854775..." */
for i = 0; (c == 0) && (i < 18); i++ {
c = ((int32(*(*int8)(unsafe.Pointer(zNum + uintptr((i * incr))))) - int32(*(*int8)(unsafe.Pointer(pow63 + uintptr(i))))) * 10)
}
@@ -16186,7 +16642,7 @@ func logBadConnection(tls *crt.TLS, zType uintptr) { /* sqlite3.c:32442:13: */
defer tls.Free(8)
Xsqlite3_log(tls, 21,
- ts+669, /* "API call with %s..." */
+ ts+718, /* "API call with %s..." */
crt.VaList(bp, zType))
}
@@ -16205,14 +16661,14 @@ func logBadConnection(tls *crt.TLS, zType uintptr) { /* sqlite3.c:32442:13: */
func Xsqlite3SafetyCheckOk(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:32463:20: */
var magic U32
if db == uintptr(0) {
- logBadConnection(tls, ts+624 /* "NULL" */)
+ logBadConnection(tls, ts+673 /* "NULL" */)
return 0
}
magic = (*Sqlite3)(unsafe.Pointer(db)).Fmagic
if magic != 0xa029a697 {
if Xsqlite3SafetyCheckSickOrOk(tls, db) != 0 {
- logBadConnection(tls, ts+714 /* "unopened" */)
+ logBadConnection(tls, ts+763 /* "unopened" */)
}
return 0
} else {
@@ -16225,7 +16681,7 @@ func Xsqlite3SafetyCheckSickOrOk(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:
magic = (*Sqlite3)(unsafe.Pointer(db)).Fmagic
if ((magic != U32(0x4b771290)) && (magic != 0xa029a697)) && (magic != 0xf03b7906) {
- logBadConnection(tls, ts+723 /* "invalid" */)
+ logBadConnection(tls, ts+772 /* "invalid" */)
return 0
} else {
return 1
@@ -16785,182 +17241,182 @@ func Xsqlite3OpcodeName(tls *crt.TLS, i int32) uintptr { /* sqlite3.c:33081:27:
}
var azName = [176]uintptr{
- /* 0 */ ts + 731, /* "Savepoint" */
- /* 1 */ ts + 741, /* "AutoCommit" */
- /* 2 */ ts + 752, /* "Transaction" */
- /* 3 */ ts + 764, /* "SorterNext" */
- /* 4 */ ts + 775, /* "Prev" */
- /* 5 */ ts + 780, /* "Next" */
- /* 6 */ ts + 785, /* "Checkpoint" */
- /* 7 */ ts + 796, /* "JournalMode" */
- /* 8 */ ts + 808, /* "Vacuum" */
- /* 9 */ ts + 815, /* "VFilter" */
- /* 10 */ ts + 823, /* "VUpdate" */
- /* 11 */ ts + 831, /* "Goto" */
- /* 12 */ ts + 836, /* "Gosub" */
- /* 13 */ ts + 842, /* "InitCoroutine" */
- /* 14 */ ts + 856, /* "Yield" */
- /* 15 */ ts + 862, /* "MustBeInt" */
- /* 16 */ ts + 872, /* "Jump" */
- /* 17 */ ts + 877, /* "Once" */
- /* 18 */ ts + 882, /* "If" */
- /* 19 */ ts + 885, /* "Not" */
- /* 20 */ ts + 889, /* "IfNot" */
- /* 21 */ ts + 895, /* "IfNullRow" */
- /* 22 */ ts + 905, /* "SeekLT" */
- /* 23 */ ts + 912, /* "SeekLE" */
- /* 24 */ ts + 919, /* "SeekGE" */
- /* 25 */ ts + 926, /* "SeekGT" */
- /* 26 */ ts + 933, /* "IfNotOpen" */
- /* 27 */ ts + 943, /* "IfNoHope" */
- /* 28 */ ts + 952, /* "NoConflict" */
- /* 29 */ ts + 963, /* "NotFound" */
- /* 30 */ ts + 972, /* "Found" */
- /* 31 */ ts + 978, /* "SeekRowid" */
- /* 32 */ ts + 988, /* "NotExists" */
- /* 33 */ ts + 998, /* "Last" */
- /* 34 */ ts + 1003, /* "IfSmaller" */
- /* 35 */ ts + 1013, /* "SorterSort" */
- /* 36 */ ts + 1024, /* "Sort" */
- /* 37 */ ts + 1029, /* "Rewind" */
- /* 38 */ ts + 1036, /* "IdxLE" */
- /* 39 */ ts + 1042, /* "IdxGT" */
- /* 40 */ ts + 1048, /* "IdxLT" */
- /* 41 */ ts + 1054, /* "IdxGE" */
- /* 42 */ ts + 1060, /* "RowSetRead" */
- /* 43 */ ts + 1071, /* "Or" */
- /* 44 */ ts + 1074, /* "And" */
- /* 45 */ ts + 1078, /* "RowSetTest" */
- /* 46 */ ts + 1089, /* "Program" */
- /* 47 */ ts + 1097, /* "FkIfZero" */
- /* 48 */ ts + 1106, /* "IfPos" */
- /* 49 */ ts + 1112, /* "IfNotZero" */
- /* 50 */ ts + 1122, /* "IsNull" */
- /* 51 */ ts + 1129, /* "NotNull" */
- /* 52 */ ts + 1137, /* "Ne" */
- /* 53 */ ts + 1140, /* "Eq" */
- /* 54 */ ts + 1143, /* "Gt" */
- /* 55 */ ts + 1146, /* "Le" */
- /* 56 */ ts + 1149, /* "Lt" */
- /* 57 */ ts + 1152, /* "Ge" */
- /* 58 */ ts + 1155, /* "ElseNotEq" */
- /* 59 */ ts + 1165, /* "DecrJumpZero" */
- /* 60 */ ts + 1178, /* "IncrVacuum" */
- /* 61 */ ts + 1189, /* "VNext" */
- /* 62 */ ts + 1195, /* "Init" */
- /* 63 */ ts + 1200, /* "PureFunc" */
- /* 64 */ ts + 1209, /* "Function" */
- /* 65 */ ts + 1218, /* "Return" */
- /* 66 */ ts + 1225, /* "EndCoroutine" */
- /* 67 */ ts + 1238, /* "HaltIfNull" */
- /* 68 */ ts + 1249, /* "Halt" */
- /* 69 */ ts + 1254, /* "Integer" */
- /* 70 */ ts + 1262, /* "Int64" */
- /* 71 */ ts + 1268, /* "String" */
- /* 72 */ ts + 1275, /* "Null" */
- /* 73 */ ts + 1280, /* "SoftNull" */
- /* 74 */ ts + 1289, /* "Blob" */
- /* 75 */ ts + 1294, /* "Variable" */
- /* 76 */ ts + 1303, /* "Move" */
- /* 77 */ ts + 1308, /* "Copy" */
- /* 78 */ ts + 1313, /* "SCopy" */
- /* 79 */ ts + 1319, /* "IntCopy" */
- /* 80 */ ts + 1327, /* "ResultRow" */
- /* 81 */ ts + 1337, /* "CollSeq" */
- /* 82 */ ts + 1345, /* "AddImm" */
- /* 83 */ ts + 1352, /* "RealAffinity" */
- /* 84 */ ts + 1365, /* "Cast" */
- /* 85 */ ts + 1370, /* "Permutation" */
- /* 86 */ ts + 1382, /* "Compare" */
- /* 87 */ ts + 1390, /* "IsTrue" */
- /* 88 */ ts + 1397, /* "Offset" */
- /* 89 */ ts + 1404, /* "Column" */
- /* 90 */ ts + 1411, /* "Affinity" */
- /* 91 */ ts + 1420, /* "MakeRecord" */
- /* 92 */ ts + 1431, /* "Count" */
- /* 93 */ ts + 1437, /* "ReadCookie" */
- /* 94 */ ts + 1448, /* "SetCookie" */
- /* 95 */ ts + 1458, /* "ReopenIdx" */
- /* 96 */ ts + 1468, /* "OpenRead" */
- /* 97 */ ts + 1477, /* "OpenWrite" */
- /* 98 */ ts + 1487, /* "OpenDup" */
- /* 99 */ ts + 1495, /* "OpenAutoindex" */
- /* 100 */ ts + 1509, /* "OpenEphemeral" */
- /* 101 */ ts + 1523, /* "BitAnd" */
- /* 102 */ ts + 1530, /* "BitOr" */
- /* 103 */ ts + 1536, /* "ShiftLeft" */
- /* 104 */ ts + 1546, /* "ShiftRight" */
- /* 105 */ ts + 1557, /* "Add" */
- /* 106 */ ts + 1561, /* "Subtract" */
- /* 107 */ ts + 1570, /* "Multiply" */
- /* 108 */ ts + 1579, /* "Divide" */
- /* 109 */ ts + 1586, /* "Remainder" */
- /* 110 */ ts + 1596, /* "Concat" */
- /* 111 */ ts + 1603, /* "SorterOpen" */
- /* 112 */ ts + 1614, /* "BitNot" */
- /* 113 */ ts + 1621, /* "SequenceTest" */
- /* 114 */ ts + 1634, /* "OpenPseudo" */
- /* 115 */ ts + 1645, /* "String8" */
- /* 116 */ ts + 1653, /* "Close" */
- /* 117 */ ts + 1659, /* "ColumnsUsed" */
- /* 118 */ ts + 1671, /* "SeekHit" */
- /* 119 */ ts + 1679, /* "Sequence" */
- /* 120 */ ts + 1688, /* "NewRowid" */
- /* 121 */ ts + 1697, /* "Insert" */
- /* 122 */ ts + 1704, /* "Delete" */
- /* 123 */ ts + 1711, /* "ResetCount" */
- /* 124 */ ts + 1722, /* "SorterCompare" */
- /* 125 */ ts + 1736, /* "SorterData" */
- /* 126 */ ts + 1747, /* "RowData" */
- /* 127 */ ts + 1755, /* "Rowid" */
- /* 128 */ ts + 1761, /* "NullRow" */
- /* 129 */ ts + 1769, /* "SeekEnd" */
- /* 130 */ ts + 1777, /* "IdxInsert" */
- /* 131 */ ts + 1787, /* "SorterInsert" */
- /* 132 */ ts + 1800, /* "IdxDelete" */
- /* 133 */ ts + 1810, /* "DeferredSeek" */
- /* 134 */ ts + 1823, /* "IdxRowid" */
- /* 135 */ ts + 1832, /* "FinishSeek" */
- /* 136 */ ts + 1843, /* "Destroy" */
- /* 137 */ ts + 1851, /* "Clear" */
- /* 138 */ ts + 1857, /* "ResetSorter" */
- /* 139 */ ts + 1869, /* "CreateBtree" */
- /* 140 */ ts + 1881, /* "SqlExec" */
- /* 141 */ ts + 1889, /* "ParseSchema" */
- /* 142 */ ts + 1901, /* "LoadAnalysis" */
- /* 143 */ ts + 1914, /* "DropTable" */
- /* 144 */ ts + 1924, /* "DropIndex" */
- /* 145 */ ts + 1934, /* "DropTrigger" */
- /* 146 */ ts + 1946, /* "IntegrityCk" */
- /* 147 */ ts + 1958, /* "RowSetAdd" */
- /* 148 */ ts + 1968, /* "Param" */
- /* 149 */ ts + 1974, /* "FkCounter" */
- /* 150 */ ts + 1984, /* "Real" */
- /* 151 */ ts + 1989, /* "MemMax" */
- /* 152 */ ts + 1996, /* "OffsetLimit" */
- /* 153 */ ts + 2008, /* "AggInverse" */
- /* 154 */ ts + 2019, /* "AggStep" */
- /* 155 */ ts + 2027, /* "AggStep1" */
- /* 156 */ ts + 2036, /* "AggValue" */
- /* 157 */ ts + 2045, /* "AggFinal" */
- /* 158 */ ts + 2054, /* "Expire" */
- /* 159 */ ts + 2061, /* "CursorLock" */
- /* 160 */ ts + 2072, /* "CursorUnlock" */
- /* 161 */ ts + 2085, /* "TableLock" */
- /* 162 */ ts + 2095, /* "VBegin" */
- /* 163 */ ts + 2102, /* "VCreate" */
- /* 164 */ ts + 2110, /* "VDestroy" */
- /* 165 */ ts + 2119, /* "VOpen" */
- /* 166 */ ts + 2125, /* "VColumn" */
- /* 167 */ ts + 2133, /* "VRename" */
- /* 168 */ ts + 2141, /* "Pagecount" */
- /* 169 */ ts + 2151, /* "MaxPgcnt" */
- /* 170 */ ts + 2160, /* "Trace" */
- /* 171 */ ts + 2166, /* "CursorHint" */
- /* 172 */ ts + 2177, /* "ReleaseReg" */
- /* 173 */ ts + 2188, /* "Noop" */
- /* 174 */ ts + 2193, /* "Explain" */
- /* 175 */ ts + 2201, /* "Abortable" */
+ /* 0 */ ts + 780, /* "Savepoint" */
+ /* 1 */ ts + 790, /* "AutoCommit" */
+ /* 2 */ ts + 801, /* "Transaction" */
+ /* 3 */ ts + 813, /* "SorterNext" */
+ /* 4 */ ts + 824, /* "Prev" */
+ /* 5 */ ts + 829, /* "Next" */
+ /* 6 */ ts + 834, /* "Checkpoint" */
+ /* 7 */ ts + 845, /* "JournalMode" */
+ /* 8 */ ts + 857, /* "Vacuum" */
+ /* 9 */ ts + 864, /* "VFilter" */
+ /* 10 */ ts + 872, /* "VUpdate" */
+ /* 11 */ ts + 880, /* "Goto" */
+ /* 12 */ ts + 885, /* "Gosub" */
+ /* 13 */ ts + 891, /* "InitCoroutine" */
+ /* 14 */ ts + 905, /* "Yield" */
+ /* 15 */ ts + 911, /* "MustBeInt" */
+ /* 16 */ ts + 921, /* "Jump" */
+ /* 17 */ ts + 926, /* "Once" */
+ /* 18 */ ts + 931, /* "If" */
+ /* 19 */ ts + 934, /* "Not" */
+ /* 20 */ ts + 938, /* "IfNot" */
+ /* 21 */ ts + 944, /* "IfNullRow" */
+ /* 22 */ ts + 954, /* "SeekLT" */
+ /* 23 */ ts + 961, /* "SeekLE" */
+ /* 24 */ ts + 968, /* "SeekGE" */
+ /* 25 */ ts + 975, /* "SeekGT" */
+ /* 26 */ ts + 982, /* "IfNotOpen" */
+ /* 27 */ ts + 992, /* "IfNoHope" */
+ /* 28 */ ts + 1001, /* "NoConflict" */
+ /* 29 */ ts + 1012, /* "NotFound" */
+ /* 30 */ ts + 1021, /* "Found" */
+ /* 31 */ ts + 1027, /* "SeekRowid" */
+ /* 32 */ ts + 1037, /* "NotExists" */
+ /* 33 */ ts + 1047, /* "Last" */
+ /* 34 */ ts + 1052, /* "IfSmaller" */
+ /* 35 */ ts + 1062, /* "SorterSort" */
+ /* 36 */ ts + 1073, /* "Sort" */
+ /* 37 */ ts + 1078, /* "Rewind" */
+ /* 38 */ ts + 1085, /* "IdxLE" */
+ /* 39 */ ts + 1091, /* "IdxGT" */
+ /* 40 */ ts + 1097, /* "IdxLT" */
+ /* 41 */ ts + 1103, /* "IdxGE" */
+ /* 42 */ ts + 1109, /* "RowSetRead" */
+ /* 43 */ ts + 1120, /* "Or" */
+ /* 44 */ ts + 1123, /* "And" */
+ /* 45 */ ts + 1127, /* "RowSetTest" */
+ /* 46 */ ts + 1138, /* "Program" */
+ /* 47 */ ts + 1146, /* "FkIfZero" */
+ /* 48 */ ts + 1155, /* "IfPos" */
+ /* 49 */ ts + 1161, /* "IfNotZero" */
+ /* 50 */ ts + 1171, /* "IsNull" */
+ /* 51 */ ts + 1178, /* "NotNull" */
+ /* 52 */ ts + 1186, /* "Ne" */
+ /* 53 */ ts + 1189, /* "Eq" */
+ /* 54 */ ts + 1192, /* "Gt" */
+ /* 55 */ ts + 1195, /* "Le" */
+ /* 56 */ ts + 1198, /* "Lt" */
+ /* 57 */ ts + 1201, /* "Ge" */
+ /* 58 */ ts + 1204, /* "ElseNotEq" */
+ /* 59 */ ts + 1214, /* "DecrJumpZero" */
+ /* 60 */ ts + 1227, /* "IncrVacuum" */
+ /* 61 */ ts + 1238, /* "VNext" */
+ /* 62 */ ts + 1244, /* "Init" */
+ /* 63 */ ts + 1249, /* "PureFunc" */
+ /* 64 */ ts + 1258, /* "Function" */
+ /* 65 */ ts + 1267, /* "Return" */
+ /* 66 */ ts + 1274, /* "EndCoroutine" */
+ /* 67 */ ts + 1287, /* "HaltIfNull" */
+ /* 68 */ ts + 1298, /* "Halt" */
+ /* 69 */ ts + 1303, /* "Integer" */
+ /* 70 */ ts + 1311, /* "Int64" */
+ /* 71 */ ts + 1317, /* "String" */
+ /* 72 */ ts + 1324, /* "Null" */
+ /* 73 */ ts + 1329, /* "SoftNull" */
+ /* 74 */ ts + 1338, /* "Blob" */
+ /* 75 */ ts + 1343, /* "Variable" */
+ /* 76 */ ts + 1352, /* "Move" */
+ /* 77 */ ts + 1357, /* "Copy" */
+ /* 78 */ ts + 1362, /* "SCopy" */
+ /* 79 */ ts + 1368, /* "IntCopy" */
+ /* 80 */ ts + 1376, /* "ResultRow" */
+ /* 81 */ ts + 1386, /* "CollSeq" */
+ /* 82 */ ts + 1394, /* "AddImm" */
+ /* 83 */ ts + 1401, /* "RealAffinity" */
+ /* 84 */ ts + 1414, /* "Cast" */
+ /* 85 */ ts + 1419, /* "Permutation" */
+ /* 86 */ ts + 1431, /* "Compare" */
+ /* 87 */ ts + 1439, /* "IsTrue" */
+ /* 88 */ ts + 1446, /* "Offset" */
+ /* 89 */ ts + 1453, /* "Column" */
+ /* 90 */ ts + 1460, /* "Affinity" */
+ /* 91 */ ts + 1469, /* "MakeRecord" */
+ /* 92 */ ts + 1480, /* "Count" */
+ /* 93 */ ts + 1486, /* "ReadCookie" */
+ /* 94 */ ts + 1497, /* "SetCookie" */
+ /* 95 */ ts + 1507, /* "ReopenIdx" */
+ /* 96 */ ts + 1517, /* "OpenRead" */
+ /* 97 */ ts + 1526, /* "OpenWrite" */
+ /* 98 */ ts + 1536, /* "OpenDup" */
+ /* 99 */ ts + 1544, /* "OpenAutoindex" */
+ /* 100 */ ts + 1558, /* "OpenEphemeral" */
+ /* 101 */ ts + 1572, /* "BitAnd" */
+ /* 102 */ ts + 1579, /* "BitOr" */
+ /* 103 */ ts + 1585, /* "ShiftLeft" */
+ /* 104 */ ts + 1595, /* "ShiftRight" */
+ /* 105 */ ts + 1606, /* "Add" */
+ /* 106 */ ts + 1610, /* "Subtract" */
+ /* 107 */ ts + 1619, /* "Multiply" */
+ /* 108 */ ts + 1628, /* "Divide" */
+ /* 109 */ ts + 1635, /* "Remainder" */
+ /* 110 */ ts + 1645, /* "Concat" */
+ /* 111 */ ts + 1652, /* "SorterOpen" */
+ /* 112 */ ts + 1663, /* "BitNot" */
+ /* 113 */ ts + 1670, /* "SequenceTest" */
+ /* 114 */ ts + 1683, /* "OpenPseudo" */
+ /* 115 */ ts + 1694, /* "String8" */
+ /* 116 */ ts + 1702, /* "Close" */
+ /* 117 */ ts + 1708, /* "ColumnsUsed" */
+ /* 118 */ ts + 1720, /* "SeekHit" */
+ /* 119 */ ts + 1728, /* "Sequence" */
+ /* 120 */ ts + 1737, /* "NewRowid" */
+ /* 121 */ ts + 1746, /* "Insert" */
+ /* 122 */ ts + 1753, /* "Delete" */
+ /* 123 */ ts + 1760, /* "ResetCount" */
+ /* 124 */ ts + 1771, /* "SorterCompare" */
+ /* 125 */ ts + 1785, /* "SorterData" */
+ /* 126 */ ts + 1796, /* "RowData" */
+ /* 127 */ ts + 1804, /* "Rowid" */
+ /* 128 */ ts + 1810, /* "NullRow" */
+ /* 129 */ ts + 1818, /* "SeekEnd" */
+ /* 130 */ ts + 1826, /* "IdxInsert" */
+ /* 131 */ ts + 1836, /* "SorterInsert" */
+ /* 132 */ ts + 1849, /* "IdxDelete" */
+ /* 133 */ ts + 1859, /* "DeferredSeek" */
+ /* 134 */ ts + 1872, /* "IdxRowid" */
+ /* 135 */ ts + 1881, /* "FinishSeek" */
+ /* 136 */ ts + 1892, /* "Destroy" */
+ /* 137 */ ts + 1900, /* "Clear" */
+ /* 138 */ ts + 1906, /* "ResetSorter" */
+ /* 139 */ ts + 1918, /* "CreateBtree" */
+ /* 140 */ ts + 1930, /* "SqlExec" */
+ /* 141 */ ts + 1938, /* "ParseSchema" */
+ /* 142 */ ts + 1950, /* "LoadAnalysis" */
+ /* 143 */ ts + 1963, /* "DropTable" */
+ /* 144 */ ts + 1973, /* "DropIndex" */
+ /* 145 */ ts + 1983, /* "DropTrigger" */
+ /* 146 */ ts + 1995, /* "IntegrityCk" */
+ /* 147 */ ts + 2007, /* "RowSetAdd" */
+ /* 148 */ ts + 2017, /* "Param" */
+ /* 149 */ ts + 2023, /* "FkCounter" */
+ /* 150 */ ts + 2033, /* "Real" */
+ /* 151 */ ts + 2038, /* "MemMax" */
+ /* 152 */ ts + 2045, /* "OffsetLimit" */
+ /* 153 */ ts + 2057, /* "AggInverse" */
+ /* 154 */ ts + 2068, /* "AggStep" */
+ /* 155 */ ts + 2076, /* "AggStep1" */
+ /* 156 */ ts + 2085, /* "AggValue" */
+ /* 157 */ ts + 2094, /* "AggFinal" */
+ /* 158 */ ts + 2103, /* "Expire" */
+ /* 159 */ ts + 2110, /* "CursorLock" */
+ /* 160 */ ts + 2121, /* "CursorUnlock" */
+ /* 161 */ ts + 2134, /* "TableLock" */
+ /* 162 */ ts + 2144, /* "VBegin" */
+ /* 163 */ ts + 2151, /* "VCreate" */
+ /* 164 */ ts + 2159, /* "VDestroy" */
+ /* 165 */ ts + 2168, /* "VOpen" */
+ /* 166 */ ts + 2174, /* "VColumn" */
+ /* 167 */ ts + 2182, /* "VRename" */
+ /* 168 */ ts + 2190, /* "Pagecount" */
+ /* 169 */ ts + 2200, /* "MaxPgcnt" */
+ /* 170 */ ts + 2209, /* "Trace" */
+ /* 171 */ ts + 2215, /* "CursorHint" */
+ /* 172 */ ts + 2226, /* "ReleaseReg" */
+ /* 173 */ ts + 2237, /* "Noop" */
+ /* 174 */ ts + 2242, /* "Explain" */
+ /* 175 */ ts + 2250, /* "Abortable" */
} /* sqlite3.c:33082:20 */
// Note stat64 has the same shape as stat for x86-64.
@@ -17826,67 +18282,67 @@ type unix_syscall = struct {
// testing and sandboxing. The following array holds the names and pointers
// to all overrideable system calls.
var aSyscall = [29]unix_syscall{
- {FzName: ts + 2211 /* "open" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2260 /* "open" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2216 /* "close" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2265 /* "close" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2222 /* "access" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2271 /* "access" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2229 /* "getcwd" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2278 /* "getcwd" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2236 /* "stat" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2285 /* "stat" */, FpCurrent: 0, FpDefault: uintptr(0)},
// The DJGPP compiler environment looks mostly like Unix, but it
// lacks the fcntl() system call. So redefine fcntl() to be something
// that always succeeds. This means that locking does not occur under
// DJGPP. But it is DOS - what did you expect?
- {FzName: ts + 2241 /* "fstat" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2290 /* "fstat" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2247 /* "ftruncate" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2296 /* "ftruncate" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2257 /* "fcntl" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2306 /* "fcntl" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2263 /* "read" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2312 /* "read" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2268 /* "pread" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2317 /* "pread" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
- {FzName: ts + 2274 /* "pread64" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2323 /* "pread64" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
- {FzName: ts + 2282 /* "write" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2331 /* "write" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2288 /* "pwrite" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2337 /* "pwrite" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
- {FzName: ts + 2295 /* "pwrite64" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2344 /* "pwrite64" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
- {FzName: ts + 2304 /* "fchmod" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2353 /* "fchmod" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2311 /* "fallocate" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2360 /* "fallocate" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
- {FzName: ts + 2321 /* "unlink" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2370 /* "unlink" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2328 /* "openDirectory" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2377 /* "openDirectory" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2342 /* "mkdir" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2391 /* "mkdir" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2348 /* "rmdir" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2397 /* "rmdir" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2354 /* "fchown" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2403 /* "fchown" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2361 /* "geteuid" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2410 /* "geteuid" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2369 /* "mmap" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2418 /* "mmap" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2374 /* "munmap" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2423 /* "munmap" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2381 /* "mremap" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2430 /* "mremap" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
- {FzName: ts + 2388 /* "getpagesize" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2437 /* "getpagesize" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2400 /* "readlink" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2449 /* "readlink" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2409 /* "lstat" */, FpCurrent: 0, FpDefault: uintptr(0)},
+ {FzName: ts + 2458 /* "lstat" */, FpCurrent: 0, FpDefault: uintptr(0)},
- {FzName: ts + 2415 /* "ioctl" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
+ {FzName: ts + 2464 /* "ioctl" */, FpCurrent: uintptr(0), FpDefault: uintptr(0)},
} /* sqlite3.c:33850:3 */ // End of the overrideable system calls
// On some systems, calls to fchown() will trigger a message in a security
@@ -18018,9 +18474,9 @@ func robust_open(tls *crt.TLS, z uintptr, f int32, m Mode_t) int32 { /* sqlite3.
}
(*(*func(*crt.TLS, int32) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(1)*24 + 8 /* &.pCurrent */))))(tls, fd)
Xsqlite3_log(tls, 28,
- ts+2421 /* "attempt to open ..." */, crt.VaList(bp, z, fd))
+ ts+2470 /* "attempt to open ..." */, crt.VaList(bp, z, fd))
fd = -1
- if (*(*func(*crt.TLS, uintptr, int32, int32) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(0)*24 + 8 /* &.pCurrent */))))(tls, ts+2464 /* "/dev/null" */, 00, int32(m)) < 0 {
+ if (*(*func(*crt.TLS, uintptr, int32, int32) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(0)*24 + 8 /* &.pCurrent */))))(tls, ts+2513 /* "/dev/null" */, 00, int32(m)) < 0 {
break
}
}
@@ -18078,17 +18534,17 @@ func unixLeaveMutex(tls *crt.TLS) { /* sqlite3.c:34204:13: */
func azFileLock(tls *crt.TLS, eFileLock int32) uintptr { /* sqlite3.c:34221:19: */
switch eFileLock {
case 0:
- return ts + 2474 /* "NONE" */
+ return ts + 2523 /* "NONE" */
case 1:
- return ts + 2479 /* "SHARED" */
+ return ts + 2528 /* "SHARED" */
case 2:
- return ts + 2486 /* "RESERVED" */
+ return ts + 2535 /* "RESERVED" */
case 3:
- return ts + 2495 /* "PENDING" */
+ return ts + 2544 /* "PENDING" */
case 4:
- return ts + 2503 /* "EXCLUSIVE" */
+ return ts + 2552 /* "EXCLUSIVE" */
}
- return ts + 2513 /* "ERROR" */
+ return ts + 2562 /* "ERROR" */
}
// Retry ftruncate() calls that fail due to EINTR
@@ -18295,13 +18751,13 @@ func unixLogErrorAtLine(tls *crt.TLS, errcode int32, zFunc uintptr, zPath uintpt
** equivalent to errno. Otherwise, use strerror_r().
*/
// This is a threadsafe build, but strerror_r() is not available.
- zErr = ts + 623 /* "" */
+ zErr = ts + 672 /* "" */
if zPath == uintptr(0) {
- zPath = ts + 623 /* "" */
+ zPath = ts + 672 /* "" */
}
Xsqlite3_log(tls, errcode,
- ts+2519, /* "os_unix.c:%d: (%..." */
+ ts+2568, /* "os_unix.c:%d: (%..." */
crt.VaList(bp, iLine, iErrno, zFunc, zPath, zErr))
return errcode
@@ -18320,7 +18776,7 @@ func unixLogErrorAtLine(tls *crt.TLS, errcode int32, zFunc uintptr, zPath uintpt
// and move on.
func robust_close(tls *crt.TLS, pFile uintptr, h int32, lineno int32) { /* sqlite3.c:34749:13: */
if (*(*func(*crt.TLS, int32) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(1)*24 + 8 /* &.pCurrent */))))(tls, h) != 0 {
- unixLogErrorAtLine(tls, (10 | (int32(16) << 8)), ts+2216, /* "close" */
+ unixLogErrorAtLine(tls, (10 | (int32(16) << 8)), ts+2265, /* "close" */
func() uintptr {
if pFile != 0 {
return (*UnixFile)(unsafe.Pointer(pFile)).FzPath
@@ -18481,19 +18937,19 @@ func verifyDbFile(tls *crt.TLS, pFile uintptr) { /* sqlite3.c:34936:13: */
rc = (*(*func(*crt.TLS, int32, uintptr) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(5)*24 + 8 /* &.pCurrent */))))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, bp+32 /* &buf */)
if rc != 0 {
- Xsqlite3_log(tls, 28, ts+2550 /* "cannot fstat db ..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ Xsqlite3_log(tls, 28, ts+2599 /* "cannot fstat db ..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
return
}
if (*stat64)(unsafe.Pointer(bp+32 /* &buf */)).Fst_nlink == uint64(0) {
- Xsqlite3_log(tls, 28, ts+2574 /* "file unlinked wh..." */, crt.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ Xsqlite3_log(tls, 28, ts+2623 /* "file unlinked wh..." */, crt.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
return
}
if (*stat64)(unsafe.Pointer(bp+32 /* &buf */)).Fst_nlink > uint64(1) {
- Xsqlite3_log(tls, 28, ts+2603 /* "multiple links t..." */, crt.VaList(bp+16, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ Xsqlite3_log(tls, 28, ts+2652 /* "multiple links t..." */, crt.VaList(bp+16, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
return
}
if fileHasMoved(tls, pFile) != 0 {
- Xsqlite3_log(tls, 28, ts+2630 /* "file renamed whi..." */, crt.VaList(bp+24, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ Xsqlite3_log(tls, 28, ts+2679 /* "file renamed whi..." */, crt.VaList(bp+24, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
return
}
}
@@ -18540,7 +18996,7 @@ func unixCheckReservedLock(tls *crt.TLS, id uintptr, pResOut uintptr) int32 { /*
Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FpLockMutex)
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2658 /* "TEST WR-LOCK %d ..." */, crt.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).Fh, rc, reserved))
+ Xsqlite3DebugPrintf(tls, ts+2707 /* "TEST WR-LOCK %d ..." */, crt.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).Fh, rc, reserved))
}
*(*int32)(unsafe.Pointer(pResOut)) = reserved
@@ -18683,7 +19139,7 @@ func unixLock(tls *crt.TLS, id uintptr, eFileLock int32) int32 { /* sqlite3.c:35
if !(Xsqlite3OSTrace != 0) {
goto __1
}
- Xsqlite3DebugPrintf(tls, ts+2688 /* "LOCK %d %s wa..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, azFileLock(tls, eFileLock), azFileLock(tls, int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock)), azFileLock(tls, int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FeFileLock)), (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FnShared, crt.Xgetpid(tls)))
+ Xsqlite3DebugPrintf(tls, ts+2737 /* "LOCK %d %s wa..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, azFileLock(tls, eFileLock), azFileLock(tls, int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock)), azFileLock(tls, int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FeFileLock)), (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FnShared, crt.Xgetpid(tls)))
__1:
;
@@ -18696,7 +19152,7 @@ __1:
if !(Xsqlite3OSTrace != 0) {
goto __3
}
- Xsqlite3DebugPrintf(tls, ts+2731 /* "LOCK %d %s ok..." */, crt.VaList(bp+48, (*UnixFile)(unsafe.Pointer(pFile)).Fh, azFileLock(tls, eFileLock)))
+ Xsqlite3DebugPrintf(tls, ts+2780 /* "LOCK %d %s ok..." */, crt.VaList(bp+48, (*UnixFile)(unsafe.Pointer(pFile)).Fh, azFileLock(tls, eFileLock)))
__3:
;
return 0
@@ -18884,11 +19340,11 @@ end_lock:
if !(Xsqlite3OSTrace != 0) {
goto __25
}
- Xsqlite3DebugPrintf(tls, ts+2771 /* "LOCK %d %s %s..." */, crt.VaList(bp+64, (*UnixFile)(unsafe.Pointer(pFile)).Fh, azFileLock(tls, eFileLock), func() uintptr {
+ Xsqlite3DebugPrintf(tls, ts+2820 /* "LOCK %d %s %s..." */, crt.VaList(bp+64, (*UnixFile)(unsafe.Pointer(pFile)).Fh, azFileLock(tls, eFileLock), func() uintptr {
if rc == 0 {
- return ts + 2796 /* "ok" */
+ return ts + 2845 /* "ok" */
}
- return ts + 2799 /* "failed" */
+ return ts + 2848 /* "failed" */
}()))
__25:
;
@@ -18933,7 +19389,7 @@ func posixUnlock(tls *crt.TLS, id uintptr, eFileLock int32, handleNFSUnlock int3
if !(Xsqlite3OSTrace != 0) {
goto __1
}
- Xsqlite3DebugPrintf(tls, ts+2806 /* "UNLOCK %d %d wa..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, eFileLock, int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock), int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FeFileLock), (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FnShared, crt.Xgetpid(tls)))
+ Xsqlite3DebugPrintf(tls, ts+2855 /* "UNLOCK %d %d wa..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, eFileLock, int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock), int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FeFileLock), (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FnShared, crt.Xgetpid(tls)))
__1:
;
@@ -19082,7 +19538,7 @@ func closeUnixFile(tls *crt.TLS, id uintptr) int32 { /* sqlite3.c:35549:12: */
(*UnixFile)(unsafe.Pointer(pFile)).Fh = -1
}
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2849 /* "CLOSE %-3d\n" */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh))
+ Xsqlite3DebugPrintf(tls, ts+2898 /* "CLOSE %-3d\n" */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh))
}
Xsqlite3_open_file_count = Xsqlite3_open_file_count + (-1)
Xsqlite3_free(tls, (*UnixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused)
@@ -19213,7 +19669,7 @@ func dotlockCheckReservedLock(tls *crt.TLS, id uintptr, pResOut uintptr) int32 {
reserved = (crt.Bool32((*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(2)*24 + 8 /* &.pCurrent */))))(tls, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext, 0) == 0))
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2863 /* "TEST WR-LOCK %d ..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, rc, reserved))
+ Xsqlite3DebugPrintf(tls, ts+2912 /* "TEST WR-LOCK %d ..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, rc, reserved))
}
*(*int32)(unsafe.Pointer(pResOut)) = reserved
return rc
@@ -19295,7 +19751,7 @@ func dotlockUnlock(tls *crt.TLS, id uintptr, eFileLock int32) int32 { /* sqlite3
var rc int32
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2896 /* "UNLOCK %d %d wa..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, eFileLock, int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock), crt.Xgetpid(tls)))
+ Xsqlite3DebugPrintf(tls, ts+2945 /* "UNLOCK %d %d wa..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh, eFileLock, int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock), crt.Xgetpid(tls)))
}
// no-op if possible
@@ -19467,7 +19923,7 @@ func seekAndRead(tls *crt.TLS, id uintptr, offset Sqlite3_int64, pBuf uintptr, c
}
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2935 /* "READ %-3d %5d..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(id)).Fh, (got+prior), (offset-Sqlite3_int64(prior)), uint64(0)))
+ Xsqlite3DebugPrintf(tls, ts+2984 /* "READ %-3d %5d..." */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(id)).Fh, (got+prior), (offset-Sqlite3_int64(prior)), uint64(0)))
}
return (got + prior)
}
@@ -19540,7 +19996,7 @@ func seekAndWriteFd(tls *crt.TLS, fd int32, iOff I64, pBuf uintptr, nBuf int32,
}
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2964 /* "WRITE %-3d %5d..." */, crt.VaList(bp, fd, rc, iOff, uint64(0)))
+ Xsqlite3DebugPrintf(tls, ts+3013 /* "WRITE %-3d %5d..." */, crt.VaList(bp, fd, rc, iOff, uint64(0)))
}
if rc < 0 {
@@ -19640,11 +20096,15 @@ var Xsqlite3_fullsync_count int32 = 0 /* sqlite3.c:36994:16 */
// So, we always use fdatasync() if it is available, regardless of
// the value of the dataOnly flag.
func full_fsync(tls *crt.TLS, fd int32, fullSync int32, dataOnly int32) int32 { /* sqlite3.c:37043:12: */
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
var rc int32
// The following "ifdef/elif/else/" block has the same structure as
// the one below. It is replicated here solely to avoid cluttering
// up the real code with the UNUSED_PARAMETER() macros.
+ _ = fd
_ = fullSync
_ = dataOnly
@@ -19656,11 +20116,16 @@ func full_fsync(tls *crt.TLS, fd int32, fullSync int32, dataOnly int32) int32 {
}
Xsqlite3_sync_count++
- // If we compiled with the SQLITE_NO_SYNC flag, then syncing is a
- // no-op. But go ahead and call fstat() to validate the file
- // descriptor as we need a method to provoke a failure during
- // coverate testing.
- rc = crt.Xfsync(tls, fd)
+ /* If we compiled with the SQLITE_NO_SYNC flag, then syncing is a
+ ** no-op. But go ahead and call fstat() to validate the file
+ ** descriptor as we need a method to provoke a failure during
+ ** coverate testing.
+ */
+ {
+ // var buf stat64 at bp, 144
+
+ rc = (*(*func(*crt.TLS, int32, uintptr) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(5)*24 + 8 /* &.pCurrent */))))(tls, fd, bp /* &buf */)
+ }
if (0 != 0) && (rc != -1) {
rc = 0
@@ -19697,7 +20162,7 @@ func openDirectory(tls *crt.TLS, zFilename uintptr, pFd uintptr) int32 { /* sqli
var fd int32 = -1
// var zDirname [513]int8 at bp+24, 513
- Xsqlite3_snprintf(tls, 512, bp+24 /* &zDirname[0] */, ts+647 /* "%s" */, crt.VaList(bp, zFilename))
+ Xsqlite3_snprintf(tls, 512, bp+24 /* &zDirname[0] */, ts+696 /* "%s" */, crt.VaList(bp, zFilename))
for ii = int32(crt.Xstrlen(tls, bp+24 /* &zDirname[0] */)); (ii > 0) && (int32(*(*int8)(unsafe.Pointer(bp + 24 /* &zDirname[0] */ + uintptr(ii)))) != '/'); ii-- {
}
if ii > 0 {
@@ -19711,14 +20176,14 @@ func openDirectory(tls *crt.TLS, zFilename uintptr, pFd uintptr) int32 { /* sqli
fd = robust_open(tls, bp+24 /* &zDirname[0] */, (00 | 0), uint32(0))
if fd >= 0 {
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+2993 /* "OPENDIR %-3d %s\n" */, crt.VaList(bp+8, fd, bp+24 /* &zDirname[0] */))
+ Xsqlite3DebugPrintf(tls, ts+3042 /* "OPENDIR %-3d %s\n" */, crt.VaList(bp+8, fd, bp+24 /* &zDirname[0] */))
}
}
*(*int32)(unsafe.Pointer(pFd)) = fd
if fd >= 0 {
return 0
}
- return unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 37158), ts+2328 /* "openDirectory" */, bp+24 /* &zDirname[0] */, 37158)
+ return unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 37158), ts+2377 /* "openDirectory" */, bp+24 /* &zDirname[0] */, 37158)
}
// Make sure all writes to a particular file are committed to disk.
@@ -19760,7 +20225,7 @@ func unixSync(tls *crt.TLS, id uintptr, flags int32) int32 { /* sqlite3.c:37176:
}
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+3010 /* "SYNC %-3d\n" */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh))
+ Xsqlite3DebugPrintf(tls, ts+3059 /* "SYNC %-3d\n" */, crt.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).Fh))
}
rc = full_fsync(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly)
if ((Xsqlite3_io_error_persist != 0) && (Xsqlite3_io_error_hit != 0)) || (crt.PostDecInt32(&Xsqlite3_io_error_pending, 1) == 1) {
@@ -19770,7 +20235,7 @@ func unixSync(tls *crt.TLS, id uintptr, flags int32) int32 { /* sqlite3.c:37176:
if rc != 0 {
storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(crt.X__errno_location(tls))))
- return unixLogErrorAtLine(tls, (10 | (int32(4) << 8)), ts+3024 /* "full_fsync" */, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 37199)
+ return unixLogErrorAtLine(tls, (10 | (int32(4) << 8)), ts+3073 /* "full_fsync" */, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 37199)
}
// Also fsync the directory containing the file if the DIRSYNC flag
@@ -19780,7 +20245,7 @@ func unixSync(tls *crt.TLS, id uintptr, flags int32) int32 { /* sqlite3.c:37176:
// var dirfd int32 at bp+32, 4
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+3035 /* "DIRSYNC %s (have..." */, crt.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 0, isFullsync))
+ Xsqlite3DebugPrintf(tls, ts+3084 /* "DIRSYNC %s (have..." */, crt.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 0, isFullsync))
}
rc = (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(17)*24 + 8 /* &.pCurrent */))))(tls, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, bp+32 /* &dirfd */)
if rc == 0 {
@@ -19816,7 +20281,7 @@ func unixTruncate(tls *crt.TLS, id uintptr, nByte I64) int32 { /* sqlite3.c:3722
rc = robust_ftruncate(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, nByte)
if rc != 0 {
storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(crt.X__errno_location(tls))))
- return unixLogErrorAtLine(tls, (10 | (int32(6) << 8)), ts+2247 /* "ftruncate" */, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 37244)
+ return unixLogErrorAtLine(tls, (10 | (int32(6) << 8)), ts+2296 /* "ftruncate" */, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 37244)
} else {
// If the file was just truncated to a size smaller than the currently
@@ -19899,7 +20364,7 @@ func fcntlSizeHint(tls *crt.TLS, pFile uintptr, nByte I64) int32 { /* sqlite3.c:
if iWrite >= nSize {
iWrite = (nSize - int64(1))
}
- nWrite = seekAndWrite(tls, pFile, iWrite, ts+623 /* "" */, 1)
+ nWrite = seekAndWrite(tls, pFile, iWrite, ts+672 /* "" */, 1)
if nWrite != 1 {
return (10 | (int32(3) << 8))
}
@@ -19912,7 +20377,7 @@ func fcntlSizeHint(tls *crt.TLS, pFile uintptr, nByte I64) int32 { /* sqlite3.c:
if (*UnixFile)(unsafe.Pointer(pFile)).FszChunk <= 0 {
if robust_ftruncate(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, nByte) != 0 {
storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(crt.X__errno_location(tls))))
- return unixLogErrorAtLine(tls, (10 | (int32(6) << 8)), ts+2247 /* "ftruncate" */, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 37365)
+ return unixLogErrorAtLine(tls, (10 | (int32(6) << 8)), ts+2296 /* "ftruncate" */, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 37365)
}
}
@@ -19980,7 +20445,7 @@ func unixFileControl(tls *crt.TLS, id uintptr, op int32, pArg uintptr) int32 { /
}
case 12:
{
- *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp, (*Sqlite3_vfs)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpVfs)).FzName))
+ *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp, (*Sqlite3_vfs)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpVfs)).FzName))
return 0
}
case 16:
@@ -20222,7 +20687,7 @@ func unixLockSharedMemory(tls *crt.TLS, pDbFd uintptr, pShmNode uintptr) int32 {
// help detect if a -shm file truncation is legitimate or is the work
// or a rogue process.
if (rc == 0) && (robust_ftruncate(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0) {
- rc = unixLogErrorAtLine(tls, (10 | (int32(18) << 8)), ts+2247 /* "ftruncate" */, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename, 37934)
+ rc = unixLogErrorAtLine(tls, (10 | (int32(18) << 8)), ts+2296 /* "ftruncate" */, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename, 37934)
}
}
} else if int32((*flock)(unsafe.Pointer(bp+8 /* &lock */)).Fl_type) == 1 {
@@ -20328,7 +20793,7 @@ __4:
;
crt.Xmemset(tls, pShmNode, 0, (uint64(unsafe.Sizeof(unixShmNode{})) + uint64(nShmFilename)))
zShm = crt.AssignPtrUintptr(pShmNode+16 /* &.zFilename */, (pShmNode + uintptr(1)*64))
- Xsqlite3_snprintf(tls, nShmFilename, zShm, ts+3079 /* "%s-shm" */, crt.VaList(bp, zBasePath))
+ Xsqlite3_snprintf(tls, nShmFilename, zShm, ts+3128 /* "%s-shm" */, crt.VaList(bp, zBasePath))
(*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm = -1
(*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pDbFd)).FpInode)).FpShmNode = pShmNode
@@ -20350,7 +20815,7 @@ __5:
if !(int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FbProcessLock) == 0) {
goto __7
}
- if !(0 == Xsqlite3_uri_boolean(tls, (*UnixFile)(unsafe.Pointer(pDbFd)).FzPath, ts+3086 /* "readonly_shm" */, 0)) {
+ if !(0 == Xsqlite3_uri_boolean(tls, (*UnixFile)(unsafe.Pointer(pDbFd)).FzPath, ts+3135 /* "readonly_shm" */, 0)) {
goto __8
}
(*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm = robust_open(tls, zShm, ((02 | 0100) | 0),
@@ -20365,7 +20830,7 @@ __8:
if !((*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm < 0) {
goto __10
}
- rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 38059), ts+2211 /* "open" */, zShm, 38059)
+ rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 38059), ts+2260 /* "open" */, zShm, 38059)
goto shm_open_err
__10:
;
@@ -20532,11 +20997,11 @@ __11:
goto __13
}
*(*int32)(unsafe.Pointer(bp + 144 /* x */)) = 0
- if !(seekAndWriteFd(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, (int64(((iPg*pgsz)+pgsz)-1)), ts+623 /* "" */, 1, bp+144 /* &x */) != 1) {
+ if !(seekAndWriteFd(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, (int64(((iPg*pgsz)+pgsz)-1)), ts+672 /* "" */, 1, bp+144 /* &x */) != 1) {
goto __14
}
zFile = (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename
- rc = unixLogErrorAtLine(tls, (10 | (int32(19) << 8)), ts+2282 /* "write" */, zFile, 38203)
+ rc = unixLogErrorAtLine(tls, (10 | (int32(19) << 8)), ts+2331 /* "write" */, zFile, 38203)
goto shmpage_out
__14:
;
@@ -20584,7 +21049,7 @@ __16:
if !(pMem == (crt.UintptrFromInt32(-1))) {
goto __20
}
- rc = unixLogErrorAtLine(tls, (10 | (int32(21) << 8)), ts+2369 /* "mmap" */, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename, 38230)
+ rc = unixLogErrorAtLine(tls, (10 | (int32(21) << 8)), ts+2418 /* "mmap" */, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename, 38230)
goto shmpage_out
__20:
;
@@ -20748,7 +21213,7 @@ func unixShmLock(tls *crt.TLS, fd uintptr, ofst int32, n int32, flags int32) int
}
Xsqlite3_mutex_leave(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+3099 /* "SHM-LOCK shmid-%..." */, crt.VaList(bp, int32((*UnixShm)(unsafe.Pointer(p)).Fid), crt.Xgetpid(tls), int32((*UnixShm)(unsafe.Pointer(p)).FsharedMask), int32((*UnixShm)(unsafe.Pointer(p)).FexclMask)))
+ Xsqlite3DebugPrintf(tls, ts+3148 /* "SHM-LOCK shmid-%..." */, crt.VaList(bp, int32((*UnixShm)(unsafe.Pointer(p)).Fid), crt.Xgetpid(tls), int32((*UnixShm)(unsafe.Pointer(p)).FsharedMask), int32((*UnixShm)(unsafe.Pointer(p)).FexclMask)))
}
return rc
}
@@ -20837,7 +21302,7 @@ func unixUnmapfile(tls *crt.TLS, pFd uintptr) { /* sqlite3.c:38475:13: */
// continue accessing the database using the xRead() and xWrite()
// methods.
func unixRemapfile(tls *crt.TLS, pFd uintptr, nNew I64) { /* sqlite3.c:38500:13: */
- var zErr uintptr = ts + 2369 /* "mmap" */
+ var zErr uintptr = ts + 2418 /* "mmap" */
var h int32 = (*UnixFile)(unsafe.Pointer(pFd)).Fh // File descriptor open on db file
var pOrig uintptr = (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion // Pointer to current file mapping
var nOrig I64 = (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeActual // Size of pOrig region in bytes
@@ -21085,7 +21550,7 @@ func fillInUnixFile(tls *crt.TLS, pVfs uintptr, h int32, pId uintptr, zFilename
// No locking occurs in temporary files
if Xsqlite3OSTrace != 0 {
- Xsqlite3DebugPrintf(tls, ts+3140 /* "OPEN %-3d %s\n" */, crt.VaList(bp, h, zFilename))
+ Xsqlite3DebugPrintf(tls, ts+3189 /* "OPEN %-3d %s\n" */, crt.VaList(bp, h, zFilename))
}
(*UnixFile)(unsafe.Pointer(pNew)).Fh = h
(*UnixFile)(unsafe.Pointer(pNew)).FpVfs = pVfs
@@ -21098,10 +21563,10 @@ func fillInUnixFile(tls *crt.TLS, pVfs uintptr, h int32, pId uintptr, zFilename
}
return uintptr(0)
}(),
- ts+3157 /* "psow" */, 1) != 0 {
+ ts+3206 /* "psow" */, 1) != 0 {
*(*uint16)(unsafe.Pointer(pNew + 30 /* &.ctrlFlags */)) |= uint16((0x10))
}
- if crt.Xstrcmp(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, ts+3162 /* "unix-excl" */) == 0 {
+ if crt.Xstrcmp(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, ts+3211 /* "unix-excl" */) == 0 {
*(*uint16)(unsafe.Pointer(pNew + 30 /* &.ctrlFlags */)) |= uint16((0x01))
}
@@ -21147,7 +21612,7 @@ func fillInUnixFile(tls *crt.TLS, pVfs uintptr, h int32, pId uintptr, zFilename
if zLockFile == uintptr(0) {
rc = 7
} else {
- Xsqlite3_snprintf(tls, nFilename, zLockFile, ts+3172 /* "%s.lock" */, crt.VaList(bp+16, zFilename))
+ Xsqlite3_snprintf(tls, nFilename, zLockFile, ts+3221 /* "%s.lock" */, crt.VaList(bp+16, zFilename))
}
(*UnixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile
}
@@ -21177,10 +21642,10 @@ func unixTempFileDir(tls *crt.TLS) uintptr { /* sqlite3.c:39166:19: */
var zDir uintptr = Xsqlite3_temp_directory
if !(int32(azDirs[0]) != 0) {
- azDirs[0] = crt.Xgetenv(tls, ts+3180 /* "SQLITE_TMPDIR" */)
+ azDirs[0] = crt.Xgetenv(tls, ts+3229 /* "SQLITE_TMPDIR" */)
}
if !(int32(azDirs[1]) != 0) {
- azDirs[1] = crt.Xgetenv(tls, ts+3194 /* "TMPDIR" */)
+ azDirs[1] = crt.Xgetenv(tls, ts+3243 /* "TMPDIR" */)
}
for 1 != 0 {
if (((zDir != uintptr(0)) &&
@@ -21200,10 +21665,10 @@ func unixTempFileDir(tls *crt.TLS) uintptr { /* sqlite3.c:39166:19: */
var azDirs = [6]uintptr{
uintptr(0),
uintptr(0),
- ts + 3201, /* "/var/tmp" */
- ts + 3210, /* "/usr/tmp" */
- ts + 3219, /* "/tmp" */
- ts + 636, /* "." */
+ ts + 3250, /* "/var/tmp" */
+ ts + 3259, /* "/usr/tmp" */
+ ts + 3268, /* "/tmp" */
+ ts + 685, /* "." */
} /* sqlite3.c:39167:21 */
// Create a temporary file name in zBuf. zBuf must be allocated
@@ -21235,7 +21700,7 @@ func unixGetTempname(tls *crt.TLS, nBuf int32, zBuf uintptr) int32 { /* sqlite3.
Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U64(0))), bp+24 /* &r */)
*(*int8)(unsafe.Pointer(zBuf + uintptr((nBuf - 2)))) = int8(0)
- Xsqlite3_snprintf(tls, nBuf, zBuf, ts+3224, /* "%s/etilqs_%llx%c" */
+ Xsqlite3_snprintf(tls, nBuf, zBuf, ts+3273, /* "%s/etilqs_%llx%c" */
crt.VaList(bp, zDir, *(*U64)(unsafe.Pointer(bp + 24 /* r */)), 0))
if (int32(*(*int8)(unsafe.Pointer(zBuf + uintptr((nBuf - 2))))) != 0) || ((crt.PostIncInt32(&iLimit, 1)) > 10) {
return 1
@@ -21391,7 +21856,7 @@ func findCreateFileMode(tls *crt.TLS, zPath uintptr, flags int32, pMode uintptr,
// filename, check for the "modeof" parameter. If present, interpret
// its value as a filename and try to copy the mode, uid and gid from
// that file.
- var z uintptr = Xsqlite3_uri_parameter(tls, zPath, ts+3241 /* "modeof" */)
+ var z uintptr = Xsqlite3_uri_parameter(tls, zPath, ts+3290 /* "modeof" */)
if z != 0 {
rc = getFileMode(tls, z, pMode, pUid, pGid)
}
@@ -21587,7 +22052,7 @@ __14:
if !(Xsqlite3OSTrace != 0) {
goto __15
}
- Xsqlite3DebugPrintf(tls, ts+3248 /* "OPENX %-3d %s ..." */, crt.VaList(bp, fd, zName, openFlags))
+ Xsqlite3DebugPrintf(tls, ts+3297 /* "OPENX %-3d %s ..." */, crt.VaList(bp, fd, zName, openFlags))
__15:
;
@@ -21621,7 +22086,7 @@ __16:
if !(fd < 0) {
goto __20
}
- rc2 = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39567), ts+2211 /* "open" */, zName, 39567)
+ rc2 = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39567), ts+2260 /* "open" */, zName, 39567)
if !(rc == 0) {
goto __21
}
@@ -21736,7 +22201,7 @@ func unixDelete(tls *crt.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) int
if (*(*int32)(unsafe.Pointer(crt.X__errno_location(tls)))) == 2 {
rc = (10 | (int32(23) << 8))
} else {
- rc = unixLogErrorAtLine(tls, (10 | (int32(10) << 8)), ts+2321 /* "unlink" */, zPath, 39706)
+ rc = unixLogErrorAtLine(tls, (10 | (int32(10) << 8)), ts+2370 /* "unlink" */, zPath, 39706)
}
return rc
}
@@ -21746,7 +22211,7 @@ func unixDelete(tls *crt.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) int
rc = (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(17)*24 + 8 /* &.pCurrent */))))(tls, zPath, bp /* &fd */)
if rc == 0 {
if full_fsync(tls, *(*int32)(unsafe.Pointer(bp /* fd */)), 0, 0) != 0 {
- rc = unixLogErrorAtLine(tls, (10 | (int32(5) << 8)), ts+3269 /* "fsync" */, zPath, 39716)
+ rc = unixLogErrorAtLine(tls, (10 | (int32(5) << 8)), ts+3318 /* "fsync" */, zPath, 39716)
}
robust_close(tls, uintptr(0), *(*int32)(unsafe.Pointer(bp /* fd */)), 39718)
} else {
@@ -21797,7 +22262,7 @@ func mkFullPathname(tls *crt.TLS, zPath uintptr, zOut uintptr, nOut int32) int32
var iOff int32 = 0
if int32(*(*int8)(unsafe.Pointer(zPath + uintptr(0)))) != '/' {
if (*(*func(*crt.TLS, uintptr, Size_t) uintptr)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(3)*24 + 8 /* &.pCurrent */))))(tls, zOut, (uint64(nOut-2))) == uintptr(0) {
- return unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39774), ts+2229 /* "getcwd" */, zPath, 39774)
+ return unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39774), ts+2278 /* "getcwd" */, zPath, 39774)
}
iOff = Xsqlite3Strlen30(tls, zOut)
*(*int8)(unsafe.Pointer(zOut + uintptr(crt.PostIncInt32(&iOff, 1)))) = int8('/')
@@ -21808,7 +22273,7 @@ func mkFullPathname(tls *crt.TLS, zPath uintptr, zOut uintptr, nOut int32) int32
*(*int8)(unsafe.Pointer(zOut + uintptr(iOff))) = int8(0)
return Xsqlite3CantopenError(tls, 39783)
}
- Xsqlite3_snprintf(tls, (nOut - iOff), (zOut + uintptr(iOff)), ts+647 /* "%s" */, crt.VaList(bp, zPath))
+ Xsqlite3_snprintf(tls, (nOut - iOff), (zOut + uintptr(iOff)), ts+696 /* "%s" */, crt.VaList(bp, zPath))
return 0
}
@@ -21849,7 +22314,7 @@ func unixFullPathname(tls *crt.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOu
if (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(27)*24 + 8 /* &.pCurrent */))))(tls, zIn, bp /* &buf */) != 0 {
if (*(*int32)(unsafe.Pointer(crt.X__errno_location(tls)))) != 2 {
- rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39831), ts+2409 /* "lstat" */, zIn, 39831)
+ rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39831), ts+2458 /* "lstat" */, zIn, 39831)
}
} else {
bLink = (crt.Bool32((((*stat64)(unsafe.Pointer(bp /* &buf */)).Fst_mode) & uint32(0170000)) == (uint32(0120000))))
@@ -21869,7 +22334,7 @@ func unixFullPathname(tls *crt.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOu
if rc == 0 {
nByte = int32((*(*func(*crt.TLS, uintptr, uintptr, Size_t) Ssize_t)(unsafe.Pointer((uintptr(unsafe.Pointer(&aSyscall)) + uintptr(26)*24 + 8 /* &.pCurrent */))))(tls, zIn, zDel, (uint64(nOut - 1))))
if nByte < 0 {
- rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39849), ts+2400 /* "readlink" */, zIn, 39849)
+ rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 39849), ts+2449 /* "readlink" */, zIn, 39849)
} else {
if int32(*(*int8)(unsafe.Pointer(zDel + uintptr(0)))) != '/' {
var n int32
@@ -21925,7 +22390,7 @@ func unixDlError(tls *crt.TLS, NotUsed uintptr, nBuf int32, zBufOut uintptr) { /
unixEnterMutex(tls)
zErr = crt.Xdlerror(tls)
if zErr != 0 {
- Xsqlite3_snprintf(tls, nBuf, zBufOut, ts+647 /* "%s" */, crt.VaList(bp, zErr))
+ Xsqlite3_snprintf(tls, nBuf, zBufOut, ts+696 /* "%s" */, crt.VaList(bp, zErr))
}
unixLeaveMutex(tls)
}
@@ -22237,10 +22702,10 @@ func Xsqlite3_os_init(tls *crt.TLS) int32 { /* sqlite3.c:41291:16: */
}
var aVfs = [4]Sqlite3_vfs{
- {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3275 /* "unix" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
- {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3280 /* "unix-none" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
- {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3290 /* "unix-dotfile" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
- {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3162 /* "unix-excl" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
+ {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3324 /* "unix" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
+ {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3329 /* "unix-none" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
+ {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3339 /* "unix-dotfile" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
+ {FiVersion: 3, FszOsFile: /* iVersion */ int32(unsafe.Sizeof(UnixFile{})), FmxPathname: /* szOsFile */ 512, FpNext: /* mxPathname */ uintptr(0), FzName: /* pNext */ ts + 3211 /* "unix-excl" */, FpAppData: /* zName */ 0, FxOpen: /* pAppData */ 0, FxDelete: /* xOpen */ 0, FxAccess: /* xDelete */ 0, FxFullPathname: /* xAccess */ 0, FxDlOpen: /* xFullPathname */ 0, FxDlError: /* xDlOpen */ 0, FxDlSym: /* xDlError */ 0, FxDlClose: /* xDlSym */ 0, FxRandomness: /* xDlClose */ 0, FxSleep: /* xRandomness */ 0, FxCurrentTime: /* xSleep */ 0, FxGetLastError: /* xCurrentTime */ 0, FxCurrentTimeInt64: /* xGetLastError */ 0, FxSetSystemCall: /* xCurrentTimeInt64 */ 0, FxGetSystemCall: /* xSetSystemCall */ 0, FxNextSystemCall: /* xGetSystemCall */ 0 /* xNextSystemCall */},
} /* sqlite3.c:41344:22 */
// Shutdown the operating system interface.
@@ -22253,6 +22718,532 @@ func Xsqlite3_os_end(tls *crt.TLS) int32 { /* sqlite3.c:41391:16: */
return 0
}
+//************* End of os_unix.c ********************************************
+//************* Begin file os_win.c *****************************************
+// 2004 May 22
+//
+// The author disclaims copyright to this source code. In place of
+// a legal notice, here is a blessing:
+//
+// May you do good and not evil.
+// May you find forgiveness for yourself and forgive others.
+// May you share freely, never taking more than you give.
+//
+//
+//
+// This file contains code that is specific to Windows.
+// #include "sqliteInt.h"
+
+//************* End of os_win.c *********************************************
+//************* Begin file memdb.c ******************************************
+// 2016-09-07
+//
+// The author disclaims copyright to this source code. In place of
+// a legal notice, here is a blessing:
+//
+// May you do good and not evil.
+// May you find forgiveness for yourself and forgive others.
+// May you share freely, never taking more than you give.
+//
+//
+//
+// This file implements an in-memory VFS. A database is held as a contiguous
+// block of memory.
+//
+// This file also implements interface sqlite3_serialize() and
+// sqlite3_deserialize().
+// #include "sqliteInt.h"
+
+// Forward declaration of objects used by this utility
+type MemVfs = sqlite3_vfs /* sqlite3.c:47775:28 */
+type MemFile1 = struct {
+ Fbase Sqlite3_file
+ Fsz Sqlite3_int64
+ FszAlloc Sqlite3_int64
+ FszMax Sqlite3_int64
+ FaData uintptr
+ FnMmap int32
+ FmFlags uint32
+ FeLock int32
+ _ [4]byte
+}
+
+type MemFile = MemFile1 /* sqlite3.c:47776:24 */
+
+var memdb_vfs = Sqlite3_vfs{FiVersion: 2, FszOsFile: // iVersion
+0, FmxPathname:// szOsFile (set when registered)
+1024, FpNext:// mxPathname
+uintptr(0), FzName:// pNext
+ts + 3352, /* "memdb" */ FpAppData:// zName
+uintptr(0), FxOpen:/* pAppData (set when registered) */
+0, FxDelete:// xOpen
+uintptr(0), FxAccess:/* memdbDelete, */ // xDelete
+0, FxFullPathname:// xAccess
+0, FxDlOpen:// xFullPathname
+0, FxDlError:// xDlOpen
+0, FxDlSym:// xDlError
+0, FxDlClose:// xDlSym
+0, FxRandomness:// xDlClose
+0, FxSleep:// xRandomness
+0, FxCurrentTime:// xSleep
+uintptr(0), FxGetLastError:/* memdbCurrentTime, */ // xCurrentTime
+0, FxCurrentTimeInt64:// xGetLastError
+0, // xCurrentTimeInt64
+} /* sqlite3.c:47829:20 */
+
+var memdb_io_methods = Sqlite3_io_methods{FiVersion: 3, FxClose: // iVersion
+0, FxRead:// xClose
+0, FxWrite:// xRead
+0, FxTruncate:// xWrite
+0, FxSync:// xTruncate
+0, FxFileSize:// xSync
+0, FxLock:// xFileSize
+0, FxUnlock:// xLock
+0, FxCheckReservedLock:/* xUnlock - same as xLock in this case */
+uintptr(0), FxFileControl:/* memdbCheckReservedLock, */ // xCheckReservedLock
+0, FxSectorSize:// xFileControl
+uintptr(0), FxDeviceCharacteristics:/* memdbSectorSize,*/ // xSectorSize
+0, FxShmMap:// xDeviceCharacteristics
+uintptr(0), FxShmLock:// xShmMap
+uintptr(0), FxShmBarrier:// xShmLock
+uintptr(0), FxShmUnmap:// xShmBarrier
+uintptr(0), FxFetch:// xShmUnmap
+0, FxUnfetch:// xFetch
+0, // xUnfetch
+} /* sqlite3.c:47851:33 */
+
+// Close an memdb-file.
+//
+// The pData pointer is owned by the application, so there is nothing
+// to free.
+func memdbClose(tls *crt.TLS, pFile uintptr) int32 { /* sqlite3.c:47881:12: */
+ var p uintptr = pFile
+ if ((*MemFile)(unsafe.Pointer(p)).FmFlags & uint32(1)) != 0 {
+ Xsqlite3_free(tls, (*MemFile)(unsafe.Pointer(p)).FaData)
+ }
+ return 0
+}
+
+// Read data from an memdb-file.
+func memdbRead(tls *crt.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst Sqlite_int64) int32 { /* sqlite3.c:47890:12: */
+ var p uintptr = pFile
+ if (iOfst + Sqlite_int64(iAmt)) > (*MemFile)(unsafe.Pointer(p)).Fsz {
+ crt.Xmemset(tls, zBuf, 0, uint64(iAmt))
+ if iOfst < (*MemFile)(unsafe.Pointer(p)).Fsz {
+ crt.Xmemcpy(tls, zBuf, ((*MemFile)(unsafe.Pointer(p)).FaData + uintptr(iOfst)), (uint64((*MemFile)(unsafe.Pointer(p)).Fsz - iOfst)))
+ }
+ return (10 | (int32(2) << 8))
+ }
+ crt.Xmemcpy(tls, zBuf, ((*MemFile)(unsafe.Pointer(p)).FaData + uintptr(iOfst)), uint64(iAmt))
+ return 0
+}
+
+// Try to enlarge the memory allocation to hold at least sz bytes
+func memdbEnlarge(tls *crt.TLS, p uintptr, newSz Sqlite3_int64) int32 { /* sqlite3.c:47909:12: */
+ var pNew uintptr
+ if (((*MemFile)(unsafe.Pointer(p)).FmFlags & uint32(2)) == uint32(0)) || ((*MemFile)(unsafe.Pointer(p)).FnMmap > 0) {
+ return 13
+ }
+ if newSz > (*MemFile)(unsafe.Pointer(p)).FszMax {
+ return 13
+ }
+ newSz = newSz * (int64(2))
+ if newSz > (*MemFile)(unsafe.Pointer(p)).FszMax {
+ newSz = (*MemFile)(unsafe.Pointer(p)).FszMax
+ }
+ pNew = Xsqlite3Realloc(tls, (*MemFile)(unsafe.Pointer(p)).FaData, uint64(newSz))
+ if pNew == uintptr(0) {
+ return 7
+ }
+ (*MemFile)(unsafe.Pointer(p)).FaData = pNew
+ (*MemFile)(unsafe.Pointer(p)).FszAlloc = newSz
+ return 0
+}
+
+// Write data to an memdb-file.
+func memdbWrite(tls *crt.TLS, pFile uintptr, z uintptr, iAmt int32, iOfst Sqlite_int64) int32 { /* sqlite3.c:47929:12: */
+ var p uintptr = pFile
+ if ((*MemFile)(unsafe.Pointer(p)).FmFlags & uint32(4)) != 0 {
+ return 8
+ }
+ if (iOfst + Sqlite_int64(iAmt)) > (*MemFile)(unsafe.Pointer(p)).Fsz {
+ var rc int32
+ if ((iOfst + Sqlite_int64(iAmt)) > (*MemFile)(unsafe.Pointer(p)).FszAlloc) &&
+ ((crt.AssignInt32(&rc, memdbEnlarge(tls, p, (iOfst+Sqlite_int64(iAmt))))) != 0) {
+ return rc
+ }
+ if iOfst > (*MemFile)(unsafe.Pointer(p)).Fsz {
+ crt.Xmemset(tls, ((*MemFile)(unsafe.Pointer(p)).FaData + uintptr((*MemFile)(unsafe.Pointer(p)).Fsz)), 0, (uint64(iOfst - (*MemFile)(unsafe.Pointer(p)).Fsz)))
+ }
+ (*MemFile)(unsafe.Pointer(p)).Fsz = (iOfst + Sqlite_int64(iAmt))
+ }
+ crt.Xmemcpy(tls, ((*MemFile)(unsafe.Pointer(p)).FaData + uintptr(iOfst)), z, uint64(iAmt))
+ return 0
+}
+
+// Truncate an memdb-file.
+//
+// In rollback mode (which is always the case for memdb, as it does not
+// support WAL mode) the truncate() method is only used to reduce
+// the size of a file, never to increase the size.
+func memdbTruncate(tls *crt.TLS, pFile uintptr, size Sqlite_int64) int32 { /* sqlite3.c:47958:12: */
+ var p uintptr = pFile
+ if size > (*MemFile)(unsafe.Pointer(p)).Fsz {
+ return 13
+ }
+ (*MemFile)(unsafe.Pointer(p)).Fsz = size
+ return 0
+}
+
+// Sync an memdb-file.
+func memdbSync(tls *crt.TLS, pFile uintptr, flags int32) int32 { /* sqlite3.c:47968:12: */
+ return 0
+}
+
+// Return the current file-size of an memdb-file.
+func memdbFileSize(tls *crt.TLS, pFile uintptr, pSize uintptr) int32 { /* sqlite3.c:47975:12: */
+ var p uintptr = pFile
+ *(*Sqlite_int64)(unsafe.Pointer(pSize)) = (*MemFile)(unsafe.Pointer(p)).Fsz
+ return 0
+}
+
+// Lock an memdb-file.
+func memdbLock(tls *crt.TLS, pFile uintptr, eLock int32) int32 { /* sqlite3.c:47984:12: */
+ var p uintptr = pFile
+ if (eLock > 1) &&
+ (((*MemFile)(unsafe.Pointer(p)).FmFlags & uint32(4)) != uint32(0)) {
+ return 8
+ }
+ (*MemFile)(unsafe.Pointer(p)).FeLock = eLock
+ return 0
+}
+
+// File control method. For custom operations on an memdb-file.
+func memdbFileControl(tls *crt.TLS, pFile uintptr, op int32, pArg uintptr) int32 { /* sqlite3.c:48008:12: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr = pFile
+ var rc int32 = 12
+ if op == 12 {
+ *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, ts+3358 /* "memdb(%p,%lld)" */, crt.VaList(bp, (*MemFile)(unsafe.Pointer(p)).FaData, (*MemFile)(unsafe.Pointer(p)).Fsz))
+ rc = 0
+ }
+ if op == 36 {
+ var iLimit Sqlite3_int64 = *(*Sqlite3_int64)(unsafe.Pointer(pArg))
+ if iLimit < (*MemFile)(unsafe.Pointer(p)).Fsz {
+ if iLimit < int64(0) {
+ iLimit = (*MemFile)(unsafe.Pointer(p)).FszMax
+ } else {
+ iLimit = (*MemFile)(unsafe.Pointer(p)).Fsz
+ }
+ }
+ (*MemFile)(unsafe.Pointer(p)).FszMax = iLimit
+ *(*Sqlite3_int64)(unsafe.Pointer(pArg)) = iLimit
+ rc = 0
+ }
+ return rc
+}
+
+// Return the device characteristic flags supported by an memdb-file.
+func memdbDeviceCharacteristics(tls *crt.TLS, pFile uintptr) int32 { /* sqlite3.c:48043:12: */
+ return (((0x00000001 | 0x00001000) | 0x00000200) | 0x00000400)
+}
+
+// Fetch a page of a memory-mapped file
+func memdbFetch(tls *crt.TLS, pFile uintptr, iOfst Sqlite3_int64, iAmt int32, pp uintptr) int32 { /* sqlite3.c:48051:12: */
+ var p uintptr = pFile
+ if (iOfst + Sqlite3_int64(iAmt)) > (*MemFile)(unsafe.Pointer(p)).Fsz {
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ } else {
+ (*MemFile)(unsafe.Pointer(p)).FnMmap++
+ *(*uintptr)(unsafe.Pointer(pp)) = ((*MemFile)(unsafe.Pointer(p)).FaData + uintptr(iOfst))
+ }
+ return 0
+}
+
+// Release a memory-mapped page
+func memdbUnfetch(tls *crt.TLS, pFile uintptr, iOfst Sqlite3_int64, pPage uintptr) int32 { /* sqlite3.c:48068:12: */
+ var p uintptr = pFile
+ (*MemFile)(unsafe.Pointer(p)).FnMmap--
+ return 0
+}
+
+// Open an mem file handle.
+func memdbOpen(tls *crt.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flags int32, pOutFlags uintptr) int32 { /* sqlite3.c:48077:12: */
+ var p uintptr = pFile
+ if (flags & 0x00000100) == 0 {
+ return (*(*func(*crt.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 40 /* &.xOpen */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, zName, pFile, flags, pOutFlags)
+ }
+ crt.Xmemset(tls, p, 0, uint64(unsafe.Sizeof(MemFile{})))
+ (*MemFile)(unsafe.Pointer(p)).FmFlags = (uint32(2 | 1))
+ // True because flags==SQLITE_OPEN_MAIN_DB
+ *(*int32)(unsafe.Pointer(pOutFlags)) = (flags | 0x00000080)
+ (*MemFile)(unsafe.Pointer(p)).Fbase.FpMethods = uintptr(unsafe.Pointer(&memdb_io_methods))
+ (*MemFile)(unsafe.Pointer(p)).FszMax = Xsqlite3Config.FmxMemdbSize
+ return 0
+}
+
+// Test for access permissions. Return true if the requested permission
+// is available, or false otherwise.
+//
+// With memdb, no files ever exist on disk. So always return false.
+func memdbAccess(tls *crt.TLS, pVfs uintptr, zPath uintptr, flags int32, pResOut uintptr) int32 { /* sqlite3.c:48115:12: */
+ *(*int32)(unsafe.Pointer(pResOut)) = 0
+ return 0
+}
+
+// Populate buffer zOut with the full canonical pathname corresponding
+// to the pathname in zPath. zOut is guaranteed to point to a buffer
+// of at least (INST_MAX_PATHNAME+1) bytes.
+func memdbFullPathname(tls *crt.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOut uintptr) int32 { /* sqlite3.c:48130:12: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ Xsqlite3_snprintf(tls, nOut, zOut, ts+696 /* "%s" */, crt.VaList(bp, zPath))
+ return 0
+}
+
+// Open the dynamic library located at zPath and return a handle.
+func memdbDlOpen(tls *crt.TLS, pVfs uintptr, zPath uintptr) uintptr { /* sqlite3.c:48143:13: */
+ return (*(*func(*crt.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 72 /* &.xDlOpen */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, zPath)
+}
+
+// Populate the buffer zErrMsg (size nByte bytes) with a human readable
+// utf-8 string describing the most recent error encountered associated
+// with dynamic libraries.
+func memdbDlError(tls *crt.TLS, pVfs uintptr, nByte int32, zErrMsg uintptr) { /* sqlite3.c:48152:13: */
+ (*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 80 /* &.xDlError */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, nByte, zErrMsg)
+}
+
+// Return a pointer to the symbol zSymbol in the dynamic library pHandle.
+func memdbDlSym(tls *crt.TLS, pVfs uintptr, p uintptr, zSym uintptr) uintptr { /* sqlite3.c:48159:13: */
+ return (*(*func(*crt.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 88 /* &.xDlSym */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, p, zSym)
+}
+
+// Close the dynamic library handle pHandle.
+func memdbDlClose(tls *crt.TLS, pVfs uintptr, pHandle uintptr) { /* sqlite3.c:48166:13: */
+ (*(*func(*crt.TLS, uintptr, uintptr))(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 96 /* &.xDlClose */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, pHandle)
+}
+
+// Populate the buffer pointed to by zBufOut with nByte bytes of
+// random data.
+func memdbRandomness(tls *crt.TLS, pVfs uintptr, nByte int32, zBufOut uintptr) int32 { /* sqlite3.c:48174:12: */
+ return (*(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 104 /* &.xRandomness */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, nByte, zBufOut)
+}
+
+// Sleep for nMicro microseconds. Return the number of microseconds
+// actually slept.
+func memdbSleep(tls *crt.TLS, pVfs uintptr, nMicro int32) int32 { /* sqlite3.c:48182:12: */
+ return (*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 112 /* &.xSleep */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, nMicro)
+}
+
+func memdbGetLastError(tls *crt.TLS, pVfs uintptr, a int32, b uintptr) int32 { /* sqlite3.c:48195:12: */
+ return (*(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 128 /* &.xGetLastError */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, a, b)
+}
+func memdbCurrentTimeInt64(tls *crt.TLS, pVfs uintptr, p uintptr) int32 { /* sqlite3.c:48198:12: */
+ return (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData + 136 /* &.xCurrentTimeInt64 */))))(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, p)
+}
+
+// Translate a database connection pointer and schema name into a
+// MemFile pointer.
+func memdbFromDbSchema(tls *crt.TLS, db uintptr, zSchema uintptr) uintptr { /* sqlite3.c:48206:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp /* p */)) = uintptr(0)
+ var rc int32 = Xsqlite3_file_control(tls, db, zSchema, 7, bp /* &p */)
+ if rc != 0 {
+ return uintptr(0)
+ }
+ if (*MemFile)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* p */)))).Fbase.FpMethods != uintptr(unsafe.Pointer(&memdb_io_methods)) {
+ return uintptr(0)
+ }
+ return *(*uintptr)(unsafe.Pointer(bp /* p */))
+}
+
+// Return the serialization of a database
+func Xsqlite3_serialize(tls *crt.TLS, db uintptr, zSchema uintptr, piSize uintptr, mFlags uint32) uintptr { /* sqlite3.c:48217:26: */
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var p uintptr
+ var iDb int32
+ var pBt uintptr
+ var sz Sqlite3_int64
+ var szPage int32 = 0
+ *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)) = uintptr(0)
+ var pOut uintptr
+ var zSql uintptr
+ var rc int32
+
+ if zSchema == uintptr(0) {
+ zSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(0)*32)).FzDbSName
+ }
+ p = memdbFromDbSchema(tls, db, zSchema)
+ iDb = Xsqlite3FindDbName(tls, db, zSchema)
+ if piSize != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piSize)) = int64(-1)
+ }
+ if iDb < 0 {
+ return uintptr(0)
+ }
+ if p != 0 {
+ if piSize != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piSize)) = (*MemFile)(unsafe.Pointer(p)).Fsz
+ }
+ if (mFlags & uint32(0x001)) != 0 {
+ pOut = (*MemFile)(unsafe.Pointer(p)).FaData
+ } else {
+ pOut = Xsqlite3_malloc64(tls, uint64((*MemFile)(unsafe.Pointer(p)).Fsz))
+ if pOut != 0 {
+ crt.Xmemcpy(tls, pOut, (*MemFile)(unsafe.Pointer(p)).FaData, uint64((*MemFile)(unsafe.Pointer(p)).Fsz))
+ }
+ }
+ return pOut
+ }
+ pBt = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if pBt == uintptr(0) {
+ return uintptr(0)
+ }
+ szPage = Xsqlite3BtreeGetPageSize(tls, pBt)
+ zSql = Xsqlite3_mprintf(tls, ts+3373 /* "PRAGMA \"%w\".page..." */, crt.VaList(bp, zSchema))
+ if zSql != 0 {
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp+8 /* &pStmt */, uintptr(0))
+ } else {
+ rc = 7
+ }
+ Xsqlite3_free(tls, zSql)
+ if rc != 0 {
+ return uintptr(0)
+ }
+ rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)))
+ if rc != 100 {
+ pOut = uintptr(0)
+ } else {
+ sz = (Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)), 0) * Sqlite_int64(szPage))
+ if piSize != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piSize)) = sz
+ }
+ if (mFlags & uint32(0x001)) != 0 {
+ pOut = uintptr(0)
+ } else {
+ pOut = Xsqlite3_malloc64(tls, uint64(sz))
+ if pOut != 0 {
+ var nPage int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)), 0)
+ var pPager uintptr = Xsqlite3BtreePager(tls, pBt)
+ var pgno int32
+ for pgno = 1; pgno <= nPage; pgno++ {
+ *(*uintptr)(unsafe.Pointer(bp + 16 /* pPage */)) = uintptr(0)
+ var pTo uintptr = (pOut + uintptr((Sqlite3_int64(szPage) * (Sqlite3_int64(pgno - 1)))))
+ rc = Xsqlite3PagerGet(tls, pPager, uint32(pgno), bp+16 /* &pPage */, 0)
+ if rc == 0 {
+ crt.Xmemcpy(tls, pTo, Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 16 /* pPage */))), uint64(szPage))
+ } else {
+ crt.Xmemset(tls, pTo, 0, uint64(szPage))
+ }
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 16 /* pPage */)))
+ }
+ }
+ }
+ }
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)))
+ return pOut
+}
+
+// Convert zSchema to a MemDB and initialize its content.
+func Xsqlite3_deserialize(tls *crt.TLS, db uintptr, zSchema uintptr, pData uintptr, szDb Sqlite3_int64, szBuf Sqlite3_int64, mFlags uint32) int32 { /* sqlite3.c:48296:16: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr
+ var zSql uintptr
+ // var pStmt uintptr at bp+8, 8
+
+ var rc int32
+ var iDb int32
+ *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)) = uintptr(0)
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if !(zSchema == uintptr(0)) {
+ goto __1
+ }
+ zSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(0)*32)).FzDbSName
+__1:
+ ;
+ iDb = Xsqlite3FindDbName(tls, db, zSchema)
+ if !(iDb < 0) {
+ goto __2
+ }
+ rc = 1
+ goto end_deserialize
+__2:
+ ;
+ zSql = Xsqlite3_mprintf(tls, ts+3396 /* "ATTACH x AS %Q" */, crt.VaList(bp, zSchema))
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp+8 /* &pStmt */, uintptr(0))
+ Xsqlite3_free(tls, zSql)
+ if !(rc != 0) {
+ goto __3
+ }
+ goto end_deserialize
+__3:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(iDb)
+ crt.SetBitFieldPtr8Uint32(db+176 /* &.init */ +8 /* &.reopenMemdb */, uint32(1), 2, 0x4)
+ rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)))
+ crt.SetBitFieldPtr8Uint32(db+176 /* &.init */ +8 /* &.reopenMemdb */, uint32(0), 2, 0x4)
+ if !(rc != 101) {
+ goto __4
+ }
+ rc = 1
+ goto end_deserialize
+__4:
+ ;
+ p = memdbFromDbSchema(tls, db, zSchema)
+ if !(p == uintptr(0)) {
+ goto __5
+ }
+ rc = 1
+ goto __6
+__5:
+ (*MemFile)(unsafe.Pointer(p)).FaData = pData
+ (*MemFile)(unsafe.Pointer(p)).Fsz = szDb
+ (*MemFile)(unsafe.Pointer(p)).FszAlloc = szBuf
+ (*MemFile)(unsafe.Pointer(p)).FszMax = szBuf
+ if !((*MemFile)(unsafe.Pointer(p)).FszMax < Xsqlite3Config.FmxMemdbSize) {
+ goto __7
+ }
+ (*MemFile)(unsafe.Pointer(p)).FszMax = Xsqlite3Config.FmxMemdbSize
+__7:
+ ;
+ (*MemFile)(unsafe.Pointer(p)).FmFlags = mFlags
+ rc = 0
+__6:
+ ;
+
+end_deserialize:
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* pStmt */)))
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// This routine is called when the extension is loaded.
+// Register the new VFS.
+func Xsqlite3MemdbInit(tls *crt.TLS) int32 { /* sqlite3.c:48362:20: */
+ var pLower uintptr = Xsqlite3_vfs_find(tls, uintptr(0))
+ var sz int32 = (*Sqlite3_vfs)(unsafe.Pointer(pLower)).FszOsFile
+ memdb_vfs.FpAppData = pLower
+ // The following conditional can only be true when compiled for
+ // Windows x86 and SQLITE_MAX_MMAP_SIZE=0. We always leave
+ // it in, to be safe, but it is marked as NO_TEST since there
+ // is no way to reach it under most builds.
+ if (uint64(sz) < uint64(unsafe.Sizeof(MemFile{}))) {
+ sz = int32(unsafe.Sizeof(MemFile{}))
+ } //NO_TEST
+ memdb_vfs.FszOsFile = sz
+ return Xsqlite3_vfs_register(tls, uintptr(unsafe.Pointer(&memdb_vfs)), 0)
+}
+
// Create a new bitmap object able to handle bits between 0 and iSize,
// inclusive. Return a pointer to the new object. Return NULL if
// malloc fails.
@@ -27565,7 +28556,7 @@ __26:
if !((isHot != 0) && (nPlayback != 0)) {
goto __27
}
- Xsqlite3_log(tls, (27 | (int32(2) << 8)), ts+3303, /* "recovered %d pag..." */
+ Xsqlite3_log(tls, (27 | (int32(2) << 8)), ts+3411, /* "recovered %d pag..." */
crt.VaList(bp, nPlayback, (*Pager)(unsafe.Pointer(pPager)).FzJournal))
__27:
;
@@ -29104,6 +30095,7 @@ func Xsqlite3PagerOpen(tls *crt.TLS, pVfs uintptr, ppPager uintptr, zFilename ui
var rc int32 // Return code
var tempFile int32 // True for temp files (incl. in-memory files)
var memDb int32 // True if this is an in-memory file
+ var memJM int32 // Memory journal mode
var readOnly int32 // True if this is a read-only file
var journalFileSize int32 // Bytes to allocate for each journal fd
var zPathname uintptr // Full path to database file
@@ -29122,6 +30114,7 @@ func Xsqlite3PagerOpen(tls *crt.TLS, pVfs uintptr, ppPager uintptr, zFilename ui
rc = 0
tempFile = 0
memDb = 0
+ memJM = 0
readOnly = 0
zPathname = uintptr(0)
nPathname = 0
@@ -29325,7 +30318,7 @@ __15:
(*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzJournal = pPtr
crt.Xmemcpy(tls, pPtr, zPathname, uint64(nPathname))
pPtr += uintptr(nPathname)
- crt.Xmemcpy(tls, pPtr, ts+3330 /* "-journal" */, uint64(8))
+ crt.Xmemcpy(tls, pPtr, ts+3438 /* "-journal" */, uint64(8))
pPtr += (uintptr(8 + 1))
goto __19
__18:
@@ -29340,7 +30333,7 @@ __19:
(*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzWal = pPtr
crt.Xmemcpy(tls, pPtr, zPathname, uint64(nPathname))
pPtr += uintptr(nPathname)
- crt.Xmemcpy(tls, pPtr, ts+3339 /* "-wal" */, uint64(4))
+ crt.Xmemcpy(tls, pPtr, ts+3447 /* "-wal" */, uint64(4))
pPtr += (uintptr(4 + 1))
goto __21
__20:
@@ -29364,6 +30357,7 @@ __22:
*(*int32)(unsafe.Pointer(bp + 8 /* fout */)) = 0 // VFS flags returned by xOpen()
rc = Xsqlite3OsOpen(tls, pVfs, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzFilename, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).Ffd, vfsFlags, bp+8 /* &fout */)
+ memJM = (crt.Bool32((*(*int32)(unsafe.Pointer(bp + 8 /* fout */)) & 0x00000080) != 0))
readOnly = (crt.Bool32((*(*int32)(unsafe.Pointer(bp + 8 /* fout */)) & 0x00000001) != 0))
// If the file was successfully opened for read/write access,
@@ -29398,9 +30392,9 @@ __27:
;
__26:
;
- (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FnoLock = U8(Xsqlite3_uri_boolean(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzFilename, ts+3344 /* "nolock" */, 0))
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FnoLock = U8(Xsqlite3_uri_boolean(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzFilename, ts+3452 /* "nolock" */, 0))
if !(((iDc & 0x00002000) != 0) ||
- (Xsqlite3_uri_boolean(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzFilename, ts+3351 /* "immutable" */, 0) != 0)) {
+ (Xsqlite3_uri_boolean(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FzFilename, ts+3459 /* "immutable" */, 0) != 0)) {
goto __30
}
vfsFlags = vfsFlags | (0x00000001)
@@ -29512,7 +30506,7 @@ __35:
(*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FjournalMode = U8(2)
goto __37
__36:
- if !((memDb != 0) || (0 != 0)) {
+ if !((memDb != 0) || (memJM != 0)) {
goto __38
}
(*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pPager */)))).FjournalMode = U8(4)
@@ -33162,7 +34156,7 @@ __22:
goto __23
}
Xsqlite3_log(tls, (27 | (int32(1) << 8)),
- ts+3361, /* "recovered %d fra..." */
+ ts+3469, /* "recovered %d fra..." */
crt.VaList(bp, (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame, (*Wal)(unsafe.Pointer(pWal)).FzWalName))
__23:
;
@@ -33892,7 +34886,7 @@ func walLimitSize(tls *crt.TLS, pWal uintptr, nMax I64) { /* sqlite3.c:61378:13:
}
Xsqlite3EndBenignMalloc(tls)
if rx != 0 {
- Xsqlite3_log(tls, rx, ts+3398 /* "cannot limit WAL..." */, crt.VaList(bp, (*Wal)(unsafe.Pointer(pWal)).FzWalName))
+ Xsqlite3_log(tls, rx, ts+3506 /* "cannot limit WAL..." */, crt.VaList(bp, (*Wal)(unsafe.Pointer(pWal)).FzWalName))
}
}
@@ -36424,7 +37418,7 @@ func Xsqlite3BtreeLeaveCursor(tls *crt.TLS, pCur uintptr) { /* sqlite3.c:64329:2
// The header string that appears at the beginning of every
// SQLite database.
-var zMagicHeader = *(*[16]int8)(unsafe.Pointer(ts + 3424 /* "SQLite format 3" */)) /* sqlite3.c:64360:19 */
+var zMagicHeader = *(*[16]int8)(unsafe.Pointer(ts + 3532 /* "SQLite format 3" */)) /* sqlite3.c:64360:19 */
// Set this global variable to 1 to enable tracing using the TRACE
// macro.
@@ -38384,7 +39378,7 @@ func pageReinit(tls *crt.TLS, pData uintptr) { /* sqlite3.c:66621:13: */
func btreeInvokeBusyHandler(tls *crt.TLS, pArg uintptr) int32 { /* sqlite3.c:66643:12: */
var pBt uintptr = pArg
- return Xsqlite3InvokeBusyHandler(tls, ((*BtShared)(unsafe.Pointer(pBt)).Fdb + 584 /* &.busyHandler */))
+ return Xsqlite3InvokeBusyHandler(tls, ((*BtShared)(unsafe.Pointer(pBt)).Fdb + 600 /* &.busyHandler */))
}
// Open a database file.
@@ -38438,7 +39432,7 @@ func Xsqlite3BtreeOpen(tls *crt.TLS, pVfs uintptr, zFilename uintptr, db uintptr
mutexOpen = uintptr(0)
rc = 0
isTempDb = (crt.Bool32((zFilename == uintptr(0)) || (int32(*(*int8)(unsafe.Pointer(zFilename + uintptr(0)))) == 0)))
- isMemdb = (crt.Bool32((((zFilename != 0) && (crt.Xstrcmp(tls, zFilename, ts+3440 /* ":memory:" */) == 0)) ||
+ isMemdb = (crt.Bool32((((zFilename != 0) && (crt.Xstrcmp(tls, zFilename, ts+3548 /* ":memory:" */) == 0)) ||
((isTempDb != 0) && (Xsqlite3TempInMemory(tls, db) != 0))) ||
((vfsFlags & 0x00000080) != 0)))
@@ -38690,7 +39684,7 @@ __28:
goto __29
}
mutexShared1 = Xsqlite3MutexAlloc(tls, 2)
- if !((2 != 0) && (Xsqlite3Config.FbCoreMutex != 0)) {
+ if !((1 != 0) && (Xsqlite3Config.FbCoreMutex != 0)) {
goto __30
}
(*BtShared)(unsafe.Pointer(pBt)).Fmutex = Xsqlite3MutexAlloc(tls, 0)
@@ -38845,7 +39839,7 @@ func removeFromSharingList(tls *crt.TLS, pBt uintptr) int32 { /* sqlite3.c:66969
(*BtShared)(unsafe.Pointer(pList)).FpNext = (*BtShared)(unsafe.Pointer(pBt)).FpNext
}
}
- if 2 != 0 {
+ if 1 != 0 {
Xsqlite3_mutex_free(tls, (*BtShared)(unsafe.Pointer(pBt)).Fmutex)
}
removed = 1
@@ -39335,7 +40329,7 @@ __10:
//
// The original design allowed these amounts to vary, but as of
// version 3.6.0, we require them to be fixed.
- if !(crt.Xmemcmp(tls, (page1+uintptr(21)), ts+3449 /* "@ " */, uint64(3)) != 0) {
+ if !(crt.Xmemcmp(tls, (page1+uintptr(21)), ts+3557 /* "@ " */, uint64(3)) != 0) {
goto __14
}
goto page1_init_failed
@@ -46561,7 +47555,7 @@ func checkAppendMsg(tls *crt.TLS, pCheck uintptr, zFormat uintptr, va uintptr) {
(*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr++
ap = va
if (*IntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 {
- Xsqlite3_str_append(tls, (pCheck + 56 /* &.errMsg */), ts+3453 /* "\n" */, 1)
+ Xsqlite3_str_append(tls, (pCheck + 56 /* &.errMsg */), ts+3561 /* "\n" */, 1)
}
if (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 {
Xsqlite3_str_appendf(tls, (pCheck + 56 /* &.errMsg */), (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, crt.VaList(bp, (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv2))
@@ -46597,11 +47591,11 @@ func checkRef(tls *crt.TLS, pCheck uintptr, iPage Pgno) int32 { /* sqlite3.c:740
defer tls.Free(16)
if (iPage > (*IntegrityCk)(unsafe.Pointer(pCheck)).FnPage) || (iPage == Pgno(0)) {
- checkAppendMsg(tls, pCheck, ts+3455 /* "invalid page num..." */, crt.VaList(bp, iPage))
+ checkAppendMsg(tls, pCheck, ts+3563 /* "invalid page num..." */, crt.VaList(bp, iPage))
return 1
}
if getPageReferenced(tls, pCheck, iPage) != 0 {
- checkAppendMsg(tls, pCheck, ts+3478 /* "2nd reference to..." */, crt.VaList(bp+8, iPage))
+ checkAppendMsg(tls, pCheck, ts+3586 /* "2nd reference to..." */, crt.VaList(bp+8, iPage))
return 1
}
if *(*int32)(unsafe.Pointer(((*IntegrityCk)(unsafe.Pointer(pCheck)).Fdb + 368 /* &.u1 */ /* &.isInterrupted */))) != 0 {
@@ -46628,13 +47622,13 @@ func checkPtrmap(tls *crt.TLS, pCheck uintptr, iChild Pgno, eType U8, iParent Pg
if (rc == 7) || (rc == (10 | (int32(12) << 8))) {
(*IntegrityCk)(unsafe.Pointer(pCheck)).FmallocFailed = 1
}
- checkAppendMsg(tls, pCheck, ts+3503 /* "Failed to read p..." */, crt.VaList(bp, iChild))
+ checkAppendMsg(tls, pCheck, ts+3611 /* "Failed to read p..." */, crt.VaList(bp, iChild))
return
}
if (int32(*(*U8)(unsafe.Pointer(bp + 48 /* ePtrmapType */))) != int32(eType)) || (*(*Pgno)(unsafe.Pointer(bp + 52 /* iPtrmapParent */)) != iParent) {
checkAppendMsg(tls, pCheck,
- ts+3532, /* "Bad ptr map entr..." */
+ ts+3640, /* "Bad ptr map entr..." */
crt.VaList(bp+8, iChild, int32(eType), iParent, int32(*(*U8)(unsafe.Pointer(bp + 48 /* ePtrmapType */))), *(*Pgno)(unsafe.Pointer(bp + 52 /* iPtrmapParent */))))
}
}
@@ -46657,7 +47651,7 @@ func checkList(tls *crt.TLS, pCheck uintptr, isFreeList int32, iPage int32, N U3
}
N--
if Xsqlite3PagerGet(tls, (*IntegrityCk)(unsafe.Pointer(pCheck)).FpPager, Pgno(iPage), bp+40 /* &pOvflPage */, 0) != 0 {
- checkAppendMsg(tls, pCheck, ts+3586 /* "failed to get pa..." */, crt.VaList(bp, iPage))
+ checkAppendMsg(tls, pCheck, ts+3694 /* "failed to get pa..." */, crt.VaList(bp, iPage))
break
}
pOvflData = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 40 /* pOvflPage */)))
@@ -46668,7 +47662,7 @@ func checkList(tls *crt.TLS, pCheck uintptr, isFreeList int32, iPage int32, N U3
}
if n > (((*BtShared)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize / U32(4)) - U32(2)) {
checkAppendMsg(tls, pCheck,
- ts+3608 /* "freelist leaf co..." */, crt.VaList(bp+8, iPage))
+ ts+3716 /* "freelist leaf co..." */, crt.VaList(bp+8, iPage))
N--
} else {
for i = 0; i < int32(n); i++ {
@@ -46694,12 +47688,12 @@ func checkList(tls *crt.TLS, pCheck uintptr, isFreeList int32, iPage int32, N U3
}
if (N != 0) && (nErrAtStart == (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr) {
checkAppendMsg(tls, pCheck,
- ts+3647, /* "%s is %d but sho..." */
+ ts+3755, /* "%s is %d but sho..." */
crt.VaList(bp+16, func() uintptr {
if isFreeList != 0 {
- return ts + 3673 /* "size" */
+ return ts + 3781 /* "size" */
}
- return ts + 3678 /* "overflow list le..." */
+ return ts + 3786 /* "overflow list le..." */
}(),
(expected-N), expected))
}
@@ -46842,13 +47836,13 @@ __1:
return 0
__2:
;
- (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 3699 /* "Page %d: " */
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 3807 /* "Page %d: " */
(*IntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage
if !((crt.AssignInt32(&rc, btreeGetPage(tls, pBt, Pgno(iPage), bp+96 /* &pPage */, 0))) != 0) {
goto __3
}
checkAppendMsg(tls, pCheck,
- ts+3709 /* "unable to get th..." */, crt.VaList(bp, rc))
+ ts+3817 /* "unable to get th..." */, crt.VaList(bp, rc))
goto end_of_check
__3:
;
@@ -46862,7 +47856,7 @@ __3:
}
// The only possible error from InitPage
checkAppendMsg(tls, pCheck,
- ts+3747 /* "btreeInitPage() ..." */, crt.VaList(bp+8, rc))
+ ts+3855 /* "btreeInitPage() ..." */, crt.VaList(bp+8, rc))
goto end_of_check
__4:
;
@@ -46870,7 +47864,7 @@ __4:
goto __5
}
- checkAppendMsg(tls, pCheck, ts+3785 /* "free space corru..." */, crt.VaList(bp+16, rc))
+ checkAppendMsg(tls, pCheck, ts+3893 /* "free space corru..." */, crt.VaList(bp+16, rc))
goto end_of_check
__5:
;
@@ -46878,7 +47872,7 @@ __5:
hdr = int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pPage */)))).FhdrOffset)
// Set up for cell analysis
- (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 3807 /* "On tree page %d ..." */
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 3915 /* "On tree page %d ..." */
contentOffset = (U32(((((int32(*(*U8)(unsafe.Pointer((data + uintptr((hdr + 5))) + uintptr(0)))) << 8) | int32(*(*U8)(unsafe.Pointer((data + uintptr((hdr + 5))) + uintptr(1))))) - 1) & 0xffff) + 1))
// Enforced by btreeInitPage()
@@ -46900,7 +47894,7 @@ __5:
if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
goto __8
}
- (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 3833 /* "On page %d at ri..." */
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 3941 /* "On page %d at ri..." */
checkPtrmap(tls, pCheck, uint32(pgno), uint8(5), uint32(iPage))
__8:
;
@@ -46931,7 +47925,7 @@ __9:
if !((pc < contentOffset) || (pc > (usableSize - U32(4)))) {
goto __12
}
- checkAppendMsg(tls, pCheck, ts+3861, /* "Offset %d out of..." */
+ checkAppendMsg(tls, pCheck, ts+3969, /* "Offset %d out of..." */
crt.VaList(bp+24, pc, contentOffset, (usableSize-U32(4))))
doCoverageCheck = 0
goto __10
@@ -46942,7 +47936,7 @@ __12:
if !((pc + U32((*CellInfo)(unsafe.Pointer(bp+112 /* &info */)).FnSize)) > usableSize) {
goto __13
}
- checkAppendMsg(tls, pCheck, ts+3891 /* "Extends off end ..." */, 0)
+ checkAppendMsg(tls, pCheck, ts+3999 /* "Extends off end ..." */, 0)
doCoverageCheck = 0
goto __10
__13:
@@ -46960,7 +47954,7 @@ __13:
}() != 0) {
goto __15
}
- checkAppendMsg(tls, pCheck, ts+3915 /* "Rowid %lld out o..." */, crt.VaList(bp+48, (*CellInfo)(unsafe.Pointer(bp+112 /* &info */)).FnKey))
+ checkAppendMsg(tls, pCheck, ts+4023 /* "Rowid %lld out o..." */, crt.VaList(bp+48, (*CellInfo)(unsafe.Pointer(bp+112 /* &info */)).FnKey))
__15:
;
*(*I64)(unsafe.Pointer(bp + 104 /* maxKey */)) = (*CellInfo)(unsafe.Pointer(bp + 112 /* &info */)).FnKey
@@ -47001,7 +47995,7 @@ __20:
if !(d2 != depth) {
goto __21
}
- checkAppendMsg(tls, pCheck, ts+3939 /* "Child page depth..." */, 0)
+ checkAppendMsg(tls, pCheck, ts+4047 /* "Child page depth..." */, 0)
depth = d2
__21:
;
@@ -47099,7 +48093,7 @@ __29:
goto __31
}
checkAppendMsg(tls, pCheck,
- ts+3964 /* "Multiple uses fo..." */, crt.VaList(bp+56, (*(*U32)(unsafe.Pointer(bp + 136 /* x */))>>16), iPage))
+ ts+4072 /* "Multiple uses fo..." */, crt.VaList(bp+56, (*(*U32)(unsafe.Pointer(bp + 136 /* x */))>>16), iPage))
goto __30
goto __32
__31:
@@ -47119,7 +48113,7 @@ __30:
goto __33
}
checkAppendMsg(tls, pCheck,
- ts+4001, /* "Fragmentation of..." */
+ ts+4109, /* "Fragmentation of..." */
crt.VaList(bp+72, nFrag, int32(*(*U8)(unsafe.Pointer(data + uintptr((hdr + 7))))), iPage))
__33:
;
@@ -47217,7 +48211,7 @@ __4:
;
// Check the integrity of the freelist
- (*IntegrityCk)(unsafe.Pointer(bp + 32 /* &sCheck */)).FzPfx = ts + 4053 /* "Main freelist: " */
+ (*IntegrityCk)(unsafe.Pointer(bp + 32 /* &sCheck */)).FzPfx = ts + 4161 /* "Main freelist: " */
checkList(tls, bp+32 /* &sCheck */, 1, int32(Xsqlite3Get4byte(tls, ((*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+uintptr(32)))),
Xsqlite3Get4byte(tls, ((*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+uintptr(36))))
(*IntegrityCk)(unsafe.Pointer(bp + 32 /* &sCheck */)).FzPfx = uintptr(0)
@@ -47250,7 +48244,7 @@ __9:
goto __11
}
checkAppendMsg(tls, bp+32, /* &sCheck */
- ts+4069, /* "max rootpage (%d..." */
+ ts+4177, /* "max rootpage (%d..." */
crt.VaList(bp, mx, mxInHdr))
__11:
;
@@ -47260,7 +48254,7 @@ __5:
goto __12
}
checkAppendMsg(tls, bp+32, /* &sCheck */
- ts+4114 /* "incremental_vacu..." */, 0)
+ ts+4222 /* "incremental_vacu..." */, 0)
__12:
;
__6:
@@ -47305,13 +48299,13 @@ __18:
if !((getPageReferenced(tls, bp+32 /* &sCheck */, i) == 0) && ((ptrmapPageno(tls, pBt, i) != i) || !(int32((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum) != 0))) {
goto __21
}
- checkAppendMsg(tls, bp+32 /* &sCheck */, ts+4169 /* "Page %d is never..." */, crt.VaList(bp+16, i))
+ checkAppendMsg(tls, bp+32 /* &sCheck */, ts+4277 /* "Page %d is never..." */, crt.VaList(bp+16, i))
__21:
;
if !((getPageReferenced(tls, bp+32 /* &sCheck */, i) != 0) && ((ptrmapPageno(tls, pBt, i) == i) && ((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0))) {
goto __22
}
- checkAppendMsg(tls, bp+32 /* &sCheck */, ts+4191 /* "Pointer map page..." */, crt.VaList(bp+24, i))
+ checkAppendMsg(tls, bp+32 /* &sCheck */, ts+4299 /* "Pointer map page..." */, crt.VaList(bp+24, i))
__22:
;
goto __19
@@ -47629,7 +48623,7 @@ func findBtree(tls *crt.TLS, pErrorDb uintptr, pDb uintptr, zDb uintptr) uintptr
crt.Xmemset(tls, bp+16 /* &sParse */, 0, uint64(unsafe.Sizeof(Parse{})))
(*Parse)(unsafe.Pointer(bp + 16 /* &sParse */)).Fdb = pDb
if Xsqlite3OpenTempDatabase(tls, bp+16 /* &sParse */) != 0 {
- Xsqlite3ErrorWithMsg(tls, pErrorDb, (*Parse)(unsafe.Pointer(bp+16 /* &sParse */)).Frc, ts+647 /* "%s" */, crt.VaList(bp, (*Parse)(unsafe.Pointer(bp+16 /* &sParse */)).FzErrMsg))
+ Xsqlite3ErrorWithMsg(tls, pErrorDb, (*Parse)(unsafe.Pointer(bp+16 /* &sParse */)).Frc, ts+696 /* "%s" */, crt.VaList(bp, (*Parse)(unsafe.Pointer(bp+16 /* &sParse */)).FzErrMsg))
rc = 1
}
Xsqlite3DbFree(tls, pErrorDb, (*Parse)(unsafe.Pointer(bp+16 /* &sParse */)).FzErrMsg)
@@ -47640,7 +48634,7 @@ func findBtree(tls *crt.TLS, pErrorDb uintptr, pDb uintptr, zDb uintptr) uintptr
}
if i < 0 {
- Xsqlite3ErrorWithMsg(tls, pErrorDb, 1, ts+4225 /* "unknown database..." */, crt.VaList(bp+8, zDb))
+ Xsqlite3ErrorWithMsg(tls, pErrorDb, 1, ts+4333 /* "unknown database..." */, crt.VaList(bp+8, zDb))
return uintptr(0)
}
@@ -47661,7 +48655,7 @@ func setDestPgsz(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:74989:12: */
// message in database handle db.
func checkReadTransaction(tls *crt.TLS, db uintptr, p uintptr) int32 { /* sqlite3.c:75001:12: */
if Xsqlite3BtreeIsInReadTrans(tls, p) != 0 {
- Xsqlite3ErrorWithMsg(tls, db, 1, ts+4245 /* "destination data..." */, 0)
+ Xsqlite3ErrorWithMsg(tls, db, 1, ts+4353 /* "destination data..." */, 0)
return 1
}
return 0
@@ -47688,7 +48682,7 @@ func Xsqlite3_backup_init(tls *crt.TLS, pDestDb uintptr, zDestDb uintptr, pSrcDb
if pSrcDb == pDestDb {
Xsqlite3ErrorWithMsg(tls,
- pDestDb, 1, ts+4276 /* "source and desti..." */, 0)
+ pDestDb, 1, ts+4384 /* "source and desti..." */, 0)
p = uintptr(0)
} else {
// Allocate space for a new sqlite3_backup object...
@@ -48292,11 +49286,11 @@ func vdbeMemRenderNum(tls *crt.TLS, sz int32, zBuf uintptr, p uintptr) { /* sqli
Xsqlite3StrAccumInit(tls, bp+24 /* &acc */, uintptr(0), zBuf, sz, 0)
if (int32((*Mem)(unsafe.Pointer(p)).Fflags) & 0x0004) != 0 {
- Xsqlite3_str_appendf(tls, bp+24 /* &acc */, ts+407 /* "%lld" */, crt.VaList(bp, *(*I64)(unsafe.Pointer(p /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+24 /* &acc */, ts+456 /* "%lld" */, crt.VaList(bp, *(*I64)(unsafe.Pointer(p /* &.u */))))
} else if (int32((*Mem)(unsafe.Pointer(p)).Fflags) & 0x0020) != 0 {
- Xsqlite3_str_appendf(tls, bp+24 /* &acc */, ts+4316 /* "%!.15g" */, crt.VaList(bp+8, float64(*(*I64)(unsafe.Pointer(p /* &.u */)))))
+ Xsqlite3_str_appendf(tls, bp+24 /* &acc */, ts+4424 /* "%!.15g" */, crt.VaList(bp+8, float64(*(*I64)(unsafe.Pointer(p /* &.u */)))))
} else {
- Xsqlite3_str_appendf(tls, bp+24 /* &acc */, ts+4316 /* "%!.15g" */, crt.VaList(bp+16, *(*float64)(unsafe.Pointer(p /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+24 /* &acc */, ts+4424 /* "%!.15g" */, crt.VaList(bp+16, *(*float64)(unsafe.Pointer(p /* &.u */))))
}
*(*int8)(unsafe.Pointer(zBuf + uintptr((*StrAccum)(unsafe.Pointer(bp+24 /* &acc */)).FnChar))) = int8(0) // Fast version of sqlite3StrAccumFinish(&acc)
@@ -48314,12 +49308,17 @@ func vdbeMemRenderNum(tls *crt.TLS, sz int32, zBuf uintptr, p uintptr) { /* sqli
// SQLITE_NOMEM may be returned if a malloc() fails during conversion
// between formats.
func Xsqlite3VdbeChangeEncoding(tls *crt.TLS, pMem uintptr, desiredEnc int32) int32 { /* sqlite3.c:75838:20: */
+ var rc int32
if !((int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & 0x0002) != 0) || (int32((*Mem)(unsafe.Pointer(pMem)).Fenc) == desiredEnc) {
return 0
}
- return 1
+ // MemTranslate() may return SQLITE_OK or SQLITE_NOMEM. If NOMEM is returned,
+ // then the encoding of the value may not have changed.
+ rc = Xsqlite3VdbeMemTranslate(tls, pMem, U8(desiredEnc))
+
+ return rc
}
// Make sure pMem->z points to a writable allocation of at least n bytes.
@@ -48916,7 +49915,7 @@ func Xsqlite3VdbeMemSetPointer(tls *crt.TLS, pMem uintptr, pPtr uintptr, zPType
if zPType != 0 {
return zPType
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}()
(*Mem)(unsafe.Pointer(pMem)).Fz = pPtr
(*Mem)(unsafe.Pointer(pMem)).Fflags = (U16(((0x0001 | 0x0400) | 0x8000) | 0x0200))
@@ -49126,6 +50125,10 @@ func Xsqlite3VdbeMemSetStr(tls *crt.TLS, pMem uintptr, z uintptr, n int32, enc U
(*Mem)(unsafe.Pointer(pMem)).Fenc = (*Sqlite3)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fdb)).Fenc
}
+ if (int32(enc) > 1) && (Xsqlite3VdbeMemHandleBom(tls, pMem) != 0) {
+ return 7
+ }
+
if nByte > iLimit {
return 18
}
@@ -49325,7 +50328,7 @@ func valueFromExpr(tls *crt.TLS, db uintptr, pExpr uintptr, enc U8, affinity U8,
zVal = uintptr(0)
*(*uintptr)(unsafe.Pointer(bp + 16 /* pVal */)) = uintptr(0)
negInt = 1
- zNeg = ts + 623 /* "" */
+ zNeg = ts + 672 /* "" */
rc = 0
__1:
@@ -49374,7 +50377,7 @@ __4:
pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
negInt = -1
- zNeg = ts + 4323 /* "-" */
+ zNeg = ts + 4431 /* "-" */
__6:
;
@@ -49394,7 +50397,7 @@ __9:
Xsqlite3VdbeMemSetInt64(tls, *(*uintptr)(unsafe.Pointer(bp + 16 /* pVal */)), (I64(*(*int32)(unsafe.Pointer(pExpr + 8 /* &.u */))) * I64(negInt)))
goto __11
__10:
- zVal = Xsqlite3MPrintf(tls, db, ts+4325 /* "%s%s" */, crt.VaList(bp, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8 /* &.u */))))
+ zVal = Xsqlite3MPrintf(tls, db, ts+4433 /* "%s%s" */, crt.VaList(bp, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8 /* &.u */))))
if !(zVal == uintptr(0)) {
goto __12
}
@@ -50577,69 +51580,69 @@ func Xsqlite3VdbeDisplayP4(tls *crt.TLS, db uintptr, pOp uintptr) uintptr { /* s
var j int32
var pKeyInfo uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4330 /* "k(%d" */, crt.VaList(bp, int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4438 /* "k(%d" */, crt.VaList(bp, int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)))
for j = 0; j < int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField); j++ {
var pColl uintptr = *(*uintptr)(unsafe.Pointer((pKeyInfo + 32 /* &.aColl */) + uintptr(j)*8))
var zColl uintptr
if pColl != 0 {
zColl = (*CollSeq)(unsafe.Pointer(pColl)).FzName
} else {
- zColl = ts + 623 /* "" */
+ zColl = ts + 672 /* "" */
}
- if crt.Xstrcmp(tls, zColl, ts+181 /* "BINARY" */) == 0 {
- zColl = ts + 4335 /* "B" */
+ if crt.Xstrcmp(tls, zColl, ts+230 /* "BINARY" */) == 0 {
+ zColl = ts + 4443 /* "B" */
}
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4337, /* ",%s%s%s" */
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4445, /* ",%s%s%s" */
crt.VaList(bp+8, func() uintptr {
if (int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j)))) & 0x01) != 0 {
- return ts + 4323 /* "-" */
+ return ts + 4431 /* "-" */
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}(),
func() uintptr {
if (int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j)))) & 0x02) != 0 {
- return ts + 4345 /* "N." */
+ return ts + 4453 /* "N." */
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}(),
zColl))
}
- Xsqlite3_str_append(tls, bp+144 /* &x */, ts+4348 /* ")" */, 1)
+ Xsqlite3_str_append(tls, bp+144 /* &x */, ts+4456 /* ")" */, 1)
break
}
case -2:
{
var pColl uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4350 /* "%.18s-%s" */, crt.VaList(bp+32, (*CollSeq)(unsafe.Pointer(pColl)).FzName,
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4458 /* "%.18s-%s" */, crt.VaList(bp+32, (*CollSeq)(unsafe.Pointer(pColl)).FzName,
encnames[(*CollSeq)(unsafe.Pointer(pColl)).Fenc]))
break
}
case -8:
{
var pDef uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4359 /* "%s(%d)" */, crt.VaList(bp+48, (*FuncDef)(unsafe.Pointer(pDef)).FzName, int32((*FuncDef)(unsafe.Pointer(pDef)).FnArg)))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4467 /* "%s(%d)" */, crt.VaList(bp+48, (*FuncDef)(unsafe.Pointer(pDef)).FzName, int32((*FuncDef)(unsafe.Pointer(pDef)).FnArg)))
break
}
case -16:
{
var pDef uintptr = (*Sqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))).FpFunc
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4359 /* "%s(%d)" */, crt.VaList(bp+64, (*FuncDef)(unsafe.Pointer(pDef)).FzName, int32((*FuncDef)(unsafe.Pointer(pDef)).FnArg)))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4467 /* "%s(%d)" */, crt.VaList(bp+64, (*FuncDef)(unsafe.Pointer(pDef)).FzName, int32((*FuncDef)(unsafe.Pointer(pDef)).FnArg)))
break
}
case -14:
{
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+407 /* "%lld" */, crt.VaList(bp+80, *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+456 /* "%lld" */, crt.VaList(bp+80, *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))))
break
}
case -3:
{
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4366 /* "%d" */, crt.VaList(bp+88, *(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4474 /* "%d" */, crt.VaList(bp+88, *(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
break
}
case -13:
{
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+401 /* "%.16g" */, crt.VaList(bp+96, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+450 /* "%.16g" */, crt.VaList(bp+96, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))))
break
}
case -11:
@@ -50648,21 +51651,21 @@ func Xsqlite3VdbeDisplayP4(tls *crt.TLS, db uintptr, pOp uintptr) uintptr { /* s
if (int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & 0x0002) != 0 {
zP4 = (*Mem)(unsafe.Pointer(pMem)).Fz
} else if (int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & (0x0004 | 0x0020)) != 0 {
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+407 /* "%lld" */, crt.VaList(bp+104, *(*I64)(unsafe.Pointer(pMem /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+456 /* "%lld" */, crt.VaList(bp+104, *(*I64)(unsafe.Pointer(pMem /* &.u */))))
} else if (int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & 0x0008) != 0 {
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+401 /* "%.16g" */, crt.VaList(bp+112, *(*float64)(unsafe.Pointer(pMem /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+450 /* "%.16g" */, crt.VaList(bp+112, *(*float64)(unsafe.Pointer(pMem /* &.u */))))
} else if (int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & 0x0001) != 0 {
- zP4 = ts + 624 /* "NULL" */
+ zP4 = ts + 673 /* "NULL" */
} else {
- zP4 = ts + 4369 /* "(blob)" */
+ zP4 = ts + 4477 /* "(blob)" */
}
break
}
case -12:
{
var pVtab uintptr = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))).FpVtab
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4376 /* "vtab:%p" */, crt.VaList(bp+120, pVtab))
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4484 /* "vtab:%p" */, crt.VaList(bp+120, pVtab))
break
}
case -15:
@@ -50672,19 +51675,19 @@ func Xsqlite3VdbeDisplayP4(tls *crt.TLS, db uintptr, pOp uintptr) uintptr { /* s
var n int32 = *(*int32)(unsafe.Pointer(ai + uintptr(0)*4)) // The first element of an INTARRAY is always the
// count of the number of elements to follow
for i = 1; i <= n; i++ {
- Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4384 /* "%c%d" */, crt.VaList(bp+128, func() int32 {
+ Xsqlite3_str_appendf(tls, bp+144 /* &x */, ts+4492 /* "%c%d" */, crt.VaList(bp+128, func() int32 {
if i == 1 {
return '['
}
return ','
}(), *(*int32)(unsafe.Pointer(ai + uintptr(i)*4))))
}
- Xsqlite3_str_append(tls, bp+144 /* &x */, ts+4389 /* "]" */, 1)
+ Xsqlite3_str_append(tls, bp+144 /* &x */, ts+4497 /* "]" */, 1)
break
}
case -4:
{
- zP4 = ts + 4391 /* "program" */
+ zP4 = ts + 4499 /* "program" */
break
}
case -17:
@@ -50712,7 +51715,7 @@ func Xsqlite3VdbeDisplayP4(tls *crt.TLS, db uintptr, pOp uintptr) uintptr { /* s
return Xsqlite3StrAccumFinish(tls, bp+144 /* &x */)
}
-var encnames = [4]uintptr{ts + 4399 /* "?" */, ts + 4401 /* "8" */, ts + 4403 /* "16LE" */, ts + 4408 /* "16BE" */} /* sqlite3.c:79211:25 */
+var encnames = [4]uintptr{ts + 4507 /* "?" */, ts + 4509 /* "8" */, ts + 4511 /* "16LE" */, ts + 4516 /* "16BE" */} /* sqlite3.c:79211:25 */
// Declare to the Vdbe that the BTree object at db->aDb[i] is used.
//
@@ -50932,7 +51935,18 @@ func Xsqlite3VdbeNextOpcode(tls *crt.TLS, p uintptr, pSub uintptr, eMode int32,
if eMode == 0 {
break
}
- {
+ if eMode == 2 {
+ var pOp uintptr = (aOp + uintptr(i)*24)
+ if int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 96 {
+ break
+ }
+ if (int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 97) && ((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x10) == 0) {
+ break
+ }
+ if int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 95 {
+ break
+ }
+ } else {
if int32((*Op)(unsafe.Pointer(aOp+uintptr(i)*24)).Fopcode) == 174 {
break
@@ -51240,8 +52254,8 @@ func Xsqlite3VdbeMakeReady(tls *crt.TLS, p uintptr, pParse uintptr) { /* sqlite3
}
var azColName = [12]uintptr{
- ts + 4413 /* "addr" */, ts + 4418 /* "opcode" */, ts + 4425 /* "p1" */, ts + 4428 /* "p2" */, ts + 4431 /* "p3" */, ts + 4434 /* "p4" */, ts + 4437 /* "p5" */, ts + 4440, /* "comment" */
- ts + 4448 /* "id" */, ts + 4451 /* "parent" */, ts + 4458 /* "notused" */, ts + 4466, /* "detail" */
+ ts + 4521 /* "addr" */, ts + 4526 /* "opcode" */, ts + 4533 /* "p1" */, ts + 4536 /* "p2" */, ts + 4539 /* "p3" */, ts + 4542 /* "p4" */, ts + 4545 /* "p5" */, ts + 4548, /* "comment" */
+ ts + 4556 /* "id" */, ts + 4559 /* "parent" */, ts + 4566 /* "notused" */, ts + 4574, /* "detail" */
} /* sqlite3.c:79937:23 */
// Close a VDBE cursor and release all the resources that cursor
@@ -51493,7 +52507,7 @@ func vdbeCommit(tls *crt.TLS, db uintptr, p uintptr) int32 { /* sqlite3.c:80183:
// Select a master journal file name
nMainFile = Xsqlite3Strlen30(tls, zMainFile)
- zMaster = Xsqlite3MPrintf(tls, db, ts+4473 /* "%.4c%s%.16c" */, crt.VaList(bp, 0, zMainFile, 0))
+ zMaster = Xsqlite3MPrintf(tls, db, ts+4581 /* "%.4c%s%.16c" */, crt.VaList(bp, 0, zMainFile, 0))
if zMaster == uintptr(0) {
return 7
}
@@ -51503,16 +52517,16 @@ func vdbeCommit(tls *crt.TLS, db uintptr, p uintptr) int32 { /* sqlite3.c:80183:
if retryCount != 0 {
if retryCount > 100 {
- Xsqlite3_log(tls, 13, ts+4485 /* "MJ delete: %s" */, crt.VaList(bp+24, zMaster))
+ Xsqlite3_log(tls, 13, ts+4593 /* "MJ delete: %s" */, crt.VaList(bp+24, zMaster))
Xsqlite3OsDelete(tls, pVfs, zMaster, 0)
break
} else if retryCount == 1 {
- Xsqlite3_log(tls, 13, ts+4499 /* "MJ collide: %s" */, crt.VaList(bp+32, zMaster))
+ Xsqlite3_log(tls, 13, ts+4607 /* "MJ collide: %s" */, crt.VaList(bp+32, zMaster))
}
}
retryCount++
Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U32(0))), bp+56 /* &iRandom */)
- Xsqlite3_snprintf(tls, 13, (zMaster + uintptr(nMainFile)), ts+4514, /* "-mj%06X9%02X" */
+ Xsqlite3_snprintf(tls, 13, (zMaster + uintptr(nMainFile)), ts+4622, /* "-mj%06X9%02X" */
crt.VaList(bp+40, ((*(*U32)(unsafe.Pointer(bp + 56 /* iRandom */))>>8)&U32(0xffffff)), (*(*U32)(unsafe.Pointer(bp + 56 /* iRandom */))&U32(0xff))))
// The antipenultimate character of the master journal name must
// be "9" to avoid name collisions when using 8+3 filenames.
@@ -51706,7 +52720,7 @@ func Xsqlite3VdbeCheckFk(tls *crt.TLS, p uintptr, deferred int32) int32 { /* sql
(!(deferred != 0) && ((*Vdbe)(unsafe.Pointer(p)).FnFkConstraint > int64(0))) {
(*Vdbe)(unsafe.Pointer(p)).Frc = (19 | (int32(3) << 8))
(*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8(2)
- Xsqlite3VdbeError(tls, p, ts+4527 /* "FOREIGN KEY cons..." */, 0)
+ Xsqlite3VdbeError(tls, p, ts+4635 /* "FOREIGN KEY cons..." */, 0)
return 1
}
return 0
@@ -51984,7 +52998,7 @@ func Xsqlite3VdbeReset(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:80833:20: *
// called), set the database error in this case as well.
Xsqlite3ErrorWithMsg(tls, db, (*Vdbe)(unsafe.Pointer(p)).Frc, func() uintptr {
if (*Vdbe)(unsafe.Pointer(p)).FzErrMsg != 0 {
- return ts + 647 /* "%s" */
+ return ts + 696 /* "%s" */
}
return uintptr(0)
}(), crt.VaList(bp, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg))
@@ -53507,13 +54521,13 @@ func Xsqlite3NotPureFunc(tls *crt.TLS, pCtx uintptr) int32 { /* sqlite3.c:82659:
var zContext uintptr
var zMsg uintptr
if (int32((*VdbeOp)(unsafe.Pointer(pOp)).Fp5) & 0x00004) != 0 {
- zContext = ts + 4557 /* "a CHECK constrai..." */
+ zContext = ts + 4665 /* "a CHECK constrai..." */
} else if (int32((*VdbeOp)(unsafe.Pointer(pOp)).Fp5) & 0x00008) != 0 {
- zContext = ts + 4576 /* "a generated colu..." */
+ zContext = ts + 4684 /* "a generated colu..." */
} else {
- zContext = ts + 4595 /* "an index" */
+ zContext = ts + 4703 /* "an index" */
}
- zMsg = Xsqlite3_mprintf(tls, ts+4604, /* "non-deterministi..." */
+ zMsg = Xsqlite3_mprintf(tls, ts+4712, /* "non-deterministi..." */
crt.VaList(bp, (*FuncDef)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext))
Xsqlite3_result_error(tls, pCtx, zMsg, -1)
Xsqlite3_free(tls, zMsg)
@@ -53569,7 +54583,7 @@ func Xsqlite3_expired(tls *crt.TLS, pStmt uintptr) int32 { /* sqlite3.c:82819:16
// invalid). Return false if it is ok.
func vdbeSafety(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:82830:12: */
if (*Vdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) {
- Xsqlite3_log(tls, 21, ts+4640 /* "API called with ..." */, 0)
+ Xsqlite3_log(tls, 21, ts+4748 /* "API called with ..." */, 0)
return 1
} else {
return 0
@@ -53578,7 +54592,7 @@ func vdbeSafety(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:82830:12: */
}
func vdbeSafetyNotNull(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:82838:12: */
if p == uintptr(0) {
- Xsqlite3_log(tls, 21, ts+4685 /* "API called with ..." */, 0)
+ Xsqlite3_log(tls, 21, ts+4793 /* "API called with ..." */, 0)
return 1
} else {
return vdbeSafety(tls, p)
@@ -53752,6 +54766,15 @@ func Xsqlite3_value_pointer(tls *crt.TLS, pVal uintptr, zPType uintptr) uintptr
func Xsqlite3_value_text(tls *crt.TLS, pVal uintptr) uintptr { /* sqlite3.c:83008:32: */
return Xsqlite3ValueText(tls, pVal, uint8(1))
}
+func Xsqlite3_value_text16(tls *crt.TLS, pVal uintptr) uintptr { /* sqlite3.c:83012:23: */
+ return Xsqlite3ValueText(tls, pVal, uint8(2))
+}
+func Xsqlite3_value_text16be(tls *crt.TLS, pVal uintptr) uintptr { /* sqlite3.c:83015:23: */
+ return Xsqlite3ValueText(tls, pVal, uint8(3))
+}
+func Xsqlite3_value_text16le(tls *crt.TLS, pVal uintptr) uintptr { /* sqlite3.c:83018:23: */
+ return Xsqlite3ValueText(tls, pVal, uint8(2))
+}
// EVIDENCE-OF: R-12793-43283 Every value in SQLite has one of five
// fundamental datatypes: 64-bit signed integer 64-bit IEEE floating
@@ -53917,6 +54940,11 @@ func Xsqlite3_result_error(tls *crt.TLS, pCtx uintptr, z uintptr, n int32) { /*
(*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = 1
Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, n, uint8(1), crt.UintptrFromInt32(-1))
}
+func Xsqlite3_result_error16(tls *crt.TLS, pCtx uintptr, z uintptr, n int32) { /* sqlite3.c:83223:17: */
+
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = 1
+ Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, n, uint8(2), crt.UintptrFromInt32(-1))
+}
func Xsqlite3_result_int(tls *crt.TLS, pCtx uintptr, iVal int32) { /* sqlite3.c:83229:17: */
Xsqlite3VdbeMemSetInt64(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, I64(iVal))
@@ -53957,6 +54985,18 @@ func Xsqlite3_result_text64(tls *crt.TLS, pCtx uintptr, z uintptr, n Sqlite3_uin
setResultStrOrError(tls, pCtx, z, int32(n), enc, xDel)
}
}
+func Xsqlite3_result_text16(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { /* sqlite3.c:83285:17: */
+
+ setResultStrOrError(tls, pCtx, z, n, uint8(2), xDel)
+}
+func Xsqlite3_result_text16be(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { /* sqlite3.c:83294:17: */
+
+ setResultStrOrError(tls, pCtx, z, n, uint8(3), xDel)
+}
+func Xsqlite3_result_text16le(tls *crt.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { /* sqlite3.c:83303:17: */
+
+ setResultStrOrError(tls, pCtx, z, n, uint8(2), xDel)
+}
func Xsqlite3_result_value(tls *crt.TLS, pCtx uintptr, pValue uintptr) { /* sqlite3.c:83313:17: */
Xsqlite3VdbeMemCopy(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, pValue)
@@ -53991,7 +55031,7 @@ func Xsqlite3_result_error_code(tls *crt.TLS, pCtx uintptr, errCode int32) { /*
func Xsqlite3_result_error_toobig(tls *crt.TLS, pCtx uintptr) { /* sqlite3.c:83342:17: */
(*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = 18
- Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, ts+4725 /* "string or blob t..." */, -1,
+ Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, ts+4833 /* "string or blob t..." */, -1,
uint8(1), uintptr(0))
}
@@ -54578,6 +55618,11 @@ func Xsqlite3_column_value(tls *crt.TLS, pStmt uintptr, i int32) uintptr { /* sq
columnMallocFailure(tls, pStmt)
return pOut
}
+func Xsqlite3_column_text16(tls *crt.TLS, pStmt uintptr, i int32) uintptr { /* sqlite3.c:83952:23: */
+ var val uintptr = Xsqlite3_value_text16(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
func Xsqlite3_column_type(tls *crt.TLS, pStmt uintptr, i int32) int32 { /* sqlite3.c:83958:16: */
var iType int32 = Xsqlite3_value_type(tls, columnMem(tls, pStmt, i))
columnMallocFailure(tls, pStmt)
@@ -54612,7 +55657,9 @@ func columnName(tls *crt.TLS, pStmt uintptr, N int32, useUtf16 int32, useType in
N = N + (useType * n)
Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
- {
+ if useUtf16 != 0 {
+ ret = Xsqlite3_value_text16(tls, ((*Vdbe)(unsafe.Pointer(p)).FaColName + uintptr(N)*56))
+ } else {
ret = Xsqlite3_value_text(tls, ((*Vdbe)(unsafe.Pointer(p)).FaColName + uintptr(N)*56))
}
// A malloc may have failed inside of the _text() call. If this
@@ -54631,6 +55678,9 @@ func columnName(tls *crt.TLS, pStmt uintptr, N int32, useUtf16 int32, useType in
func Xsqlite3_column_name(tls *crt.TLS, pStmt uintptr, N int32) uintptr { /* sqlite3.c:84029:23: */
return columnName(tls, pStmt, N, 0, 0)
}
+func Xsqlite3_column_name16(tls *crt.TLS, pStmt uintptr, N int32) uintptr { /* sqlite3.c:84033:23: */
+ return columnName(tls, pStmt, N, 1, 0)
+}
// Constraint: If you have ENABLE_COLUMN_METADATA then you must
// not define OMIT_DECLTYPE.
@@ -54640,6 +55690,9 @@ func Xsqlite3_column_name(tls *crt.TLS, pStmt uintptr, N int32) uintptr { /* sql
func Xsqlite3_column_decltype(tls *crt.TLS, pStmt uintptr, N int32) uintptr { /* sqlite3.c:84052:23: */
return columnName(tls, pStmt, N, 0, 1)
}
+func Xsqlite3_column_decltype16(tls *crt.TLS, pStmt uintptr, N int32) uintptr { /* sqlite3.c:84056:23: */
+ return columnName(tls, pStmt, N, 1, 1)
+}
// ****************************** sqlite3_bind_ ***************************
//
@@ -54667,7 +55720,7 @@ func vdbeUnbind(tls *crt.TLS, p uintptr, i int32) int32 { /* sqlite3.c:84122:12:
Xsqlite3Error(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, 21)
Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
Xsqlite3_log(tls, 21,
- ts+4748 /* "bind on a busy p..." */, crt.VaList(bp, (*Vdbe)(unsafe.Pointer(p)).FzSql))
+ ts+4856 /* "bind on a busy p..." */, crt.VaList(bp, (*Vdbe)(unsafe.Pointer(p)).FzSql))
return Xsqlite3MisuseError(tls, 84133)
}
if (i < 1) || (i > int32((*Vdbe)(unsafe.Pointer(p)).FnVar)) {
@@ -54799,6 +55852,9 @@ func Xsqlite3_bind_text64(tls *crt.TLS, pStmt uintptr, i int32, zData uintptr, n
}
return int32(0)
}
+func Xsqlite3_bind_text16(tls *crt.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, xDel uintptr) int32 { /* sqlite3.c:84303:16: */
+ return bindText(tls, pStmt, i, zData, nData, xDel, uint8(2))
+}
func Xsqlite3_bind_value(tls *crt.TLS, pStmt uintptr, i int32, pValue uintptr) int32 { /* sqlite3.c:84313:16: */
var rc int32
switch Xsqlite3_value_type(tls, pValue) {
@@ -55111,8 +56167,8 @@ func findNextHostParameter(tls *crt.TLS, zSql uintptr, pnToken uintptr) int32 {
// parameter index is known, locate the value in p->aVar[]. Then render
// the value as a literal in place of the host parameter name.
func Xsqlite3VdbeExpandSql(tls *crt.TLS, p uintptr, zRawSql uintptr) uintptr { /* sqlite3.c:84918:21: */
- bp := tls.Alloc(188)
- defer tls.Free(188)
+ bp := tls.Alloc(248)
+ defer tls.Free(248)
var db uintptr // The database connection
*(*int32)(unsafe.Pointer(bp + 184 /* idx */)) = 0 // Index of a host parameter
@@ -55124,6 +56180,8 @@ func Xsqlite3VdbeExpandSql(tls *crt.TLS, p uintptr, zRawSql uintptr) uintptr { /
var pVar uintptr // Value of a host parameter
// var out StrAccum at bp+48, 32
// Accumulate the output here
+ // var utf8 Mem at bp+192, 56
+ // Used to convert UTF16 into UTF8 for display
// var zBase [100]int8 at bp+80, 100
// Initial working space
@@ -55135,7 +56193,7 @@ func Xsqlite3VdbeExpandSql(tls *crt.TLS, p uintptr, zRawSql uintptr) uintptr { /
var zStart uintptr = zRawSql
for (int32(*(*int8)(unsafe.Pointer(crt.PostIncUintptr(&zRawSql, 1)))) != '\n') && (*(*int8)(unsafe.Pointer(zRawSql)) != 0) {
}
- Xsqlite3_str_append(tls, bp+48 /* &out */, ts+4788 /* "-- " */, 3)
+ Xsqlite3_str_append(tls, bp+48 /* &out */, ts+4896 /* "-- " */, 3)
Xsqlite3_str_append(tls, bp+48 /* &out */, zStart, (int32((int64(zRawSql) - int64(zStart)) / 1)))
}
@@ -55167,26 +56225,40 @@ func Xsqlite3VdbeExpandSql(tls *crt.TLS, p uintptr, zRawSql uintptr) uintptr { /
pVar = ((*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr((*(*int32)(unsafe.Pointer(bp + 184 /* idx */))-1))*56)
if (int32((*Mem)(unsafe.Pointer(pVar)).Fflags) & 0x0001) != 0 {
- Xsqlite3_str_append(tls, bp+48 /* &out */, ts+624 /* "NULL" */, 4)
+ Xsqlite3_str_append(tls, bp+48 /* &out */, ts+673 /* "NULL" */, 4)
} else if (int32((*Mem)(unsafe.Pointer(pVar)).Fflags) & (0x0004 | 0x0020)) != 0 {
- Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+407 /* "%lld" */, crt.VaList(bp, *(*I64)(unsafe.Pointer(pVar /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+456 /* "%lld" */, crt.VaList(bp, *(*I64)(unsafe.Pointer(pVar /* &.u */))))
} else if (int32((*Mem)(unsafe.Pointer(pVar)).Fflags) & 0x0008) != 0 {
- Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4316 /* "%!.15g" */, crt.VaList(bp+8, *(*float64)(unsafe.Pointer(pVar /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4424 /* "%!.15g" */, crt.VaList(bp+8, *(*float64)(unsafe.Pointer(pVar /* &.u */))))
} else if (int32((*Mem)(unsafe.Pointer(pVar)).Fflags) & 0x0002) != 0 {
var nOut int32 // Number of bytes of the string text to include in output
+ var enc U8 = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ if int32(enc) != 1 {
+ crt.Xmemset(tls, bp+192 /* &utf8 */, 0, uint64(unsafe.Sizeof(Mem{})))
+ (*Mem)(unsafe.Pointer(bp + 192 /* &utf8 */)).Fdb = db
+ Xsqlite3VdbeMemSetStr(tls, bp+192 /* &utf8 */, (*Mem)(unsafe.Pointer(pVar)).Fz, (*Mem)(unsafe.Pointer(pVar)).Fn, enc, uintptr(0))
+ if 7 == Xsqlite3VdbeChangeEncoding(tls, bp+192 /* &utf8 */, 1) {
+ (*StrAccum)(unsafe.Pointer(bp + 48 /* &out */)).FaccError = U8(7)
+ (*StrAccum)(unsafe.Pointer(bp + 48 /* &out */)).FnAlloc = U32(0)
+ }
+ pVar = bp + 192 /* &utf8 */
+ }
nOut = (*Mem)(unsafe.Pointer(pVar)).Fn
- Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4792 /* "'%.*q'" */, crt.VaList(bp+16, nOut, (*Mem)(unsafe.Pointer(pVar)).Fz))
+ Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4900 /* "'%.*q'" */, crt.VaList(bp+16, nOut, (*Mem)(unsafe.Pointer(pVar)).Fz))
+ if int32(enc) != 1 {
+ Xsqlite3VdbeMemRelease(tls, bp+192 /* &utf8 */)
+ }
} else if (int32((*Mem)(unsafe.Pointer(pVar)).Fflags) & 0x4000) != 0 {
- Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4799 /* "zeroblob(%d)" */, crt.VaList(bp+32, *(*int32)(unsafe.Pointer(pVar /* &.u */))))
+ Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4907 /* "zeroblob(%d)" */, crt.VaList(bp+32, *(*int32)(unsafe.Pointer(pVar /* &.u */))))
} else {
var nOut int32 // Number of bytes of the blob to include in output
- Xsqlite3_str_append(tls, bp+48 /* &out */, ts+4812 /* "x'" */, 2)
+ Xsqlite3_str_append(tls, bp+48 /* &out */, ts+4920 /* "x'" */, 2)
nOut = (*Mem)(unsafe.Pointer(pVar)).Fn
for i = 0; i < nOut; i++ {
- Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4815 /* "%02x" */, crt.VaList(bp+40, (int32(*(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&0xff)))
+ Xsqlite3_str_appendf(tls, bp+48 /* &out */, ts+4923 /* "%02x" */, crt.VaList(bp+40, (int32(*(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&0xff)))
}
- Xsqlite3_str_append(tls, bp+48 /* &out */, ts+4820 /* "'" */, 1)
+ Xsqlite3_str_append(tls, bp+48 /* &out */, ts+4928 /* "'" */, 1)
}
}
}
@@ -55585,12 +56657,14 @@ func Xsqlite3VdbeExec(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:85790:20: */
var encoding U8 // The database encoding
var iCompare int32 // Result of last comparison
var nVmStep uint32 // Number of virtual machine steps
+ var nProgressLimit uint32 // Invoke xProgress() when nVmStep reaches this
var aMem uintptr // Copy of p->aMem
var pIn1 uintptr // 1st input operand
var pIn2 uintptr // 2nd input operand
var pIn3 uintptr // 3rd input operand
- var pOut uintptr // in1
- var pCaller uintptr // in1, jump
+ var pOut uintptr
+ var iPrior U32 // in1
+ var pCaller uintptr // in1, jump
var pcDest int32
var pFrame uintptr
var pcx int32 // out2
@@ -55947,13 +57021,24 @@ func Xsqlite3VdbeExec(tls *crt.TLS, p uintptr) int32 { /* sqlite3.c:85790:20: */
// sqlite3_step() verifies this
Xsqlite3VdbeEnter(tls, p)
- if !((*Vdbe)(unsafe.Pointer(p)).Frc == 7) {
+ if !((*Sqlite3)(unsafe.Pointer(db)).FxProgress != 0) {
goto __1
}
+ iPrior = *(*U32)(unsafe.Pointer((p + 212 /* &.aCounter */) + uintptr(4)*4))
+
+ nProgressLimit = ((*Sqlite3)(unsafe.Pointer(db)).FnProgressOps - (iPrior % (*Sqlite3)(unsafe.Pointer(db)).FnProgressOps))
+ goto __2
+__1:
+ nProgressLimit = 0xffffffff
+__2:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).Frc == 7) {
+ goto __3
+ }
// This happens if a malloc() inside a call to sqlite3_column_text() or
// sqlite3_column_text16() failed.
goto no_mem
-__1:
+__3:
;
(*Vdbe)(unsafe.Pointer(p)).Frc = 0
@@ -55963,16 +57048,16 @@ __1:
(*Vdbe)(unsafe.Pointer(p)).FpResultSet = uintptr(0)
(*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
if !(*(*int32)(unsafe.Pointer((db + 368 /* &.u1 */ /* &.isInterrupted */))) != 0) {
- goto __2
+ goto __4
}
goto abort_due_to_interrupt
-__2:
+__4:
;
pOp = (aOp + uintptr((*Vdbe)(unsafe.Pointer(p)).Fpc)*24)
-__3:
+__5:
if !(1 != 0) {
- goto __5
+ goto __7
}
// Errors are detected by individual opcodes, with an immediate
// jumps to abort_due_to_error.
@@ -55984,16 +57069,16 @@ __3:
// Check to see if we need to simulate an interrupt. This only happens
// if we have a special test build.
if !(Xsqlite3_interrupt_count > 0) {
- goto __6
+ goto __8
}
Xsqlite3_interrupt_count--
if !(Xsqlite3_interrupt_count == 0) {
- goto __7
+ goto __9
}
Xsqlite3_interrupt(tls, db)
-__7:
+__9:
;
-__6:
+__8:
;
// Sanity checking on other operands
@@ -56048,21 +57133,21 @@ __6:
// that this Goto is the bottom of a loop and that the lines from P2 down
// to the current line should be indented for EXPLAIN output.
case 11:
- goto __9
+ goto __11
// Opcode: Gosub P1 P2 * * *
//
// Write the current address onto register P1
// and then jump to address P2.
case 12:
- goto __10
+ goto __12
// Opcode: Return P1 * * * *
//
// Jump to the next instruction after the address in register P1. After
// the jump, register P1 becomes undefined.
case 65:
- goto __11
+ goto __13
// Opcode: InitCoroutine P1 P2 P3 * *
//
@@ -56075,7 +57160,7 @@ __6:
//
// See also: EndCoroutine
case 13:
- goto __12
+ goto __14
// Opcode: EndCoroutine P1 * * * *
//
@@ -56085,7 +57170,7 @@ __6:
//
// See also: InitCoroutine
case 66:
- goto __13
+ goto __15
// Opcode: Yield P1 P2 * * *
//
@@ -56100,7 +57185,7 @@ __6:
//
// See also: InitCoroutine
case 14:
- goto __14
+ goto __16
// Opcode: HaltIfNull P1 P2 P3 P4 P5
// Synopsis: if r[P3]=null halt
@@ -56110,7 +57195,7 @@ __6:
// value in register P3 is not NULL, then this routine is a no-op.
// The P5 parameter should be 1.
case 67:
- goto __15
+ goto __17
// Opcode: Halt P1 P2 * P4 P5
//
@@ -56142,14 +57227,14 @@ __6:
// every program. So a jump past the last instruction of the program
// is the same as executing Halt.
case 68:
- goto __16
+ goto __18
// Opcode: Integer P1 P2 * * *
// Synopsis: r[P2]=P1
//
// The 32-bit integer value P1 is written into register P2.
case 69:
- goto __17
+ goto __19
// Opcode: Int64 * P2 * P4 *
// Synopsis: r[P2]=P4
@@ -56157,7 +57242,7 @@ __6:
// P4 is a pointer to a 64-bit integer value.
// Write that value into register P2.
case 70:
- goto __18
+ goto __20
// Opcode: Real * P2 * P4 *
// Synopsis: r[P2]=P4
@@ -56165,7 +57250,7 @@ __6:
// P4 is a pointer to a 64-bit floating point value.
// Write that value into register P2.
case 150:
- goto __19
+ goto __21
// Opcode: String8 * P2 * P4 *
// Synopsis: r[P2]='P4'
@@ -56175,7 +57260,7 @@ __6:
// this transformation, the length of string P4 is computed and stored
// as the P1 parameter.
case 115:
- goto __20
+ goto __22
// Opcode: String P1 P2 P3 P4 P5
// Synopsis: r[P2]='P4' (len=P1)
@@ -56189,7 +57274,7 @@ __6:
//
// if( P3!=0 and reg[P3]==P5 ) reg[P2] := CAST(reg[P2] as BLOB)
case 71:
- goto __21
+ goto __23
// Opcode: Null P1 P2 P3 * *
// Synopsis: r[P2..P3]=NULL
@@ -56203,7 +57288,7 @@ __6:
// NULL values will not compare equal even if SQLITE_NULLEQ is set on
// OP_Ne or OP_Eq.
case 72:
- goto __22
+ goto __24
// Opcode: SoftNull P1 * * * *
// Synopsis: r[P1]=NULL
@@ -56213,7 +57298,7 @@ __6:
// the register, so that if the value was a string or blob that was
// previously copied using OP_SCopy, the copies will continue to be valid.
case 73:
- goto __23
+ goto __25
// Opcode: Blob P1 P2 * P4 *
// Synopsis: r[P2]=P4 (len=P1)
@@ -56221,7 +57306,7 @@ __6:
// P4 points to a blob of data P1 bytes long. Store this
// blob in register P2.
case 74:
- goto __24
+ goto __26
// Opcode: Variable P1 P2 * P4 *
// Synopsis: r[P2]=parameter(P1,P4)
@@ -56231,7 +57316,7 @@ __6:
// If the parameter is named, then its name appears in P4.
// The P4 value is used by sqlite3_bind_parameter_name().
case 75:
- goto __25
+ goto __27
// Opcode: Move P1 P2 P3 * *
// Synopsis: r[P2@P3]=r[P1@P3]
@@ -56242,7 +57327,7 @@ __6:
// P1..P1+P3-1 and P2..P2+P3-1 to overlap. It is an error
// for P3 to be less than 1.
case 76:
- goto __26
+ goto __28
// Opcode: Copy P1 P2 P3 * *
// Synopsis: r[P2@P3+1]=r[P1@P3+1]
@@ -56252,7 +57337,7 @@ __6:
// This instruction makes a deep copy of the value. A duplicate
// is made of any string or blob constant. See also OP_SCopy.
case 77:
- goto __27
+ goto __29
// Opcode: SCopy P1 P2 * * *
// Synopsis: r[P2]=r[P1]
@@ -56267,7 +57352,7 @@ __6:
// during the lifetime of the copy. Use OP_Copy to make a complete
// copy.
case 78:
- goto __28
+ goto __30
// Opcode: IntCopy P1 P2 * * *
// Synopsis: r[P2]=r[P1]
@@ -56277,7 +57362,7 @@ __6:
// This is an optimized version of SCopy that works only for integer
// values.
case 79:
- goto __29
+ goto __31
// Opcode: ResultRow P1 P2 * * *
// Synopsis: output=r[P1@P2]
@@ -56288,7 +57373,7 @@ __6:
// structure to provide access to the r(P1)..r(P1+P2-1) values as
// the result row.
case 80:
- goto __30
+ goto __32
// Opcode: Concat P1 P2 P3 * *
// Synopsis: r[P3]=r[P2]+r[P1]
@@ -56303,7 +57388,7 @@ __6:
// if P3 is the same register as P2, the implementation is able
// to avoid a memcpy().
case 110:
- goto __31
+ goto __33
// Opcode: Add P1 P2 P3 * *
// Synopsis: r[P3]=r[P1]+r[P2]
@@ -56339,15 +57424,15 @@ __6:
// If the value in register P1 is zero the result is NULL.
// If either operand is NULL, the result is NULL.
case 105:
- goto __32 // same as TK_PLUS, in1, in2, out3
+ goto __34 // same as TK_PLUS, in1, in2, out3
case 106:
- goto __33 // same as TK_MINUS, in1, in2, out3
+ goto __35 // same as TK_MINUS, in1, in2, out3
case 107:
- goto __34 // same as TK_STAR, in1, in2, out3
+ goto __36 // same as TK_STAR, in1, in2, out3
case 108:
- goto __35 // same as TK_SLASH, in1, in2, out3
+ goto __37 // same as TK_SLASH, in1, in2, out3
case 109:
- goto __36
+ goto __38
// Opcode: CollSeq P1 * * P4
//
@@ -56364,7 +57449,7 @@ __6:
// to retrieve the collation sequence set by this opcode is not available
// publicly. Only built-in functions have access to this feature.
case 81:
- goto __37
+ goto __39
// Opcode: BitAnd P1 P2 P3 * *
// Synopsis: r[P3]=r[P1]&r[P2]
@@ -56393,13 +57478,13 @@ __6:
// Store the result in register P3.
// If either input is NULL, the result is NULL.
case 101:
- goto __38 // same as TK_BITAND, in1, in2, out3
+ goto __40 // same as TK_BITAND, in1, in2, out3
case 102:
- goto __39 // same as TK_BITOR, in1, in2, out3
+ goto __41 // same as TK_BITOR, in1, in2, out3
case 103:
- goto __40 // same as TK_LSHIFT, in1, in2, out3
+ goto __42 // same as TK_LSHIFT, in1, in2, out3
case 104:
- goto __41
+ goto __43
// Opcode: AddImm P1 P2 * * *
// Synopsis: r[P1]=r[P1]+P2
@@ -56409,7 +57494,7 @@ __6:
//
// To force any register to be an integer, just add 0.
case 82:
- goto __42
+ goto __44
// Opcode: MustBeInt P1 P2 * * *
//
@@ -56418,7 +57503,7 @@ __6:
// without data loss, then jump immediately to P2, or if P2==0
// raise an SQLITE_MISMATCH exception.
case 15:
- goto __43
+ goto __45
// Opcode: RealAffinity P1 * * * *
//
@@ -56429,7 +57514,7 @@ __6:
// integers, for space efficiency, but after extraction we want them
// to have only a real value.
case 83:
- goto __44
+ goto __46
// Opcode: Cast P1 P2 * * *
// Synopsis: affinity(r[P1])
@@ -56446,7 +57531,7 @@ __6:
//
// A NULL value is not changed by this routine. It remains NULL.
case 84:
- goto __45
+ goto __47
// Opcode: Eq P1 P2 P3 P4 P5
// Synopsis: IF r[P3]==r[P1]
@@ -56539,17 +57624,17 @@ __6:
// the content of register P3 is greater than or equal to the content of
// register P1. See the Lt opcode for additional information.
case 53:
- goto __46 // same as TK_EQ, jump, in1, in3
+ goto __48 // same as TK_EQ, jump, in1, in3
case 52:
- goto __47 // same as TK_NE, jump, in1, in3
+ goto __49 // same as TK_NE, jump, in1, in3
case 56:
- goto __48 // same as TK_LT, jump, in1, in3
+ goto __50 // same as TK_LT, jump, in1, in3
case 55:
- goto __49 // same as TK_LE, jump, in1, in3
+ goto __51 // same as TK_LE, jump, in1, in3
case 54:
- goto __50 // same as TK_GT, jump, in1, in3
+ goto __52 // same as TK_GT, jump, in1, in3
case 57:
- goto __51
+ goto __53
// Opcode: ElseNotEq * P2 * * *
//
@@ -56564,7 +57649,7 @@ __6:
// jump to P2. If the result of an OP_Eq comparison on the two previous
// operands would have been true (1), then fall through.
case 58:
- goto __52
+ goto __54
// Opcode: Permutation * * * P4 *
//
@@ -56578,7 +57663,7 @@ __6:
// The first integer in the P4 integer array is the length of the array
// and does not become part of the permutation.
case 85:
- goto __53
+ goto __55
// Opcode: Compare P1 P2 P3 P4 P5
// Synopsis: r[P1@P3] <-> r[P2@P3]
@@ -56600,7 +57685,7 @@ __6:
// NULLs are less than numbers, numbers are less than strings,
// and strings are less than blobs.
case 86:
- goto __54
+ goto __56
// Opcode: Jump P1 P2 P3 * *
//
@@ -56608,7 +57693,7 @@ __6:
// in the most recent OP_Compare instruction the P1 vector was less than
// equal to, or greater than the P2 vector, respectively.
case 16:
- goto __55
+ goto __57
// Opcode: And P1 P2 P3 * *
// Synopsis: r[P3]=(r[P1] && r[P2])
@@ -56629,9 +57714,9 @@ __6:
// even if the other input is NULL. A NULL and false or two NULLs
// give a NULL output.
case 44:
- goto __56 // same as TK_AND, in1, in2, out3
+ goto __58 // same as TK_AND, in1, in2, out3
case 43:
- goto __57
+ goto __59
// Opcode: IsTrue P1 P2 P3 P4 *
// Synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4
@@ -56653,7 +57738,7 @@ __6:
// <li> If P3==1 and P4==0 then r[P2] := r[P1] IS NOT FALSE
// </ul>
case 87:
- goto __58
+ goto __60
// Opcode: Not P1 P2 * * *
// Synopsis: r[P2]= !r[P1]
@@ -56662,7 +57747,7 @@ __6:
// boolean complement in register P2. If the value in register P1 is
// NULL, then a NULL is stored in P2.
case 19:
- goto __59
+ goto __61
// Opcode: BitNot P1 P2 * * *
// Synopsis: r[P2]= ~r[P1]
@@ -56671,7 +57756,7 @@ __6:
// ones-complement of the P1 value into register P2. If P1 holds
// a NULL then store a NULL in P2.
case 112:
- goto __60
+ goto __62
// Opcode: Once P1 P2 * * *
//
@@ -56690,7 +57775,7 @@ __6:
// because the self-altering code trick does not work for recursive
// triggers.
case 17:
- goto __61
+ goto __63
// Opcode: If P1 P2 P3 * *
//
@@ -56698,7 +57783,7 @@ __6:
// is considered true if it is numeric and non-zero. If the value
// in P1 is NULL then take the jump if and only if P3 is non-zero.
case 18:
- goto __62
+ goto __64
// Opcode: IfNot P1 P2 P3 * *
//
@@ -56706,21 +57791,21 @@ __6:
// is considered false if it has a numeric value of zero. If the value
// in P1 is NULL then take the jump if and only if P3 is non-zero.
case 20:
- goto __63
+ goto __65
// Opcode: IsNull P1 P2 * * *
// Synopsis: if r[P1]==NULL goto P2
//
// Jump to P2 if the value in register P1 is NULL.
case 50:
- goto __64
+ goto __66
// Opcode: NotNull P1 P2 * * *
// Synopsis: if r[P1]!=NULL goto P2
//
// Jump to P2 if the value in register P1 is not NULL.
case 51:
- goto __65
+ goto __67
// Opcode: IfNullRow P1 P2 P3 * *
// Synopsis: if P1.nullRow then r[P3]=NULL, goto P2
@@ -56730,7 +57815,7 @@ __6:
// If P1 is not on a NULL row, then fall through without making any
// changes.
case 21:
- goto __66
+ goto __68
// Opcode: Column P1 P2 P3 P4 P5
// Synopsis: r[P3]=PX
@@ -56752,7 +57837,7 @@ __6:
// or typeof() function, respectively. The loading of large blobs can be
// skipped for length() and all content loading can be skipped for typeof().
case 89:
- goto __67
+ goto __69
// Opcode: Affinity P1 P2 * P4 *
// Synopsis: affinity(r[P1@P2])
@@ -56763,7 +57848,7 @@ __6:
// string indicates the column affinity that should be used for the N-th
// memory cell in the range.
case 90:
- goto __68
+ goto __70
// Opcode: MakeRecord P1 P2 P3 P4 *
// Synopsis: r[P3]=mkrec(r[P1@P2])
@@ -56781,7 +57866,7 @@ __6:
//
// If P4 is NULL then all index fields have the affinity BLOB.
case 91:
- goto __69
+ goto __71
// Opcode: Count P1 P2 p3 * *
// Synopsis: r[P2]=count()
@@ -56793,7 +57878,7 @@ __6:
// every btree page of the table. But if P3 is non-zero, an estimate
// is returned based on the current cursor position.
case 92:
- goto __70
+ goto __72
// Opcode: Savepoint P1 * * P4 *
//
@@ -56802,7 +57887,7 @@ __6:
// To release (commit) an existing savepoint set P1==1 (SAVEPOINT_RELEASE).
// To rollback an existing savepoint set P1==2 (SAVEPOINT_ROLLBACK).
case 0:
- goto __71
+ goto __73
// Opcode: AutoCommit P1 P2 * * *
//
@@ -56813,7 +57898,7 @@ __6:
//
// This instruction causes the VM to halt.
case 1:
- goto __72
+ goto __74
// Opcode: Transaction P1 P2 P3 P4 P5
//
@@ -56849,7 +57934,7 @@ __6:
// halts. The sqlite3_step() wrapper function might then reprepare the
// statement and rerun it from the beginning.
case 2:
- goto __73
+ goto __75
// Opcode: ReadCookie P1 P2 P3 * *
//
@@ -56863,7 +57948,7 @@ __6:
// must be started or there must be an open cursor) before
// executing this instruction.
case 93:
- goto __74
+ goto __76
// Opcode: SetCookie P1 P2 P3 * *
//
@@ -56875,7 +57960,7 @@ __6:
//
// A transaction must be started before executing this opcode.
case 94:
- goto __75
+ goto __77
// Opcode: OpenRead P1 P2 P3 P4 P5
// Synopsis: root=P2 iDb=P3
@@ -56959,13 +58044,13 @@ __6:
//
// See also: OP_OpenRead, OP_ReopenIdx
case 95:
- goto __76
+ goto __78
// If the cursor is not currently open or is open on a different
// index, then fall through into OP_OpenRead to force a reopen
case 96:
- goto __77
+ goto __79
case 97:
- goto __78
+ goto __80
// Opcode: OpenDup P1 P2 * * *
//
@@ -56975,7 +58060,7 @@ __6:
//
// Duplicate ephemeral cursors are used for self-joins of materialized views.
case 98:
- goto __79
+ goto __81
// Opcode: OpenEphemeral P1 P2 * P4 P5
// Synopsis: nColumn=P2
@@ -57005,9 +58090,9 @@ __6:
// by this opcode will be used for automatically created transient
// indices in joins.
case 99:
- goto __80
+ goto __82
case 100:
- goto __81
+ goto __83
// Opcode: SorterOpen P1 P2 P3 P4 *
//
@@ -57019,7 +58104,7 @@ __6:
// assume that a stable sort considering the first P3 fields of each
// key is sufficient to produce the required results.
case 111:
- goto __82
+ goto __84
// Opcode: SequenceTest P1 P2 * * *
// Synopsis: if( cursor[P1].ctr++ ) pc = P2
@@ -57028,7 +58113,7 @@ __6:
// to P2. Regardless of whether or not the jump is taken, increment the
// the sequence value.
case 113:
- goto __83
+ goto __85
// Opcode: OpenPseudo P1 P2 P3 * *
// Synopsis: P3 columns in r[P2]
@@ -57046,14 +58131,14 @@ __6:
// P3 is the number of fields in the records that will be stored by
// the pseudo-table.
case 114:
- goto __84
+ goto __86
// Opcode: Close P1 * * * *
//
// Close a cursor previously opened as P1. If P1 is not
// currently open, this instruction is a no-op.
case 116:
- goto __85
+ goto __87
// Opcode: SeekGE P1 P2 P3 P4 *
// Synopsis: key=r[P3@P4]
@@ -57142,13 +58227,13 @@ __6:
//
// See also: Found, NotFound, SeekGt, SeekGe, SeekLt
case 22:
- goto __86 // jump, in3, group
+ goto __88 // jump, in3, group
case 23:
- goto __87 // jump, in3, group
+ goto __89 // jump, in3, group
case 24:
- goto __88 // jump, in3, group
+ goto __90 // jump, in3, group
case 25:
- goto __89
+ goto __91
// Opcode: SeekHit P1 P2 * * *
// Synopsis: seekHit=P2
@@ -57159,14 +58244,14 @@ __6:
// P1 must be a valid b-tree cursor. P2 must be a boolean value,
// either 0 or 1.
case 118:
- goto __90
+ goto __92
// Opcode: IfNotOpen P1 P2 * * *
// Synopsis: if( !csr[P1] ) goto P2
//
// If cursor P1 is not open, jump to instruction P2. Otherwise, fall through.
case 26:
- goto __91
+ goto __93
// Opcode: Found P1 P2 P3 P4 *
// Synopsis: key=r[P3@P4]
@@ -57251,13 +58336,13 @@ __6:
//
// See also: NotFound, Found, NotExists
case 27:
- goto __92
+ goto __94
case 28:
- goto __93 // jump, in3
+ goto __95 // jump, in3
case 29:
- goto __94 // jump, in3
+ goto __96 // jump, in3
case 30:
- goto __95
+ goto __97
// Opcode: SeekRowid P1 P2 P3 * *
// Synopsis: intkey=r[P3]
@@ -57305,10 +58390,10 @@ __6:
//
// See also: Found, NotFound, NoConflict, SeekRowid
case 31:
- goto __96
+ goto __98
// Fall through into OP_NotExists
case 32:
- goto __97
+ goto __99
// Opcode: Sequence P1 P2 * * *
// Synopsis: r[P2]=cursor[P1].ctr++
@@ -57318,7 +58403,7 @@ __6:
// The sequence number on the cursor is incremented after this
// instruction.
case 119:
- goto __98
+ goto __100
// Opcode: NewRowid P1 P2 P3 * *
// Synopsis: r[P2]=rowid
@@ -57335,7 +58420,7 @@ __6:
// generated record number. This P3 mechanism is used to help implement the
// AUTOINCREMENT feature.
case 120:
- goto __99
+ goto __101
// Opcode: Insert P1 P2 P3 P4 P5
// Synopsis: intkey=r[P3] data=r[P2]
@@ -57374,7 +58459,7 @@ __6:
// This instruction only works on tables. The equivalent instruction
// for indices is OP_IdxInsert.
case 121:
- goto __100
+ goto __102
// Opcode: Delete P1 P2 P3 P4 P5
//
@@ -57411,7 +58496,7 @@ __6:
// of the memory cell that contains the value that the rowid of the row will
// be set to by the update.
case 122:
- goto __101
+ goto __103
// Opcode: ResetCount * * * * *
//
// The value of the change counter is copied to the database handle
@@ -57419,7 +58504,7 @@ __6:
// Then the VMs internal change counter resets to 0.
// This is used by trigger programs.
case 123:
- goto __102
+ goto __104
// Opcode: SorterCompare P1 P2 P3 P4
// Synopsis: if key(P1)!=trim(r[P3],P4) goto P2
@@ -57436,7 +58521,7 @@ __6:
// Fall through to next instruction if the two records compare equal to
// each other. Jump to P2 if they are different.
case 124:
- goto __103
+ goto __105
// Opcode: SorterData P1 P2 P3 * *
// Synopsis: r[P2]=data
@@ -57450,7 +58535,7 @@ __6:
// parameter P3. Clearing the P3 column cache as part of this opcode saves
// us from having to issue a separate NullRow instruction to clear that cache.
case 125:
- goto __104
+ goto __106
// Opcode: RowData P1 P2 P3 * *
// Synopsis: r[P2]=data
@@ -57480,7 +58565,7 @@ __6:
// The P2 register content is invalidated by opcodes like OP_Function or
// by any use of another cursor pointing to the same table.
case 126:
- goto __105
+ goto __107
// Opcode: Rowid P1 P2 * * *
// Synopsis: r[P2]=rowid
@@ -57492,7 +58577,7 @@ __6:
// be a separate OP_VRowid opcode for use with virtual tables, but this
// one opcode now works for both table types.
case 127:
- goto __106
+ goto __108
// Opcode: NullRow P1 * * * *
//
@@ -57500,7 +58585,7 @@ __6:
// that occur while the cursor is on the null row will always
// write a NULL.
case 128:
- goto __107
+ goto __109
// Opcode: SeekEnd P1 * * * *
//
@@ -57523,16 +58608,16 @@ __6:
// from the end toward the beginning. In other words, the cursor is
// configured to use Prev, not Next.
case 129:
- goto __108
+ goto __110
case 33:
- goto __109
+ goto __111
// Opcode: IfSmaller P1 P2 P3 * *
//
// Estimate the number of rows in the table P1. Jump to P2 if that
// estimate is less than approximately 2**(0.1*P3).
case 34:
- goto __110
+ goto __112
// Opcode: SorterSort P1 P2 * * *
//
@@ -57554,9 +58639,9 @@ __6:
// regression tests can determine whether or not the optimizer is
// correctly optimizing out sorts.
case 35:
- goto __111 // jump
+ goto __113 // jump
case 36:
- goto __112
+ goto __114
// Opcode: Rewind P1 P2 * * *
//
// The next use of the Rowid or Column or Next instruction for P1
@@ -57569,7 +58654,7 @@ __6:
// from the beginning toward the end. In other words, the cursor is
// configured to use Next, not Prev.
case 37:
- goto __113
+ goto __115
// Opcode: Next P1 P2 P3 P4 P5
//
@@ -57629,11 +58714,11 @@ __6:
// invoked. This opcode advances the cursor to the next sorted
// record, or jumps to P2 if there are no more sorted records.
case 3:
- goto __114
+ goto __116
case 4:
- goto __115 // jump
+ goto __117 // jump
case 5:
- goto __116
+ goto __118
// Opcode: IdxInsert P1 P2 P3 P4 P5
// Synopsis: key=r[P2]
@@ -57663,7 +58748,7 @@ __6:
// This instruction only works for indices. The equivalent instruction
// for tables is OP_Insert.
case 130:
- goto __117
+ goto __119
// Opcode: SorterInsert P1 P2 * * *
// Synopsis: key=r[P2]
@@ -57672,7 +58757,7 @@ __6:
// MakeRecord instructions. This opcode writes that key
// into the sorter P1. Data for the entry is nil.
case 131:
- goto __118
+ goto __120
// Opcode: IdxDelete P1 P2 P3 * P5
// Synopsis: key=r[P2@P3]
@@ -57688,7 +58773,7 @@ __6:
// (example: the EXCEPT operator) it does not matter that no matching
// entry is found. For those cases, P5 is zero.
case 132:
- goto __119
+ goto __121
// Opcode: DeferredSeek P1 * P3 P4 *
// Synopsis: Move P3 to P1.rowid if needed
@@ -57717,9 +58802,9 @@ __6:
//
// See also: Rowid, MakeRecord.
case 133:
- goto __120
+ goto __122
case 134:
- goto __121
+ goto __123
// Opcode: FinishSeek P1 * * * *
//
@@ -57727,7 +58812,7 @@ __6:
// seek operation now, without further delay. If the cursor seek has
// already occurred, this instruction is a no-op.
case 135:
- goto __122
+ goto __124
// Opcode: IdxGE P1 P2 P3 P4 P5
// Synopsis: key=r[P3@P4]
@@ -57770,13 +58855,13 @@ __6:
// If the P1 index entry is less than or equal to the key value then jump
// to P2. Otherwise fall through to the next instruction.
case 38:
- goto __123 // jump
+ goto __125 // jump
case 39:
- goto __124 // jump
+ goto __126 // jump
case 40:
- goto __125 // jump
+ goto __127 // jump
case 41:
- goto __126
+ goto __128
// Opcode: Destroy P1 P2 P3 * *
//
@@ -57805,7 +58890,7 @@ __6:
//
// See also: Clear
case 136:
- goto __127
+ goto __129
// Opcode: Clear P1 P2 P3
//
@@ -57825,7 +58910,7 @@ __6:
//
// See also: Destroy
case 137:
- goto __128
+ goto __130
// Opcode: ResetSorter P1 * * * *
//
@@ -57835,7 +58920,7 @@ __6:
// This opcode only works for cursors used for sorting and
// opened with OP_OpenEphemeral or OP_SorterOpen.
case 138:
- goto __129
+ goto __131
// Opcode: CreateBtree P1 P2 P3 * *
// Synopsis: r[P2]=root iDb=P1 flags=P3
@@ -57846,13 +58931,13 @@ __6:
// it must be 2 (BTREE_BLOBKEY) for an index or WITHOUT ROWID table.
// The root page number of the new b-tree is stored in register P2.
case 139:
- goto __130
+ goto __132
// Opcode: SqlExec * * * P4 *
//
// Run the SQL statement or statements specified in the P4 string.
case 140:
- goto __131
+ goto __133
// Opcode: ParseSchema P1 * * P4 *
//
@@ -57863,7 +58948,7 @@ __6:
// This opcode invokes the parser to create a new virtual machine,
// then runs the new virtual machine. It is thus a re-entrant opcode.
case 141:
- goto __132
+ goto __134
// Opcode: LoadAnalysis P1 * * * *
//
@@ -57871,7 +58956,7 @@ __6:
// of that table into the internal index hash table. This will cause
// the analysis to be used when preparing all subsequent queries.
case 142:
- goto __133
+ goto __135
// Opcode: DropTable P1 * * P4 *
//
@@ -57881,7 +58966,7 @@ __6:
// the internal representation of the
// schema consistent with what is on disk.
case 143:
- goto __134
+ goto __136
// Opcode: DropIndex P1 * * P4 *
//
@@ -57891,7 +58976,7 @@ __6:
// in order to keep the internal representation of the
// schema consistent with what is on disk.
case 144:
- goto __135
+ goto __137
// Opcode: DropTrigger P1 * * P4 *
//
@@ -57901,7 +58986,7 @@ __6:
// the internal representation of the
// schema consistent with what is on disk.
case 145:
- goto __136
+ goto __138
// Opcode: IntegrityCk P1 P2 P3 P4 P5
//
@@ -57922,7 +59007,7 @@ __6:
//
// This opcode is used to implement the integrity_check pragma.
case 146:
- goto __137
+ goto __139
// Opcode: RowSetAdd P1 P2 * * *
// Synopsis: rowset(P1)=r[P2]
@@ -57932,7 +59017,7 @@ __6:
//
// An assertion fails if P2 is not an integer.
case 147:
- goto __138
+ goto __140
// Opcode: RowSetRead P1 P2 P3 * *
// Synopsis: r[P3]=rowset(P1)
@@ -57942,7 +59027,7 @@ __6:
// Or, if RowSet object P1 is initially empty, leave P3
// unchanged and jump to instruction P2.
case 42:
- goto __139
+ goto __141
// Opcode: RowSetTest P1 P2 P3 P4
// Synopsis: if r[P3] in rowset(P1) goto P2
@@ -57967,7 +59052,7 @@ __6:
// previously inserted as part of set X (only if it was previously
// inserted as part of some other set).
case 45:
- goto __140
+ goto __142
// Opcode: Program P1 P2 P3 P4 P5
//
@@ -57984,7 +59069,7 @@ __6:
//
// If P5 is non-zero, then recursive program invocation is enabled.
case 46:
- goto __141
+ goto __143
// Opcode: Param P1 P2 * * *
//
@@ -57998,7 +59083,7 @@ __6:
// the value of the P1 argument to the value of the P1 argument to the
// calling OP_Program instruction.
case 148:
- goto __142
+ goto __144
// Opcode: FkCounter P1 P2 * * *
// Synopsis: fkctr[P1]+=P2
@@ -58008,7 +59093,7 @@ __6:
// (deferred foreign key constraints). Otherwise, if P1 is zero, the
// statement counter is incremented (immediate foreign key constraints).
case 149:
- goto __143
+ goto __145
// Opcode: FkIfZero P1 P2 * * *
// Synopsis: if fkctr[P1]==0 goto P2
@@ -58022,7 +59107,7 @@ __6:
// zero, the jump is taken if the statement constraint-counter is zero
// (immediate foreign key constraint violations).
case 47:
- goto __144
+ goto __146
// Opcode: MemMax P1 P2 * * *
// Synopsis: r[P1]=max(r[P1],r[P2])
@@ -58035,7 +59120,7 @@ __6:
// This instruction throws an error if the memory cell is not initially
// an integer.
case 151:
- goto __145
+ goto __147
// Opcode: IfPos P1 P2 P3 * *
// Synopsis: if r[P1]>0 then r[P1]-=P3, goto P2
@@ -58047,7 +59132,7 @@ __6:
// If the initial value of register P1 is less than 1, then the
// value is unchanged and control passes through to the next instruction.
case 48:
- goto __146
+ goto __148
// Opcode: OffsetLimit P1 P2 P3 * *
// Synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)
@@ -58067,7 +59152,7 @@ __6:
//
// Otherwise, r[P2] is set to the sum of r[P1] and r[P3].
case 152:
- goto __147
+ goto __149
// Opcode: IfNotZero P1 P2 * * *
// Synopsis: if r[P1]!=0 then r[P1]--, goto P2
@@ -58077,7 +59162,7 @@ __6:
// If it is non-zero (negative or positive) and then also jump to P2.
// If register P1 is initially zero, leave it unchanged and fall through.
case 49:
- goto __148
+ goto __150
// Opcode: DecrJumpZero P1 P2 * * *
// Synopsis: if (--r[P1])==0 goto P2
@@ -58085,7 +59170,7 @@ __6:
// Register P1 must hold an integer. Decrement the value in P1
// and jump to P2 if the new value is exactly zero.
case 59:
- goto __149
+ goto __151
// Opcode: AggStep * P2 P3 P4 P5
// Synopsis: accum=r[P3] step(r[P2@P5])
@@ -58124,11 +59209,11 @@ __6:
// sqlite3_context only happens once, instead of on each call to the
// step function.
case 153:
- goto __150
+ goto __152
case 154:
- goto __151
+ goto __153
case 155:
- goto __152
+ goto __154
// Opcode: AggFinal P1 P2 * P4 *
// Synopsis: accum=r[P1] N=P2
@@ -58155,9 +59240,9 @@ __6:
// P4 argument is only needed for the case where
// the step function was not previously called.
case 156:
- goto __153
+ goto __155
case 157:
- goto __154
+ goto __156
// Opcode: Checkpoint P1 P2 P3 * *
//
@@ -58170,7 +59255,7 @@ __6:
// completes into mem[P3+2]. However on an error, mem[P3+1] and
// mem[P3+2] are initialized to -1.
case 6:
- goto __155
+ goto __157
// Opcode: JournalMode P1 P2 P3 * *
//
@@ -58183,7 +59268,7 @@ __6:
//
// Write a string containing the final journal-mode to register P2.
case 7:
- goto __156
+ goto __158
// Opcode: Vacuum P1 P2 * * *
//
@@ -58194,7 +59279,7 @@ __6:
// the file into which the result of vacuum should be written. When
// P2 is zero, the vacuum overwrites the original database.
case 8:
- goto __157
+ goto __159
// Opcode: IncrVacuum P1 P2 * * *
//
@@ -58202,7 +59287,7 @@ __6:
// the P1 database. If the vacuum has finished, jump to instruction
// P2. Otherwise, fall through to the next instruction.
case 60:
- goto __158
+ goto __160
// Opcode: Expire P1 P2 * * *
//
@@ -58220,21 +59305,21 @@ __6:
// that might help the statement run faster but which does not affect the
// correctness of operation.
case 158:
- goto __159
+ goto __161
// Opcode: CursorLock P1 * * * *
//
// Lock the btree to which cursor P1 is pointing so that the btree cannot be
// written by an other cursor.
case 159:
- goto __160
+ goto __162
// Opcode: CursorUnlock P1 * * * *
//
// Unlock the btree to which cursor P1 is pointing so that it can be
// written by other cursors.
case 160:
- goto __161
+ goto __163
// Opcode: TableLock P1 P2 P3 P4 *
// Synopsis: iDb=P1 root=P2 write=P3
@@ -58251,7 +59336,7 @@ __6:
// P4 contains a pointer to the name of the table being locked. This is only
// used to generate an error message if the lock cannot be obtained.
case 161:
- goto __162
+ goto __164
// Opcode: VBegin * * * P4 *
//
@@ -58262,21 +59347,21 @@ __6:
// within a callback to a virtual table xSync() method. If it is, the error
// code will be set to SQLITE_LOCKED.
case 162:
- goto __163
+ goto __165
// Opcode: VCreate P1 P2 * * *
//
// P2 is a register that holds the name of a virtual table in database
// P1. Call the xCreate method for that table.
case 163:
- goto __164
+ goto __166
// Opcode: VDestroy P1 * * P4 *
//
// P4 is the name of a virtual table in database P1. Call the xDestroy method
// of that table.
case 164:
- goto __165
+ goto __167
// Opcode: VOpen P1 * * P4 *
//
@@ -58284,7 +59369,7 @@ __6:
// P1 is a cursor number. This opcode opens a cursor to the virtual
// table and stores that cursor in P1.
case 165:
- goto __166
+ goto __168
// Opcode: VFilter P1 P2 P3 P4 *
// Synopsis: iplan=r[P3] zplan='P4'
@@ -58305,7 +59390,7 @@ __6:
//
// A jump is made to P2 if the result set after filtering would be empty.
case 9:
- goto __167
+ goto __169
// Opcode: VColumn P1 P2 P3 * P5
// Synopsis: r[P3]=vcolumn(P2)
@@ -58321,7 +59406,7 @@ __6:
// bits (OPFLAG_LENGTHARG or OPFLAG_TYPEOFARG) but those bits are
// unused by OP_VColumn.
case 166:
- goto __168
+ goto __170
// Opcode: VNext P1 P2 * * *
//
@@ -58329,7 +59414,7 @@ __6:
// jump to instruction P2. Or, if the virtual table has reached
// the end of its result set, then fall through to the next instruction.
case 61:
- goto __169
+ goto __171
// Opcode: VRename P1 * * P4 *
//
@@ -58337,7 +59422,7 @@ __6:
// This opcode invokes the corresponding xRename method. The value
// in register P1 is passed as the zName argument to the xRename method.
case 167:
- goto __170
+ goto __172
// Opcode: VUpdate P1 P2 P3 P4 P5
// Synopsis: data=r[P3@P2]
@@ -58366,13 +59451,13 @@ __6:
// P5 is the error actions (OE_Replace, OE_Fail, OE_Ignore, etc) to
// apply in the case of a constraint failure on an insert or update.
case 10:
- goto __171
+ goto __173
// Opcode: Pagecount P1 P2 * * *
//
// Write the current number of pages in database P1 to memory cell P2.
case 168:
- goto __172
+ goto __174
// Opcode: MaxPgcnt P1 P2 P3 * *
//
@@ -58382,7 +59467,7 @@ __6:
//
// Store the maximum page count after the change in register P2.
case 169:
- goto __173
+ goto __175
// Opcode: Function P1 P2 P3 P4 *
// Synopsis: r[P3]=func(r[P2@NP])
@@ -58429,9 +59514,9 @@ __6:
//
// See also: AggStep, AggFinal, Function
case 63:
- goto __174 // group
+ goto __176 // group
case 64:
- goto __175
+ goto __177
// Opcode: Trace P1 P2 * P4 *
//
@@ -58457,9 +59542,9 @@ __6:
// If P3 is not zero, then it is an address to jump to if an SQLITE_CORRUPT
// error is encountered.
case 170:
- goto __176
+ goto __178
case 62:
- goto __177
+ goto __179
// Opcode: Noop * * * * *
//
@@ -58470,9 +59555,9 @@ __6:
// This opcode records information from the optimizer. It is the
// the same as a no-op. This opcodesnever appears in a real VM program.
default:
- goto __178
+ goto __180
}
- goto __8
+ goto __10
// ****************************************************************************
//
@@ -58521,7 +59606,7 @@ __6:
// is sometimes set to 1 instead of 0 as a hint to the command-line shell
// that this Goto is the bottom of a loop and that the lines from P2 down
// to the current line should be indented for EXPLAIN output.
-__9: // jump
+__11: // jump
jump_to_p2_and_check_for_interrupt:
pOp = (aOp + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp2-1))*24)
@@ -58538,19 +59623,41 @@ jump_to_p2_and_check_for_interrupt:
// faster according to "valgrind --tool=cachegrind"
check_for_interrupt:
if !(*(*int32)(unsafe.Pointer((db + 368 /* &.u1 */ /* &.isInterrupted */))) != 0) {
- goto __179
+ goto __181
}
goto abort_due_to_interrupt
-__179:
+__181:
;
+ // Call the progress callback if it is configured and the required number
+ // of VDBE ops have been executed (either since this invocation of
+ // sqlite3VdbeExec() or since last time the progress callback was called).
+ // If the progress callback returns non-zero, exit the virtual machine with
+ // a return code SQLITE_ABORT.
+__182:
+ if !((nVmStep >= nProgressLimit) && ((*Sqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0))) {
+ goto __183
+ }
- goto __8
+ nProgressLimit = nProgressLimit + ((*Sqlite3)(unsafe.Pointer(db)).FnProgressOps)
+ if !((*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer((db + 480 /* &.xProgress */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg) != 0) {
+ goto __184
+ }
+ nProgressLimit = 0xffffffff
+ rc = 9
+ goto abort_due_to_error
+__184:
+ ;
+ goto __182
+__183:
+ ;
+
+ goto __10
// Opcode: Gosub P1 P2 * * *
//
// Write the current address onto register P1
// and then jump to address P2.
-__10: // jump
+__12: // jump
;
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
@@ -58561,18 +59668,18 @@ __10: // jump
// the pOp pointer.
jump_to_p2:
pOp = (aOp + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp2-1))*24)
- goto __8
+ goto __10
// Opcode: Return P1 * * * *
//
// Jump to the next instruction after the address in register P1. After
// the jump, register P1 becomes undefined.
-__11: // in1
+__13: // in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pOp = (aOp + uintptr(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)))*24)
(*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(0x0080)
- goto __8
+ goto __10
// Opcode: InitCoroutine P1 P2 P3 * *
//
@@ -58584,7 +59691,7 @@ __11: // in1
// address P2.
//
// See also: EndCoroutine
-__12: // jump
+__14: // jump
;
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
@@ -58592,12 +59699,12 @@ __12: // jump
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = (I64((*Op)(unsafe.Pointer(pOp)).Fp3 - 1))
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0004)
if !((*Op)(unsafe.Pointer(pOp)).Fp2 != 0) {
- goto __180
+ goto __185
}
goto jump_to_p2
-__180:
+__185:
;
- goto __8
+ goto __10
// Opcode: EndCoroutine P1 * * * *
//
@@ -58606,14 +59713,14 @@ __180:
// After the jump, register P1 becomes undefined.
//
// See also: InitCoroutine
-__13:
+__15:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pCaller = (aOp + uintptr(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)))*24)
pOp = (aOp + uintptr(((*VdbeOp)(unsafe.Pointer(pCaller)).Fp2-1))*24)
(*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(0x0080)
- goto __8
+ goto __10
// Opcode: Yield P1 P2 * * *
//
@@ -58627,7 +59734,7 @@ __13:
// next instruction.
//
// See also: InitCoroutine
-__14:
+__16:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
(*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(0x0004)
@@ -58635,7 +59742,7 @@ __14:
*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) = I64((int32((int64(pOp) - int64(aOp)) / 24)))
pOp = (aOp + uintptr(pcDest)*24)
- goto __8
+ goto __10
// Opcode: HaltIfNull P1 P2 P3 P4 P5
// Synopsis: if r[P3]=null halt
@@ -58644,13 +59751,13 @@ __14:
// parameter P1, P2, and P4 as if this were a Halt instruction. If the
// value in register P3 is not NULL, then this routine is a no-op.
// The P5 parameter should be 1.
-__15: // in3
+__17: // in3
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn3)).Fflags) & 0x0001) == 0) {
- goto __181
+ goto __186
}
- goto __8
-__181:
+ goto __10
+__186:
;
// Opcode: Halt P1 P2 * P4 P5
@@ -58682,11 +59789,11 @@ __181:
// There is an implied "Halt 0 0 0" instruction inserted at the very end of
// every program. So a jump past the last instruction of the program
// is the same as executing Halt.
-__16:
+__18:
pcx = (int32((int64(pOp) - int64(aOp)) / 24))
if !(((*Op)(unsafe.Pointer(pOp)).Fp1 == 0) && ((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0)) {
- goto __182
+ goto __187
}
// Halt the sub-program. Return control to the parent frame.
pFrame = (*Vdbe)(unsafe.Pointer(p)).FpFrame
@@ -58695,7 +59802,7 @@ __16:
Xsqlite3VdbeSetChanges(tls, db, (*Vdbe)(unsafe.Pointer(p)).FnChange)
pcx = Xsqlite3VdbeFrameRestore(tls, pFrame)
if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 4) {
- goto __183
+ goto __188
}
// Instruction pcx is the OP_Program that invoked the sub-program
// currently being halted. If the p2 instruction of this OP_Halt
@@ -58703,48 +59810,48 @@ __16:
// an IGNORE exception. In this case jump to the address specified
// as the p2 of the calling OP_Program.
pcx = ((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr(pcx)*24)).Fp2 - 1)
-__183:
+__188:
;
aOp = (*Vdbe)(unsafe.Pointer(p)).FaOp
aMem = (*Vdbe)(unsafe.Pointer(p)).FaMem
pOp = (aOp + uintptr(pcx)*24)
- goto __8
-__182:
+ goto __10
+__187:
;
(*Vdbe)(unsafe.Pointer(p)).Frc = (*Op)(unsafe.Pointer(pOp)).Fp1
(*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8((*Op)(unsafe.Pointer(pOp)).Fp2)
(*Vdbe)(unsafe.Pointer(p)).Fpc = pcx
if !((*Vdbe)(unsafe.Pointer(p)).Frc != 0) {
- goto __184
+ goto __189
}
if !((*Op)(unsafe.Pointer(pOp)).Fp5 != 0) {
- goto __185
+ goto __190
}
- Xsqlite3VdbeError(tls, p, ts+4822 /* "%s constraint fa..." */, crt.VaList(bp, azType[(int32((*Op)(unsafe.Pointer(pOp)).Fp5)-1)]))
+ Xsqlite3VdbeError(tls, p, ts+4930 /* "%s constraint fa..." */, crt.VaList(bp, azType[(int32((*Op)(unsafe.Pointer(pOp)).Fp5)-1)]))
if !(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)) != 0) {
- goto __187
+ goto __192
}
- (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3MPrintf(tls, db, ts+4843 /* "%z: %s" */, crt.VaList(bp+8, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
-__187:
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3MPrintf(tls, db, ts+4951 /* "%z: %s" */, crt.VaList(bp+8, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
+__192:
;
- goto __186
-__185:
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+24, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
-__186:
+ goto __191
+__190:
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+24, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
+__191:
;
- Xsqlite3_log(tls, (*Op)(unsafe.Pointer(pOp)).Fp1, ts+4850 /* "abort at %d in [..." */, crt.VaList(bp+32, pcx, (*Vdbe)(unsafe.Pointer(p)).FzSql, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg))
-__184:
+ Xsqlite3_log(tls, (*Op)(unsafe.Pointer(pOp)).Fp1, ts+4958 /* "abort at %d in [..." */, crt.VaList(bp+32, pcx, (*Vdbe)(unsafe.Pointer(p)).FzSql, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg))
+__189:
;
rc = Xsqlite3VdbeHalt(tls, p)
if !(rc == 5) {
- goto __188
+ goto __193
}
(*Vdbe)(unsafe.Pointer(p)).Frc = 5
- goto __189
-__188:
+ goto __194
+__193:
;
if (*Vdbe)(unsafe.Pointer(p)).Frc != 0 {
@@ -58752,7 +59859,7 @@ __188:
} else {
rc = 101
}
-__189:
+__194:
;
goto vdbe_return
@@ -58760,33 +59867,33 @@ __189:
// Synopsis: r[P2]=P1
//
// The 32-bit integer value P1 is written into register P2.
-__17: // out2
+__19: // out2
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64((*Op)(unsafe.Pointer(pOp)).Fp1)
- goto __8
+ goto __10
// Opcode: Int64 * P2 * P4 *
// Synopsis: r[P2]=P4
//
// P4 is a pointer to a 64-bit integer value.
// Write that value into register P2.
-__18: // out2
+__20: // out2
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
- goto __8
+ goto __10
// Opcode: Real * P2 * P4 *
// Synopsis: r[P2]=P4
//
// P4 is a pointer to a 64-bit floating point value.
// Write that value into register P2.
-__19: // same as TK_FLOAT, out2
+__21: // same as TK_FLOAT, out2
pOut = out2Prerelease(tls, p, pOp)
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0008)
*(*float64)(unsafe.Pointer(pOut /* &.u */)) = *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
- goto __8
+ goto __10
// Opcode: String8 * P2 * P4 *
// Synopsis: r[P2]='P4'
@@ -58795,16 +59902,47 @@ __19: // same as TK_FLOAT, out2
// into a String opcode before it is executed for the first time. During
// this transformation, the length of string P4 is computed and stored
// as the P1 parameter.
-__20: // same as TK_STRING, out2
+__22: // same as TK_STRING, out2
;
pOut = out2Prerelease(tls, p, pOp)
(*Op)(unsafe.Pointer(pOp)).Fp1 = Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
+ if !(int32(encoding) != 1) {
+ goto __195
+ }
+ rc = Xsqlite3VdbeMemSetStr(tls, pOut, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)), -1, uint8(1), uintptr(0))
+
+ if !(rc != 0) {
+ goto __196
+ }
+ goto too_big
+__196:
+ ;
+ if !(0 != Xsqlite3VdbeChangeEncoding(tls, pOut, int32(encoding))) {
+ goto __197
+ }
+ goto no_mem
+__197:
+ ;
+
+ (*Mem)(unsafe.Pointer(pOut)).FszMalloc = 0
+ *(*U16)(unsafe.Pointer(pOut + 8 /* &.flags */)) |= U16((0x0800))
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == (-7)) {
+ goto __198
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
+__198:
+ ;
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(-7)
+ *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)) = (*Mem)(unsafe.Pointer(pOut)).Fz
+ (*Op)(unsafe.Pointer(pOp)).Fp1 = (*Mem)(unsafe.Pointer(pOut)).Fn
+__195:
+ ;
if !((*Op)(unsafe.Pointer(pOp)).Fp1 > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(0)*4))) {
- goto __190
+ goto __199
}
goto too_big
-__190:
+__199:
;
(*Op)(unsafe.Pointer(pOp)).Fopcode = U8(71)
@@ -58819,7 +59957,7 @@ __190:
// of a string, as if it had been CAST. In other words:
//
// if( P3!=0 and reg[P3]==P5 ) reg[P2] := CAST(reg[P2] as BLOB)
-__21: // out2
+__23: // out2
;
pOut = out2Prerelease(tls, p, pOp)
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((0x0002 | 0x0800) | 0x0200))
@@ -58827,7 +59965,7 @@ __21: // out2
(*Mem)(unsafe.Pointer(pOut)).Fn = (*Op)(unsafe.Pointer(pOp)).Fp1
(*Mem)(unsafe.Pointer(pOut)).Fenc = encoding
updateMaxBlobsize(tls, pOut)
- goto __8
+ goto __10
// Opcode: Null P1 P2 P3 * *
// Synopsis: r[P2..P3]=NULL
@@ -58840,7 +59978,7 @@ __21: // out2
// If the P1 value is non-zero, then also set the MEM_Cleared flag so that
// NULL values will not compare equal even if SQLITE_NULLEQ is set on
// OP_Ne or OP_Eq.
-__22:
+__24:
pOut = out2Prerelease(tls, p, pOp)
cnt = ((*Op)(unsafe.Pointer(pOp)).Fp3 - (*Op)(unsafe.Pointer(pOp)).Fp2)
@@ -58851,9 +59989,9 @@ __22:
return uint16(0x0001)
}())
(*Mem)(unsafe.Pointer(pOut)).Fn = 0
-__191:
+__200:
if !(cnt > 0) {
- goto __192
+ goto __201
}
pOut += 56
@@ -58861,10 +59999,10 @@ __191:
(*Mem)(unsafe.Pointer(pOut)).Fflags = nullFlag
(*Mem)(unsafe.Pointer(pOut)).Fn = 0
cnt--
- goto __191
-__192:
+ goto __200
+__201:
;
- goto __8
+ goto __10
// Opcode: SoftNull P1 * * * *
// Synopsis: r[P1]=NULL
@@ -58873,24 +60011,24 @@ __192:
// instruction, but do not free any string or blob memory associated with
// the register, so that if the value was a string or blob that was
// previously copied using OP_SCopy, the copies will continue to be valid.
-__23:
+__25:
;
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer(pOut)).Fflags) & ^int32(crt.Int32FromInt32((0x0080 | 0x003f)))) | 0x0001))
- goto __8
+ goto __10
// Opcode: Blob P1 P2 * P4 *
// Synopsis: r[P2]=P4 (len=P1)
//
// P4 points to a blob of data P1 bytes long. Store this
// blob in register P2.
-__24: // out2
+__26: // out2
;
pOut = out2Prerelease(tls, p, pOp)
Xsqlite3VdbeMemSetStr(tls, pOut, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)), (*Op)(unsafe.Pointer(pOp)).Fp1, uint8(0), uintptr(0))
(*Mem)(unsafe.Pointer(pOut)).Fenc = encoding
updateMaxBlobsize(tls, pOut)
- goto __8
+ goto __10
// Opcode: Variable P1 P2 * P4 *
// Synopsis: r[P2]=parameter(P1,P4)
@@ -58899,29 +60037,29 @@ __24: // out2
//
// If the parameter is named, then its name appears in P4.
// The P4 value is used by sqlite3_bind_parameter_name().
-__25: // Value being transferred
+__27: // Value being transferred
;
pVar = ((*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp1-1))*56)
if !(Xsqlite3VdbeMemTooBig(tls, pVar) != 0) {
- goto __193
+ goto __202
}
goto too_big
-__193:
+__202:
;
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
if !((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & (0x2000 | 0x0400)) != 0) {
- goto __194
+ goto __203
}
Xsqlite3VdbeMemSetNull(tls, pOut)
-__194:
+__203:
;
crt.Xmemcpy(tls, pOut, pVar, uint64((uintptr(0) + 24 /* &.zMalloc */)))
*(*U16)(unsafe.Pointer(pOut + 8 /* &.flags */)) &= crt.Uint16FromInt32((^int32(crt.Int32FromInt32((0x0400 | 0x1000)))))
*(*U16)(unsafe.Pointer(pOut + 8 /* &.flags */)) |= U16((0x0800 | 0x0040))
updateMaxBlobsize(tls, pOut)
- goto __8
+ goto __10
// Opcode: Move P1 P2 P3 * *
// Synopsis: r[P2@P3]=r[P1@P3]
@@ -58931,7 +60069,7 @@ __194:
// left holding a NULL. It is an error for register ranges
// P1..P1+P3-1 and P2..P2+P3-1 to overlap. It is an error
// for P3 to be less than 1.
-__26: // Register to copy to
+__28: // Register to copy to
n = (*Op)(unsafe.Pointer(pOp)).Fp3
p1 = (*Op)(unsafe.Pointer(pOp)).Fp1
@@ -58939,28 +60077,28 @@ __26: // Register to copy to
pIn1 = (aMem + uintptr(p1)*56)
pOut = (aMem + uintptr(p2)*56)
-__195:
+__204:
;
Xsqlite3VdbeMemMove(tls, pOut, pIn1)
if !(((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & 0x1000) != 0) && (Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0)) {
- goto __198
+ goto __207
}
goto no_mem
-__198:
+__207:
;
pIn1 += 56
pOut += 56
- goto __196
-__196:
+ goto __205
+__205:
if crt.PreDecInt32(&n, 1) != 0 {
- goto __195
+ goto __204
}
- goto __197
-__197:
+ goto __206
+__206:
;
- goto __8
+ goto __10
// Opcode: Copy P1 P2 P3 * *
// Synopsis: r[P2@P3+1]=r[P1@P3+1]
@@ -58969,37 +60107,37 @@ __197:
//
// This instruction makes a deep copy of the value. A duplicate
// is made of any string or blob constant. See also OP_SCopy.
-__27:
+__29:
n1 = (*Op)(unsafe.Pointer(pOp)).Fp3
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
-__199:
+__208:
if !(1 != 0) {
- goto __200
+ goto __209
}
Xsqlite3VdbeMemShallowCopy(tls, pOut, pIn1, 0x1000)
if !(((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & 0x1000) != 0) && (Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0)) {
- goto __201
+ goto __210
}
goto no_mem
-__201:
+__210:
;
if !((crt.PostDecInt32(&n1, 1)) == 0) {
- goto __202
+ goto __211
}
- goto __200
-__202:
+ goto __209
+__211:
;
pOut += 56
pIn1 += 56
- goto __199
-__200:
+ goto __208
+__209:
;
- goto __8
+ goto __10
// Opcode: SCopy P1 P2 * * *
// Synopsis: r[P2]=r[P1]
@@ -59013,12 +60151,12 @@ __200:
// Thus the program must guarantee that the original will not change
// during the lifetime of the copy. Use OP_Copy to make a complete
// copy.
-__28: // out2
+__30: // out2
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
Xsqlite3VdbeMemShallowCopy(tls, pOut, pIn1, 0x1000)
- goto __8
+ goto __10
// Opcode: IntCopy P1 P2 * * *
// Synopsis: r[P2]=r[P1]
@@ -59027,12 +60165,12 @@ __28: // out2
//
// This is an optimized version of SCopy that works only for integer
// values.
-__29: // out2
+__31: // out2
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
Xsqlite3VdbeMemSetInt64(tls, pOut, *(*I64)(unsafe.Pointer(pIn1 /* &.u */)))
- goto __8
+ goto __10
// Opcode: ResultRow P1 P2 * * *
// Synopsis: output=r[P1@P2]
@@ -59042,18 +60180,18 @@ __29: // out2
// with an SQLITE_ROW return code and it sets up the sqlite3_stmt
// structure to provide access to the r(P1)..r(P1+P2-1) values as
// the result row.
-__30:
+__32:
;
// If this statement has violated immediate foreign key constraints, do
// not return the number of rows modified. And do not RELEASE the statement
// transaction. It needs to be rolled back.
if !(0 != (crt.AssignInt32(&rc, Xsqlite3VdbeCheckFk(tls, p, 0)))) {
- goto __203
+ goto __212
}
goto abort_due_to_error
-__203:
+__212:
;
// If the SQLITE_CountRows flag is set in sqlite3.flags mask, then
@@ -59081,38 +60219,38 @@ __203:
// a side effect.
pMem = crt.AssignPtrUintptr(p+160 /* &.pResultSet */, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56))
i = 0
-__204:
+__213:
if !(i < (*Op)(unsafe.Pointer(pOp)).Fp2) {
- goto __206
+ goto __215
}
if !(((int32((*Mem)(unsafe.Pointer((pMem + uintptr(i)*56))).Fflags) & 0x1000) != 0) && (Xsqlite3VdbeMemMakeWriteable(tls, (pMem+uintptr(i)*56)) != 0)) {
- goto __207
+ goto __216
}
goto no_mem
-__207:
+__216:
;
Xsqlite3VdbeMemNulTerminate(tls, (pMem + uintptr(i)*56))
- goto __205
-__205:
+ goto __214
+__214:
i++
- goto __204
- goto __206
-__206:
+ goto __213
+ goto __215
+__215:
;
if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
- goto __208
+ goto __217
}
goto no_mem
-__208:
+__217:
;
if !((int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace) & 0x04) != 0) {
- goto __209
+ goto __218
}
(*(*func(*crt.TLS, U32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer((db + 232 /* &.xTrace */))))(tls, uint32(0x04), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, uintptr(0))
-__209:
+__218:
;
// Return SQLITE_ROW
@@ -59132,7 +60270,7 @@ __209:
// It is illegal for P1 and P3 to be the same register. Sometimes,
// if P3 is the same register as P2, the implementation is able
// to avoid a memcpy().
-__31: // Initial flags for P2
+__33: // Initial flags for P2
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pIn2 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
@@ -59141,86 +60279,86 @@ __31: // Initial flags for P2
flags1 = (*Mem)(unsafe.Pointer(pIn1)).Fflags
if !(((int32(flags1) | int32((*Mem)(unsafe.Pointer(pIn2)).Fflags)) & 0x0001) != 0) {
- goto __210
+ goto __219
}
Xsqlite3VdbeMemSetNull(tls, pOut)
- goto __8
-__210:
+ goto __10
+__219:
;
if !((int32(flags1) & (0x0002 | 0x0010)) == 0) {
- goto __211
+ goto __220
}
if !(Xsqlite3VdbeMemStringify(tls, pIn1, encoding, uint8(0)) != 0) {
- goto __213
+ goto __222
}
goto no_mem
-__213:
+__222:
;
flags1 = (U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & ^int32(crt.Int32FromInt32(0x0002))))
- goto __212
-__211:
+ goto __221
+__220:
if !((int32(flags1) & 0x4000) != 0) {
- goto __214
+ goto __223
}
if !(Xsqlite3VdbeMemExpandBlob(tls, pIn1) != 0) {
- goto __215
+ goto __224
}
goto no_mem
-__215:
+__224:
;
flags1 = (U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & ^int32(crt.Int32FromInt32(0x0002))))
-__214:
+__223:
;
-__212:
+__221:
;
flags2 = (*Mem)(unsafe.Pointer(pIn2)).Fflags
if !((int32(flags2) & (0x0002 | 0x0010)) == 0) {
- goto __216
+ goto __225
}
if !(Xsqlite3VdbeMemStringify(tls, pIn2, encoding, uint8(0)) != 0) {
- goto __218
+ goto __227
}
goto no_mem
-__218:
+__227:
;
flags2 = (U16(int32((*Mem)(unsafe.Pointer(pIn2)).Fflags) & ^int32(crt.Int32FromInt32(0x0002))))
- goto __217
-__216:
+ goto __226
+__225:
if !((int32(flags2) & 0x4000) != 0) {
- goto __219
+ goto __228
}
if !(Xsqlite3VdbeMemExpandBlob(tls, pIn2) != 0) {
- goto __220
+ goto __229
}
goto no_mem
-__220:
+__229:
;
flags2 = (U16(int32((*Mem)(unsafe.Pointer(pIn2)).Fflags) & ^int32(crt.Int32FromInt32(0x0002))))
-__219:
+__228:
;
-__217:
+__226:
;
nByte = (I64((*Mem)(unsafe.Pointer(pIn1)).Fn + (*Mem)(unsafe.Pointer(pIn2)).Fn))
if !(nByte > I64(*(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(0)*4)))) {
- goto __221
+ goto __230
}
goto too_big
-__221:
+__230:
;
if !(Xsqlite3VdbeMemGrow(tls, pOut, (int32(nByte)+3), (crt.Bool32(pOut == pIn2))) != 0) {
- goto __222
+ goto __231
}
goto no_mem
-__222:
+__231:
;
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0002))
if !(pOut != pIn2) {
- goto __223
+ goto __232
}
crt.Xmemcpy(tls, (*Mem)(unsafe.Pointer(pOut)).Fz, (*Mem)(unsafe.Pointer(pIn2)).Fz, uint64((*Mem)(unsafe.Pointer(pIn2)).Fn))
(*Mem)(unsafe.Pointer(pIn2)).Fflags = flags2
-__223:
+__232:
;
crt.Xmemcpy(tls, ((*Mem)(unsafe.Pointer(pOut)).Fz + uintptr((*Mem)(unsafe.Pointer(pIn2)).Fn)), (*Mem)(unsafe.Pointer(pIn1)).Fz, uint64((*Mem)(unsafe.Pointer(pIn1)).Fn))
@@ -59232,7 +60370,7 @@ __223:
(*Mem)(unsafe.Pointer(pOut)).Fn = int32(nByte)
(*Mem)(unsafe.Pointer(pOut)).Fenc = encoding
updateMaxBlobsize(tls, pOut)
- goto __8
+ goto __10
// Opcode: Add P1 P2 P3 * *
// Synopsis: r[P3]=r[P1]+r[P2]
@@ -59267,11 +60405,11 @@ __223:
// register P1 and store the result in register P3.
// If the value in register P1 is zero the result is NULL.
// If either operand is NULL, the result is NULL.
-__32: // same as TK_PLUS, in1, in2, out3
-__33: // same as TK_MINUS, in1, in2, out3
-__34: // same as TK_STAR, in1, in2, out3
-__35: // same as TK_SLASH, in1, in2, out3
-__36: // Real value of right operand
+__34: // same as TK_PLUS, in1, in2, out3
+__35: // same as TK_MINUS, in1, in2, out3
+__36: // same as TK_STAR, in1, in2, out3
+__37: // same as TK_SLASH, in1, in2, out3
+__38: // Real value of right operand
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
type1 = numericType(tls, pIn1)
@@ -59280,160 +60418,160 @@ __36: // Real value of right operand
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
flags = (U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) | int32((*Mem)(unsafe.Pointer(pIn2)).Fflags)))
if !(((int32(type1) & int32(type2)) & 0x0004) != 0) {
- goto __224
+ goto __233
}
iA = *(*I64)(unsafe.Pointer(pIn1 /* &.u */))
*(*I64)(unsafe.Pointer(bp + 184 /* iB */)) = *(*I64)(unsafe.Pointer(pIn2 /* &.u */))
switch int32((*Op)(unsafe.Pointer(pOp)).Fopcode) {
case 105:
- goto __227
+ goto __236
case 106:
- goto __228
+ goto __237
case 107:
- goto __229
+ goto __238
case 108:
- goto __230
+ goto __239
default:
- goto __231
+ goto __240
}
- goto __226
-__227:
+ goto __235
+__236:
if !(Xsqlite3AddInt64(tls, bp+184 /* &iB */, iA) != 0) {
- goto __232
+ goto __241
}
goto fp_math
-__232:
+__241:
;
- goto __226
-__228:
+ goto __235
+__237:
if !(Xsqlite3SubInt64(tls, bp+184 /* &iB */, iA) != 0) {
- goto __233
+ goto __242
}
goto fp_math
-__233:
+__242:
;
- goto __226
-__229:
+ goto __235
+__238:
if !(Xsqlite3MulInt64(tls, bp+184 /* &iB */, iA) != 0) {
- goto __234
+ goto __243
}
goto fp_math
-__234:
+__243:
;
- goto __226
-__230:
+ goto __235
+__239:
if !(iA == int64(0)) {
- goto __235
+ goto __244
}
goto arithmetic_result_is_null
-__235:
+__244:
;
if !((iA == int64(-1)) && (*(*I64)(unsafe.Pointer(bp + 184 /* iB */)) == ((int64(-1)) - (int64(0xffffffff) | (I64((int64(0x7fffffff))) << 32))))) {
- goto __236
+ goto __245
}
goto fp_math
-__236:
+__245:
;
*(*I64)(unsafe.Pointer(bp + 184 /* iB */)) /= iA
- goto __226
-__231:
+ goto __235
+__240:
if !(iA == int64(0)) {
- goto __237
+ goto __246
}
goto arithmetic_result_is_null
-__237:
+__246:
;
if !(iA == int64(-1)) {
- goto __238
+ goto __247
}
iA = int64(1)
-__238:
+__247:
;
*(*I64)(unsafe.Pointer(bp + 184 /* iB */)) %= iA
- goto __226
-__226:
+ goto __235
+__235:
;
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 184 /* iB */))
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0004))
- goto __225
-__224:
+ goto __234
+__233:
if !((int32(flags) & 0x0001) != 0) {
- goto __239
+ goto __248
}
goto arithmetic_result_is_null
- goto __240
-__239:
+ goto __249
+__248:
fp_math:
rA = Xsqlite3VdbeRealValue(tls, pIn1)
rB = Xsqlite3VdbeRealValue(tls, pIn2)
switch int32((*Op)(unsafe.Pointer(pOp)).Fopcode) {
case 105:
- goto __242
+ goto __251
case 106:
- goto __243
+ goto __252
case 107:
- goto __244
+ goto __253
case 108:
- goto __245
+ goto __254
default:
- goto __246
+ goto __255
}
- goto __241
-__242:
+ goto __250
+__251:
rB = rB + (rA)
- goto __241
-__243:
+ goto __250
+__252:
rB = rB - (rA)
- goto __241
-__244:
+ goto __250
+__253:
rB = rB * (rA)
- goto __241
-__245:
+ goto __250
+__254:
// (double)0 In case of SQLITE_OMIT_FLOATING_POINT...
if !(rA == float64(0)) {
- goto __247
+ goto __256
}
goto arithmetic_result_is_null
-__247:
+__256:
;
rB = rB / (rA)
- goto __241
-__246:
+ goto __250
+__255:
iA = Xsqlite3VdbeIntValue(tls, pIn1)
*(*I64)(unsafe.Pointer(bp + 184 /* iB */)) = Xsqlite3VdbeIntValue(tls, pIn2)
if !(iA == int64(0)) {
- goto __248
+ goto __257
}
goto arithmetic_result_is_null
-__248:
+__257:
;
if !(iA == int64(-1)) {
- goto __249
+ goto __258
}
iA = int64(1)
-__249:
+__258:
;
rB = (float64(*(*I64)(unsafe.Pointer(bp + 184 /* iB */)) % iA))
- goto __241
-__241:
+ goto __250
+__250:
;
if !(Xsqlite3IsNaN(tls, rB) != 0) {
- goto __250
+ goto __259
}
goto arithmetic_result_is_null
-__250:
+__259:
;
*(*float64)(unsafe.Pointer(pOut /* &.u */)) = rB
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0008))
-__240:
+__249:
;
-__225:
+__234:
;
- goto __8
+ goto __10
arithmetic_result_is_null:
Xsqlite3VdbeMemSetNull(tls, pOut)
- goto __8
+ goto __10
// Opcode: CollSeq P1 * * P4
//
@@ -59449,15 +60587,15 @@ arithmetic_result_is_null:
// The interface used by the implementation of the aforementioned functions
// to retrieve the collation sequence set by this opcode is not available
// publicly. Only built-in functions have access to this feature.
-__37:
+__39:
;
if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
- goto __251
+ goto __260
}
Xsqlite3VdbeMemSetInt64(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56), int64(0))
-__251:
+__260:
;
- goto __8
+ goto __10
// Opcode: BitAnd P1 P2 P3 * *
// Synopsis: r[P3]=r[P1]&r[P2]
@@ -59485,43 +60623,43 @@ __251:
// number of bits specified by the integer in register P1.
// Store the result in register P3.
// If either input is NULL, the result is NULL.
-__38: // same as TK_BITAND, in1, in2, out3
-__39: // same as TK_BITOR, in1, in2, out3
-__40: // same as TK_LSHIFT, in1, in2, out3
-__41:
+__40: // same as TK_BITAND, in1, in2, out3
+__41: // same as TK_BITOR, in1, in2, out3
+__42: // same as TK_LSHIFT, in1, in2, out3
+__43:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pIn2 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !(((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) | int32((*Mem)(unsafe.Pointer(pIn2)).Fflags)) & 0x0001) != 0) {
- goto __252
+ goto __261
}
Xsqlite3VdbeMemSetNull(tls, pOut)
- goto __8
-__252:
+ goto __10
+__261:
;
*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) = Xsqlite3VdbeIntValue(tls, pIn2)
iB1 = Xsqlite3VdbeIntValue(tls, pIn1)
op = (*Op)(unsafe.Pointer(pOp)).Fopcode
if !(int32(op) == 101) {
- goto __253
+ goto __262
}
*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) &= iB1
- goto __254
-__253:
+ goto __263
+__262:
if !(int32(op) == 102) {
- goto __255
+ goto __264
}
*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) |= iB1
- goto __256
-__255:
+ goto __265
+__264:
if !(iB1 != int64(0)) {
- goto __257
+ goto __266
}
// If shifting by a negative amount, shift in the other direction
if !(iB1 < int64(0)) {
- goto __258
+ goto __267
}
op = (U8(((2 * 103) + 1) - int32(op)))
@@ -59530,48 +60668,48 @@ __255:
} else {
iB1 = int64(64)
}
-__258:
+__267:
;
if !(iB1 >= int64(64)) {
- goto __259
+ goto __268
}
if (*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) >= int64(0)) || (int32(op) == 103) {
*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) = int64(0)
} else {
*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) = int64(-1)
}
- goto __260
-__259:
+ goto __269
+__268:
crt.Xmemcpy(tls, bp+192 /* &uA */, bp+200 /* &iA1 */, uint64(unsafe.Sizeof(U64(0))))
if !(int32(op) == 103) {
- goto __261
+ goto __270
}
*(*U64)(unsafe.Pointer(bp + 192 /* uA */)) <<= iB1
- goto __262
-__261:
+ goto __271
+__270:
*(*U64)(unsafe.Pointer(bp + 192 /* uA */)) >>= iB1
// Sign-extend on a right shift of a negative number
if !(*(*I64)(unsafe.Pointer(bp + 200 /* iA1 */)) < int64(0)) {
- goto __263
+ goto __272
}
*(*U64)(unsafe.Pointer(bp + 192 /* uA */)) |= (U64(((U64((uint64(0xffffffff))) << 32) | uint64(0xffffffff))) << (int64(64) - iB1))
-__263:
+__272:
;
-__262:
+__271:
;
crt.Xmemcpy(tls, bp+200 /* &iA1 */, bp+192 /* &uA */, uint64(unsafe.Sizeof(I64(0))))
-__260:
+__269:
;
-__257:
+__266:
;
-__256:
+__265:
;
-__254:
+__263:
;
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 200 /* iA1 */))
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0004))
- goto __8
+ goto __10
// Opcode: AddImm P1 P2 * * *
// Synopsis: r[P1]=r[P1]+P2
@@ -59580,12 +60718,12 @@ __254:
// The result is always an integer.
//
// To force any register to be an integer, just add 0.
-__42: // in1
+__44: // in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
Xsqlite3VdbeMemIntegerify(tls, pIn1)
*(*I64)(unsafe.Pointer(pIn1 /* &.u */ /* &.i */)) += (I64((*Op)(unsafe.Pointer(pOp)).Fp2))
- goto __8
+ goto __10
// Opcode: MustBeInt P1 P2 * * *
//
@@ -59593,33 +60731,33 @@ __42: // in1
// in P1 is not an integer and cannot be converted into an integer
// without data loss, then jump immediately to P2, or if P2==0
// raise an SQLITE_MISMATCH exception.
-__43: // jump, in1
+__45: // jump, in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0004) == 0) {
- goto __264
+ goto __273
}
applyAffinity(tls, pIn1, int8(0x43), encoding)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0004) == 0) {
- goto __265
+ goto __274
}
if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 0) {
- goto __266
+ goto __275
}
rc = 20
goto abort_due_to_error
- goto __267
-__266:
+ goto __276
+__275:
goto jump_to_p2
-__267:
+__276:
;
-__265:
+__274:
;
-__264:
+__273:
;
(*Mem)(unsafe.Pointer(pIn1)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pIn1))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0004))
- goto __8
+ goto __10
// Opcode: RealAffinity P1 * * * *
//
@@ -59629,16 +60767,16 @@ __264:
// has REAL affinity. Such column values may still be stored as
// integers, for space efficiency, but after extraction we want them
// to have only a real value.
-__44: // in1
+__46: // in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & (0x0004 | 0x0020)) != 0) {
- goto __268
+ goto __277
}
Xsqlite3VdbeMemRealify(tls, pIn1)
-__268:
+__277:
;
- goto __8
+ goto __10
// Opcode: Cast P1 P2 * * *
// Synopsis: affinity(r[P1])
@@ -59654,7 +60792,7 @@ __268:
// </ul>
//
// A NULL value is not changed by this routine. It remains NULL.
-__45: // in1
+__47: // in1
;
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
@@ -59666,21 +60804,21 @@ __45: // in1
return 0
}()
if !(rc != 0) {
- goto __269
+ goto __278
}
goto abort_due_to_error
-__269:
+__278:
;
rc = Xsqlite3VdbeMemCast(tls, pIn1, uint8((*Op)(unsafe.Pointer(pOp)).Fp2), encoding)
if !(rc != 0) {
- goto __270
+ goto __279
}
goto abort_due_to_error
-__270:
+__279:
;
updateMaxBlobsize(tls, pIn1)
- goto __8
+ goto __10
// Opcode: Eq P1 P2 P3 P4 P5
// Synopsis: IF r[P3]==r[P1]
@@ -59772,23 +60910,23 @@ __270:
// This works just like the Lt opcode except that the jump is taken if
// the content of register P3 is greater than or equal to the content of
// register P1. See the Lt opcode for additional information.
-__46: // same as TK_EQ, jump, in1, in3
-__47: // same as TK_NE, jump, in1, in3
-__48: // same as TK_LT, jump, in1, in3
-__49: // same as TK_LE, jump, in1, in3
-__50: // same as TK_GT, jump, in1, in3
-__51: // Copy of initial value of pIn3->flags
+__48: // same as TK_EQ, jump, in1, in3
+__49: // same as TK_NE, jump, in1, in3
+__50: // same as TK_LT, jump, in1, in3
+__51: // same as TK_LE, jump, in1, in3
+__52: // same as TK_GT, jump, in1, in3
+__53: // Copy of initial value of pIn3->flags
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
flags11 = (*Mem)(unsafe.Pointer(pIn1)).Fflags
flags3 = (*Mem)(unsafe.Pointer(pIn3)).Fflags
if !(((int32(flags11) | int32(flags3)) & 0x0001) != 0) {
- goto __271
+ goto __280
}
// One or both operands are NULL
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x80) != 0) {
- goto __273
+ goto __282
}
// If SQLITE_NULLEQ is set (which will only happen if the operator is
// OP_Eq or OP_Ne) then take the jump or not depending on whether
@@ -59796,130 +60934,130 @@ __51: // Copy of initial value of pIn3->flags
if !((((int32(flags11) & int32(flags3)) & 0x0001) != 0) &&
((int32(flags3) & 0x0100) == 0)) {
- goto __275
+ goto __284
}
res = 0
- goto __276
-__275:
+ goto __285
+__284:
res = func() int32 {
if (int32(flags3) & 0x0001) != 0 {
return -1
}
return +1
}()
-__276:
+__285:
;
- goto __274
-__273:
+ goto __283
+__282:
// SQLITE_NULLEQ is clear and at least one operand is NULL,
// then the result is always NULL.
// The jump is taken if the SQLITE_JUMPIFNULL bit is set.
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x20) != 0) {
- goto __277
+ goto __286
}
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
iCompare = 1 // Operands are not equal
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0001))
- goto __278
-__277:
+ goto __287
+__286:
;
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x10) != 0) {
- goto __279
+ goto __288
}
goto jump_to_p2
-__279:
+__288:
;
-__278:
+__287:
;
- goto __8
-__274:
+ goto __10
+__283:
;
- goto __272
-__271:
+ goto __281
+__280:
// Neither operand is NULL. Do a comparison.
affinity = (int8(int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x47))
if !(int32(affinity) >= 0x43) {
- goto __280
+ goto __289
}
if !(((int32(flags11) | int32(flags3)) & 0x0002) != 0) {
- goto __282
+ goto __291
}
if !((int32(flags11) & (((0x0004 | 0x0020) | 0x0008) | 0x0002)) == 0x0002) {
- goto __283
+ goto __292
}
applyNumericAffinity(tls, pIn1, 0)
flags3 = (*Mem)(unsafe.Pointer(pIn3)).Fflags
-__283:
+__292:
;
if !((int32(flags3) & (((0x0004 | 0x0020) | 0x0008) | 0x0002)) == 0x0002) {
- goto __284
+ goto __293
}
applyNumericAffinity(tls, pIn3, 0)
-__284:
+__293:
;
-__282:
+__291:
;
// Handle the common case of integer comparison here, as an
// optimization, to avoid a call to sqlite3MemCompare()
if !(((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & int32((*Mem)(unsafe.Pointer(pIn3)).Fflags)) & 0x0004) != 0) {
- goto __285
+ goto __294
}
if !(*(*I64)(unsafe.Pointer(pIn3 /* &.u */)) > *(*I64)(unsafe.Pointer(pIn1 /* &.u */))) {
- goto __286
+ goto __295
}
res = +1
goto compare_op
-__286:
+__295:
;
if !(*(*I64)(unsafe.Pointer(pIn3 /* &.u */)) < *(*I64)(unsafe.Pointer(pIn1 /* &.u */))) {
- goto __287
+ goto __296
}
res = -1
goto compare_op
-__287:
+__296:
;
res = 0
goto compare_op
-__285:
+__294:
;
- goto __281
-__280:
+ goto __290
+__289:
if !(int32(affinity) == 0x42) {
- goto __288
+ goto __297
}
if !(((int32(flags11) & 0x0002) == 0) && ((int32(flags11) & ((0x0004 | 0x0008) | 0x0020)) != 0)) {
- goto __289
+ goto __298
}
Xsqlite3VdbeMemStringify(tls, pIn1, encoding, uint8(1))
flags11 = (U16((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & ^int32(crt.Int32FromInt32(0xc1bf))) | (int32(flags11) & 0xc1bf)))
if !(pIn1 == pIn3) {
- goto __290
+ goto __299
}
flags3 = (U16(int32(flags11) | 0x0002))
-__290:
+__299:
;
-__289:
+__298:
;
if !(((int32(flags3) & 0x0002) == 0) && ((int32(flags3) & ((0x0004 | 0x0008) | 0x0020)) != 0)) {
- goto __291
+ goto __300
}
Xsqlite3VdbeMemStringify(tls, pIn3, encoding, uint8(1))
flags3 = (U16((int32((*Mem)(unsafe.Pointer(pIn3)).Fflags) & ^int32(crt.Int32FromInt32(0xc1bf))) | (int32(flags3) & 0xc1bf)))
-__291:
+__300:
;
-__288:
+__297:
;
-__281:
+__290:
;
res = Xsqlite3MemCompare(tls, pIn3, pIn1, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
-__272:
+__281:
;
compare_op:
// At this point, res is negative, zero, or positive if reg[P1] is
@@ -59931,21 +61069,21 @@ compare_op:
;
if !(res < 0) {
- goto __292
+ goto __301
}
res2 = int32(aLTb[(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) - 52)])
- goto __293
-__292:
+ goto __302
+__301:
if !(res == 0) {
- goto __294
+ goto __303
}
res2 = int32(aEQb[(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) - 52)])
- goto __295
-__294:
+ goto __304
+__303:
res2 = int32(aGTb[(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) - 52)])
-__295:
+__304:
;
-__293:
+__302:
;
// Undo any changes made by applyAffinity() to the input registers.
@@ -59955,12 +61093,12 @@ __293:
(*Mem)(unsafe.Pointer(pIn1)).Fflags = flags11
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x20) != 0) {
- goto __296
+ goto __305
}
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
iCompare = res
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x08) != 0) {
- goto __298
+ goto __307
}
// The KEEPNULL flag prevents OP_Eq from overwriting a NULL with 1
// and prevents OP_Ne from overwriting NULL with 0. This flag
@@ -59971,28 +61109,28 @@ __293:
// NULL.
if !((crt.Bool32(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 53)) == res2) {
- goto __299
+ goto __308
}
- goto __8
-__299:
+ goto __10
+__308:
;
-__298:
+__307:
;
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0004))
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(res2)
- goto __297
-__296:
+ goto __306
+__305:
;
if !(res2 != 0) {
- goto __300
+ goto __309
}
goto jump_to_p2
-__300:
+__309:
;
-__297:
+__306:
;
- goto __8
+ goto __10
// Opcode: ElseNotEq * P2 * * *
//
@@ -60006,16 +61144,16 @@ __297:
// prior OP_Lt or OP_Gt would have been NULL or false (0), then then
// jump to P2. If the result of an OP_Eq comparison on the two previous
// operands would have been true (1), then fall through.
-__52: // same as TK_ESCAPE, jump
+__54: // same as TK_ESCAPE, jump
;
if !(iCompare != 0) {
- goto __301
+ goto __310
}
goto jump_to_p2
-__301:
+__310:
;
- goto __8
+ goto __10
// Opcode: Permutation * * * P4 *
//
@@ -60028,10 +61166,10 @@ __301:
//
// The first integer in the P4 integer array is the length of the array
// and does not become part of the permutation.
-__53:
+__55:
;
- goto __8
+ goto __10
// Opcode: Compare P1 P2 P3 P4 P5
// Synopsis: r[P1@P3] <-> r[P2@P3]
@@ -60052,18 +61190,18 @@ __53:
// The comparison is a sort comparison, so NULLs compare equal,
// NULLs are less than numbers, numbers are less than strings,
// and strings are less than blobs.
-__54: // The permutation
+__56: // The permutation
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x01) == 0) {
- goto __302
+ goto __311
}
aPermute = uintptr(0)
- goto __303
-__302:
+ goto __312
+__311:
;
aPermute = (*(*uintptr)(unsafe.Pointer(pOp + crt.UintptrFromInt32(-1)*24 + 16 /* &.p4 */)) + uintptr(1)*4)
-__303:
+__312:
;
n2 = (*Op)(unsafe.Pointer(pOp)).Fp3
pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
@@ -60071,9 +61209,9 @@ __303:
p11 = (*Op)(unsafe.Pointer(pOp)).Fp1
p21 = (*Op)(unsafe.Pointer(pOp)).Fp2
i1 = 0
-__304:
+__313:
if !(i1 < n2) {
- goto __306
+ goto __315
}
if aPermute != 0 {
idx = *(*int32)(unsafe.Pointer(aPermute + uintptr(i1)*4))
@@ -60085,58 +61223,58 @@ __304:
bRev = (int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i1)))) & 0x01)
iCompare = Xsqlite3MemCompare(tls, (aMem + uintptr((p11+idx))*56), (aMem + uintptr((p21+idx))*56), pColl)
if !(iCompare != 0) {
- goto __307
+ goto __316
}
if !(((int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i1)))) & 0x02) != 0) &&
(((int32((*Mem)(unsafe.Pointer(aMem+uintptr((p11+idx))*56)).Fflags) & 0x0001) != 0) || ((int32((*Mem)(unsafe.Pointer(aMem+uintptr((p21+idx))*56)).Fflags) & 0x0001) != 0))) {
- goto __308
+ goto __317
}
iCompare = -iCompare
-__308:
+__317:
;
if !(bRev != 0) {
- goto __309
+ goto __318
}
iCompare = -iCompare
-__309:
+__318:
;
- goto __306
-__307:
+ goto __315
+__316:
;
- goto __305
-__305:
+ goto __314
+__314:
i1++
- goto __304
- goto __306
-__306:
+ goto __313
+ goto __315
+__315:
;
- goto __8
+ goto __10
// Opcode: Jump P1 P2 P3 * *
//
// Jump to the instruction at address P1, P2, or P3 depending on whether
// in the most recent OP_Compare instruction the P1 vector was less than
// equal to, or greater than the P2 vector, respectively.
-__55: // jump
+__57: // jump
if !(iCompare < 0) {
- goto __310
+ goto __319
}
pOp = (aOp + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp1-1))*24)
- goto __311
-__310:
+ goto __320
+__319:
if !(iCompare == 0) {
- goto __312
+ goto __321
}
pOp = (aOp + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp2-1))*24)
- goto __313
-__312:
+ goto __322
+__321:
;
pOp = (aOp + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp3-1))*24)
-__313:
+__322:
;
-__311:
+__320:
;
- goto __8
+ goto __10
// Opcode: And P1 P2 P3 * *
// Synopsis: r[P3]=(r[P1] && r[P2])
@@ -60156,32 +61294,32 @@ __311:
// If either P1 or P2 is nonzero (true) then the result is 1 (true)
// even if the other input is NULL. A NULL and false or two NULLs
// give a NULL output.
-__56: // same as TK_AND, in1, in2, out3
-__57: // Right operand: 0==FALSE, 1==TRUE, 2==UNKNOWN or NULL
+__58: // same as TK_AND, in1, in2, out3
+__59: // Right operand: 0==FALSE, 1==TRUE, 2==UNKNOWN or NULL
v1 = Xsqlite3VdbeBooleanValue(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56), 2)
v2 = Xsqlite3VdbeBooleanValue(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56), 2)
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 44) {
- goto __314
+ goto __323
}
v1 = int32(and_logic[((v1 * 3) + v2)])
- goto __315
-__314:
+ goto __324
+__323:
v1 = int32(or_logic[((v1 * 3) + v2)])
-__315:
+__324:
;
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !(v1 == 2) {
- goto __316
+ goto __325
}
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0001))
- goto __317
-__316:
+ goto __326
+__325:
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(v1)
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0004))
-__317:
+__326:
;
- goto __8
+ goto __10
// Opcode: IsTrue P1 P2 P3 P4 *
// Synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4
@@ -60202,12 +61340,12 @@ __317:
// <li> If P3==0 and P4==1 then r[P2] := r[P1] IS NOT TRUE
// <li> If P3==1 and P4==0 then r[P2] := r[P1] IS NOT FALSE
// </ul>
-__58: // in1, out2
+__60: // in1, out2
;
Xsqlite3VdbeMemSetInt64(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56),
(int64(Xsqlite3VdbeBooleanValue(tls, (aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56), (*Op)(unsafe.Pointer(pOp)).Fp3) ^ *(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */)))))
- goto __8
+ goto __10
// Opcode: Not P1 P2 * * *
// Synopsis: r[P2]= !r[P1]
@@ -60215,19 +61353,19 @@ __58: // in1, out2
// Interpret the value in register P1 as a boolean value. Store the
// boolean complement in register P2. If the value in register P1 is
// NULL, then a NULL is stored in P2.
-__59: // same as TK_NOT, in1, out2
+__61: // same as TK_NOT, in1, out2
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0001) == 0) {
- goto __318
+ goto __327
}
Xsqlite3VdbeMemSetInt64(tls, pOut, crt.BoolInt64(!(Xsqlite3VdbeBooleanValue(tls, pIn1, 0) != 0)))
- goto __319
-__318:
+ goto __328
+__327:
Xsqlite3VdbeMemSetNull(tls, pOut)
-__319:
+__328:
;
- goto __8
+ goto __10
// Opcode: BitNot P1 P2 * * *
// Synopsis: r[P2]= ~r[P1]
@@ -60235,18 +61373,18 @@ __319:
// Interpret the content of register P1 as an integer. Store the
// ones-complement of the P1 value into register P2. If P1 holds
// a NULL then store a NULL in P2.
-__60: // same as TK_BITNOT, in1, out2
+__62: // same as TK_BITNOT, in1, out2
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
Xsqlite3VdbeMemSetNull(tls, pOut)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0001) == 0) {
- goto __320
+ goto __329
}
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0004)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = ^Xsqlite3VdbeIntValue(tls, pIn1)
-__320:
+__329:
;
- goto __8
+ goto __10
// Opcode: Once P1 P2 * * *
//
@@ -60264,96 +61402,96 @@ __320:
// whether or not the jump should be taken. The bitmask is necessary
// because the self-altering code trick does not work for recursive
// triggers.
-__61: // Address of this instruction
+__63: // Address of this instruction
;
if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0) {
- goto __321
+ goto __330
}
iAddr = U32((int32((int64(pOp) - int64((*Vdbe)(unsafe.Pointer(p)).FaOp)) / 24)))
if !((int32(*(*U8)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FpFrame)).FaOnce + uintptr((iAddr / U32(8)))))) & (int32(1) << (iAddr & U32(7)))) != 0) {
- goto __323
+ goto __332
}
goto jump_to_p2
-__323:
+__332:
;
*(*U8)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FpFrame)).FaOnce + uintptr((iAddr / U32(8))))) |= U8((int32(1) << (iAddr & U32(7))))
- goto __322
-__321:
+ goto __331
+__330:
if !((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr(0)*24)).Fp1 == (*Op)(unsafe.Pointer(pOp)).Fp1) {
- goto __324
+ goto __333
}
goto jump_to_p2
-__324:
+__333:
;
-__322:
+__331:
;
(*Op)(unsafe.Pointer(pOp)).Fp1 = (*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(0)*24)).Fp1
- goto __8
+ goto __10
// Opcode: If P1 P2 P3 * *
//
// Jump to P2 if the value in register P1 is true. The value
// is considered true if it is numeric and non-zero. If the value
// in P1 is NULL then take the jump if and only if P3 is non-zero.
-__62:
+__64:
c = Xsqlite3VdbeBooleanValue(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56), (*Op)(unsafe.Pointer(pOp)).Fp3)
if !(c != 0) {
- goto __325
+ goto __334
}
goto jump_to_p2
-__325:
+__334:
;
- goto __8
+ goto __10
// Opcode: IfNot P1 P2 P3 * *
//
// Jump to P2 if the value in register P1 is False. The value
// is considered false if it has a numeric value of zero. If the value
// in P1 is NULL then take the jump if and only if P3 is non-zero.
-__63:
+__65:
c1 = crt.BoolInt32(!(Xsqlite3VdbeBooleanValue(tls, (aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56), crt.BoolInt32(!((*Op)(unsafe.Pointer(pOp)).Fp3 != 0))) != 0))
if !(c1 != 0) {
- goto __326
+ goto __335
}
goto jump_to_p2
-__326:
+__335:
;
- goto __8
+ goto __10
// Opcode: IsNull P1 P2 * * *
// Synopsis: if r[P1]==NULL goto P2
//
// Jump to P2 if the value in register P1 is NULL.
-__64: // same as TK_ISNULL, jump, in1
+__66: // same as TK_ISNULL, jump, in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0001) != 0) {
- goto __327
+ goto __336
}
goto jump_to_p2
-__327:
+__336:
;
- goto __8
+ goto __10
// Opcode: NotNull P1 P2 * * *
// Synopsis: if r[P1]!=NULL goto P2
//
// Jump to P2 if the value in register P1 is not NULL.
-__65: // same as TK_NOTNULL, jump, in1
+__67: // same as TK_NOTNULL, jump, in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0001) == 0) {
- goto __328
+ goto __337
}
goto jump_to_p2
-__328:
+__337:
;
- goto __8
+ goto __10
// Opcode: IfNullRow P1 P2 P3 * *
// Synopsis: if P1.nullRow then r[P3]=NULL, goto P2
@@ -60362,17 +61500,17 @@ __328:
// If it is, then set register P3 to NULL and jump immediately to P2.
// If P1 is not on a NULL row, then fall through without making any
// changes.
-__66: // jump
+__68: // jump
;
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)))).FnullRow != 0) {
- goto __329
+ goto __338
}
Xsqlite3VdbeMemSetNull(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56))
goto jump_to_p2
-__329:
+__338:
;
- goto __8
+ goto __10
// Opcode: Column P1 P2 P3 P4 P5
// Synopsis: r[P3]=PX
@@ -60393,7 +61531,7 @@ __329:
// the result is guaranteed to only be used as the argument of a length()
// or typeof() function, respectively. The loading of large blobs can be
// skipped for length() and all content loading can be skipped for typeof().
-__67: // PseudoTable input register
+__69: // PseudoTable input register
;
*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)) = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -60405,10 +61543,10 @@ __67: // PseudoTable input register
// B-Tree seek.
rc = Xsqlite3VdbeCursorMoveto(tls, bp+208 /* &pC */, bp+216 /* &p22 */)
if !(rc != 0) {
- goto __330
+ goto __339
}
goto abort_due_to_error
-__330:
+__339:
;
pDest = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
@@ -60416,13 +61554,13 @@ __330:
aOffset = (*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaOffset
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FcacheStatus != (*Vdbe)(unsafe.Pointer(p)).FcacheCtr) {
- goto __331
+ goto __340
} //OPTIMIZATION-IF-FALSE
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FnullRow != 0) {
- goto __332
+ goto __341
}
if !(int32((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FeCurType) == 3) {
- goto __334
+ goto __343
}
// For the special case of as pseudo-cursor, the seekResult field
// identifies the register that holds the record
@@ -60431,14 +61569,14 @@ __330:
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FpayloadSize = crt.AssignPtrUint32(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */))+116 /* &.szRow */, U32((*Mem)(unsafe.Pointer(pReg)).Fn))
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaRow = (*Mem)(unsafe.Pointer(pReg)).Fz
- goto __335
-__334:
+ goto __344
+__343:
Xsqlite3VdbeMemSetNull(tls, pDest)
goto op_column_out
-__335:
+__344:
;
- goto __333
-__332:
+ goto __342
+__341:
pCrsr = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)) + 56 /* &.uc */))
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FpayloadSize = Xsqlite3BtreePayloadSize(tls, pCrsr)
@@ -60446,12 +61584,12 @@ __332:
// Maximum page size is 64KiB
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FpayloadSize > U32(*(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(0)*4)))) {
- goto __336
+ goto __345
}
goto too_big
-__336:
+__345:
;
-__333:
+__342:
;
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FcacheStatus = (*Vdbe)(unsafe.Pointer(p)).FcacheCtr
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FiHdrOffset = U32(func() uint8 {
@@ -60466,7 +61604,7 @@ __333:
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FnHdrParsed = U16(0)
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FszRow < *(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4))) {
- goto __337
+ goto __346
} //OPTIMIZATION-IF-FALSE
// pC->aRow does not have to hold the entire row, but it does at least
// need to cover the header of the record. If pC->aRow does not contain
@@ -60484,13 +61622,13 @@ __333:
// 3-byte type for each of the maximum of 32768 columns plus three
// extra bytes for the header length itself. 32768*3 + 3 = 98307.
if !((*(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4)) > U32(98307)) || (*(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4)) > (*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FpayloadSize)) {
- goto __339
+ goto __348
}
goto op_column_corrupt
-__339:
+__348:
;
- goto __338
-__337:
+ goto __347
+__346:
// This is an optimization. By skipping over the first few tests
// (ex: pC->nHdrParsed<=p2) in the next section, we achieve a
// measurable performance gain.
@@ -60507,38 +61645,38 @@ __337:
// Conditional skipped
goto op_column_read_header
-__338:
+__347:
;
-__331:
+__340:
;
// Make sure at least the first p2+1 entries of the header have been
// parsed and valid information is in aOffset[] and pC->aType[].
if !(int32((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FnHdrParsed) <= *(*int32)(unsafe.Pointer(bp + 216 /* p22 */))) {
- goto __340
+ goto __349
}
// If there is more header available for parsing in the record, try
// to extract additional fields up through the p2+1-th field
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FiHdrOffset < *(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4))) {
- goto __342
+ goto __351
}
// Make sure zData points to enough of the record to cover the header.
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaRow == uintptr(0)) {
- goto __344
+ goto __353
}
crt.Xmemset(tls, bp+224 /* &sMem */, 0, uint64(unsafe.Sizeof(Mem{})))
rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)) + 56 /* &.uc */)), *(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4)), bp+224 /* &sMem */)
if !(rc != 0) {
- goto __346
+ goto __355
}
goto abort_due_to_error
-__346:
+__355:
;
zData = (*Mem)(unsafe.Pointer(bp + 224 /* &sMem */)).Fz
- goto __345
-__344:
+ goto __354
+__353:
zData = (*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaRow
-__345:
+__354:
;
// Fill in pC->aType[i] and aOffset[i] values through the p2-th field.
@@ -60548,27 +61686,27 @@ op_column_read_header:
zHdr = (zData + uintptr((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FiHdrOffset))
zEndHdr = (zData + uintptr(*(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4))))
-__347:
+__356:
if !((crt.AssignPtrUint32((*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */))+120 /* &.aType */)+uintptr(i2)*4, crt.AssignPtrUint32(bp+280 /* t */, U32(*(*U8)(unsafe.Pointer(zHdr + uintptr(0))))))) < U32(0x80)) {
- goto __350
+ goto __359
}
zHdr++
offset64 = offset64 + (U64(Xsqlite3VdbeOneByteSerialTypeLen(tls, uint8(*(*U32)(unsafe.Pointer(bp + 280 /* t */))))))
- goto __351
-__350:
+ goto __360
+__359:
zHdr += uintptr(Xsqlite3GetVarint32(tls, zHdr, bp+280 /* &t */))
*(*U32)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)) + 120 /* &.aType */) + uintptr(i2)*4)) = *(*U32)(unsafe.Pointer(bp + 280 /* t */))
offset64 = offset64 + (U64(Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 280 /* t */)))))
-__351:
+__360:
;
*(*U32)(unsafe.Pointer(aOffset + uintptr(crt.PreIncInt32(&i2, 1))*4)) = (U32(offset64 & uint64(0xffffffff)))
- goto __348
-__348:
+ goto __357
+__357:
if (i2 <= *(*int32)(unsafe.Pointer(bp + 216 /* p22 */))) && (zHdr < zEndHdr) {
- goto __347
+ goto __356
}
- goto __349
-__349:
+ goto __358
+__358:
;
// The record is corrupt if any of the following are true:
@@ -60577,63 +61715,63 @@ __349:
// (3) the end of the data extends beyond the end of the record.
if !(((zHdr >= zEndHdr) && ((zHdr > zEndHdr) || (offset64 != U64((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FpayloadSize)))) ||
(offset64 > U64((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FpayloadSize))) {
- goto __352
+ goto __361
}
if !(*(*U32)(unsafe.Pointer(aOffset + uintptr(0)*4)) == U32(0)) {
- goto __353
+ goto __362
}
i2 = 0
zHdr = zEndHdr
- goto __354
-__353:
+ goto __363
+__362:
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaRow == uintptr(0)) {
- goto __355
+ goto __364
}
Xsqlite3VdbeMemRelease(tls, bp+224 /* &sMem */)
-__355:
+__364:
;
goto op_column_corrupt
-__354:
+__363:
;
-__352:
+__361:
;
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FnHdrParsed = U16(i2)
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FiHdrOffset = (U32((int64(zHdr) - int64(zData)) / 1))
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaRow == uintptr(0)) {
- goto __356
+ goto __365
}
Xsqlite3VdbeMemRelease(tls, bp+224 /* &sMem */)
-__356:
+__365:
;
- goto __343
-__342:
+ goto __352
+__351:
*(*U32)(unsafe.Pointer(bp + 280 /* t */)) = U32(0)
-__343:
+__352:
;
// If after trying to extract new entries from the header, nHdrParsed is
// still not up to p2, that means that the record has fewer than p2
// columns. So the result will be either the default value or a NULL.
if !(int32((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FnHdrParsed) <= *(*int32)(unsafe.Pointer(bp + 216 /* p22 */))) {
- goto __357
+ goto __366
}
if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == (-11)) {
- goto __358
+ goto __367
}
Xsqlite3VdbeMemShallowCopy(tls, pDest, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)), 0x0800)
- goto __359
-__358:
+ goto __368
+__367:
Xsqlite3VdbeMemSetNull(tls, pDest)
-__359:
+__368:
;
goto op_column_out
-__357:
+__366:
;
- goto __341
-__340:
+ goto __350
+__349:
*(*U32)(unsafe.Pointer(bp + 280 /* t */)) = *(*U32)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)) + 120 /* &.aType */) + uintptr(*(*int32)(unsafe.Pointer(bp + 216 /* p22 */)))*4))
-__341:
+__350:
;
// Extract the content for the p2+1-th column. Control can only
@@ -60641,55 +61779,55 @@ __341:
// all valid.
if !((int32((*Mem)(unsafe.Pointer((pDest))).Fflags) & (0x2000 | 0x0400)) != 0) {
- goto __360
+ goto __369
}
Xsqlite3VdbeMemSetNull(tls, pDest)
-__360:
+__369:
;
if !((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FszRow >= *(*U32)(unsafe.Pointer(aOffset + uintptr((*(*int32)(unsafe.Pointer(bp + 216 /* p22 */))+1))*4))) {
- goto __361
+ goto __370
}
// This is the common case where the desired content fits on the original
// page - where the content is not on an overflow page
zData = ((*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)))).FaRow + uintptr(*(*U32)(unsafe.Pointer(aOffset + uintptr(*(*int32)(unsafe.Pointer(bp + 216 /* p22 */)))*4))))
if !(*(*U32)(unsafe.Pointer(bp + 280 /* t */)) < U32(12)) {
- goto __363
+ goto __372
}
Xsqlite3VdbeSerialGet(tls, zData, *(*U32)(unsafe.Pointer(bp + 280 /* t */)), pDest)
- goto __364
-__363:
+ goto __373
+__372:
(*Mem)(unsafe.Pointer(pDest)).Fn = crt.AssignInt32(&len, (int32((*(*U32)(unsafe.Pointer(bp + 280 /* t */)) - U32(12)) / U32(2))))
(*Mem)(unsafe.Pointer(pDest)).Fenc = encoding
if !((*Mem)(unsafe.Pointer(pDest)).FszMalloc < (len + 2)) {
- goto __365
+ goto __374
}
(*Mem)(unsafe.Pointer(pDest)).Fflags = U16(0x0001)
if !(Xsqlite3VdbeMemGrow(tls, pDest, (len+2), 0) != 0) {
- goto __367
+ goto __376
}
goto no_mem
-__367:
+__376:
;
- goto __366
-__365:
+ goto __375
+__374:
(*Mem)(unsafe.Pointer(pDest)).Fz = (*Mem)(unsafe.Pointer(pDest)).FzMalloc
-__366:
+__375:
;
crt.Xmemcpy(tls, (*Mem)(unsafe.Pointer(pDest)).Fz, zData, uint64(len))
*(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pDest)).Fz + uintptr(len))) = int8(0)
*(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pDest)).Fz + uintptr((len + 1)))) = int8(0)
(*Mem)(unsafe.Pointer(pDest)).Fflags = aFlag1[(*(*U32)(unsafe.Pointer(bp + 280 /* t */)) & U32(1))]
-__364:
+__373:
;
- goto __362
-__361:
+ goto __371
+__370:
(*Mem)(unsafe.Pointer(pDest)).Fenc = encoding
// This branch happens only when content is on overflow pages
if !((((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & (0x40 | 0x80)) != 0) &&
(((*(*U32)(unsafe.Pointer(bp + 280 /* t */)) >= U32(12)) && ((*(*U32)(unsafe.Pointer(bp + 280 /* t */)) & U32(1)) == U32(0))) || ((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x80) != 0))) ||
((crt.AssignInt32(&len, int32(Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 280 /* t */)))))) == 0)) {
- goto __368
+ goto __377
}
// Content is irrelevant for
// 1. the typeof() function,
@@ -60704,38 +61842,38 @@ __361:
// as that array is 256 bytes long (plenty for VdbeMemPrettyPrint())
// and it begins with a bunch of zeros.
Xsqlite3VdbeSerialGet(tls, uintptr(uintptr(unsafe.Pointer(&Xsqlite3CtypeMap))), *(*U32)(unsafe.Pointer(bp + 280 /* t */)), pDest)
- goto __369
-__368:
+ goto __378
+__377:
rc = Xsqlite3VdbeMemFromBtree(tls, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 208 /* pC */)) + 56 /* &.uc */)), *(*U32)(unsafe.Pointer(aOffset + uintptr(*(*int32)(unsafe.Pointer(bp + 216 /* p22 */)))*4)), uint32(len), pDest)
if !(rc != 0) {
- goto __370
+ goto __379
}
goto abort_due_to_error
-__370:
+__379:
;
Xsqlite3VdbeSerialGet(tls, (*Mem)(unsafe.Pointer(pDest)).Fz, *(*U32)(unsafe.Pointer(bp + 280 /* t */)), pDest)
*(*U16)(unsafe.Pointer(pDest + 8 /* &.flags */)) &= crt.Uint16FromInt32((^int32(crt.Int32FromInt32(0x1000))))
-__369:
+__378:
;
-__362:
+__371:
;
op_column_out:
updateMaxBlobsize(tls, pDest)
- goto __8
+ goto __10
op_column_corrupt:
if !((*Op)(unsafe.Pointer(aOp+uintptr(0)*24)).Fp3 > 0) {
- goto __371
+ goto __380
}
pOp = (aOp + uintptr(((*Op)(unsafe.Pointer(aOp+uintptr(0)*24)).Fp3-1))*24)
- goto __8
- goto __372
-__371:
+ goto __10
+ goto __381
+__380:
rc = Xsqlite3CorruptError(tls, 87990)
goto abort_due_to_error
-__372:
+__381:
;
// Opcode: Affinity P1 P2 * P4 *
@@ -60746,19 +61884,19 @@ __372:
// P4 is a string that is P2 characters long. The N-th character of the
// string indicates the column affinity that should be used for the N-th
// memory cell in the range.
-__68: // The affinity to be applied
+__70: // The affinity to be applied
zAffinity = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
-__373:
+__382:
if !(1 != 0) {
- goto __374
+ goto __383
}
applyAffinity(tls, pIn1, *(*int8)(unsafe.Pointer(zAffinity + uintptr(0))), encoding)
if !((int32(*(*int8)(unsafe.Pointer(zAffinity + uintptr(0)))) == 0x45) && ((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0004) != 0)) {
- goto __375
+ goto __384
}
// When applying REAL affinity, if the result is still an MEM_Int
// that will fit in 6 bytes, then change the type to MEM_IntReal
@@ -60766,32 +61904,32 @@ __373:
// the type really wants to be REAL.
if !((*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) <= 140737488355327) && (*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) >= -140737488355328)) {
- goto __376
+ goto __385
}
*(*U16)(unsafe.Pointer(pIn1 + 8 /* &.flags */)) |= U16((0x0020))
*(*U16)(unsafe.Pointer(pIn1 + 8 /* &.flags */)) &= crt.Uint16FromInt32((^int32(crt.Int32FromInt32(0x0004))))
- goto __377
-__376:
+ goto __386
+__385:
*(*float64)(unsafe.Pointer(pIn1 /* &.u */)) = float64(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)))
*(*U16)(unsafe.Pointer(pIn1 + 8 /* &.flags */)) |= U16((0x0008))
*(*U16)(unsafe.Pointer(pIn1 + 8 /* &.flags */)) &= crt.Uint16FromInt32((^int32(crt.Int32FromInt32(0x0004))))
-__377:
+__386:
;
-__375:
+__384:
;
zAffinity++
if !(int32(*(*int8)(unsafe.Pointer(zAffinity + uintptr(0)))) == 0) {
- goto __378
+ goto __387
}
- goto __374
-__378:
+ goto __383
+__387:
;
pIn1 += 56
- goto __373
-__374:
+ goto __382
+__383:
;
- goto __8
+ goto __10
// Opcode: MakeRecord P1 P2 P3 P4 *
// Synopsis: r[P3]=mkrec(r[P1@P2])
@@ -60808,7 +61946,7 @@ __374:
// macros defined in sqliteInt.h.
//
// If P4 is NULL then all index fields have the affinity BLOB.
-__69: // Where to write next byte of the payload
+__71: // Where to write next byte of the payload
// Assuming the record contains N fields, the record format looks
// like this:
@@ -60842,30 +61980,30 @@ __69: // Where to write next byte of the payload
// Apply the requested affinity to all inputs
if !(zAffinity1 != 0) {
- goto __379
+ goto __388
}
pRec = pData0
-__380:
+__389:
applyAffinity(tls, pRec, *(*int8)(unsafe.Pointer(zAffinity1 + uintptr(0))), encoding)
if !((int32(*(*int8)(unsafe.Pointer(zAffinity1 + uintptr(0)))) == 0x45) && ((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x0004) != 0)) {
- goto __383
+ goto __392
}
*(*U16)(unsafe.Pointer(pRec + 8 /* &.flags */)) |= U16((0x0020))
*(*U16)(unsafe.Pointer(pRec + 8 /* &.flags */)) &= crt.Uint16FromInt32((^int32(crt.Int32FromInt32(0x0004))))
-__383:
+__392:
;
zAffinity1++
pRec += 56
- goto __381
-__381:
+ goto __390
+__390:
if *(*int8)(unsafe.Pointer(zAffinity1 + uintptr(0))) != 0 {
- goto __380
+ goto __389
}
- goto __382
-__382:
+ goto __391
+__391:
;
-__379:
+__388:
;
// Loop through the elements that will make up the record to figure
@@ -60894,13 +62032,13 @@ __379:
// nData Number of bytes of data space needed for the record
// nZero Zero bytes at the end of the record
pRec = pLast
-__384:
+__393:
;
if !((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x0001) != 0) {
- goto __387
+ goto __396
}
if !((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x4000) != 0) {
- goto __389
+ goto __398
}
// Values with MEM_Null and MEM_Zero are created by xColumn virtual
// table methods that never invoke sqlite3_result_xxxxx() while
@@ -60910,77 +62048,77 @@ __384:
// a true sqlite3_value_nochange().
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(10)
- goto __390
-__389:
+ goto __399
+__398:
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(0)
-__390:
+__399:
;
nHdr++
- goto __388
-__387:
+ goto __397
+__396:
if !((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & (0x0004 | 0x0020)) != 0) {
- goto __391
+ goto __400
}
// Figure out whether to use 1, 2, 4, 6 or 8 bytes.
i3 = *(*I64)(unsafe.Pointer(pRec /* &.u */))
if !(i3 < int64(0)) {
- goto __393
+ goto __402
}
uu = U64(^i3)
- goto __394
-__393:
+ goto __403
+__402:
uu = U64(i3)
-__394:
+__403:
;
nHdr++
if !(uu <= uint64(127)) {
- goto __395
+ goto __404
}
if !(((i3 & int64(1)) == i3) && (file_format >= 4)) {
- goto __397
+ goto __406
}
(*Mem)(unsafe.Pointer(pRec)).FuTemp = (U32(8) + U32(uu))
- goto __398
-__397:
+ goto __407
+__406:
nData++
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(1)
-__398:
+__407:
;
- goto __396
-__395:
+ goto __405
+__404:
if !(uu <= uint64(32767)) {
- goto __399
+ goto __408
}
nData = nData + (uint64(2))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(2)
- goto __400
-__399:
+ goto __409
+__408:
if !(uu <= uint64(8388607)) {
- goto __401
+ goto __410
}
nData = nData + (uint64(3))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(3)
- goto __402
-__401:
+ goto __411
+__410:
if !(uu <= uint64(2147483647)) {
- goto __403
+ goto __412
}
nData = nData + (uint64(4))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(4)
- goto __404
-__403:
+ goto __413
+__412:
if !(uu <= uint64(140737488355327)) {
- goto __405
+ goto __414
}
nData = nData + (uint64(6))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(5)
- goto __406
-__405:
+ goto __415
+__414:
nData = nData + (uint64(8))
if !((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x0020) != 0) {
- goto __407
+ goto __416
}
// If the value is IntReal and is going to take up 8 bytes to store
// as an integer, then we might as well make it an 8-byte floating
@@ -60989,79 +62127,79 @@ __405:
*(*U16)(unsafe.Pointer(pRec + 8 /* &.flags */)) &= crt.Uint16FromInt32((^int32(crt.Int32FromInt32(0x0020))))
*(*U16)(unsafe.Pointer(pRec + 8 /* &.flags */)) |= U16((0x0008))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(7)
- goto __408
-__407:
+ goto __417
+__416:
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(6)
-__408:
+__417:
;
-__406:
+__415:
;
-__404:
+__413:
;
-__402:
+__411:
;
-__400:
+__409:
;
-__396:
+__405:
;
- goto __392
-__391:
+ goto __401
+__400:
if !((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x0008) != 0) {
- goto __409
+ goto __418
}
nHdr++
nData = nData + (uint64(8))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(7)
- goto __410
-__409:
+ goto __419
+__418:
;
len1 = U32((*Mem)(unsafe.Pointer(pRec)).Fn)
serial_type = (((len1 * U32(2)) + U32(12)) + (U32(crt.Bool32((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x0002) != 0))))
if !((int32((*Mem)(unsafe.Pointer(pRec)).Fflags) & 0x4000) != 0) {
- goto __411
+ goto __420
}
serial_type = serial_type + (U32(*(*int32)(unsafe.Pointer(pRec /* &.u */)) * 2))
if !(nData != 0) {
- goto __412
+ goto __421
}
if !(Xsqlite3VdbeMemExpandBlob(tls, pRec) != 0) {
- goto __414
+ goto __423
}
goto no_mem
-__414:
+__423:
;
len1 = len1 + (U32(*(*int32)(unsafe.Pointer(pRec /* &.u */))))
- goto __413
-__412:
+ goto __422
+__421:
nZero = nZero + (I64(*(*int32)(unsafe.Pointer(pRec /* &.u */))))
-__413:
+__422:
;
-__411:
+__420:
;
nData = nData + (U64(len1))
nHdr = nHdr + (Xsqlite3VarintLen(tls, uint64(serial_type)))
(*Mem)(unsafe.Pointer(pRec)).FuTemp = serial_type
-__410:
+__419:
;
-__392:
+__401:
;
-__388:
+__397:
;
if !(pRec == pData0) {
- goto __415
+ goto __424
}
- goto __386
-__415:
+ goto __395
+__424:
;
pRec -= 56
- goto __385
-__385:
+ goto __394
+__394:
if 1 != 0 {
- goto __384
+ goto __393
}
- goto __386
-__386:
+ goto __395
+__395:
;
// EVIDENCE-OF: R-22564-11647 The header begins with a single varint
@@ -61070,22 +62208,22 @@ __386:
// itself.
if !(nHdr <= 126) {
- goto __416
+ goto __425
}
// The common case
nHdr = nHdr + (1)
- goto __417
-__416:
+ goto __426
+__425:
// Rare case of a really large header
nVarint = Xsqlite3VarintLen(tls, uint64(nHdr))
nHdr = nHdr + (nVarint)
if !(nVarint < Xsqlite3VarintLen(tls, uint64(nHdr))) {
- goto __418
+ goto __427
}
nHdr++
-__418:
+__427:
;
-__417:
+__426:
;
nByte1 = (I64(U64(nHdr) + nData))
@@ -61094,37 +62232,37 @@ __417:
// be one of the input registers (because the following call to
// sqlite3VdbeMemClearAndResize() could clobber the value before it is used).
if !((nByte1 + nZero) <= I64((*Mem)(unsafe.Pointer(pOut)).FszMalloc)) {
- goto __419
+ goto __428
}
// The output register is already large enough to hold the record.
// No error checks or buffer enlargement is required
(*Mem)(unsafe.Pointer(pOut)).Fz = (*Mem)(unsafe.Pointer(pOut)).FzMalloc
- goto __420
-__419:
+ goto __429
+__428:
// Need to make sure that the output is not too big and then enlarge
// the output register to hold the full result
if !((nByte1 + nZero) > I64(*(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(0)*4)))) {
- goto __421
+ goto __430
}
goto too_big
-__421:
+__430:
;
if !(Xsqlite3VdbeMemClearAndResize(tls, pOut, int32(nByte1)) != 0) {
- goto __422
+ goto __431
}
goto no_mem
-__422:
+__431:
;
-__420:
+__429:
;
(*Mem)(unsafe.Pointer(pOut)).Fn = int32(nByte1)
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0010)
if !(nZero != 0) {
- goto __423
+ goto __432
}
*(*int32)(unsafe.Pointer(pOut /* &.u */)) = int32(nZero)
*(*U16)(unsafe.Pointer(pOut + 8 /* &.flags */)) |= U16((0x4000))
-__423:
+__432:
;
updateMaxBlobsize(tls, pOut)
zHdr1 = (*Mem)(unsafe.Pointer(pOut)).Fz
@@ -61139,7 +62277,7 @@ __423:
}())
pRec = pData0
-__424:
+__433:
serial_type = (*Mem)(unsafe.Pointer(pRec)).FuTemp
// EVIDENCE-OF: R-06529-47362 Following the size varint are one or more
// additional varints, one per column.
@@ -61152,16 +62290,16 @@ __424:
// EVIDENCE-OF: R-64536-51728 The values for each column in the record
// immediately follow the header.
zPayload += uintptr(Xsqlite3VdbeSerialPut(tls, zPayload, pRec, serial_type))
- goto __425
-__425:
+ goto __434
+__434:
if (crt.PreIncUintptr(&pRec, 56)) <= pLast {
- goto __424
+ goto __433
}
- goto __426
-__426:
+ goto __435
+__435:
;
- goto __8
+ goto __10
// Opcode: Count P1 P2 p3 * *
// Synopsis: r[P2]=count()
@@ -61172,25 +62310,25 @@ __426:
// If P3==0, then an exact count is obtained, which involves visiting
// every btree page of the table. But if P3 is non-zero, an estimate
// is returned based on the current cursor position.
-__70:
+__72:
;
pCrsr1 = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)) + 56 /* &.uc */))
if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
- goto __427
+ goto __436
}
*(*I64)(unsafe.Pointer(bp + 288 /* nEntry */)) = Xsqlite3BtreeRowCountEst(tls, pCrsr1)
- goto __428
-__427:
+ goto __437
+__436:
*(*I64)(unsafe.Pointer(bp + 288 /* nEntry */)) = int64(0) // Not needed. Only used to silence a warning.
rc = Xsqlite3BtreeCount(tls, db, pCrsr1, bp+288 /* &nEntry */)
if !(rc != 0) {
- goto __429
+ goto __438
}
goto abort_due_to_error
-__429:
+__438:
;
-__428:
+__437:
;
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 288 /* nEntry */))
@@ -61202,7 +62340,7 @@ __428:
// on the value of P1. To open a new savepoint set P1==0 (SAVEPOINT_BEGIN).
// To release (commit) an existing savepoint set P1==1 (SAVEPOINT_RELEASE).
// To rollback an existing savepoint set P1==2 (SAVEPOINT_ROLLBACK).
-__71:
+__73:
p12 = (*Op)(unsafe.Pointer(pOp)).Fp1
zName = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
@@ -61211,17 +62349,17 @@ __71:
// transaction, then there cannot be any savepoints.
if !(p12 == 0) {
- goto __430
+ goto __439
}
if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0) {
- goto __432
+ goto __441
}
// A new savepoint cannot be created if there are active write
// statements (i.e. open read/write incremental blob handles).
- Xsqlite3VdbeError(tls, p, ts+4874 /* "cannot open save..." */, 0)
+ Xsqlite3VdbeError(tls, p, ts+4982 /* "cannot open save..." */, 0)
rc = 5
- goto __433
-__432:
+ goto __442
+__441:
nName = Xsqlite3Strlen30(tls, zName)
// This call is Ok even if this savepoint is actually a transaction
@@ -61232,16 +62370,16 @@ __432:
rc = Xsqlite3VtabSavepoint(tls, db, 0,
((*Sqlite3)(unsafe.Pointer(db)).FnStatement + (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint))
if !(rc != 0) {
- goto __434
+ goto __443
}
goto abort_due_to_error
-__434:
+__443:
;
// Create a new savepoint structure.
pNew = Xsqlite3DbMallocRawNN(tls, db, (uint64((uint64(unsafe.Sizeof(Savepoint{})) + uint64(nName)) + uint64(1))))
if !(pNew != 0) {
- goto __435
+ goto __444
}
(*Savepoint)(unsafe.Pointer(pNew)).FzName = (pNew + uintptr(1)*32)
crt.Xmemcpy(tls, (*Savepoint)(unsafe.Pointer(pNew)).FzName, zName, (uint64(nName + 1)))
@@ -61249,14 +62387,14 @@ __434:
// If there is no open transaction, then mark this as a special
// "transaction savepoint".
if !((*Sqlite3)(unsafe.Pointer(db)).FautoCommit != 0) {
- goto __436
+ goto __445
}
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(0)
(*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint = U8(1)
- goto __437
-__436:
+ goto __446
+__445:
(*Sqlite3)(unsafe.Pointer(db)).FnSavepoint++
-__437:
+__446:
;
// Link the new savepoint into the database handle's list.
@@ -61264,163 +62402,163 @@ __437:
(*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = pNew
(*Savepoint)(unsafe.Pointer(pNew)).FnDeferredCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons
(*Savepoint)(unsafe.Pointer(pNew)).FnDeferredImmCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons
-__435:
+__444:
;
-__433:
+__442:
;
- goto __431
-__430:
+ goto __440
+__439:
;
iSavepoint = 0
// Find the named savepoint. If there is no such savepoint, then an
// an error is returned to the user.
pSavepoint = (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint
-__438:
+__447:
if !((pSavepoint != 0) && (Xsqlite3StrICmp(tls, (*Savepoint)(unsafe.Pointer(pSavepoint)).FzName, zName) != 0)) {
- goto __440
+ goto __449
}
iSavepoint++
- goto __439
-__439:
+ goto __448
+__448:
pSavepoint = (*Savepoint)(unsafe.Pointer(pSavepoint)).FpNext
- goto __438
- goto __440
-__440:
+ goto __447
+ goto __449
+__449:
;
if !(!(pSavepoint != 0)) {
- goto __441
+ goto __450
}
- Xsqlite3VdbeError(tls, p, ts+4925 /* "no such savepoin..." */, crt.VaList(bp+56, zName))
+ Xsqlite3VdbeError(tls, p, ts+5033 /* "no such savepoin..." */, crt.VaList(bp+56, zName))
rc = 1
- goto __442
-__441:
+ goto __451
+__450:
if !(((*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0) && (p12 == 1)) {
- goto __443
+ goto __452
}
// It is not possible to release (commit) a savepoint if there are
// active write statements.
Xsqlite3VdbeError(tls, p,
- ts+4947 /* "cannot release s..." */, 0)
+ ts+5055 /* "cannot release s..." */, 0)
rc = 5
- goto __444
-__443:
+ goto __453
+__452:
// Determine whether or not this is a transaction savepoint. If so,
// and this is a RELEASE command, then the current transaction
// is committed.
isTransaction = (crt.Bool32(((*Savepoint)(unsafe.Pointer(pSavepoint)).FpNext == uintptr(0)) && ((*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint != 0)))
if !((isTransaction != 0) && (p12 == 1)) {
- goto __445
+ goto __454
}
if !((crt.AssignInt32(&rc, Xsqlite3VdbeCheckFk(tls, p, 1))) != 0) {
- goto __447
+ goto __456
}
goto vdbe_return
-__447:
+__456:
;
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
if !(Xsqlite3VdbeHalt(tls, p) == 5) {
- goto __448
+ goto __457
}
(*Vdbe)(unsafe.Pointer(p)).Fpc = (int32((int64(pOp) - int64(aOp)) / 24))
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(0)
(*Vdbe)(unsafe.Pointer(p)).Frc = crt.AssignInt32(&rc, 5)
goto vdbe_return
-__448:
+__457:
;
rc = (*Vdbe)(unsafe.Pointer(p)).Frc
if !(rc != 0) {
- goto __449
+ goto __458
}
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(0)
- goto __450
-__449:
+ goto __459
+__458:
(*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint = U8(0)
-__450:
+__459:
;
- goto __446
-__445:
+ goto __455
+__454:
iSavepoint = (((*Sqlite3)(unsafe.Pointer(db)).FnSavepoint - iSavepoint) - 1)
if !(p12 == 2) {
- goto __451
+ goto __460
}
isSchemaChange = (crt.Bool32(((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags & U32(0x0001)) != U32(0)))
ii = 0
-__453:
+__462:
if !(ii < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __455
+ goto __464
}
rc = Xsqlite3BtreeTripAllCursors(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii)*32)).FpBt,
(4 | (int32(2) << 8)),
(crt.Bool32(isSchemaChange == 0)))
if !(rc != 0) {
- goto __456
+ goto __465
}
goto abort_due_to_error
-__456:
+__465:
;
- goto __454
-__454:
+ goto __463
+__463:
ii++
- goto __453
- goto __455
-__455:
+ goto __462
+ goto __464
+__464:
;
- goto __452
-__451:
+ goto __461
+__460:
;
isSchemaChange = 0
-__452:
+__461:
;
ii = 0
-__457:
+__466:
if !(ii < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __459
+ goto __468
}
rc = Xsqlite3BtreeSavepoint(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii)*32)).FpBt, p12, iSavepoint)
if !(rc != 0) {
- goto __460
+ goto __469
}
goto abort_due_to_error
-__460:
+__469:
;
- goto __458
-__458:
+ goto __467
+__467:
ii++
- goto __457
- goto __459
-__459:
+ goto __466
+ goto __468
+__468:
;
if !(isSchemaChange != 0) {
- goto __461
+ goto __470
}
Xsqlite3ExpirePreparedStatements(tls, db, 0)
Xsqlite3ResetAllSchemasOfConnection(tls, db)
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) |= (U32(0x0001))
-__461:
+__470:
;
-__446:
+__455:
;
if !(rc != 0) {
- goto __462
+ goto __471
}
goto abort_due_to_error
-__462:
+__471:
;
// Regardless of whether this is a RELEASE or ROLLBACK, destroy all
// savepoints nested inside of the savepoint being operated on.
-__463:
+__472:
if !((*Sqlite3)(unsafe.Pointer(db)).FpSavepoint != pSavepoint) {
- goto __464
+ goto __473
}
pTmp = (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint
(*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = (*Savepoint)(unsafe.Pointer(pTmp)).FpNext
Xsqlite3DbFree(tls, db, pTmp)
(*Sqlite3)(unsafe.Pointer(db)).FnSavepoint--
- goto __463
-__464:
+ goto __472
+__473:
;
// If it is a RELEASE, then destroy the savepoint being operated on
@@ -61428,51 +62566,51 @@ __464:
// constraint violations present in the database to the value stored
// when the savepoint was created.
if !(p12 == 1) {
- goto __465
+ goto __474
}
(*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = (*Savepoint)(unsafe.Pointer(pSavepoint)).FpNext
Xsqlite3DbFree(tls, db, pSavepoint)
if !(!(isTransaction != 0)) {
- goto __467
+ goto __476
}
(*Sqlite3)(unsafe.Pointer(db)).FnSavepoint--
-__467:
+__476:
;
- goto __466
-__465:
+ goto __475
+__474:
;
(*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons = (*Savepoint)(unsafe.Pointer(pSavepoint)).FnDeferredCons
(*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = (*Savepoint)(unsafe.Pointer(pSavepoint)).FnDeferredImmCons
-__466:
+__475:
;
if !(!(isTransaction != 0) || (p12 == 2)) {
- goto __468
+ goto __477
}
rc = Xsqlite3VtabSavepoint(tls, db, p12, iSavepoint)
if !(rc != 0) {
- goto __469
+ goto __478
}
goto abort_due_to_error
-__469:
+__478:
;
-__468:
+__477:
;
-__444:
+__453:
;
-__442:
+__451:
;
-__431:
+__440:
;
if !(rc != 0) {
- goto __470
+ goto __479
}
goto abort_due_to_error
-__470:
+__479:
;
- goto __8
+ goto __10
// Opcode: AutoCommit P1 P2 * * *
//
@@ -61482,7 +62620,7 @@ __470:
// there are active writing VMs or active VMs that use shared cache.
//
// This instruction causes the VM to halt.
-__72:
+__74:
desiredAutoCommit = (*Op)(unsafe.Pointer(pOp)).Fp1
iRollback = (*Op)(unsafe.Pointer(pOp)).Fp2
@@ -61490,78 +62628,78 @@ __72:
// At least this one VM is active
if !(desiredAutoCommit != int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit)) {
- goto __471
+ goto __480
}
if !(iRollback != 0) {
- goto __473
+ goto __482
}
Xsqlite3RollbackAll(tls, db, (4 | (int32(2) << 8)))
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
- goto __474
-__473:
+ goto __483
+__482:
if !((desiredAutoCommit != 0) && ((*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0)) {
- goto __475
+ goto __484
}
// If this instruction implements a COMMIT and other VMs are writing
// return an error indicating that the other VMs must complete first.
Xsqlite3VdbeError(tls, p,
- ts+5001 /* "cannot commit tr..." */, 0)
+ ts+5109 /* "cannot commit tr..." */, 0)
rc = 5
goto abort_due_to_error
- goto __476
-__475:
+ goto __485
+__484:
if !((crt.AssignInt32(&rc, Xsqlite3VdbeCheckFk(tls, p, 1))) != 0) {
- goto __477
+ goto __486
}
goto vdbe_return
- goto __478
-__477:
+ goto __487
+__486:
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(desiredAutoCommit)
-__478:
+__487:
;
-__476:
+__485:
;
-__474:
+__483:
;
if !(Xsqlite3VdbeHalt(tls, p) == 5) {
- goto __479
+ goto __488
}
(*Vdbe)(unsafe.Pointer(p)).Fpc = (int32((int64(pOp) - int64(aOp)) / 24))
(*Sqlite3)(unsafe.Pointer(db)).FautoCommit = (U8(1 - desiredAutoCommit))
(*Vdbe)(unsafe.Pointer(p)).Frc = crt.AssignInt32(&rc, 5)
goto vdbe_return
-__479:
+__488:
;
Xsqlite3CloseSavepoints(tls, db)
if !((*Vdbe)(unsafe.Pointer(p)).Frc == 0) {
- goto __480
+ goto __489
}
rc = 101
- goto __481
-__480:
+ goto __490
+__489:
rc = 1
-__481:
+__490:
;
goto vdbe_return
- goto __472
-__471:
+ goto __481
+__480:
Xsqlite3VdbeError(tls, p,
func() uintptr {
if !(desiredAutoCommit != 0) {
- return ts + 5056 /* "cannot start a t..." */
+ return ts + 5164 /* "cannot start a t..." */
}
return func() uintptr {
if iRollback != 0 {
- return ts + 5104 /* "cannot rollback ..." */
+ return ts + 5212 /* "cannot rollback ..." */
}
- return ts + 5147 /* "cannot commit - ..." */
+ return ts + 5255 /* "cannot commit - ..." */
}()
}(), 0)
rc = 1
goto abort_due_to_error
-__472:
+__481:
;
/*NOTREACHED*/
@@ -61598,59 +62736,59 @@ __472:
// generation counter, then an SQLITE_SCHEMA error is raised and execution
// halts. The sqlite3_step() wrapper function might then reprepare the
// statement and rerun it from the beginning.
-__73:
+__75:
*(*int32)(unsafe.Pointer(bp + 296 /* iMeta */)) = 0
if !(((*Op)(unsafe.Pointer(pOp)).Fp2 != 0) && (((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00100000)) != uint64(0))) {
- goto __482
+ goto __491
}
rc = 8
goto abort_due_to_error
-__482:
+__491:
;
pBt = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt
if !(pBt != 0) {
- goto __483
+ goto __492
}
rc = Xsqlite3BtreeBeginTrans(tls, pBt, (*Op)(unsafe.Pointer(pOp)).Fp2, bp+296 /* &iMeta */)
if !(rc != 0) {
- goto __484
+ goto __493
}
if !((rc & 0xff) == 5) {
- goto __485
+ goto __494
}
(*Vdbe)(unsafe.Pointer(p)).Fpc = (int32((int64(pOp) - int64(aOp)) / 24))
(*Vdbe)(unsafe.Pointer(p)).Frc = rc
goto vdbe_return
-__485:
+__494:
;
goto abort_due_to_error
-__484:
+__493:
;
if !(((Bft(int32(*(*uint16)(unsafe.Pointer(p + 200 /* &.usesStmtJournal */))&0x40>>6)) != 0) &&
((*Op)(unsafe.Pointer(pOp)).Fp2 != 0)) &&
((int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0) || ((*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > 1))) {
- goto __486
+ goto __495
}
if !((*Vdbe)(unsafe.Pointer(p)).FiStatement == 0) {
- goto __487
+ goto __496
}
(*Sqlite3)(unsafe.Pointer(db)).FnStatement++
(*Vdbe)(unsafe.Pointer(p)).FiStatement = ((*Sqlite3)(unsafe.Pointer(db)).FnSavepoint + (*Sqlite3)(unsafe.Pointer(db)).FnStatement)
-__487:
+__496:
;
rc = Xsqlite3VtabSavepoint(tls, db, 0, ((*Vdbe)(unsafe.Pointer(p)).FiStatement - 1))
if !(rc == 0) {
- goto __488
+ goto __497
}
rc = Xsqlite3BtreeBeginStmt(tls, pBt, (*Vdbe)(unsafe.Pointer(p)).FiStatement)
-__488:
+__497:
;
// Store the current value of the database handles deferred constraint
@@ -61658,21 +62796,21 @@ __488:
// the value of this counter needs to be restored too.
(*Vdbe)(unsafe.Pointer(p)).FnStmtDefCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons
(*Vdbe)(unsafe.Pointer(p)).FnStmtDefImmCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons
-__486:
+__495:
;
-__483:
+__492:
;
if !(((*Op)(unsafe.Pointer(pOp)).Fp5 != 0) &&
((*(*int32)(unsafe.Pointer(bp + 296 /* iMeta */)) != (*Op)(unsafe.Pointer(pOp)).Fp3) ||
((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpSchema)).FiGeneration != *(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */))))) {
- goto __489
+ goto __498
}
// IMPLEMENTATION-OF: R-03189-51135 As each SQL statement runs, the schema
// version is checked to ensure that the schema has not changed since the
// SQL statement was prepared.
Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg)
- (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3DbStrDup(tls, db, ts+5188 /* "database schema ..." */)
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3DbStrDup(tls, db, ts+5296 /* "database schema ..." */)
// If the schema-cookie from the database file matches the cookie
// stored with the in-memory representation of the schema, do
// not reload the schema from the database file.
@@ -61686,22 +62824,22 @@ __483:
// to be invalidated whenever sqlite3_step() is called from within
// a v-table method.
if !((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpSchema)).Fschema_cookie != *(*int32)(unsafe.Pointer(bp + 296 /* iMeta */))) {
- goto __490
+ goto __499
}
Xsqlite3ResetOneSchema(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1)
-__490:
+__499:
;
crt.SetBitFieldPtr16Uint32(p+200 /* &.expired */, Bft(1), 0, 0x3)
rc = 17
-__489:
+__498:
;
if !(rc != 0) {
- goto __491
+ goto __500
}
goto abort_due_to_error
-__491:
+__500:
;
- goto __8
+ goto __10
// Opcode: ReadCookie P1 P2 P3 * *
//
@@ -61714,7 +62852,7 @@ __491:
// There must be a read-lock on the database (either a transaction
// must be started or there must be an open cursor) before
// executing this instruction.
-__74:
+__76:
;
iDb = (*Op)(unsafe.Pointer(pOp)).Fp1
iCookie = (*Op)(unsafe.Pointer(pOp)).Fp3
@@ -61722,7 +62860,7 @@ __74:
Xsqlite3BtreeGetMeta(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpBt, iCookie, bp+300 /* &iMeta1 */)
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(*(*int32)(unsafe.Pointer(bp + 300 /* iMeta1 */)))
- goto __8
+ goto __10
// Opcode: SetCookie P1 P2 P3 * *
//
@@ -61733,7 +62871,7 @@ __74:
// database file used to store temporary tables.
//
// A transaction must be started before executing this opcode.
-__75:
+__77:
;
pDb = ((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)
@@ -61741,38 +62879,38 @@ __75:
// See note about index shifting on OP_ReadCookie
rc = Xsqlite3BtreeUpdateMeta(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Op)(unsafe.Pointer(pOp)).Fp2, uint32((*Op)(unsafe.Pointer(pOp)).Fp3))
if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 1) {
- goto __492
+ goto __501
}
// When the schema cookie changes, record the new cookie internally
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fschema_cookie = (*Op)(unsafe.Pointer(pOp)).Fp3
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) |= (U32(0x0001))
- goto __493
-__492:
+ goto __502
+__501:
if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 2) {
- goto __494
+ goto __503
}
// Record changes in the file format
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = U8((*Op)(unsafe.Pointer(pOp)).Fp3)
-__494:
+__503:
;
-__493:
+__502:
;
if !((*Op)(unsafe.Pointer(pOp)).Fp1 == 1) {
- goto __495
+ goto __504
}
// Invalidate all prepared statements whenever the TEMP database
// schema is changed. Ticket #1644
Xsqlite3ExpirePreparedStatements(tls, db, 0)
crt.SetBitFieldPtr16Uint32(p+200 /* &.expired */, Bft(0), 0, 0x3)
-__495:
+__504:
;
if !(rc != 0) {
- goto __496
+ goto __505
}
goto abort_due_to_error
-__496:
+__505:
;
- goto __8
+ goto __10
// Opcode: OpenRead P1 P2 P3 P4 P5
// Synopsis: root=P2 iDb=P3
@@ -61855,29 +62993,29 @@ __496:
// in read/write mode.
//
// See also: OP_OpenRead, OP_ReopenIdx
-__76:
+__78:
;
pCur = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !((pCur != 0) && ((*VdbeCursor)(unsafe.Pointer(pCur)).FpgnoRoot == U32((*Op)(unsafe.Pointer(pOp)).Fp2))) {
- goto __497
+ goto __506
}
// Guaranteed by the code generator
goto open_cursor_set_hints
-__497:
+__506:
;
// If the cursor is not currently open or is open on a different
// index, then fall through into OP_OpenRead to force a reopen
-__77:
-__78:
+__79:
+__80:
;
if !(int32(*(*uint16)(unsafe.Pointer(p + 200 /* &.expired */))&0x3>>0) == 1) {
- goto __498
+ goto __507
}
rc = (4 | (int32(2) << 8))
goto abort_due_to_error
-__498:
+__507:
;
nField1 = 0
@@ -61889,24 +63027,24 @@ __498:
pX = (*Db)(unsafe.Pointer(pDb1)).FpBt
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 97) {
- goto __499
+ goto __508
}
wrFlag = (0x00000004 | (int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x08))
if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb1)).FpSchema)).Ffile_format) < int32((*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat)) {
- goto __501
+ goto __510
}
(*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat = (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb1)).FpSchema)).Ffile_format
-__501:
+__510:
;
- goto __500
-__499:
+ goto __509
+__508:
wrFlag = 0
-__500:
+__509:
;
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x10) != 0) {
- goto __502
+ goto __511
}
pIn2 = (aMem + uintptr(p23)*56)
@@ -61917,32 +63055,32 @@ __500:
// that opcode will always set the p2 value to 2 or more or else fail.
// If there were a failure, the prepared statement would have halted
// before reaching this instruction.
-__502:
+__511:
;
if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == (-9)) {
- goto __503
+ goto __512
}
pKeyInfo1 = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
nField1 = int32((*KeyInfo)(unsafe.Pointer(pKeyInfo1)).FnAllField)
- goto __504
-__503:
+ goto __513
+__512:
if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == (-3)) {
- goto __505
+ goto __514
}
nField1 = *(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */))
-__505:
+__514:
;
-__504:
+__513:
;
// Table with INTEGER PRIMARY KEY and nothing else
pCur = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, nField1, iDb1, uint8(0))
if !(pCur == uintptr(0)) {
- goto __506
+ goto __515
}
goto no_mem
-__506:
+__515:
;
(*VdbeCursor)(unsafe.Pointer(pCur)).FnullRow = U8(1)
crt.SetBitFieldPtr8Uint32(pCur+8 /* &.isOrdered */, Bool(1), 2, 0x4)
@@ -61961,12 +63099,12 @@ open_cursor_set_hints:
Xsqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 56 /* &.uc */)),
(uint32(int32((*Op)(unsafe.Pointer(pOp)).Fp5) & (0x01 | 0x02))))
if !(rc != 0) {
- goto __507
+ goto __516
}
goto abort_due_to_error
-__507:
+__516:
;
- goto __8
+ goto __10
// Opcode: OpenDup P1 P2 * * *
//
@@ -61975,7 +63113,7 @@ __507:
// opcode. Only ephemeral cursors may be duplicated.
//
// Duplicate ephemeral cursors are used for self-joins of materialized views.
-__79: // The new cursor
+__81: // The new cursor
pOrig = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*8))
@@ -61983,10 +63121,10 @@ __79: // The new cursor
pCx = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, int32((*VdbeCursor)(unsafe.Pointer(pOrig)).FnField), -1, uint8(0))
if !(pCx == uintptr(0)) {
- goto __508
+ goto __517
}
goto no_mem
-__508:
+__517:
;
(*VdbeCursor)(unsafe.Pointer(pCx)).FnullRow = U8(1)
crt.SetBitFieldPtr8Uint32(pCx+8 /* &.isEphemeral */, Bool(1), 0, 0x1)
@@ -62000,7 +63138,7 @@ __508:
// opened for a database. Since there is already an open cursor when this
// opcode is run, the sqlite3BtreeCursor() cannot fail
- goto __8
+ goto __10
// Opcode: OpenEphemeral P1 P2 * P4 P5
// Synopsis: nColumn=P2
@@ -62029,13 +63167,13 @@ __508:
// different name to distinguish its use. Tables created using
// by this opcode will be used for automatically created transient
// indices in joins.
-__80:
-__81:
+__82:
+__83:
;
pCx1 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !((pCx1 != 0) && ((*VdbeCursor)(unsafe.Pointer(pCx1)).FpBtx != 0)) {
- goto __509
+ goto __518
}
// If the ephermeral table is already open, erase all existing content
// so that the table is empty again, rather than creating a new table.
@@ -62043,68 +63181,68 @@ __81:
(*VdbeCursor)(unsafe.Pointer(pCx1)).FseqCount = int64(0)
(*VdbeCursor)(unsafe.Pointer(pCx1)).FcacheStatus = U32(0)
rc = Xsqlite3BtreeClearTable(tls, (*VdbeCursor)(unsafe.Pointer(pCx1)).FpBtx, int32((*VdbeCursor)(unsafe.Pointer(pCx1)).FpgnoRoot), uintptr(0))
- goto __510
-__509:
+ goto __519
+__518:
pCx1 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp2, -1, uint8(0))
if !(pCx1 == uintptr(0)) {
- goto __511
+ goto __520
}
goto no_mem
-__511:
+__520:
;
crt.SetBitFieldPtr8Uint32(pCx1+8 /* &.isEphemeral */, Bool(1), 0, 0x1)
rc = Xsqlite3BtreeOpen(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, (pCx1 + 16 /* &.pBtx */),
((1 | 4) | int32((*Op)(unsafe.Pointer(pOp)).Fp5)),
vfsFlags)
if !(rc == 0) {
- goto __512
+ goto __521
}
rc = Xsqlite3BtreeBeginTrans(tls, (*VdbeCursor)(unsafe.Pointer(pCx1)).FpBtx, 1, uintptr(0))
-__512:
+__521:
;
if !(rc == 0) {
- goto __513
+ goto __522
}
// If a transient index is required, create it by calling
// sqlite3BtreeCreateTable() with the BTREE_BLOBKEY flag before
// opening it. If a transient table is required, just use the
// automatically created table with root-page 1 (an BLOB_INTKEY table).
if !((crt.AssignPtrUintptr(pCx1+64 /* &.pKeyInfo */, crt.AssignUintptr(&pKeyInfo2, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))) != uintptr(0)) {
- goto __514
+ goto __523
}
rc = Xsqlite3BtreeCreateTable(tls, (*VdbeCursor)(unsafe.Pointer(pCx1)).FpBtx, (pCx1 + 76 /* &.pgnoRoot */),
(2 | int32((*Op)(unsafe.Pointer(pOp)).Fp5)))
if !(rc == 0) {
- goto __516
+ goto __525
}
rc = Xsqlite3BtreeCursor(tls, (*VdbeCursor)(unsafe.Pointer(pCx1)).FpBtx, int32((*VdbeCursor)(unsafe.Pointer(pCx1)).FpgnoRoot), 0x00000004,
pKeyInfo2, *(*uintptr)(unsafe.Pointer(pCx1 + 56 /* &.uc */)))
-__516:
+__525:
;
(*VdbeCursor)(unsafe.Pointer(pCx1)).FisTable = U8(0)
- goto __515
-__514:
+ goto __524
+__523:
(*VdbeCursor)(unsafe.Pointer(pCx1)).FpgnoRoot = Pgno(1)
rc = Xsqlite3BtreeCursor(tls, (*VdbeCursor)(unsafe.Pointer(pCx1)).FpBtx, 1, 0x00000004,
uintptr(0), *(*uintptr)(unsafe.Pointer(pCx1 + 56 /* &.uc */)))
(*VdbeCursor)(unsafe.Pointer(pCx1)).FisTable = U8(1)
-__515:
+__524:
;
-__513:
+__522:
;
crt.SetBitFieldPtr8Uint32(pCx1+8 /* &.isOrdered */, (Bool(crt.Bool32(int32((*Op)(unsafe.Pointer(pOp)).Fp5) != 8))), 2, 0x4)
-__510:
+__519:
;
if !(rc != 0) {
- goto __517
+ goto __526
}
goto abort_due_to_error
-__517:
+__526:
;
(*VdbeCursor)(unsafe.Pointer(pCx1)).FnullRow = U8(1)
- goto __8
+ goto __10
// Opcode: SorterOpen P1 P2 P3 P4 *
//
@@ -62115,26 +63253,26 @@ __517:
// If argument P3 is non-zero, then it indicates that the sorter may
// assume that a stable sort considering the first P3 fields of each
// key is sufficient to produce the required results.
-__82:
+__84:
;
pCx2 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp2, -1, uint8(1))
if !(pCx2 == uintptr(0)) {
- goto __518
+ goto __527
}
goto no_mem
-__518:
+__527:
;
(*VdbeCursor)(unsafe.Pointer(pCx2)).FpKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
rc = Xsqlite3VdbeSorterInit(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp3, pCx2)
if !(rc != 0) {
- goto __519
+ goto __528
}
goto abort_due_to_error
-__519:
+__528:
;
- goto __8
+ goto __10
// Opcode: SequenceTest P1 P2 * * *
// Synopsis: if( cursor[P1].ctr++ ) pc = P2
@@ -62142,17 +63280,17 @@ __519:
// P1 is a sorter cursor. If the sequence counter is currently zero, jump
// to P2. Regardless of whether or not the jump is taken, increment the
// the sequence value.
-__83:
+__85:
;
pC1 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !((crt.PostIncInt64(&(*VdbeCursor)(unsafe.Pointer(pC1)).FseqCount, 1)) == int64(0)) {
- goto __520
+ goto __529
}
goto jump_to_p2
-__520:
+__529:
;
- goto __8
+ goto __10
// Opcode: OpenPseudo P1 P2 P3 * *
// Synopsis: P3 columns in r[P2]
@@ -62169,15 +63307,15 @@ __520:
//
// P3 is the number of fields in the records that will be stored by
// the pseudo-table.
-__84:
+__86:
;
pCx3 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp3, -1, uint8(3))
if !(pCx3 == uintptr(0)) {
- goto __521
+ goto __530
}
goto no_mem
-__521:
+__530:
;
(*VdbeCursor)(unsafe.Pointer(pCx3)).FnullRow = U8(1)
(*VdbeCursor)(unsafe.Pointer(pCx3)).FseekResult = (*Op)(unsafe.Pointer(pOp)).Fp2
@@ -62188,17 +63326,17 @@ __521:
// which is a performance optimization
*(*uintptr)(unsafe.Pointer(pCx3 + 56 /* &.uc */)) = Xsqlite3BtreeFakeValidCursor(tls)
- goto __8
+ goto __10
// Opcode: Close P1 * * * *
//
// Close a cursor previously opened as P1. If P1 is not
// currently open, this instruction is a no-op.
-__85:
+__87:
;
Xsqlite3VdbeFreeCursor(tls, p, *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)))
*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)) = uintptr(0)
- goto __8
+ goto __10
// Opcode: SeekGE P1 P2 P3 P4 *
// Synopsis: key=r[P3@P4]
@@ -62286,10 +63424,10 @@ __85:
// is an equality search.
//
// See also: Found, NotFound, SeekGt, SeekGe, SeekLt
-__86: // jump, in3, group
-__87: // jump, in3, group
__88: // jump, in3, group
-__89: // Only interested in == results
+__89: // jump, in3, group
+__90: // jump, in3, group
+__91: // Only interested in == results
;
@@ -62302,7 +63440,7 @@ __89: // Only interested in == results
(*VdbeCursor)(unsafe.Pointer(pC2)).FdeferredMoveto = U8(0)
(*VdbeCursor)(unsafe.Pointer(pC2)).FcacheStatus = U32(0)
if !((*VdbeCursor)(unsafe.Pointer(pC2)).FisTable != 0) {
- goto __522
+ goto __531
}
// The OPFLAG_SEEKEQ/BTREE_SEEK_EQ flag is only set on index cursors
@@ -62312,10 +63450,10 @@ __89: // Only interested in == results
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
flags31 = (*Mem)(unsafe.Pointer(pIn3)).Fflags
if !((int32(flags31) & (((0x0004 | 0x0008) | 0x0020) | 0x0002)) == 0x0002) {
- goto __524
+ goto __533
}
applyNumericAffinity(tls, pIn3, 0)
-__524:
+__533:
;
iKey = Xsqlite3VdbeIntValue(tls, pIn3) // Get the integer key value
newType = (*Mem)(unsafe.Pointer(pIn3)).Fflags // Record the type after applying numeric affinity
@@ -62324,30 +63462,30 @@ __524:
// If the P3 value could not be converted into an integer without
// loss of information, then special processing is required...
if !((int32(newType) & (0x0004 | 0x0020)) == 0) {
- goto __525
+ goto __534
}
if !((int32(newType) & 0x0008) == 0) {
- goto __526
+ goto __535
}
if !(((int32(newType) & 0x0001) != 0) || (oc >= 24)) {
- goto __528
+ goto __537
}
goto jump_to_p2
- goto __529
-__528:
+ goto __538
+__537:
rc = Xsqlite3BtreeLast(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)), bp+304 /* &res1 */)
if !(rc != 0) {
- goto __530
+ goto __539
}
goto abort_due_to_error
-__530:
+__539:
;
goto seek_not_found
-__529:
+__538:
;
- goto __527
-__526:
+ goto __536
+__535:
// If the approximation iKey is larger than the actual real search
// term, substitute >= for > and < for <=. e.g. if the search term
@@ -62356,55 +63494,55 @@ __526:
// (x > 4.9) -> (x >= 5)
// (x <= 4.9) -> (x < 5)
if !(*(*float64)(unsafe.Pointer(pIn3 /* &.u */)) < float64(iKey)) {
- goto __531
+ goto __540
}
if !((oc & 0x0001) == (25 & 0x0001)) {
- goto __533
+ goto __542
}
oc--
-__533:
+__542:
;
- goto __532
-__531:
+ goto __541
+__540:
if !(*(*float64)(unsafe.Pointer(pIn3 /* &.u */)) > float64(iKey)) {
- goto __534
+ goto __543
}
if !((oc & 0x0001) == (22 & 0x0001)) {
- goto __535
+ goto __544
}
oc++
-__535:
+__544:
;
-__534:
+__543:
;
-__532:
+__541:
;
-__527:
+__536:
;
-__525:
+__534:
;
rc = Xsqlite3BtreeMovetoUnpacked(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)), uintptr(0), int64(U64(iKey)), 0, bp+304 /* &res1 */)
(*VdbeCursor)(unsafe.Pointer(pC2)).FmovetoTarget = iKey // Used by OP_Delete
if !(rc != 0) {
- goto __536
+ goto __545
}
goto abort_due_to_error
-__536:
+__545:
;
- goto __523
-__522:
+ goto __532
+__531:
// For a cursor with the OPFLAG_SEEKEQ/BTREE_SEEK_EQ hint, only the
// OP_SeekGE and OP_SeekLE opcodes are allowed, and these must be
// immediately followed by an OP_IdxGT or OP_IdxLT opcode, respectively,
// with the same key.
if !(Xsqlite3BtreeCursorHasHint(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)), uint32(0x00000002)) != 0) {
- goto __537
+ goto __546
}
eqOnly = 1
-__537:
+__546:
;
nField2 = *(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */))
@@ -62429,100 +63567,100 @@ __537:
(*UnpackedRecord)(unsafe.Pointer(bp + 312 /* &r */)).FeqSeen = U8(0)
rc = Xsqlite3BtreeMovetoUnpacked(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)), bp+312 /* &r */, int64(0), 0, bp+304 /* &res1 */)
if !(rc != 0) {
- goto __538
+ goto __547
}
goto abort_due_to_error
-__538:
+__547:
;
if !((eqOnly != 0) && (int32((*UnpackedRecord)(unsafe.Pointer(bp+312 /* &r */)).FeqSeen) == 0)) {
- goto __539
+ goto __548
}
goto seek_not_found
-__539:
+__548:
;
-__523:
+__532:
;
Xsqlite3_search_count++
if !(oc >= 24) {
- goto __540
+ goto __549
}
if !((*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) < 0) || ((*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) == 0) && (oc == 25))) {
- goto __542
+ goto __551
}
*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) = 0
rc = Xsqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)), 0)
if !(rc != 0) {
- goto __544
+ goto __553
}
if !(rc == 101) {
- goto __545
+ goto __554
}
rc = 0
*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) = 1
- goto __546
-__545:
+ goto __555
+__554:
goto abort_due_to_error
-__546:
+__555:
;
-__544:
+__553:
;
- goto __543
-__542:
+ goto __552
+__551:
*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) = 0
-__543:
+__552:
;
- goto __541
-__540:
+ goto __550
+__549:
;
if !((*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) > 0) || ((*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) == 0) && (oc == 22))) {
- goto __547
+ goto __556
}
*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) = 0
rc = Xsqlite3BtreePrevious(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)), 0)
if !(rc != 0) {
- goto __549
+ goto __558
}
if !(rc == 101) {
- goto __550
+ goto __559
}
rc = 0
*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) = 1
- goto __551
-__550:
+ goto __560
+__559:
goto abort_due_to_error
-__551:
+__560:
;
-__549:
+__558:
;
- goto __548
-__547:
+ goto __557
+__556:
// res might be negative because the table is empty. Check to
// see if this is the case.
*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) = Xsqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC2 + 56 /* &.uc */)))
-__548:
+__557:
;
-__541:
+__550:
;
seek_not_found:
;
if !(*(*int32)(unsafe.Pointer(bp + 304 /* res1 */)) != 0) {
- goto __552
+ goto __561
}
goto jump_to_p2
- goto __553
-__552:
+ goto __562
+__561:
if !(eqOnly != 0) {
- goto __554
+ goto __563
}
pOp += 24
-__554:
+__563:
;
-__553:
+__562:
;
- goto __8
+ goto __10
// Opcode: SeekHit P1 P2 * * *
// Synopsis: seekHit=P2
@@ -62532,27 +63670,27 @@ __553:
//
// P1 must be a valid b-tree cursor. P2 must be a boolean value,
// either 0 or 1.
-__90:
+__92:
;
pC3 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
crt.SetBitFieldPtr8Uint32(pC3+8 /* &.seekHit */, (Bool((*Op)(unsafe.Pointer(pOp)).Fp2 & 1)), 3, 0x8)
- goto __8
+ goto __10
// Opcode: IfNotOpen P1 P2 * * *
// Synopsis: if( !csr[P1] ) goto P2
//
// If cursor P1 is not open, jump to instruction P2. Otherwise, fall through.
-__91: // jump
+__93: // jump
;
if !(!(int32(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))) != 0)) {
- goto __555
+ goto __564
}
goto jump_to_p2_and_check_for_interrupt
-__555:
+__564:
;
- goto __8
+ goto __10
// Opcode: Found P1 P2 P3 P4 *
// Synopsis: key=r[P3@P4]
@@ -62636,25 +63774,25 @@ __555:
// opcodes do not work after this operation.
//
// See also: NotFound, Found, NotExists
-__92:
+__94:
;
pC4 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !(Bool(int32(*(*uint8)(unsafe.Pointer(pC4 + 8 /* &.seekHit */))&0x8>>3)) != 0) {
- goto __556
+ goto __565
}
- goto __8
-__556:
+ goto __10
+__565:
;
-__93: // jump, in3
-__94: // jump, in3
-__95:
+__95: // jump, in3
+__96: // jump, in3
+__97:
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) != 28) {
- goto __557
+ goto __566
}
Xsqlite3_found_count++
-__557:
+__566:
;
pC5 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -62662,15 +63800,15 @@ __557:
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !(*(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */)) > 0) {
- goto __558
+ goto __567
}
(*UnpackedRecord)(unsafe.Pointer(bp + 336 /* &r1 */)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC5)).FpKeyInfo
(*UnpackedRecord)(unsafe.Pointer(bp + 336 /* &r1 */)).FnField = U16(*(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
(*UnpackedRecord)(unsafe.Pointer(bp + 336 /* &r1 */)).FaMem = pIn3
pIdxKey = bp + 336 /* &r1 */
pFree = uintptr(0)
- goto __559
-__558:
+ goto __568
+__567:
;
rc = func() int32 {
if (int32((*Mem)(unsafe.Pointer((pIn3))).Fflags) & 0x4000) != 0 {
@@ -62680,62 +63818,62 @@ __558:
}()
if !(rc != 0) {
- goto __560
+ goto __569
}
goto no_mem
-__560:
+__569:
;
pFree = crt.AssignUintptr(&pIdxKey, Xsqlite3VdbeAllocUnpackedRecord(tls, (*VdbeCursor)(unsafe.Pointer(pC5)).FpKeyInfo))
if !(pIdxKey == uintptr(0)) {
- goto __561
+ goto __570
}
goto no_mem
-__561:
+__570:
;
Xsqlite3VdbeRecordUnpack(tls, (*VdbeCursor)(unsafe.Pointer(pC5)).FpKeyInfo, (*Mem)(unsafe.Pointer(pIn3)).Fn, (*Mem)(unsafe.Pointer(pIn3)).Fz, pIdxKey)
-__559:
+__568:
;
(*UnpackedRecord)(unsafe.Pointer(pIdxKey)).Fdefault_rc = int8(0)
takeJump = 0
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 28) {
- goto __562
+ goto __571
}
// For the OP_NoConflict opcode, take the jump if any of the
// input fields are NULL, since any key with a NULL will not
// conflict
ii1 = 0
-__563:
+__572:
if !(ii1 < int32((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField)) {
- goto __565
+ goto __574
}
if !((int32((*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FaMem+uintptr(ii1)*56)).Fflags) & 0x0001) != 0) {
- goto __566
+ goto __575
}
takeJump = 1
- goto __565
-__566:
+ goto __574
+__575:
;
- goto __564
-__564:
+ goto __573
+__573:
ii1++
- goto __563
- goto __565
-__565:
+ goto __572
+ goto __574
+__574:
;
-__562:
+__571:
;
rc = Xsqlite3BtreeMovetoUnpacked(tls, *(*uintptr)(unsafe.Pointer(pC5 + 56 /* &.uc */)), pIdxKey, int64(0), 0, bp+360 /* &res3 */)
if !(pFree != 0) {
- goto __567
+ goto __576
}
Xsqlite3DbFreeNN(tls, db, pFree)
-__567:
+__576:
;
if !(rc != 0) {
- goto __568
+ goto __577
}
goto abort_due_to_error
-__568:
+__577:
;
(*VdbeCursor)(unsafe.Pointer(pC5)).FseekResult = *(*int32)(unsafe.Pointer(bp + 360 /* res3 */))
alreadyExists = (crt.Bool32(*(*int32)(unsafe.Pointer(bp + 360 /* res3 */)) == 0))
@@ -62743,27 +63881,27 @@ __568:
(*VdbeCursor)(unsafe.Pointer(pC5)).FdeferredMoveto = U8(0)
(*VdbeCursor)(unsafe.Pointer(pC5)).FcacheStatus = U32(0)
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 30) {
- goto __569
+ goto __578
}
if !(alreadyExists != 0) {
- goto __571
+ goto __580
}
goto jump_to_p2
-__571:
+__580:
;
- goto __570
-__569:
+ goto __579
+__578:
;
if !((takeJump != 0) || !(alreadyExists != 0)) {
- goto __572
+ goto __581
}
goto jump_to_p2
-__572:
+__581:
;
-__570:
+__579:
;
- goto __8
+ goto __10
// Opcode: SeekRowid P1 P2 P3 * *
// Synopsis: intkey=r[P3]
@@ -62810,12 +63948,12 @@ __570:
// not work following this opcode.
//
// See also: Found, NotFound, NoConflict, SeekRowid
-__96:
+__98:
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn3)).Fflags) & (0x0004 | 0x0020)) == 0) {
- goto __573
+ goto __582
}
// If pIn3->u.i does not contain an integer, compute iKey as the
// integer value of pIn3. Jump to P2 if pIn3 cannot be converted
@@ -62825,17 +63963,17 @@ __96:
*(*Mem)(unsafe.Pointer(bp + 368 /* x */)) = *(*Mem)(unsafe.Pointer(pIn3 + uintptr(0)*56))
applyAffinity(tls, bp+368 /* &x */, int8(0x43), encoding)
if !((int32((*Mem)(unsafe.Pointer(bp+368 /* &x */)).Fflags) & 0x0004) == 0) {
- goto __574
+ goto __583
}
goto jump_to_p2
-__574:
+__583:
;
iKey1 = U64(*(*I64)(unsafe.Pointer(bp + 368 /* &x */ /* &.u */)))
goto notExistsWithKey
-__573:
+__582:
;
// Fall through into OP_NotExists
-__97: // jump, in3
+__99: // jump, in3
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
iKey1 = U64(*(*I64)(unsafe.Pointer(pIn3 /* &.u */)))
@@ -62854,27 +63992,27 @@ notExistsWithKey:
(*VdbeCursor)(unsafe.Pointer(pC6)).FseekResult = *(*int32)(unsafe.Pointer(bp + 424 /* res4 */))
if !(*(*int32)(unsafe.Pointer(bp + 424 /* res4 */)) != 0) {
- goto __575
+ goto __584
}
if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 0) {
- goto __576
+ goto __585
}
rc = Xsqlite3CorruptError(tls, 89805)
- goto __577
-__576:
+ goto __586
+__585:
goto jump_to_p2
-__577:
+__586:
;
-__575:
+__584:
;
if !(rc != 0) {
- goto __578
+ goto __587
}
goto abort_due_to_error
-__578:
+__587:
;
- goto __8
+ goto __10
// Opcode: Sequence P1 P2 * * *
// Synopsis: r[P2]=cursor[P1].ctr++
@@ -62883,12 +64021,12 @@ __578:
// Write the sequence number into register P2.
// The sequence number on the cursor is incremented after this
// instruction.
-__98: // out2
+__100: // out2
;
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = crt.PostIncInt64(&(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)))).FseqCount, 1)
- goto __8
+ goto __10
// Opcode: NewRowid P1 P2 P3 * *
// Synopsis: r[P2]=rowid
@@ -62904,7 +64042,7 @@ __98: // out2
// an SQLITE_FULL error is generated. The P3 register is updated with the '
// generated record number. This P3 mechanism is used to help implement the
// AUTOINCREMENT feature.
-__99: // Root frame of VDBE
+__101: // Root frame of VDBE
*(*I64)(unsafe.Pointer(bp + 432 /* v */)) = int64(0)
*(*int32)(unsafe.Pointer(bp + 428 /* res5 */)) = 0
@@ -62930,88 +64068,88 @@ __99: // Root frame of VDBE
// to provide the constant while making all compilers happy.
if !(!(int32(*(*uint8)(unsafe.Pointer(pC7 + 8 /* &.useRandomRowid */))&0x2>>1) != 0)) {
- goto __579
+ goto __588
}
rc = Xsqlite3BtreeLast(tls, *(*uintptr)(unsafe.Pointer(pC7 + 56 /* &.uc */)), bp+428 /* &res5 */)
if !(rc != 0) {
- goto __580
+ goto __589
}
goto abort_due_to_error
-__580:
+__589:
;
if !(*(*int32)(unsafe.Pointer(bp + 428 /* res5 */)) != 0) {
- goto __581
+ goto __590
}
*(*I64)(unsafe.Pointer(bp + 432 /* v */)) = int64(1)
- goto __582
-__581:
+ goto __591
+__590:
;
*(*I64)(unsafe.Pointer(bp + 432 /* v */)) = Xsqlite3BtreeIntegerKey(tls, *(*uintptr)(unsafe.Pointer(pC7 + 56 /* &.uc */)))
if !(*(*I64)(unsafe.Pointer(bp + 432 /* v */)) >= (int64((U64((uint64(0x7fffffff))) << 32) | uint64(0xffffffff)))) {
- goto __583
+ goto __592
}
crt.SetBitFieldPtr8Uint32(pC7+8 /* &.useRandomRowid */, Bool(1), 1, 0x2)
- goto __584
-__583:
+ goto __593
+__592:
*(*I64)(unsafe.Pointer(bp + 432 /* v */))++
-__584:
+__593:
;
-__582:
+__591:
;
-__579:
+__588:
;
if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
- goto __585
+ goto __594
}
// Assert that P3 is a valid memory cell.
if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0) {
- goto __586
+ goto __595
}
pFrame1 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
-__588:
+__597:
if !((*VdbeFrame)(unsafe.Pointer(pFrame1)).FpParent != 0) {
- goto __590
+ goto __599
}
- goto __589
-__589:
+ goto __598
+__598:
pFrame1 = (*VdbeFrame)(unsafe.Pointer(pFrame1)).FpParent
- goto __588
- goto __590
-__590:
+ goto __597
+ goto __599
+__599:
;
// Assert that P3 is a valid memory cell.
pMem1 = ((*VdbeFrame)(unsafe.Pointer(pFrame1)).FaMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
- goto __587
-__586:
+ goto __596
+__595:
// Assert that P3 is a valid memory cell.
;
pMem1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
-__587:
+__596:
;
Xsqlite3VdbeMemIntegerify(tls, pMem1)
// mem(P3) holds an integer
if !((*(*I64)(unsafe.Pointer(pMem1 /* &.u */)) == (int64((U64((uint64(0x7fffffff))) << 32) | uint64(0xffffffff)))) || (Bool(int32(*(*uint8)(unsafe.Pointer(pC7 + 8 /* &.useRandomRowid */))&0x2>>1)) != 0)) {
- goto __591
+ goto __600
}
rc = 13 // IMP: R-17817-00630
goto abort_due_to_error
-__591:
+__600:
;
if !(*(*I64)(unsafe.Pointer(bp + 432 /* v */)) < (*(*I64)(unsafe.Pointer(pMem1 /* &.u */)) + int64(1))) {
- goto __592
+ goto __601
}
*(*I64)(unsafe.Pointer(bp + 432 /* v */)) = (*(*I64)(unsafe.Pointer(pMem1 /* &.u */)) + int64(1))
-__592:
+__601:
;
*(*I64)(unsafe.Pointer(pMem1 /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 432 /* v */))
-__585:
+__594:
;
if !(Bool(int32(*(*uint8)(unsafe.Pointer(pC7 + 8 /* &.useRandomRowid */))&0x2>>1)) != 0) {
- goto __593
+ goto __602
}
// IMPLEMENTATION-OF: R-07677-41881 If the largest ROWID is equal to the
// largest possible integer (9223372036854775807) then the database
@@ -63020,40 +64158,40 @@ __585:
// We cannot be in random rowid mode if this is
// an AUTOINCREMENT table.
cnt1 = 0
-__594:
+__603:
Xsqlite3_randomness(tls, int32(unsafe.Sizeof(I64(0))), bp+432 /* &v */)
*(*I64)(unsafe.Pointer(bp + 432 /* v */)) &= (I64((int64((U64((uint64(0x7fffffff))) << 32) | uint64(0xffffffff)))) >> 1)
*(*I64)(unsafe.Pointer(bp + 432 /* v */))++
- goto __595
-__595:
+ goto __604
+__604:
if (((crt.AssignInt32(&rc, Xsqlite3BtreeMovetoUnpacked(tls, *(*uintptr)(unsafe.Pointer(pC7 + 56 /* &.uc */)), uintptr(0), int64(U64(*(*I64)(unsafe.Pointer(bp + 432 /* v */)))),
0, bp+428 /* &res5 */))) == 0) &&
(*(*int32)(unsafe.Pointer(bp + 428 /* res5 */)) == 0)) &&
(crt.PreIncInt32(&cnt1, 1) < 100) {
- goto __594
+ goto __603
}
- goto __596
-__596:
+ goto __605
+__605:
;
if !(rc != 0) {
- goto __597
+ goto __606
}
goto abort_due_to_error
-__597:
+__606:
;
if !(*(*int32)(unsafe.Pointer(bp + 428 /* res5 */)) == 0) {
- goto __598
+ goto __607
}
rc = 13 // IMP: R-38219-53002
goto abort_due_to_error
-__598:
+__607:
;
-__593:
+__602:
;
(*VdbeCursor)(unsafe.Pointer(pC7)).FdeferredMoveto = U8(0)
(*VdbeCursor)(unsafe.Pointer(pC7)).FcacheStatus = U32(0)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 432 /* v */))
- goto __8
+ goto __10
// Opcode: Insert P1 P2 P3 P4 P5
// Synopsis: intkey=r[P3] data=r[P2]
@@ -63091,7 +64229,7 @@ __593:
//
// This instruction only works on tables. The equivalent instruction
// for indices is OP_IdxInsert.
-__100: // Payload to be inserted
+__102: // Payload to be inserted
pData = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
@@ -63102,29 +64240,29 @@ __100: // Payload to be inserted
(*BtreePayload)(unsafe.Pointer(bp + 440 /* &x1 */)).FnKey = *(*I64)(unsafe.Pointer(pKey /* &.u */))
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == (-6)) && ((*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback != 0)) {
- goto __599
+ goto __608
}
zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*VdbeCursor)(unsafe.Pointer(pC8)).FiDb)*32)).FzDbSName
pTab = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
- goto __600
-__599:
+ goto __609
+__608:
pTab = uintptr(0)
zDb = uintptr(0)
-__600:
+__609:
;
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x01) != 0) {
- goto __601
+ goto __610
}
(*Vdbe)(unsafe.Pointer(p)).FnChange++
-__601:
+__610:
;
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x20) != 0) {
- goto __602
+ goto __611
}
(*Sqlite3)(unsafe.Pointer(db)).FlastRowid = (*BtreePayload)(unsafe.Pointer(bp + 440 /* &x1 */)).FnKey
-__602:
+__611:
;
(*BtreePayload)(unsafe.Pointer(bp + 440 /* &x1 */)).FpData = (*Mem)(unsafe.Pointer(pData)).Fz
@@ -63136,13 +64274,13 @@ __602:
return 0
}()
if !((int32((*Mem)(unsafe.Pointer(pData)).Fflags) & 0x4000) != 0) {
- goto __603
+ goto __612
}
(*BtreePayload)(unsafe.Pointer(bp + 440 /* &x1 */)).FnZero = *(*int32)(unsafe.Pointer(pData /* &.u */))
- goto __604
-__603:
+ goto __613
+__612:
(*BtreePayload)(unsafe.Pointer(bp + 440 /* &x1 */)).FnZero = 0
-__604:
+__613:
;
(*BtreePayload)(unsafe.Pointer(bp + 440 /* &x1 */)).FpKey = uintptr(0)
rc = Xsqlite3BtreeInsert(tls, *(*uintptr)(unsafe.Pointer(pC8 + 56 /* &.uc */)), bp+440, /* &x1 */
@@ -63152,13 +64290,13 @@ __604:
// Invoke the update-hook if required.
if !(rc != 0) {
- goto __605
+ goto __614
}
goto abort_due_to_error
-__605:
+__614:
;
if !(pTab != 0) {
- goto __606
+ goto __615
}
(*(*func(*crt.TLS, uintptr, int32, uintptr, uintptr, Sqlite_int64))(unsafe.Pointer((db + 304 /* &.xUpdateCallback */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpUpdateArg,
@@ -63169,9 +64307,9 @@ __605:
return 18
}(),
zDb, (*Table)(unsafe.Pointer(pTab)).FzName, (*BtreePayload)(unsafe.Pointer(bp+440 /* &x1 */)).FnKey)
-__606:
+__615:
;
- goto __8
+ goto __10
// Opcode: Delete P1 P2 P3 P4 P5
//
@@ -63207,7 +64345,7 @@ __606:
// If the OPFLAG_ISUPDATE flag is set in P2, then P3 contains the address
// of the memory cell that contains the value that the rowid of the row will
// be set to by the update.
-__101:
+__103:
opflags = (*Op)(unsafe.Pointer(pOp)).Fp2
@@ -63219,22 +64357,22 @@ __101:
// last moved with OP_Next or OP_Prev, not Seek or NotFound, set
// VdbeCursor.movetoTarget to the current rowid.
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == (-6)) && ((*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback != 0)) {
- goto __607
+ goto __616
}
zDb1 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*VdbeCursor)(unsafe.Pointer(pC9)).FiDb)*32)).FzDbSName
pTab1 = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
if !(((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x02) != 0) && ((*VdbeCursor)(unsafe.Pointer(pC9)).FisTable != 0)) {
- goto __609
+ goto __618
}
(*VdbeCursor)(unsafe.Pointer(pC9)).FmovetoTarget = Xsqlite3BtreeIntegerKey(tls, *(*uintptr)(unsafe.Pointer(pC9 + 56 /* &.uc */)))
-__609:
+__618:
;
- goto __608
-__607:
+ goto __617
+__616:
zDb1 = uintptr(0) // Not needed. Silence a compiler warning.
pTab1 = uintptr(0)
-__608:
+__617:
;
/* Only flags that can be set are SAVEPOISTION and AUXDELETE */
@@ -63243,38 +64381,38 @@ __608:
(*VdbeCursor)(unsafe.Pointer(pC9)).FcacheStatus = U32(0)
(*VdbeCursor)(unsafe.Pointer(pC9)).FseekResult = 0
if !(rc != 0) {
- goto __610
+ goto __619
}
goto abort_due_to_error
-__610:
+__619:
;
// Invoke the update-hook if required.
if !((opflags & 0x01) != 0) {
- goto __611
+ goto __620
}
(*Vdbe)(unsafe.Pointer(p)).FnChange++
if !(((*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback != 0) && (((*Table)(unsafe.Pointer((pTab1))).FtabFlags & U32(0x0080)) == U32(0))) {
- goto __612
+ goto __621
}
(*(*func(*crt.TLS, uintptr, int32, uintptr, uintptr, Sqlite_int64))(unsafe.Pointer((db + 304 /* &.xUpdateCallback */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpUpdateArg, 9, zDb1, (*Table)(unsafe.Pointer(pTab1)).FzName,
(*VdbeCursor)(unsafe.Pointer(pC9)).FmovetoTarget)
-__612:
+__621:
;
-__611:
+__620:
;
- goto __8
+ goto __10
// Opcode: ResetCount * * * * *
//
// The value of the change counter is copied to the database handle
// change counter (returned by subsequent calls to sqlite3_changes()).
// Then the VMs internal change counter resets to 0.
// This is used by trigger programs.
-__102:
+__104:
Xsqlite3VdbeSetChanges(tls, db, (*Vdbe)(unsafe.Pointer(p)).FnChange)
(*Vdbe)(unsafe.Pointer(p)).FnChange = 0
- goto __8
+ goto __10
// Opcode: SorterCompare P1 P2 P3 P4
// Synopsis: if key(P1)!=trim(r[P3],P4) goto P2
@@ -63290,7 +64428,7 @@ __102:
//
// Fall through to next instruction if the two records compare equal to
// each other. Jump to P2 if they are different.
-__103:
+__105:
pC10 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63300,18 +64438,18 @@ __103:
rc = Xsqlite3VdbeSorterCompare(tls, pC10, pIn3, nKeyCol, bp+488 /* &res6 */)
if !(rc != 0) {
- goto __613
+ goto __622
}
goto abort_due_to_error
-__613:
+__622:
;
if !(*(*int32)(unsafe.Pointer(bp + 488 /* res6 */)) != 0) {
- goto __614
+ goto __623
}
goto jump_to_p2
-__614:
+__623:
;
- goto __8
+ goto __10
// Opcode: SorterData P1 P2 P3 * *
// Synopsis: r[P2]=data
@@ -63324,7 +64462,7 @@ __614:
// OpenPseudo. That pseudo-table cursor is the one that is identified by
// parameter P3. Clearing the P3 column cache as part of this opcode saves
// us from having to issue a separate NullRow instruction to clear that cache.
-__104:
+__106:
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
pC11 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63332,13 +64470,13 @@ __104:
rc = Xsqlite3VdbeSorterRowkey(tls, pC11, pOut)
if !(rc != 0) {
- goto __615
+ goto __624
}
goto abort_due_to_error
-__615:
+__624:
;
(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*8)))).FcacheStatus = U32(0)
- goto __8
+ goto __10
// Opcode: RowData P1 P2 P3 * *
// Synopsis: r[P2]=data
@@ -63367,7 +64505,7 @@ __615:
// in OP_Result and any OP_Result will invalidate the P2 register content.
// The P2 register content is invalidated by opcodes like OP_Function or
// by any use of another cursor pointing to the same table.
-__105:
+__107:
pOut = out2Prerelease(tls, p, pOp)
@@ -63385,34 +64523,34 @@ __105:
n3 = Xsqlite3BtreePayloadSize(tls, pCrsr3)
if !(n3 > U32(*(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(0)*4)))) {
- goto __616
+ goto __625
}
goto too_big
-__616:
+__625:
;
rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, pCrsr3, n3, pOut)
if !(rc != 0) {
- goto __617
+ goto __626
}
goto abort_due_to_error
-__617:
+__626:
;
if !(!((*Op)(unsafe.Pointer(pOp)).Fp3 != 0)) {
- goto __618
+ goto __627
}
if !(((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & 0x1000) != 0) && (Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0)) {
- goto __619
+ goto __628
}
goto no_mem
-__619:
+__628:
;
-__618:
+__627:
;
updateMaxBlobsize(tls, pOut)
- goto __8
+ goto __10
// Opcode: Rowid P1 P2 * * *
// Synopsis: r[P2]=rowid
@@ -63423,27 +64561,27 @@ __618:
// P1 can be either an ordinary table or a virtual table. There used to
// be a separate OP_VRowid opcode for use with virtual tables, but this
// one opcode now works for both table types.
-__106:
+__108:
pOut = out2Prerelease(tls, p, pOp)
pC13 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !((*VdbeCursor)(unsafe.Pointer(pC13)).FnullRow != 0) {
- goto __620
+ goto __629
}
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0001)
- goto __8
- goto __621
-__620:
+ goto __10
+ goto __630
+__629:
if !((*VdbeCursor)(unsafe.Pointer(pC13)).FdeferredMoveto != 0) {
- goto __622
+ goto __631
}
*(*I64)(unsafe.Pointer(bp + 496 /* v3 */)) = (*VdbeCursor)(unsafe.Pointer(pC13)).FmovetoTarget
- goto __623
-__622:
+ goto __632
+__631:
if !(int32((*VdbeCursor)(unsafe.Pointer(pC13)).FeCurType) == 2) {
- goto __624
+ goto __633
}
pVtab = (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pC13 + 56 /* &.uc */)))).FpVtab
@@ -63452,58 +64590,58 @@ __622:
rc = (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer((pModule + 96 /* &.xRowid */))))(tls, *(*uintptr)(unsafe.Pointer(pC13 + 56 /* &.uc */)), bp+496 /* &v3 */)
Xsqlite3VtabImportErrmsg(tls, p, pVtab)
if !(rc != 0) {
- goto __626
+ goto __635
}
goto abort_due_to_error
-__626:
+__635:
;
- goto __625
-__624:
+ goto __634
+__633:
;
rc = Xsqlite3VdbeCursorRestore(tls, pC13)
if !(rc != 0) {
- goto __627
+ goto __636
}
goto abort_due_to_error
-__627:
+__636:
;
if !((*VdbeCursor)(unsafe.Pointer(pC13)).FnullRow != 0) {
- goto __628
+ goto __637
}
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0001)
- goto __8
-__628:
+ goto __10
+__637:
;
*(*I64)(unsafe.Pointer(bp + 496 /* v3 */)) = Xsqlite3BtreeIntegerKey(tls, *(*uintptr)(unsafe.Pointer(pC13 + 56 /* &.uc */)))
-__625:
+__634:
;
-__623:
+__632:
;
-__621:
+__630:
;
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 496 /* v3 */))
- goto __8
+ goto __10
// Opcode: NullRow P1 * * * *
//
// Move the cursor P1 to a null row. Any OP_Column operations
// that occur while the cursor is on the null row will always
// write a NULL.
-__107:
+__109:
;
pC14 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
(*VdbeCursor)(unsafe.Pointer(pC14)).FnullRow = U8(1)
(*VdbeCursor)(unsafe.Pointer(pC14)).FcacheStatus = U32(0)
if !(int32((*VdbeCursor)(unsafe.Pointer(pC14)).FeCurType) == 0) {
- goto __629
+ goto __638
}
Xsqlite3BtreeClearCursor(tls, *(*uintptr)(unsafe.Pointer(pC14 + 56 /* &.uc */)))
-__629:
+__638:
;
- goto __8
+ goto __10
// Opcode: SeekEnd P1 * * * *
//
@@ -63525,8 +64663,8 @@ __629:
// This opcode leaves the cursor configured to move in reverse order,
// from the end toward the beginning. In other words, the cursor is
// configured to use Prev, not Next.
-__108:
-__109:
+__110:
+__111:
;
pC15 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63534,47 +64672,47 @@ __109:
*(*int32)(unsafe.Pointer(bp + 504 /* res7 */)) = 0
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 129) {
- goto __630
+ goto __639
}
(*VdbeCursor)(unsafe.Pointer(pC15)).FseekResult = -1
if !(Xsqlite3BtreeCursorIsValidNN(tls, pCrsr4) != 0) {
- goto __631
+ goto __640
}
- goto __8
-__631:
+ goto __10
+__640:
;
-__630:
+__639:
;
rc = Xsqlite3BtreeLast(tls, pCrsr4, bp+504 /* &res7 */)
(*VdbeCursor)(unsafe.Pointer(pC15)).FnullRow = U8(*(*int32)(unsafe.Pointer(bp + 504 /* res7 */)))
(*VdbeCursor)(unsafe.Pointer(pC15)).FdeferredMoveto = U8(0)
(*VdbeCursor)(unsafe.Pointer(pC15)).FcacheStatus = U32(0)
if !(rc != 0) {
- goto __632
+ goto __641
}
goto abort_due_to_error
-__632:
+__641:
;
if !((*Op)(unsafe.Pointer(pOp)).Fp2 > 0) {
- goto __633
+ goto __642
}
if !(*(*int32)(unsafe.Pointer(bp + 504 /* res7 */)) != 0) {
- goto __634
+ goto __643
}
goto jump_to_p2
-__634:
+__643:
;
-__633:
+__642:
;
- goto __8
+ goto __10
// Opcode: IfSmaller P1 P2 P3 * *
//
// Estimate the number of rows in the table P1. Jump to P2 if that
// estimate is less than approximately 2**(0.1*P3).
-__110:
+__112:
;
pC16 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63582,31 +64720,31 @@ __110:
rc = Xsqlite3BtreeFirst(tls, pCrsr5, bp+508 /* &res8 */)
if !(rc != 0) {
- goto __635
+ goto __644
}
goto abort_due_to_error
-__635:
+__644:
;
if !(*(*int32)(unsafe.Pointer(bp + 508 /* res8 */)) == 0) {
- goto __636
+ goto __645
}
sz = Xsqlite3BtreeRowCountEst(tls, pCrsr5)
if !((sz >= int64(0)) && (int32(Xsqlite3LogEst(tls, U64(sz))) < (*Op)(unsafe.Pointer(pOp)).Fp3)) {
- goto __637
+ goto __646
}
*(*int32)(unsafe.Pointer(bp + 508 /* res8 */)) = 1
-__637:
+__646:
;
-__636:
+__645:
;
if !(*(*int32)(unsafe.Pointer(bp + 508 /* res8 */)) != 0) {
- goto __638
+ goto __647
}
goto jump_to_p2
-__638:
+__647:
;
- goto __8
+ goto __10
// Opcode: SorterSort P1 P2 * * *
//
@@ -63627,8 +64765,8 @@ __638:
// rewinding so that the global variable will be incremented and
// regression tests can determine whether or not the optimizer is
// correctly optimizing out sorts.
-__111: // jump
-__112: // jump
+__113: // jump
+__114: // jump
Xsqlite3_sort_count++
Xsqlite3_search_count--
*(*U32)(unsafe.Pointer((p + 212 /* &.aCounter */) + uintptr(2)*4))++
@@ -63643,41 +64781,41 @@ __112: // jump
// This opcode leaves the cursor configured to move in forward order,
// from the beginning toward the end. In other words, the cursor is
// configured to use Next, not Prev.
-__113:
+__115:
;
pC17 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
*(*int32)(unsafe.Pointer(bp + 512 /* res9 */)) = 1
if !(int32((*VdbeCursor)(unsafe.Pointer((pC17))).FeCurType) == 1) {
- goto __639
+ goto __648
}
rc = Xsqlite3VdbeSorterRewind(tls, pC17, bp+512 /* &res9 */)
- goto __640
-__639:
+ goto __649
+__648:
;
pCrsr6 = *(*uintptr)(unsafe.Pointer(pC17 + 56 /* &.uc */))
rc = Xsqlite3BtreeFirst(tls, pCrsr6, bp+512 /* &res9 */)
(*VdbeCursor)(unsafe.Pointer(pC17)).FdeferredMoveto = U8(0)
(*VdbeCursor)(unsafe.Pointer(pC17)).FcacheStatus = U32(0)
-__640:
+__649:
;
if !(rc != 0) {
- goto __641
+ goto __650
}
goto abort_due_to_error
-__641:
+__650:
;
(*VdbeCursor)(unsafe.Pointer(pC17)).FnullRow = U8(*(*int32)(unsafe.Pointer(bp + 512 /* res9 */)))
if !(*(*int32)(unsafe.Pointer(bp + 512 /* res9 */)) != 0) {
- goto __642
+ goto __651
}
goto jump_to_p2
-__642:
+__651:
;
- goto __8
+ goto __10
// Opcode: Next P1 P2 P3 P4 P5
//
@@ -63736,14 +64874,14 @@ __642:
// sorter object for which the OP_SorterSort opcode has been
// invoked. This opcode advances the cursor to the next sorted
// record, or jumps to P2 if there are no more sorted records.
-__114:
+__116:
pC18 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
rc = Xsqlite3VdbeSorterNext(tls, db, pC18)
goto next_tail
-__115: // jump
-__116: // jump
+__117: // jump
+__118: // jump
;
pC18 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63756,19 +64894,19 @@ next_tail:
(*VdbeCursor)(unsafe.Pointer(pC18)).FcacheStatus = U32(0)
if !(rc == 0) {
- goto __643
+ goto __652
}
(*VdbeCursor)(unsafe.Pointer(pC18)).FnullRow = U8(0)
*(*U32)(unsafe.Pointer((p + 212 /* &.aCounter */) + uintptr((*Op)(unsafe.Pointer(pOp)).Fp5)*4))++
Xsqlite3_search_count++
goto jump_to_p2_and_check_for_interrupt
-__643:
+__652:
;
if !(rc != 101) {
- goto __644
+ goto __653
}
goto abort_due_to_error
-__644:
+__653:
;
rc = 0
(*VdbeCursor)(unsafe.Pointer(pC18)).FnullRow = U8(1)
@@ -63801,17 +64939,17 @@ __644:
//
// This instruction only works for indices. The equivalent instruction
// for tables is OP_Insert.
-__117:
+__119:
;
pC19 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
pIn2 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x01) != 0) {
- goto __645
+ goto __654
}
(*Vdbe)(unsafe.Pointer(p)).FnChange++
-__645:
+__654:
;
rc = func() int32 {
@@ -63821,10 +64959,10 @@ __645:
return 0
}()
if !(rc != 0) {
- goto __646
+ goto __655
}
goto abort_due_to_error
-__646:
+__655:
;
(*BtreePayload)(unsafe.Pointer(bp + 520 /* &x2 */)).FnKey = Sqlite3_int64((*Mem)(unsafe.Pointer(pIn2)).Fn)
(*BtreePayload)(unsafe.Pointer(bp + 520 /* &x2 */)).FpKey = (*Mem)(unsafe.Pointer(pIn2)).Fz
@@ -63841,12 +64979,12 @@ __646:
(*VdbeCursor)(unsafe.Pointer(pC19)).FcacheStatus = U32(0)
if !(rc != 0) {
- goto __647
+ goto __656
}
goto abort_due_to_error
-__647:
+__656:
;
- goto __8
+ goto __10
// Opcode: SorterInsert P1 P2 * * *
// Synopsis: key=r[P2]
@@ -63854,7 +64992,7 @@ __647:
// Register P2 holds an SQL index key made using the
// MakeRecord instructions. This opcode writes that key
// into the sorter P1. Data for the entry is nil.
-__118:
+__120:
;
pC20 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63867,19 +65005,19 @@ __118:
return 0
}()
if !(rc != 0) {
- goto __648
+ goto __657
}
goto abort_due_to_error
-__648:
+__657:
;
rc = Xsqlite3VdbeSorterWrite(tls, pC20, pIn2)
if !(rc != 0) {
- goto __649
+ goto __658
}
goto abort_due_to_error
-__649:
+__658:
;
- goto __8
+ goto __10
// Opcode: IdxDelete P1 P2 P3 * P5
// Synopsis: key=r[P2@P3]
@@ -63894,7 +65032,7 @@ __649:
// or deleted is not found. For some uses of IdxDelete
// (example: the EXCEPT operator) it does not matter that no matching
// entry is found. For those cases, P5 is zero.
-__119:
+__121:
;
pC21 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63907,36 +65045,36 @@ __119:
(*UnpackedRecord)(unsafe.Pointer(bp + 568 /* &r2 */)).FaMem = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
rc = Xsqlite3BtreeMovetoUnpacked(tls, pCrsr7, bp+568 /* &r2 */, int64(0), 0, bp+592 /* &res10 */)
if !(rc != 0) {
- goto __650
+ goto __659
}
goto abort_due_to_error
-__650:
+__659:
;
if !(*(*int32)(unsafe.Pointer(bp + 592 /* res10 */)) == 0) {
- goto __651
+ goto __660
}
rc = Xsqlite3BtreeDelete(tls, pCrsr7, uint8(0x04))
if !(rc != 0) {
- goto __653
+ goto __662
}
goto abort_due_to_error
-__653:
+__662:
;
- goto __652
-__651:
+ goto __661
+__660:
if !((*Op)(unsafe.Pointer(pOp)).Fp5 != 0) {
- goto __654
+ goto __663
}
rc = (11 | (int32(3) << 8))
goto abort_due_to_error
-__654:
+__663:
;
-__652:
+__661:
;
(*VdbeCursor)(unsafe.Pointer(pC21)).FcacheStatus = U32(0)
(*VdbeCursor)(unsafe.Pointer(pC21)).FseekResult = 0
- goto __8
+ goto __10
// Opcode: DeferredSeek P1 * P3 P4 *
// Synopsis: Move P3 to P1.rowid if needed
@@ -63964,8 +65102,8 @@ __652:
// the rowid of the table entry to which this index entry points.
//
// See also: Rowid, MakeRecord.
-__120:
-__121: // Rowid that P1 current points to
+__122:
+__123: // Rowid that P1 current points to
;
pC22 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
@@ -63978,25 +65116,25 @@ __121: // Rowid that P1 current points to
// out from under the cursor. That will never happens for an IdxRowid
// or Seek opcode
if !(rc != 0) {
- goto __655
+ goto __664
}
goto abort_due_to_error
-__655:
+__664:
;
if !(!(int32((*VdbeCursor)(unsafe.Pointer(pC22)).FnullRow) != 0)) {
- goto __656
+ goto __665
}
*(*I64)(unsafe.Pointer(bp + 600 /* rowid */)) = int64(0) // Not needed. Only used to silence a warning.
rc = Xsqlite3VdbeIdxRowid(tls, db, *(*uintptr)(unsafe.Pointer(pC22 + 56 /* &.uc */)), bp+600 /* &rowid */)
if !(rc != 0) {
- goto __658
+ goto __667
}
goto abort_due_to_error
-__658:
+__667:
;
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 133) {
- goto __659
+ goto __668
}
pTabCur = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*8))
@@ -64007,42 +65145,42 @@ __658:
(*VdbeCursor)(unsafe.Pointer(pTabCur)).FaAltMap = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
(*VdbeCursor)(unsafe.Pointer(pTabCur)).FpAltCursor = pC22
- goto __660
-__659:
+ goto __669
+__668:
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 600 /* rowid */))
-__660:
+__669:
;
- goto __657
-__656:
+ goto __666
+__665:
;
Xsqlite3VdbeMemSetNull(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56))
-__657:
+__666:
;
- goto __8
+ goto __10
// Opcode: FinishSeek P1 * * * *
//
// If cursor P1 was previously moved via OP_DeferredSeek, complete that
// seek operation now, without further delay. If the cursor seek has
// already occurred, this instruction is a no-op.
-__122: // The P1 index cursor
+__124: // The P1 index cursor
;
pC23 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !((*VdbeCursor)(unsafe.Pointer(pC23)).FdeferredMoveto != 0) {
- goto __661
+ goto __670
}
rc = Xsqlite3VdbeFinishMoveto(tls, pC23)
if !(rc != 0) {
- goto __662
+ goto __671
}
goto abort_due_to_error
-__662:
+__671:
;
-__661:
+__670:
;
- goto __8
+ goto __10
// Opcode: IdxGE P1 P2 P3 P4 P5
// Synopsis: key=r[P3@P4]
@@ -64084,55 +65222,55 @@ __661:
//
// If the P1 index entry is less than or equal to the key value then jump
// to P2. Otherwise fall through to the next instruction.
-__123: // jump
-__124: // jump
__125: // jump
-__126:
+__126: // jump
+__127: // jump
+__128:
;
pC24 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
(*UnpackedRecord)(unsafe.Pointer(bp + 608 /* &r3 */)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC24)).FpKeyInfo
(*UnpackedRecord)(unsafe.Pointer(bp + 608 /* &r3 */)).FnField = U16(*(*int32)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) < 40) {
- goto __663
+ goto __672
}
(*UnpackedRecord)(unsafe.Pointer(bp + 608 /* &r3 */)).Fdefault_rc = int8(-1)
- goto __664
-__663:
+ goto __673
+__672:
;
(*UnpackedRecord)(unsafe.Pointer(bp + 608 /* &r3 */)).Fdefault_rc = int8(0)
-__664:
+__673:
;
(*UnpackedRecord)(unsafe.Pointer(bp + 608 /* &r3 */)).FaMem = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
*(*int32)(unsafe.Pointer(bp + 632 /* res11 */)) = 0 // Not needed. Only used to silence a warning.
rc = Xsqlite3VdbeIdxKeyCompare(tls, db, pC24, bp+608 /* &r3 */, bp+632 /* &res11 */)
if !((int32((*Op)(unsafe.Pointer(pOp)).Fopcode) & 1) == (40 & 1)) {
- goto __665
+ goto __674
}
*(*int32)(unsafe.Pointer(bp + 632 /* res11 */)) = -*(*int32)(unsafe.Pointer(bp + 632 /* res11 */))
- goto __666
-__665:
+ goto __675
+__674:
;
*(*int32)(unsafe.Pointer(bp + 632 /* res11 */))++
-__666:
+__675:
;
if !(rc != 0) {
- goto __667
+ goto __676
}
goto abort_due_to_error
-__667:
+__676:
;
if !(*(*int32)(unsafe.Pointer(bp + 632 /* res11 */)) > 0) {
- goto __668
+ goto __677
}
goto jump_to_p2
-__668:
+__677:
;
- goto __8
+ goto __10
// Opcode: Destroy P1 P2 P3 * *
//
@@ -64160,19 +65298,19 @@ __668:
// and non-autovacuum modes.
//
// See also: Clear
-__127:
+__129:
;
pOut = out2Prerelease(tls, p, pOp)
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0001)
if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > ((*Sqlite3)(unsafe.Pointer(db)).FnVDestroy + 1)) {
- goto __669
+ goto __678
}
rc = 6
(*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8(2)
goto abort_due_to_error
- goto __670
-__669:
+ goto __679
+__678:
iDb2 = (*Op)(unsafe.Pointer(pOp)).Fp3
*(*int32)(unsafe.Pointer(bp + 636 /* iMoved */)) = 0 // Not needed. Only to silence a warning.
@@ -64180,23 +65318,23 @@ __669:
(*Mem)(unsafe.Pointer(pOut)).Fflags = U16(0x0004)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(*(*int32)(unsafe.Pointer(bp + 636 /* iMoved */)))
if !(rc != 0) {
- goto __671
+ goto __680
}
goto abort_due_to_error
-__671:
+__680:
;
if !(*(*int32)(unsafe.Pointer(bp + 636 /* iMoved */)) != 0) {
- goto __672
+ goto __681
}
Xsqlite3RootPageMoved(tls, db, iDb2, *(*int32)(unsafe.Pointer(bp + 636 /* iMoved */)), (*Op)(unsafe.Pointer(pOp)).Fp1)
// All OP_Destroy operations occur on the same btree
resetSchemaOnFault = (U8(iDb2 + 1))
-__672:
+__681:
;
-__670:
+__679:
;
- goto __8
+ goto __10
// Opcode: Clear P1 P2 P3
//
@@ -64215,7 +65353,7 @@ __670:
// also incremented by the number of rows in the table being cleared.
//
// See also: Destroy
-__128:
+__130:
;
*(*int32)(unsafe.Pointer(bp + 640 /* nChange */)) = 0
@@ -64227,25 +65365,25 @@ __128:
return uintptr(0)
}())
if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
- goto __673
+ goto __682
}
*(*int32)(unsafe.Pointer(p + 60 /* &.nChange */)) += (*(*int32)(unsafe.Pointer(bp + 640 /* nChange */)))
if !((*Op)(unsafe.Pointer(pOp)).Fp3 > 0) {
- goto __674
+ goto __683
}
*(*I64)(unsafe.Pointer(aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56 /* &.u */ /* &.i */)) += (I64(*(*int32)(unsafe.Pointer(bp + 640 /* nChange */))))
-__674:
+__683:
;
-__673:
+__682:
;
if !(rc != 0) {
- goto __675
+ goto __684
}
goto abort_due_to_error
-__675:
+__684:
;
- goto __8
+ goto __10
// Opcode: ResetSorter P1 * * * *
//
@@ -64254,28 +65392,28 @@ __675:
//
// This opcode only works for cursors used for sorting and
// opened with OP_OpenEphemeral or OP_SorterOpen.
-__129:
+__131:
;
pC25 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !(int32((*VdbeCursor)(unsafe.Pointer((pC25))).FeCurType) == 1) {
- goto __676
+ goto __685
}
Xsqlite3VdbeSorterReset(tls, db, *(*uintptr)(unsafe.Pointer(pC25 + 56 /* &.uc */)))
- goto __677
-__676:
+ goto __686
+__685:
;
rc = Xsqlite3BtreeClearTableOfCursor(tls, *(*uintptr)(unsafe.Pointer(pC25 + 56 /* &.uc */)))
if !(rc != 0) {
- goto __678
+ goto __687
}
goto abort_due_to_error
-__678:
+__687:
;
-__677:
+__686:
;
- goto __8
+ goto __10
// Opcode: CreateBtree P1 P2 P3 * *
// Synopsis: r[P2]=root iDb=P1 flags=P3
@@ -64285,7 +65423,7 @@ __677:
// P1>1. The P3 argument must be 1 (BTREE_INTKEY) for a rowid table
// it must be 2 (BTREE_BLOBKEY) for an index or WITHOUT ROWID table.
// The root page number of the new b-tree is stored in register P2.
-__130:
+__132:
;
pOut = out2Prerelease(tls, p, pOp)
*(*int32)(unsafe.Pointer(bp + 644 /* pgno */)) = 0
@@ -64294,29 +65432,29 @@ __130:
rc = Xsqlite3BtreeCreateTable(tls, (*Db)(unsafe.Pointer(pDb2)).FpBt, bp+644 /* &pgno */, (*Op)(unsafe.Pointer(pOp)).Fp3)
if !(rc != 0) {
- goto __679
+ goto __688
}
goto abort_due_to_error
-__679:
+__688:
;
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(*(*int32)(unsafe.Pointer(bp + 644 /* pgno */)))
- goto __8
+ goto __10
// Opcode: SqlExec * * * P4 *
//
// Run the SQL statement or statements specified in the P4 string.
-__131:
+__133:
;
(*Sqlite3)(unsafe.Pointer(db)).FnSqlExec++
rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)), uintptr(0), uintptr(0), uintptr(0))
(*Sqlite3)(unsafe.Pointer(db)).FnSqlExec--
if !(rc != 0) {
- goto __680
+ goto __689
}
goto abort_due_to_error
-__680:
+__689:
;
- goto __8
+ goto __10
// Opcode: ParseSchema P1 * * P4 *
//
@@ -64326,7 +65464,7 @@ __680:
//
// This opcode invokes the parser to create a new virtual machine,
// then runs the new virtual machine. It is thus a re-entrant opcode.
-__132:
+__134:
// Any prepared statement that invokes this opcode will hold mutexes
// on every btree. This is a prerequisite for invoking
@@ -64335,30 +65473,30 @@ __132:
iDb3 = (*Op)(unsafe.Pointer(pOp)).Fp1
if !(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)) == uintptr(0)) {
- goto __681
+ goto __690
}
Xsqlite3SchemaClear(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb3)*32)).FpSchema)
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) &= (^U32(crt.Int32FromInt32(0x0010)))
rc = Xsqlite3InitOne(tls, db, iDb3, (p + 168 /* &.zErrMsg */), uint32(0x0001))
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) |= (U32(0x0001))
crt.SetBitFieldPtr16Uint32(p+200 /* &.expired */, Bft(0), 0, 0x3)
- goto __682
-__681:
+ goto __691
+__690:
- zMaster = ts + 5216 /* "sqlite_master" */
+ zMaster = ts + 5324 /* "sqlite_master" */
(*InitData)(unsafe.Pointer(bp + 648 /* &initData */)).Fdb = db
(*InitData)(unsafe.Pointer(bp + 648 /* &initData */)).FiDb = iDb3
(*InitData)(unsafe.Pointer(bp + 648 /* &initData */)).FpzErrMsg = (p + 168 /* &.zErrMsg */)
(*InitData)(unsafe.Pointer(bp + 648 /* &initData */)).FmInitFlags = U32(0)
zSql = Xsqlite3MPrintf(tls, db,
- ts+5230, /* "SELECT*FROM\"%w\"...." */
+ ts+5338, /* "SELECT*FROM\"%w\"...." */
crt.VaList(bp+64, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb3)*32)).FzDbSName, zMaster, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))))
if !(zSql == uintptr(0)) {
- goto __683
+ goto __692
}
rc = 7
- goto __684
-__683:
+ goto __693
+__692:
;
(*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(1)
(*InitData)(unsafe.Pointer(bp + 648 /* &initData */)).Frc = 0
@@ -64368,56 +65506,56 @@ __683:
f func(*crt.TLS, uintptr, int32, uintptr, uintptr) int32
}{Xsqlite3InitCallback})), bp+648 /* &initData */, uintptr(0))
if !(rc == 0) {
- goto __685
+ goto __694
}
rc = (*InitData)(unsafe.Pointer(bp + 648 /* &initData */)).Frc
-__685:
+__694:
;
if !((rc == 0) && ((*InitData)(unsafe.Pointer(bp+648 /* &initData */)).FnInitRow == U32(0))) {
- goto __686
+ goto __695
}
// The OP_ParseSchema opcode with a non-NULL P4 argument should parse
// at least one SQL statement. Any less than that indicates that
// the sqlite_master table is corrupt.
rc = Xsqlite3CorruptError(tls, 91260)
-__686:
+__695:
;
Xsqlite3DbFreeNN(tls, db, zSql)
(*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(0)
-__684:
+__693:
;
-__682:
+__691:
;
if !(rc != 0) {
- goto __687
+ goto __696
}
Xsqlite3ResetAllSchemasOfConnection(tls, db)
if !(rc == 7) {
- goto __688
+ goto __697
}
goto no_mem
-__688:
+__697:
;
goto abort_due_to_error
-__687:
+__696:
;
- goto __8
+ goto __10
// Opcode: LoadAnalysis P1 * * * *
//
// Read the sqlite_stat1 table for database P1 and load the content
// of that table into the internal index hash table. This will cause
// the analysis to be used when preparing all subsequent queries.
-__133:
+__135:
;
rc = Xsqlite3AnalysisLoad(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1)
if !(rc != 0) {
- goto __689
+ goto __698
}
goto abort_due_to_error
-__689:
+__698:
;
- goto __8
+ goto __10
// Opcode: DropTable P1 * * P4 *
//
@@ -64426,10 +65564,10 @@ __689:
// is dropped from disk (using the Destroy opcode) in order to keep
// the internal representation of the
// schema consistent with what is on disk.
-__134:
+__136:
;
Xsqlite3UnlinkAndDeleteTable(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
- goto __8
+ goto __10
// Opcode: DropIndex P1 * * P4 *
//
@@ -64438,10 +65576,10 @@ __134:
// is dropped from disk (using the Destroy opcode)
// in order to keep the internal representation of the
// schema consistent with what is on disk.
-__135:
+__137:
;
Xsqlite3UnlinkAndDeleteIndex(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
- goto __8
+ goto __10
// Opcode: DropTrigger P1 * * P4 *
//
@@ -64450,10 +65588,10 @@ __135:
// is dropped from disk (using the Destroy opcode) in order to keep
// the internal representation of the
// schema consistent with what is on disk.
-__136:
+__138:
;
Xsqlite3UnlinkAndDeleteTrigger(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
- goto __8
+ goto __10
// Opcode: IntegrityCk P1 P2 P3 P4 P5
//
@@ -64473,7 +65611,7 @@ __136:
// file, not the main database file.
//
// This opcode is used to implement the integrity_check pragma.
-__137: // Register keeping track of errors remaining
+__139: // Register keeping track of errors remaining
;
nRoot = (*Op)(unsafe.Pointer(pOp)).Fp2
@@ -64487,21 +65625,21 @@ __137: // Register keeping track of errors remaining
(int32(*(*I64)(unsafe.Pointer(pnErr /* &.u */))) + 1), bp+680 /* &nErr */)
Xsqlite3VdbeMemSetNull(tls, pIn1)
if !(*(*int32)(unsafe.Pointer(bp + 680 /* nErr */)) == 0) {
- goto __690
+ goto __699
}
- goto __691
-__690:
+ goto __700
+__699:
if !(z == uintptr(0)) {
- goto __692
+ goto __701
}
goto no_mem
- goto __693
-__692:
+ goto __702
+__701:
*(*I64)(unsafe.Pointer(pnErr /* &.u */ /* &.i */)) -= (I64(*(*int32)(unsafe.Pointer(bp + 680 /* nErr */)) - 1))
Xsqlite3VdbeMemSetStr(tls, pIn1, z, -1, uint8(1), *(*uintptr)(unsafe.Pointer(&struct{ f func(*crt.TLS, uintptr) }{Xsqlite3_free})))
-__693:
+__702:
;
-__691:
+__700:
;
updateMaxBlobsize(tls, pIn1)
Xsqlite3VdbeChangeEncoding(tls, pIn1, int32(encoding))
@@ -64514,24 +65652,24 @@ __691:
// held in register P1.
//
// An assertion fails if P2 is not an integer.
-__138: // in1, in2
+__140: // in1, in2
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pIn2 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0010) == 0) {
- goto __694
+ goto __703
}
if !(Xsqlite3VdbeMemSetRowSet(tls, pIn1) != 0) {
- goto __695
+ goto __704
}
goto no_mem
-__695:
+__704:
;
-__694:
+__703:
;
Xsqlite3RowSetInsert(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, *(*I64)(unsafe.Pointer(pIn2 /* &.u */)))
- goto __8
+ goto __10
// Opcode: RowSetRead P1 P2 P3 * *
// Synopsis: r[P3]=rowset(P1)
@@ -64540,24 +65678,24 @@ __694:
// and put that value into register P3.
// Or, if RowSet object P1 is initially empty, leave P3
// unchanged and jump to instruction P2.
-__139:
+__141:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !(((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0010) == 0) ||
(Xsqlite3RowSetNext(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, bp+688 /* &val */) == 0)) {
- goto __696
+ goto __705
}
// The boolean index is empty
Xsqlite3VdbeMemSetNull(tls, pIn1)
goto jump_to_p2_and_check_for_interrupt
- goto __697
-__696:
+ goto __706
+__705:
// A value was pulled from the index
;
Xsqlite3VdbeMemSetInt64(tls, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56), *(*I64)(unsafe.Pointer(bp + 688 /* val */)))
-__697:
+__706:
;
goto check_for_interrupt
@@ -64583,7 +65721,7 @@ __697:
// inserted, there is no need to search to see if the same value was
// previously inserted as part of set X (only if it was previously
// inserted as part of some other set).
-__140:
+__142:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
@@ -64592,37 +65730,37 @@ __140:
// If there is anything other than a rowset object in memory cell P1,
// delete it now and initialize P1 with an empty rowset
if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & 0x0010) == 0) {
- goto __698
+ goto __707
}
if !(Xsqlite3VdbeMemSetRowSet(tls, pIn1) != 0) {
- goto __699
+ goto __708
}
goto no_mem
-__699:
+__708:
;
-__698:
+__707:
;
if !(iSet != 0) {
- goto __700
+ goto __709
}
exists = Xsqlite3RowSetTest(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, iSet, *(*I64)(unsafe.Pointer(pIn3 /* &.u */)))
if !(exists != 0) {
- goto __701
+ goto __710
}
goto jump_to_p2
-__701:
+__710:
;
-__700:
+__709:
;
if !(iSet >= 0) {
- goto __702
+ goto __711
}
Xsqlite3RowSetInsert(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, *(*I64)(unsafe.Pointer(pIn3 /* &.u */)))
-__702:
+__711:
;
- goto __8
+ goto __10
// Opcode: Program P1 P2 P3 P4 P5
//
@@ -64638,7 +65776,7 @@ __702:
// P4 is a pointer to the VM containing the trigger program.
//
// If P5 is non-zero, then recursive program invocation is enabled.
-__141: // Token identifying trigger
+__143: // Token identifying trigger
pProgram = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
pRt = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
@@ -64655,37 +65793,37 @@ __141: // Token identifying trigger
// single trigger all have the same value for the SubProgram.token
// variable.
if !((*Op)(unsafe.Pointer(pOp)).Fp5 != 0) {
- goto __703
+ goto __712
}
t1 = (*SubProgram)(unsafe.Pointer(pProgram)).Ftoken
pFrame2 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
-__704:
+__713:
if !((pFrame2 != 0) && ((*VdbeFrame)(unsafe.Pointer(pFrame2)).Ftoken != t1)) {
- goto __706
+ goto __715
}
- goto __705
-__705:
+ goto __714
+__714:
pFrame2 = (*VdbeFrame)(unsafe.Pointer(pFrame2)).FpParent
- goto __704
- goto __706
-__706:
+ goto __713
+ goto __715
+__715:
;
if !(pFrame2 != 0) {
- goto __707
+ goto __716
}
- goto __8
-__707:
+ goto __10
+__716:
;
-__703:
+__712:
;
if !((*Vdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(10)*4))) {
- goto __708
+ goto __717
}
rc = 1
- Xsqlite3VdbeError(tls, p, ts+5273 /* "too many levels ..." */, 0)
+ Xsqlite3VdbeError(tls, p, ts+5381 /* "too many levels ..." */, 0)
goto abort_due_to_error
-__708:
+__717:
;
// Register pRt is used to store the memory required to save the state
@@ -64693,7 +65831,7 @@ __708:
// the trigger program. If this trigger has been fired before, then pRt
// is already allocated. Otherwise, it must be initialized.
if !((int32((*Mem)(unsafe.Pointer(pRt)).Fflags) & 0x0010) == 0) {
- goto __709
+ goto __718
}
// SubProgram.nMem is set to the number of memory cells used by the
// program stored in SubProgram.aOp. As well as these, one memory
@@ -64702,10 +65840,10 @@ __708:
nMem = ((*SubProgram)(unsafe.Pointer(pProgram)).FnMem + (*SubProgram)(unsafe.Pointer(pProgram)).FnCsr)
if !((*SubProgram)(unsafe.Pointer(pProgram)).FnCsr == 0) {
- goto __711
+ goto __720
}
nMem++
-__711:
+__720:
;
nByte2 = (int32((((((uint64(unsafe.Sizeof(VdbeFrame{}))) + uint64(7)) & ^uint64(crt.Int32FromInt32(7))) +
(uint64(nMem) * uint64(unsafe.Sizeof(Mem{})))) +
@@ -64713,10 +65851,10 @@ __711:
(uint64(((*SubProgram)(unsafe.Pointer(pProgram)).FnOp + 7) / 8))))
pFrame2 = Xsqlite3DbMallocZero(tls, db, uint64(nByte2))
if !(!(pFrame2 != 0)) {
- goto __712
+ goto __721
}
goto no_mem
-__712:
+__721:
;
Xsqlite3VdbeMemRelease(tls, pRt)
(*Mem)(unsafe.Pointer(pRt)).Fflags = (U16(0x0010 | 0x0400))
@@ -64738,24 +65876,24 @@ __712:
pEnd = (((pFrame2) + uintptr((((uint64(unsafe.Sizeof(VdbeFrame{}))) + uint64(7)) & ^uint64(crt.Int32FromInt32(7))))) + uintptr((*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChildMem)*56)
pMem2 = ((pFrame2) + uintptr((((uint64(unsafe.Sizeof(VdbeFrame{}))) + uint64(7)) & ^uint64(crt.Int32FromInt32(7)))))
-__713:
+__722:
if !(pMem2 != pEnd) {
- goto __715
+ goto __724
}
(*Mem)(unsafe.Pointer(pMem2)).Fflags = U16(0x0080)
(*Mem)(unsafe.Pointer(pMem2)).Fdb = db
- goto __714
-__714:
+ goto __723
+__723:
pMem2 += 56
- goto __713
- goto __715
-__715:
+ goto __722
+ goto __724
+__724:
;
- goto __710
-__709:
+ goto __719
+__718:
pFrame2 = (*Mem)(unsafe.Pointer(pRt)).Fz
-__710:
+__719:
;
(*Vdbe)(unsafe.Pointer(p)).FnFrame++
@@ -64790,12 +65928,12 @@ __710:
// The address of the cell in the parent frame is determined by adding
// the value of the P1 argument to the value of the P1 argument to the
// calling OP_Program instruction.
-__142:
+__144:
pOut = out2Prerelease(tls, p, pOp)
pFrame3 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
pIn = ((*VdbeFrame)(unsafe.Pointer(pFrame3)).FaMem + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp1+(*Op)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer(pFrame3)).FaOp+uintptr((*VdbeFrame)(unsafe.Pointer(pFrame3)).Fpc)*24)).Fp1))*56)
Xsqlite3VdbeMemShallowCopy(tls, pOut, pIn, 0x1000)
- goto __8
+ goto __10
// Opcode: FkCounter P1 P2 * * *
// Synopsis: fkctr[P1]+=P2
@@ -64804,25 +65942,25 @@ __142:
// If P1 is non-zero, the database constraint counter is incremented
// (deferred foreign key constraints). Otherwise, if P1 is zero, the
// statement counter is incremented (immediate foreign key constraints).
-__143:
+__145:
if !(((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00080000)) != 0) {
- goto __716
+ goto __725
}
- *(*I64)(unsafe.Pointer(db + 704 /* &.nDeferredImmCons */)) += (I64((*Op)(unsafe.Pointer(pOp)).Fp2))
- goto __717
-__716:
+ *(*I64)(unsafe.Pointer(db + 720 /* &.nDeferredImmCons */)) += (I64((*Op)(unsafe.Pointer(pOp)).Fp2))
+ goto __726
+__725:
if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
- goto __718
+ goto __727
}
- *(*I64)(unsafe.Pointer(db + 696 /* &.nDeferredCons */)) += (I64((*Op)(unsafe.Pointer(pOp)).Fp2))
- goto __719
-__718:
+ *(*I64)(unsafe.Pointer(db + 712 /* &.nDeferredCons */)) += (I64((*Op)(unsafe.Pointer(pOp)).Fp2))
+ goto __728
+__727:
*(*I64)(unsafe.Pointer(p + 80 /* &.nFkConstraint */)) += (I64((*Op)(unsafe.Pointer(pOp)).Fp2))
-__719:
+__728:
;
-__717:
+__726:
;
- goto __8
+ goto __10
// Opcode: FkIfZero P1 P2 * * *
// Synopsis: if fkctr[P1]==0 goto P2
@@ -64835,29 +65973,29 @@ __717:
// is zero (the one that counts deferred constraint violations). If P1 is
// zero, the jump is taken if the statement constraint-counter is zero
// (immediate foreign key constraint violations).
-__144: // jump
+__146: // jump
if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
- goto __720
+ goto __729
}
if !(((*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons == int64(0)) && ((*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons == int64(0))) {
- goto __722
+ goto __731
}
goto jump_to_p2
-__722:
+__731:
;
- goto __721
-__720:
+ goto __730
+__729:
;
if !(((*Vdbe)(unsafe.Pointer(p)).FnFkConstraint == int64(0)) && ((*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons == int64(0))) {
- goto __723
+ goto __732
}
goto jump_to_p2
-__723:
+__732:
;
-__721:
+__730:
;
- goto __8
+ goto __10
// Opcode: MemMax P1 P2 * * *
// Synopsis: r[P1]=max(r[P1],r[P2])
@@ -64869,39 +66007,39 @@ __721:
//
// This instruction throws an error if the memory cell is not initially
// an integer.
-__145:
+__147:
if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0) {
- goto __724
+ goto __733
}
pFrame4 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
-__726:
+__735:
if !((*VdbeFrame)(unsafe.Pointer(pFrame4)).FpParent != 0) {
- goto __728
+ goto __737
}
- goto __727
-__727:
+ goto __736
+__736:
pFrame4 = (*VdbeFrame)(unsafe.Pointer(pFrame4)).FpParent
- goto __726
- goto __728
-__728:
+ goto __735
+ goto __737
+__737:
;
pIn1 = ((*VdbeFrame)(unsafe.Pointer(pFrame4)).FaMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
- goto __725
-__724:
+ goto __734
+__733:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
-__725:
+__734:
;
Xsqlite3VdbeMemIntegerify(tls, pIn1)
pIn2 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
Xsqlite3VdbeMemIntegerify(tls, pIn2)
if !(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) < *(*I64)(unsafe.Pointer(pIn2 /* &.u */))) {
- goto __729
+ goto __738
}
*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) = *(*I64)(unsafe.Pointer(pIn2 /* &.u */))
-__729:
+__738:
;
- goto __8
+ goto __10
// Opcode: IfPos P1 P2 P3 * *
// Synopsis: if r[P1]>0 then r[P1]-=P3, goto P2
@@ -64912,17 +66050,17 @@ __729:
//
// If the initial value of register P1 is less than 1, then the
// value is unchanged and control passes through to the next instruction.
-__146: // jump, in1
+__148: // jump, in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) > int64(0)) {
- goto __730
+ goto __739
}
*(*I64)(unsafe.Pointer(pIn1 /* &.u */ /* &.i */)) -= (I64((*Op)(unsafe.Pointer(pOp)).Fp3))
goto jump_to_p2
-__730:
+__739:
;
- goto __8
+ goto __10
// Opcode: OffsetLimit P1 P2 P3 * *
// Synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)
@@ -64941,7 +66079,7 @@ __730:
// and r[P2] is set to -1.
//
// Otherwise, r[P2] is set to the sum of r[P1] and r[P3].
-__147:
+__149:
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
pIn3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
pOut = out2Prerelease(tls, p, pOp)
@@ -64953,7 +66091,7 @@ __147:
}
return int64(0)
}()) != 0)) {
- goto __731
+ goto __740
}
// If the LIMIT is less than or equal to zero, loop forever. This
// is documented. But also, if the LIMIT+OFFSET exceeds 2^63 then
@@ -64963,12 +66101,12 @@ __147:
// it would take nearly 300 years to actually reach the limit. So
// looping forever is a reasonable approximation.
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = int64(-1)
- goto __732
-__731:
+ goto __741
+__740:
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = *(*I64)(unsafe.Pointer(bp + 696 /* x3 */))
-__732:
+__741:
;
- goto __8
+ goto __10
// Opcode: IfNotZero P1 P2 * * *
// Synopsis: if r[P1]!=0 then r[P1]--, goto P2
@@ -64977,45 +66115,45 @@ __732:
// initially greater than zero, then decrement the value in register P1.
// If it is non-zero (negative or positive) and then also jump to P2.
// If register P1 is initially zero, leave it unchanged and fall through.
-__148: // jump, in1
+__150: // jump, in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) != 0) {
- goto __733
+ goto __742
}
if !(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) > int64(0)) {
- goto __734
+ goto __743
}
*(*I64)(unsafe.Pointer(pIn1 /* &.u */))--
-__734:
+__743:
;
goto jump_to_p2
-__733:
+__742:
;
- goto __8
+ goto __10
// Opcode: DecrJumpZero P1 P2 * * *
// Synopsis: if (--r[P1])==0 goto P2
//
// Register P1 must hold an integer. Decrement the value in P1
// and jump to P2 if the new value is exactly zero.
-__149: // jump, in1
+__151: // jump, in1
pIn1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) > ((int64(-1)) - (int64(0xffffffff) | (I64((int64(0x7fffffff))) << 32)))) {
- goto __735
+ goto __744
}
*(*I64)(unsafe.Pointer(pIn1 /* &.u */))--
-__735:
+__744:
;
if !(*(*I64)(unsafe.Pointer(pIn1 /* &.u */)) == int64(0)) {
- goto __736
+ goto __745
}
goto jump_to_p2
-__736:
+__745:
;
- goto __8
+ goto __10
// Opcode: AggStep * P2 P3 P4 P5
// Synopsis: accum=r[P3] step(r[P2@P5])
@@ -65053,17 +66191,17 @@ __736:
// the opcode is changed. In this way, the initialization of the
// sqlite3_context only happens once, instead of on each call to the
// step function.
-__150:
-__151:
+__152:
+__153:
;
n4 = int32((*Op)(unsafe.Pointer(pOp)).Fp5)
pCtx = Xsqlite3DbMallocRawNN(tls, db, (uint64((uint64(n4) * uint64(unsafe.Sizeof(uintptr(0)))) + ((uint64(unsafe.Sizeof(Sqlite3_context{})) + uint64(unsafe.Sizeof(Mem{}))) - uint64(unsafe.Sizeof(uintptr(0)))))))
if !(pCtx == uintptr(0)) {
- goto __737
+ goto __746
}
goto no_mem
-__737:
+__746:
;
(*Sqlite3_context)(unsafe.Pointer(pCtx)).FpMem = uintptr(0)
(*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut = ((pCtx + 48 /* &.argv */) + uintptr(n4)*8)
@@ -65080,7 +66218,7 @@ __737:
// OP_AggInverse must have P1==1 and OP_AggStep must have P1==0
(*Op)(unsafe.Pointer(pOp)).Fopcode = U8(155)
-__152:
+__154:
;
pCtx1 = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
pMem3 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
@@ -65090,74 +66228,74 @@ __152:
// checks to see if the register array has changed, and if so it
// reinitializes the relavant parts of the sqlite3_context object
if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpMem != pMem3) {
- goto __738
+ goto __747
}
(*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpMem = pMem3
i4 = (int32((*Sqlite3_context)(unsafe.Pointer(pCtx1)).Fargc) - 1)
-__739:
+__748:
if !(i4 >= 0) {
- goto __741
+ goto __750
}
*(*uintptr)(unsafe.Pointer((pCtx1 + 48 /* &.argv */) + uintptr(i4)*8)) = (aMem + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp2+i4))*56)
- goto __740
-__740:
+ goto __749
+__749:
i4--
- goto __739
- goto __741
-__741:
+ goto __748
+ goto __750
+__750:
;
-__738:
+__747:
;
(*Mem)(unsafe.Pointer(pMem3)).Fn++
if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
- goto __742
+ goto __751
}
(*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpFunc + 48 /* &.xInverse */))))(tls, pCtx1, int32((*Sqlite3_context)(unsafe.Pointer(pCtx1)).Fargc), pCtx1+48 /* &.argv */)
- goto __743
-__742:
+ goto __752
+__751:
(*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpFunc + 24 /* &.xSFunc */))))(tls, pCtx1, int32((*Sqlite3_context)(unsafe.Pointer(pCtx1)).Fargc), pCtx1+48 /* &.argv */)
-__743:
+__752:
; // IMP: R-24505-23230
if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0) {
- goto __744
+ goto __753
}
if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0) {
- goto __745
+ goto __754
}
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+88, Xsqlite3_value_text(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)))
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+88, Xsqlite3_value_text(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)))
rc = (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError
-__745:
+__754:
;
if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0) {
- goto __746
+ goto __755
}
i4 = (*Op)(unsafe.Pointer(pOp + crt.UintptrFromInt32(-1)*24)).Fp1
if !(i4 != 0) {
- goto __747
+ goto __756
}
Xsqlite3VdbeMemSetInt64(tls, (aMem + uintptr(i4)*56), int64(1))
-__747:
+__756:
;
(*Sqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag = U8(0)
-__746:
+__755:
;
Xsqlite3VdbeMemRelease(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)
(*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)).Fflags = U16(0x0001)
(*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError = 0
if !(rc != 0) {
- goto __748
+ goto __757
}
goto abort_due_to_error
-__748:
+__757:
;
-__744:
+__753:
;
- goto __8
+ goto __10
// Opcode: AggFinal P1 P2 * P4 *
// Synopsis: accum=r[P1] N=P2
@@ -65183,41 +66321,41 @@ __744:
// functions that can take varying numbers of arguments. The
// P4 argument is only needed for the case where
// the step function was not previously called.
-__153:
-__154:
+__155:
+__156:
;
pMem4 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)
if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
- goto __749
+ goto __758
}
rc = Xsqlite3VdbeMemAggValue(tls, pMem4, (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56), *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
pMem4 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
- goto __750
-__749:
+ goto __759
+__758:
rc = Xsqlite3VdbeMemFinalize(tls, pMem4, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
-__750:
+__759:
;
if !(rc != 0) {
- goto __751
+ goto __760
}
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+96, Xsqlite3_value_text(tls, pMem4)))
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+96, Xsqlite3_value_text(tls, pMem4)))
goto abort_due_to_error
-__751:
+__760:
;
Xsqlite3VdbeChangeEncoding(tls, pMem4, int32(encoding))
updateMaxBlobsize(tls, pMem4)
if !(Xsqlite3VdbeMemTooBig(tls, pMem4) != 0) {
- goto __752
+ goto __761
}
goto too_big
-__752:
+__761:
;
- goto __8
+ goto __10
// Opcode: Checkpoint P1 P2 P3 * *
//
@@ -65229,7 +66367,7 @@ __752:
// in the WAL that have been checkpointed after the checkpoint
// completes into mem[P3+2]. However on an error, mem[P3+1] and
// mem[P3+2] are initialized to -1.
-__155: // Write results here
+__157: // Write results here
;
*(*int32)(unsafe.Pointer(bp + 704 /* &aRes[0] */ + uintptr(0)*4)) = 0
@@ -65237,34 +66375,34 @@ __155: // Write results here
rc = Xsqlite3Checkpoint(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp2, (bp + 704 /* &aRes */ + uintptr(1)*4), (bp + 704 /* &aRes */ + uintptr(2)*4))
if !(rc != 0) {
- goto __753
+ goto __762
}
if !(rc != 5) {
- goto __754
+ goto __763
}
goto abort_due_to_error
-__754:
+__763:
;
rc = 0
*(*int32)(unsafe.Pointer(bp + 704 /* &aRes[0] */ + uintptr(0)*4)) = 1
-__753:
+__762:
;
i5 = 0
pMem5 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
-__755:
+__764:
if !(i5 < 3) {
- goto __757
+ goto __766
}
Xsqlite3VdbeMemSetInt64(tls, pMem5, I64(*(*int32)(unsafe.Pointer(bp + 704 /* &aRes[0] */ + uintptr(i5)*4))))
- goto __756
-__756:
+ goto __765
+__765:
i5++
pMem5 += 56
- goto __755
- goto __757
-__757:
+ goto __764
+ goto __766
+__766:
;
- goto __8
+ goto __10
// Opcode: JournalMode P1 P2 P3 * *
//
@@ -65276,7 +66414,7 @@ __757:
// If changing into or out of WAL mode the procedure is more complicated.
//
// Write a string containing the final journal-mode to register P2.
-__156: // Name of database file for pPager
+__158: // Name of database file for pPager
pOut = out2Prerelease(tls, p, pOp)
eNew = (*Op)(unsafe.Pointer(pOp)).Fp3
@@ -65285,16 +66423,16 @@ __156: // Name of database file for pPager
pPager = Xsqlite3BtreePager(tls, pBt1)
eOld = Xsqlite3PagerGetJournalMode(tls, pPager)
if !(eNew == (-1)) {
- goto __758
+ goto __767
}
eNew = eOld
-__758:
+__767:
;
if !(!(Xsqlite3PagerOkToChangeJournalMode(tls, pPager) != 0)) {
- goto __759
+ goto __768
}
eNew = eOld
-__759:
+__768:
;
zFilename = Xsqlite3PagerFilename(tls, pPager, 1)
@@ -65304,34 +66442,34 @@ __759:
if !((eNew == 5) &&
((Xsqlite3Strlen30(tls, zFilename) == 0) || // Temp file
!(Xsqlite3PagerWalSupported(tls, pPager) != 0))) {
- goto __760
+ goto __769
}
eNew = eOld
-__760:
+__769:
;
if !((eNew != eOld) &&
((eOld == 5) || (eNew == 5))) {
- goto __761
+ goto __770
}
if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0) || ((*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > 1)) {
- goto __762
+ goto __771
}
rc = 1
Xsqlite3VdbeError(tls, p,
- ts+5310, /* "cannot change %s..." */
+ ts+5418, /* "cannot change %s..." */
crt.VaList(bp+104, func() uintptr {
if eNew == 5 {
- return ts + 5362 /* "into" */
+ return ts + 5470 /* "into" */
}
- return ts + 5367 /* "out of" */
+ return ts + 5475 /* "out of" */
}()))
goto abort_due_to_error
- goto __763
-__762:
+ goto __772
+__771:
if !(eOld == 5) {
- goto __764
+ goto __773
}
// If leaving WAL mode, close the log file. If successful, the call
// to PagerCloseWal() checkpoints and deletes the write-ahead-log
@@ -65339,29 +66477,29 @@ __762:
// after a successful return.
rc = Xsqlite3PagerCloseWal(tls, pPager, db)
if !(rc == 0) {
- goto __766
+ goto __775
}
Xsqlite3PagerSetJournalMode(tls, pPager, eNew)
-__766:
+__775:
;
- goto __765
-__764:
+ goto __774
+__773:
if !(eOld == 4) {
- goto __767
+ goto __776
}
// Cannot transition directly from MEMORY to WAL. Use mode OFF
// as an intermediate
Xsqlite3PagerSetJournalMode(tls, pPager, 2)
-__767:
+__776:
;
-__765:
+__774:
;
// Open a transaction on the database file. Regardless of the journal
// mode, this transaction always uses a rollback journal.
if !(rc == 0) {
- goto __768
+ goto __777
}
rc = Xsqlite3BtreeSetVersion(tls, pBt1, func() int32 {
if eNew == 5 {
@@ -65369,18 +66507,18 @@ __765:
}
return 1
}())
-__768:
+__777:
;
-__763:
+__772:
;
-__761:
+__770:
;
if !(rc != 0) {
- goto __769
+ goto __778
}
eNew = eOld
-__769:
+__778:
;
eNew = Xsqlite3PagerSetJournalMode(tls, pPager, eNew)
@@ -65390,12 +66528,12 @@ __769:
(*Mem)(unsafe.Pointer(pOut)).Fenc = U8(1)
Xsqlite3VdbeChangeEncoding(tls, pOut, int32(encoding))
if !(rc != 0) {
- goto __770
+ goto __779
}
goto abort_due_to_error
-__770:
+__779:
;
- goto __8
+ goto __10
// Opcode: Vacuum P1 P2 * * *
//
@@ -65405,7 +66543,7 @@ __770:
// If P2 is not zero, then it is a register holding a string which is
// the file into which the result of vacuum should be written. When
// P2 is zero, the vacuum overwrites the original database.
-__157:
+__159:
;
rc = Xsqlite3RunVacuum(tls, (p + 168 /* &.zErrMsg */), db, (*Op)(unsafe.Pointer(pOp)).Fp1,
func() uintptr {
@@ -65415,38 +66553,38 @@ __157:
return uintptr(0)
}())
if !(rc != 0) {
- goto __771
+ goto __780
}
goto abort_due_to_error
-__771:
+__780:
;
- goto __8
+ goto __10
// Opcode: IncrVacuum P1 P2 * * *
//
// Perform a single step of the incremental vacuum procedure on
// the P1 database. If the vacuum has finished, jump to instruction
// P2. Otherwise, fall through to the next instruction.
-__158:
+__160:
;
pBt2 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt
rc = Xsqlite3BtreeIncrVacuum(tls, pBt2)
if !(rc != 0) {
- goto __772
+ goto __781
}
if !(rc != 101) {
- goto __773
+ goto __782
}
goto abort_due_to_error
-__773:
+__782:
;
rc = 0
goto jump_to_p2
-__772:
+__781:
;
- goto __8
+ goto __10
// Opcode: Expire P1 P2 * * *
//
@@ -65463,40 +66601,40 @@ __772:
// The P2==1 case occurs when a CREATE INDEX or similar schema change happens
// that might help the statement run faster but which does not affect the
// correctness of operation.
-__159:
+__161:
;
if !(!((*Op)(unsafe.Pointer(pOp)).Fp1 != 0)) {
- goto __774
+ goto __783
}
Xsqlite3ExpirePreparedStatements(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp2)
- goto __775
-__774:
+ goto __784
+__783:
crt.SetBitFieldPtr16Uint32(p+200 /* &.expired */, (Bft((*Op)(unsafe.Pointer(pOp)).Fp2 + 1)), 0, 0x3)
-__775:
+__784:
;
- goto __8
+ goto __10
// Opcode: CursorLock P1 * * * *
//
// Lock the btree to which cursor P1 is pointing so that the btree cannot be
// written by an other cursor.
-__160:
+__162:
;
pC26 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
Xsqlite3BtreeCursorPin(tls, *(*uintptr)(unsafe.Pointer(pC26 + 56 /* &.uc */)))
- goto __8
+ goto __10
// Opcode: CursorUnlock P1 * * * *
//
// Unlock the btree to which cursor P1 is pointing so that it can be
// written by other cursors.
-__161:
+__163:
;
pC27 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
Xsqlite3BtreeCursorUnpin(tls, *(*uintptr)(unsafe.Pointer(pC27 + 56 /* &.uc */)))
- goto __8
+ goto __10
// Opcode: TableLock P1 P2 P3 P4 *
// Synopsis: iDb=P1 root=P2 write=P3
@@ -65512,30 +66650,30 @@ __161:
//
// P4 contains a pointer to the name of the table being locked. This is only
// used to generate an error message if the lock cannot be obtained.
-__162:
+__164:
isWriteLock = U8((*Op)(unsafe.Pointer(pOp)).Fp3)
if !((isWriteLock != 0) || (uint64(0) == ((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00000400)))) {
- goto __776
+ goto __785
}
p13 = (*Op)(unsafe.Pointer(pOp)).Fp1
rc = Xsqlite3BtreeLockTable(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(p13)*32)).FpBt, (*Op)(unsafe.Pointer(pOp)).Fp2, isWriteLock)
if !(rc != 0) {
- goto __777
+ goto __786
}
if !((rc & 0xFF) == 6) {
- goto __778
+ goto __787
}
z1 = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
- Xsqlite3VdbeError(tls, p, ts+5374 /* "database table i..." */, crt.VaList(bp+112, z1))
-__778:
+ Xsqlite3VdbeError(tls, p, ts+5482 /* "database table i..." */, crt.VaList(bp+112, z1))
+__787:
;
goto abort_due_to_error
-__777:
+__786:
;
-__776:
+__785:
;
- goto __8
+ goto __10
// Opcode: VBegin * * * P4 *
//
@@ -65545,28 +66683,28 @@ __776:
// Also, whether or not P4 is set, check that this is not being called from
// within a callback to a virtual table xSync() method. If it is, the error
// code will be set to SQLITE_LOCKED.
-__163:
+__165:
pVTab = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
rc = Xsqlite3VtabBegin(tls, db, pVTab)
if !(pVTab != 0) {
- goto __779
+ goto __788
}
Xsqlite3VtabImportErrmsg(tls, p, (*VTable)(unsafe.Pointer(pVTab)).FpVtab)
-__779:
+__788:
;
if !(rc != 0) {
- goto __780
+ goto __789
}
goto abort_due_to_error
-__780:
+__789:
;
- goto __8
+ goto __10
// Opcode: VCreate P1 P2 * * *
//
// P2 is a register that holds the name of a virtual table in database
// P1. Call the xCreate method for that table.
-__164: // Name of the virtual table
+__166: // Name of the virtual table
crt.Xmemset(tls, bp+720 /* &sMem1 */, 0, uint64(unsafe.Sizeof(Mem{})))
(*Mem)(unsafe.Pointer(bp + 720 /* &sMem1 */)).Fdb = db
@@ -65578,62 +66716,62 @@ __164: // Name of the virtual table
zTab = Xsqlite3_value_text(tls, bp+720 /* &sMem1 */)
if !(zTab != 0) {
- goto __781
+ goto __790
}
rc = Xsqlite3VtabCallCreate(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, zTab, (p + 168 /* &.zErrMsg */))
-__781:
+__790:
;
Xsqlite3VdbeMemRelease(tls, bp+720 /* &sMem1 */)
if !(rc != 0) {
- goto __782
+ goto __791
}
goto abort_due_to_error
-__782:
+__791:
;
- goto __8
+ goto __10
// Opcode: VDestroy P1 * * P4 *
//
// P4 is the name of a virtual table in database P1. Call the xDestroy method
// of that table.
-__165:
+__167:
(*Sqlite3)(unsafe.Pointer(db)).FnVDestroy++
rc = Xsqlite3VtabCallDestroy(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))
(*Sqlite3)(unsafe.Pointer(db)).FnVDestroy--
if !(rc != 0) {
- goto __783
+ goto __792
}
goto abort_due_to_error
-__783:
+__792:
;
- goto __8
+ goto __10
// Opcode: VOpen P1 * * P4 *
//
// P4 is a pointer to a virtual table object, an sqlite3_vtab structure.
// P1 is a cursor number. This opcode opens a cursor to the virtual
// table and stores that cursor in P1.
-__166:
+__168:
;
pCur1 = uintptr(0)
*(*uintptr)(unsafe.Pointer(bp + 776 /* pVCur */)) = uintptr(0)
pVtab1 = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))).FpVtab
if !((pVtab1 == uintptr(0)) || ((*Sqlite3_vtab)(unsafe.Pointer(pVtab1)).FpModule == uintptr(0))) {
- goto __784
+ goto __793
}
rc = 6
goto abort_due_to_error
-__784:
+__793:
;
pModule1 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab1)).FpModule
rc = (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer((pModule1 + 48 /* &.xOpen */))))(tls, pVtab1, bp+776 /* &pVCur */)
Xsqlite3VtabImportErrmsg(tls, p, pVtab1)
if !(rc != 0) {
- goto __785
+ goto __794
}
goto abort_due_to_error
-__785:
+__794:
;
// Initialize sqlite3_vtab_cursor base class
@@ -65642,18 +66780,18 @@ __785:
// Initialize vdbe cursor object
pCur1 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, 0, -1, uint8(2))
if !(pCur1 != 0) {
- goto __786
+ goto __795
}
*(*uintptr)(unsafe.Pointer(pCur1 + 56 /* &.uc */)) = *(*uintptr)(unsafe.Pointer(bp + 776 /* pVCur */))
(*Sqlite3_vtab)(unsafe.Pointer(pVtab1)).FnRef++
- goto __787
-__786:
+ goto __796
+__795:
;
(*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer((pModule1 + 56 /* &.xClose */))))(tls, *(*uintptr)(unsafe.Pointer(bp + 776 /* pVCur */)))
goto no_mem
-__787:
+__796:
;
- goto __8
+ goto __10
// Opcode: VFilter P1 P2 P3 P4 *
// Synopsis: iplan=r[P3] zplan='P4'
@@ -65673,7 +66811,7 @@ __787:
// xFilter as argv. Register P3+2 becomes argv[0] when passed to xFilter.
//
// A jump is made to P2 if the result set after filtering would be empty.
-__167:
+__169:
pQuery = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
pArgc = (pQuery + uintptr(1)*56)
@@ -65692,36 +66830,36 @@ __167:
res12 = 0
apArg = (*Vdbe)(unsafe.Pointer(p)).FapArg
i6 = 0
-__788:
+__797:
if !(i6 < nArg) {
- goto __790
+ goto __799
}
*(*uintptr)(unsafe.Pointer(apArg + uintptr(i6)*8)) = (pArgc + uintptr((i6+1))*56)
- goto __789
-__789:
+ goto __798
+__798:
i6++
- goto __788
- goto __790
-__790:
+ goto __797
+ goto __799
+__799:
;
rc = (*(*func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer((pModule2 + 64 /* &.xFilter */))))(tls, pVCur1, iQuery, *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)), nArg, apArg)
Xsqlite3VtabImportErrmsg(tls, p, pVtab2)
if !(rc != 0) {
- goto __791
+ goto __800
}
goto abort_due_to_error
-__791:
+__800:
;
res12 = (*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer((pModule2 + 80 /* &.xEof */))))(tls, pVCur1)
(*VdbeCursor)(unsafe.Pointer(pCur2)).FnullRow = U8(0)
if !(res12 != 0) {
- goto __792
+ goto __801
}
goto jump_to_p2
-__792:
+__801:
;
- goto __8
+ goto __10
// Opcode: VColumn P1 P2 P3 * P5
// Synopsis: r[P3]=vcolumn(P2)
@@ -65736,18 +66874,18 @@ __792:
// table implementation. The P5 column might also contain other
// bits (OPFLAG_LENGTHARG or OPFLAG_TYPEOFARG) but those bits are
// unused by OP_VColumn.
-__168:
+__170:
pCur3 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
pDest1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !((*VdbeCursor)(unsafe.Pointer(pCur3)).FnullRow != 0) {
- goto __793
+ goto __802
}
Xsqlite3VdbeMemSetNull(tls, pDest1)
- goto __8
-__793:
+ goto __10
+__802:
;
pVtab3 = (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur3 + 56 /* &.uc */)))).FpVtab
pModule3 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab3)).FpModule
@@ -65756,58 +66894,58 @@ __793:
(*Sqlite3_context)(unsafe.Pointer(bp + 784 /* &sContext */)).FpOut = pDest1
if !((int32((*Op)(unsafe.Pointer(pOp)).Fp5) & 0x01) != 0) {
- goto __794
+ goto __803
}
Xsqlite3VdbeMemSetNull(tls, pDest1)
(*Mem)(unsafe.Pointer(pDest1)).Fflags = (U16(0x0001 | 0x4000))
*(*int32)(unsafe.Pointer(pDest1 /* &.u */)) = 0
- goto __795
-__794:
+ goto __804
+__803:
(*Mem)(unsafe.Pointer(pDest1)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pDest1))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0001))
-__795:
+__804:
;
rc = (*(*func(*crt.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer((pModule3 + 88 /* &.xColumn */))))(tls, *(*uintptr)(unsafe.Pointer(pCur3 + 56 /* &.uc */)), bp+784 /* &sContext */, (*Op)(unsafe.Pointer(pOp)).Fp2)
Xsqlite3VtabImportErrmsg(tls, p, pVtab3)
if !((*Sqlite3_context)(unsafe.Pointer(bp+784 /* &sContext */)).FisError > 0) {
- goto __796
+ goto __805
}
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+120, Xsqlite3_value_text(tls, pDest1)))
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+120, Xsqlite3_value_text(tls, pDest1)))
rc = (*Sqlite3_context)(unsafe.Pointer(bp + 784 /* &sContext */)).FisError
-__796:
+__805:
;
Xsqlite3VdbeChangeEncoding(tls, pDest1, int32(encoding))
updateMaxBlobsize(tls, pDest1)
if !(Xsqlite3VdbeMemTooBig(tls, pDest1) != 0) {
- goto __797
+ goto __806
}
goto too_big
-__797:
+__806:
;
if !(rc != 0) {
- goto __798
+ goto __807
}
goto abort_due_to_error
-__798:
+__807:
;
- goto __8
+ goto __10
// Opcode: VNext P1 P2 * * *
//
// Advance virtual table P1 to the next row in its result set and
// jump to instruction P2. Or, if the virtual table has reached
// the end of its result set, then fall through to the next instruction.
-__169:
+__171:
res13 = 0
pCur4 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
if !((*VdbeCursor)(unsafe.Pointer(pCur4)).FnullRow != 0) {
- goto __799
+ goto __808
}
- goto __8
-__799:
+ goto __10
+__808:
;
pVtab4 = (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur4 + 56 /* &.uc */)))).FpVtab
pModule4 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab4)).FpModule
@@ -65820,19 +66958,19 @@ __799:
rc = (*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer((pModule4 + 72 /* &.xNext */))))(tls, *(*uintptr)(unsafe.Pointer(pCur4 + 56 /* &.uc */)))
Xsqlite3VtabImportErrmsg(tls, p, pVtab4)
if !(rc != 0) {
- goto __800
+ goto __809
}
goto abort_due_to_error
-__800:
+__809:
;
res13 = (*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer((pModule4 + 80 /* &.xEof */))))(tls, *(*uintptr)(unsafe.Pointer(pCur4 + 56 /* &.uc */)))
if !(!(res13 != 0)) {
- goto __801
+ goto __810
}
// If there is data, jump to P2
goto jump_to_p2_and_check_for_interrupt
-__801:
+__810:
;
goto check_for_interrupt
@@ -65841,7 +66979,7 @@ __801:
// P4 is a pointer to a virtual table object, an sqlite3_vtab structure.
// This opcode invokes the corresponding xRename method. The value
// in register P1 is passed as the zName argument to the xRename method.
-__170:
+__172:
isLegacy = (int32((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x04000000)))
*(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) |= (uint64(0x04000000))
@@ -65850,27 +66988,27 @@ __170:
rc = Xsqlite3VdbeChangeEncoding(tls, pName, 1)
if !(rc != 0) {
- goto __802
+ goto __811
}
goto abort_due_to_error
-__802:
+__811:
;
rc = (*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(((*Sqlite3_vtab)(unsafe.Pointer(pVtab5)).FpModule + 152 /* &.xRename */))))(tls, pVtab5, (*Mem)(unsafe.Pointer(pName)).Fz)
if !(isLegacy == 0) {
- goto __803
+ goto __812
}
*(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) &= (^uint64(crt.Uint64FromUint64(uint64(0x04000000))))
-__803:
+__812:
;
Xsqlite3VtabImportErrmsg(tls, p, pVtab5)
crt.SetBitFieldPtr16Uint32(p+200 /* &.expired */, Bft(0), 0, 0x3)
if !(rc != 0) {
- goto __804
+ goto __813
}
goto abort_due_to_error
-__804:
+__813:
;
- goto __8
+ goto __10
// Opcode: VUpdate P1 P2 P3 P4 P5
// Synopsis: data=r[P3@P2]
@@ -65898,98 +67036,98 @@ __804:
//
// P5 is the error actions (OE_Replace, OE_Fail, OE_Ignore, etc) to
// apply in the case of a constraint failure on an insert or update.
-__171:
+__173:
;
if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
- goto __805
+ goto __814
}
goto no_mem
-__805:
+__814:
;
pVtab6 = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))).FpVtab
if !((pVtab6 == uintptr(0)) || ((*Sqlite3_vtab)(unsafe.Pointer(pVtab6)).FpModule == uintptr(0))) {
- goto __806
+ goto __815
}
rc = 6
goto abort_due_to_error
-__806:
+__815:
;
pModule5 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab6)).FpModule
nArg1 = (*Op)(unsafe.Pointer(pOp)).Fp2
if !((*Sqlite3_module)(unsafe.Pointer(pModule5)).FxUpdate != 0) {
- goto __807
+ goto __816
}
vtabOnConflict = (*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict
apArg1 = (*Vdbe)(unsafe.Pointer(p)).FapArg
pX1 = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
i7 = 0
-__808:
+__817:
if !(i7 < nArg1) {
- goto __810
+ goto __819
}
*(*uintptr)(unsafe.Pointer(apArg1 + uintptr(i7)*8)) = pX1
pX1 += 56
- goto __809
-__809:
+ goto __818
+__818:
i7++
- goto __808
- goto __810
-__810:
+ goto __817
+ goto __819
+__819:
;
(*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict = U8((*Op)(unsafe.Pointer(pOp)).Fp5)
rc = (*(*func(*crt.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer((pModule5 + 104 /* &.xUpdate */))))(tls, pVtab6, nArg1, apArg1, bp+840 /* &rowid1 */)
(*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict = vtabOnConflict
Xsqlite3VtabImportErrmsg(tls, p, pVtab6)
if !((rc == 0) && ((*Op)(unsafe.Pointer(pOp)).Fp1 != 0)) {
- goto __811
+ goto __820
}
(*Sqlite3)(unsafe.Pointer(db)).FlastRowid = *(*Sqlite_int64)(unsafe.Pointer(bp + 840 /* rowid1 */))
-__811:
+__820:
;
if !(((rc & 0xff) == 19) && ((*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */)))).FbConstraint != 0)) {
- goto __812
+ goto __821
}
if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5) == 4) {
- goto __814
+ goto __823
}
rc = 0
- goto __815
-__814:
+ goto __824
+__823:
(*Vdbe)(unsafe.Pointer(p)).FerrorAction = func() uint8 {
if int32((*Op)(unsafe.Pointer(pOp)).Fp5) == 5 {
return uint8(2)
}
return uint8((*Op)(unsafe.Pointer(pOp)).Fp5)
}()
-__815:
+__824:
;
- goto __813
-__812:
+ goto __822
+__821:
(*Vdbe)(unsafe.Pointer(p)).FnChange++
-__813:
+__822:
;
if !(rc != 0) {
- goto __816
+ goto __825
}
goto abort_due_to_error
-__816:
+__825:
;
-__807:
+__816:
;
- goto __8
+ goto __10
// Opcode: Pagecount P1 P2 * * *
//
// Write the current number of pages in database P1 to memory cell P2.
-__172: // out2
+__174: // out2
pOut = out2Prerelease(tls, p, pOp)
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(Xsqlite3BtreeLastPage(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt))
- goto __8
+ goto __10
// Opcode: MaxPgcnt P1 P2 P3 * *
//
@@ -65998,25 +67136,25 @@ __172: // out2
// do not change the maximum page count value if P3==0.
//
// Store the maximum page count after the change in register P2.
-__173:
+__175:
pOut = out2Prerelease(tls, p, pOp)
pBt3 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt
newMax = uint32(0)
if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
- goto __817
+ goto __826
}
newMax = Xsqlite3BtreeLastPage(tls, pBt3)
if !(newMax < uint32((*Op)(unsafe.Pointer(pOp)).Fp3)) {
- goto __818
+ goto __827
}
newMax = uint32((*Op)(unsafe.Pointer(pOp)).Fp3)
-__818:
+__827:
;
-__817:
+__826:
;
*(*I64)(unsafe.Pointer(pOut /* &.u */)) = I64(Xsqlite3BtreeMaxPageCount(tls, pBt3, int32(newMax)))
- goto __8
+ goto __10
// Opcode: Function P1 P2 P3 P4 *
// Synopsis: r[P3]=func(r[P2@NP])
@@ -66062,8 +67200,8 @@ __817:
// if they were, they throw an error.
//
// See also: AggStep, AggFinal, Function
-__174: // group
-__175:
+__176: // group
+__177:
;
pCtx2 = *(*uintptr)(unsafe.Pointer(pOp + 16 /* &.p4 */))
@@ -66073,24 +67211,24 @@ __175:
// reinitializes the relavant parts of the sqlite3_context object
pOut = (aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
if !((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpOut != pOut) {
- goto __819
+ goto __828
}
(*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpVdbe = p
(*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpOut = pOut
i8 = (int32((*Sqlite3_context)(unsafe.Pointer(pCtx2)).Fargc) - 1)
-__820:
+__829:
if !(i8 >= 0) {
- goto __822
+ goto __831
}
*(*uintptr)(unsafe.Pointer((pCtx2 + 48 /* &.argv */) + uintptr(i8)*8)) = (aMem + uintptr(((*Op)(unsafe.Pointer(pOp)).Fp2+i8))*56)
- goto __821
-__821:
+ goto __830
+__830:
i8--
- goto __820
- goto __822
-__822:
+ goto __829
+ goto __831
+__831:
;
-__819:
+__828:
;
(*Mem)(unsafe.Pointer(pOut)).Fflags = (U16((int32((*Mem)(unsafe.Pointer((pOut))).Fflags) & ^int32(crt.Int32FromInt32((0xc1bf | 0x4000)))) | 0x0001))
@@ -66099,42 +67237,42 @@ __819:
// If the function returned an error, throw an exception
if !((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0) {
- goto __823
+ goto __832
}
if !((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0) {
- goto __824
+ goto __833
}
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+128, Xsqlite3_value_text(tls, pOut)))
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+128, Xsqlite3_value_text(tls, pOut)))
rc = (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError
-__824:
+__833:
;
Xsqlite3VdbeDeleteAuxData(tls, db, (p + 288 /* &.pAuxData */), (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*Op)(unsafe.Pointer(pOp)).Fp1)
(*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError = 0
if !(rc != 0) {
- goto __825
+ goto __834
}
goto abort_due_to_error
-__825:
+__834:
;
-__823:
+__832:
;
// Copy the result of the function into register P3
if !((int32((*Mem)(unsafe.Pointer(pOut)).Fflags) & (0x0002 | 0x0010)) != 0) {
- goto __826
+ goto __835
}
Xsqlite3VdbeChangeEncoding(tls, pOut, int32(encoding))
if !(Xsqlite3VdbeMemTooBig(tls, pOut) != 0) {
- goto __827
+ goto __836
}
goto too_big
-__827:
+__836:
;
-__826:
+__835:
;
updateMaxBlobsize(tls, pOut)
- goto __8
+ goto __10
// Opcode: Trace P1 P2 * P4 *
//
@@ -66159,8 +67297,8 @@ __826:
//
// If P3 is not zero, then it is an address to jump to if an SQLITE_CORRUPT
// error is encountered.
-__176:
-__177:
+__178:
+__179:
// If the P4 argument is not NULL, then it must be an SQL comment string.
// The "--" string is broken up to prevent false-positives with srcck1.c.
@@ -66182,62 +67320,62 @@ __177:
}
return (*Vdbe)(unsafe.Pointer(p)).FzSql
}())) != uintptr(0))) {
- goto __828
+ goto __837
}
if !((int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace) & 0x40) != 0) {
- goto __829
+ goto __838
}
x4 = (*Sqlite3)(unsafe.Pointer(db)).FxTrace
z2 = Xsqlite3VdbeExpandSql(tls, p, zTrace)
(*(*func(*crt.TLS, uintptr, uintptr))(unsafe.Pointer(&x4)))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, z2)
Xsqlite3_free(tls, z2)
- goto __830
-__829:
+ goto __839
+__838:
if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec > 1) {
- goto __831
+ goto __840
}
- z3 = Xsqlite3MPrintf(tls, db, ts+5403 /* "-- %s" */, crt.VaList(bp+136, zTrace))
+ z3 = Xsqlite3MPrintf(tls, db, ts+5511 /* "-- %s" */, crt.VaList(bp+136, zTrace))
(*(*func(*crt.TLS, U32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer((db + 232 /* &.xTrace */))))(tls, uint32(0x01), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3)
Xsqlite3DbFree(tls, db, z3)
- goto __832
-__831:
+ goto __841
+__840:
(*(*func(*crt.TLS, U32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer((db + 232 /* &.xTrace */))))(tls, uint32(0x01), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, zTrace)
-__832:
+__841:
;
-__830:
+__839:
;
-__828:
+__837:
;
if !((*Op)(unsafe.Pointer(pOp)).Fp1 >= Xsqlite3Config.FiOnceResetThreshold) {
- goto __833
+ goto __842
}
if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 170) {
- goto __834
+ goto __843
}
- goto __8
-__834:
+ goto __10
+__843:
;
i9 = 1
-__835:
+__844:
if !(i9 < (*Vdbe)(unsafe.Pointer(p)).FnOp) {
- goto __837
+ goto __846
}
if !(int32((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr(i9)*24)).Fopcode) == 17) {
- goto __838
+ goto __847
}
(*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(i9)*24)).Fp1 = 0
-__838:
+__847:
;
- goto __836
-__836:
+ goto __845
+__845:
i9++
- goto __835
- goto __837
-__837:
+ goto __844
+ goto __846
+__846:
;
(*Op)(unsafe.Pointer(pOp)).Fp1 = 0
-__833:
+__842:
;
(*Op)(unsafe.Pointer(pOp)).Fp1++
*(*U32)(unsafe.Pointer((p + 212 /* &.aCounter */) + uintptr(6)*4))++
@@ -66251,60 +67389,76 @@ __833:
// is to say when the EXPLAIN QUERY PLAN syntax is used.)
// This opcode records information from the optimizer. It is the
// the same as a no-op. This opcodesnever appears in a real VM program.
-__178: // This is really OP_Noop, OP_Explain
+__180: // This is really OP_Noop, OP_Explain
;
- goto __8
-__8:
+ goto __10
+__10:
;
- goto __4
-__4:
+ goto __6
+__6:
pOp += 24
- goto __3
goto __5
-__5:
+ goto __7
+__7:
; // The end of the for(;;) loop the loops through opcodes
// If we reach this point, it means that execution is finished with
// an error of some kind.
abort_due_to_error:
if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
- goto __839
+ goto __848
}
rc = 7
-__839:
+__848:
;
if !(((*Vdbe)(unsafe.Pointer(p)).FzErrMsg == uintptr(0)) && (rc != (10 | (int32(12) << 8)))) {
- goto __840
+ goto __849
}
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+144, Xsqlite3ErrStr(tls, rc)))
-__840:
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+144, Xsqlite3ErrStr(tls, rc)))
+__849:
;
(*Vdbe)(unsafe.Pointer(p)).Frc = rc
Xsqlite3SystemError(tls, db, rc)
- Xsqlite3_log(tls, rc, ts+5409, /* "statement aborts..." */
+ Xsqlite3_log(tls, rc, ts+5517, /* "statement aborts..." */
crt.VaList(bp+152, (int32((int64(pOp)-int64(aOp))/24)), (*Vdbe)(unsafe.Pointer(p)).FzSql, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg))
Xsqlite3VdbeHalt(tls, p)
if !(rc == (10 | (int32(12) << 8))) {
- goto __841
+ goto __850
}
Xsqlite3OomFault(tls, db)
-__841:
+__850:
;
rc = 1
if !(int32(resetSchemaOnFault) > 0) {
- goto __842
+ goto __851
}
Xsqlite3ResetOneSchema(tls, db, (int32(resetSchemaOnFault) - 1))
-__842:
+__851:
;
// This is the only way out of this procedure. We have to
// release the mutexes on btrees that were acquired at the
// top.
vdbe_return:
+__852:
+ if !((nVmStep >= nProgressLimit) && ((*Sqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0))) {
+ goto __853
+ }
+ nProgressLimit = nProgressLimit + ((*Sqlite3)(unsafe.Pointer(db)).FnProgressOps)
+ if !((*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer((db + 480 /* &.xProgress */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg) != 0) {
+ goto __854
+ }
+ nProgressLimit = 0xffffffff
+ rc = 9
+ goto abort_due_to_error
+__854:
+ ;
+ goto __852
+__853:
+ ;
*(*U32)(unsafe.Pointer((p + 212 /* &.aCounter */) + uintptr(4)*4)) += (U32(int32(nVmStep)))
Xsqlite3VdbeLeave(tls, p)
@@ -66313,14 +67467,14 @@ vdbe_return:
// Jump to here if a string or blob larger than SQLITE_MAX_LENGTH
// is encountered.
too_big:
- Xsqlite3VdbeError(tls, p, ts+4725 /* "string or blob t..." */, 0)
+ Xsqlite3VdbeError(tls, p, ts+4833 /* "string or blob t..." */, 0)
rc = 18
goto abort_due_to_error
// Jump to here if a malloc() fails.
no_mem:
Xsqlite3OomFault(tls, db)
- Xsqlite3VdbeError(tls, p, ts+5441 /* "out of memory" */, 0)
+ Xsqlite3VdbeError(tls, p, ts+5549 /* "out of memory" */, 0)
rc = 7
goto abort_due_to_error
@@ -66334,13 +67488,13 @@ abort_due_to_interrupt:
rc = 9
}
(*Vdbe)(unsafe.Pointer(p)).Frc = rc
- Xsqlite3VdbeError(tls, p, ts+647 /* "%s" */, crt.VaList(bp+176, Xsqlite3ErrStr(tls, rc)))
+ Xsqlite3VdbeError(tls, p, ts+696 /* "%s" */, crt.VaList(bp+176, Xsqlite3ErrStr(tls, rc)))
goto abort_due_to_error
return int32(0)
}
-var azType = [4]uintptr{ts + 5455 /* "NOT NULL" */, ts + 5464 /* "UNIQUE" */, ts + 5471, /* "CHECK" */
- ts + 5477 /* "FOREIGN KEY" */} /* sqlite3.c:86234:25 */
+var azType = [4]uintptr{ts + 5563 /* "NOT NULL" */, ts + 5572 /* "UNIQUE" */, ts + 5579, /* "CHECK" */
+ ts + 5585 /* "FOREIGN KEY" */} /* sqlite3.c:86234:25 */
var aLTb = [6]uint8{uint8(1), uint8(0), uint8(0), uint8(1), uint8(1), uint8(0)} /* sqlite3.c:87258:32 */
var aEQb = [6]uint8{uint8(0), uint8(1), uint8(0), uint8(1), uint8(0), uint8(1)} /* sqlite3.c:87261:32 */
var aGTb = [6]uint8{uint8(1), uint8(0), uint8(1), uint8(0), uint8(0), uint8(1)} /* sqlite3.c:87264:32 */
@@ -66449,16 +67603,16 @@ func blobSeekToRow(tls *crt.TLS, p uintptr, iRow Sqlite3_int64, pzErr uintptr) i
}
if type1 < U32(12) {
- zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+5489, /* "cannot open valu..." */
+ zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+5597, /* "cannot open valu..." */
crt.VaList(bp, func() uintptr {
if type1 == U32(0) {
- return ts + 5518 /* "null" */
+ return ts + 5626 /* "null" */
}
return func() uintptr {
if type1 == U32(7) {
- return ts + 5523 /* "real" */
+ return ts + 5631 /* "real" */
}
- return ts + 5528 /* "integer" */
+ return ts + 5636 /* "integer" */
}()
}()))
rc = 1
@@ -66478,10 +67632,10 @@ func blobSeekToRow(tls *crt.TLS, p uintptr, iRow Sqlite3_int64, pzErr uintptr) i
rc = Xsqlite3_finalize(tls, (*Incrblob)(unsafe.Pointer(p)).FpStmt)
(*Incrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0)
if rc == 0 {
- zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+5536 /* "no such rowid: %..." */, crt.VaList(bp+8, iRow))
+ zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+5644 /* "no such rowid: %..." */, crt.VaList(bp+8, iRow))
rc = 1
} else {
- zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+647 /* "%s" */, crt.VaList(bp+16, Xsqlite3_errmsg(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb)))
+ zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+696 /* "%s" */, crt.VaList(bp+16, Xsqlite3_errmsg(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb)))
}
}
@@ -66544,21 +67698,21 @@ __4:
goto __5
}
pTab = uintptr(0)
- Xsqlite3ErrorMsg(tls, bp+48 /* &sParse */, ts+5556 /* "cannot open virt..." */, crt.VaList(bp, zTable))
+ Xsqlite3ErrorMsg(tls, bp+48 /* &sParse */, ts+5664 /* "cannot open virt..." */, crt.VaList(bp, zTable))
__5:
;
if !((pTab != 0) && !(((*Table)(unsafe.Pointer((pTab))).FtabFlags & U32(0x0080)) == U32(0))) {
goto __6
}
pTab = uintptr(0)
- Xsqlite3ErrorMsg(tls, bp+48 /* &sParse */, ts+5586 /* "cannot open tabl..." */, crt.VaList(bp+8, zTable))
+ Xsqlite3ErrorMsg(tls, bp+48 /* &sParse */, ts+5694 /* "cannot open tabl..." */, crt.VaList(bp+8, zTable))
__6:
;
if !((pTab != 0) && ((*Table)(unsafe.Pointer(pTab)).FpSelect != 0)) {
goto __7
}
pTab = uintptr(0)
- Xsqlite3ErrorMsg(tls, bp+48 /* &sParse */, ts+5622 /* "cannot open view..." */, crt.VaList(bp+16, zTable))
+ Xsqlite3ErrorMsg(tls, bp+48 /* &sParse */, ts+5730 /* "cannot open view..." */, crt.VaList(bp+16, zTable))
__7:
;
if !(!(pTab != 0)) {
@@ -66603,7 +67757,7 @@ __12:
goto __14
}
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)))
- *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)) = Xsqlite3MPrintf(tls, db, ts+5643 /* "no such column: ..." */, crt.VaList(bp+24, zColumn))
+ *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)) = Xsqlite3MPrintf(tls, db, ts+5751 /* "no such column: ..." */, crt.VaList(bp+24, zColumn))
rc = 1
Xsqlite3BtreeLeaveAll(tls, db)
goto blob_open_out
@@ -66632,7 +67786,7 @@ __20:
if !((*sColMap)(unsafe.Pointer((pFKey+64 /* &.aCol */)+uintptr(j)*16)).FiFrom == iCol) {
goto __23
}
- zFault = ts + 5664 /* "foreign key" */
+ zFault = ts + 5772 /* "foreign key" */
__23:
;
goto __21
@@ -66665,7 +67819,7 @@ __27:
if !((int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol) || (int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == (-2))) {
goto __30
}
- zFault = ts + 5676 /* "indexed" */
+ zFault = ts + 5784 /* "indexed" */
__30:
;
goto __28
@@ -66686,7 +67840,7 @@ __26:
goto __31
}
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)))
- *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)) = Xsqlite3MPrintf(tls, db, ts+5684 /* "cannot open %s c..." */, crt.VaList(bp+32, zFault))
+ *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)) = Xsqlite3MPrintf(tls, db, ts+5792 /* "cannot open %s c..." */, crt.VaList(bp+32, zFault))
rc = 1
Xsqlite3BtreeLeaveAll(tls, db)
goto blob_open_out
@@ -66795,7 +67949,7 @@ __38:
;
Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
if *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */)) != 0 {
- return ts + 647 /* "%s" */
+ return ts + 696 /* "%s" */
}
return uintptr(0)
}(), crt.VaList(bp+40, *(*uintptr)(unsafe.Pointer(bp + 472 /* zErr */))))
@@ -66938,7 +68092,7 @@ func Xsqlite3_blob_reopen(tls *crt.TLS, pBlob uintptr, iRow Sqlite3_int64) int32
if rc != 0 {
Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
if *(*uintptr)(unsafe.Pointer(bp + 8 /* zErr */)) != 0 {
- return ts + 647 /* "%s" */
+ return ts + 696 /* "%s" */
}
return uintptr(0)
}(), crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErr */))))
@@ -68121,7 +69275,7 @@ func vdbeSorterOpenTempFile(tls *crt.TLS, db uintptr, nExtend I64, ppFd uintptr)
*(*int32)(unsafe.Pointer(bp /* rc */)) = Xsqlite3OsOpenMalloc(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), ppFd,
((((0x00001000 | 0x00000002) | 0x00000004) | 0x00000010) | 0x00000008), bp /* &rc */)
if *(*int32)(unsafe.Pointer(bp /* rc */)) == 0 {
- *(*I64)(unsafe.Pointer(bp + 8 /* max */)) = int64(0x7fff0000)
+ *(*I64)(unsafe.Pointer(bp + 8 /* max */)) = 8589934592
Xsqlite3OsFileControlHint(tls, *(*uintptr)(unsafe.Pointer(ppFd)), 18, bp+8 /* &max */)
if nExtend > int64(0) {
vdbeSorterExtendFile(tls, db, *(*uintptr)(unsafe.Pointer(ppFd)), nExtend)
@@ -69485,6 +70639,413 @@ func Xsqlite3VdbeSorterCompare(tls *crt.TLS, pCsr uintptr, pVal uintptr, nKeyCol
// This file implements virtual-tables for examining the bytecode content
// of a prepared statement.
// #include "sqliteInt.h"
+// #include "vdbeInt.h"
+
+// An instance of the bytecode() table-valued function.
+type bytecodevtab = struct {
+ Fbase Sqlite3_vtab
+ Fdb uintptr
+ FbTablesUsed int32
+ _ [4]byte
+}
+
+//************* End of vdbesort.c *******************************************
+//************* Begin file vdbevtab.c ***************************************
+// 2020-03-23
+//
+// The author disclaims copyright to this source code. In place of
+// a legal notice, here is a blessing:
+//
+// May you do good and not evil.
+// May you find forgiveness for yourself and forgive others.
+// May you share freely, never taking more than you give.
+//
+//
+//
+// This file implements virtual-tables for examining the bytecode content
+// of a prepared statement.
+// #include "sqliteInt.h"
+// #include "vdbeInt.h"
+
+// An instance of the bytecode() table-valued function.
+type Bytecodevtab = bytecodevtab /* sqlite3.c:96456:29 */
+
+// A cursor for scanning through the bytecode
+type bytecodevtab_cursor = struct {
+ Fbase Sqlite3_vtab_cursor
+ FpStmt uintptr
+ FiRowid int32
+ FiAddr int32
+ FneedFinalize int32
+ FshowSubprograms int32
+ FaOp uintptr
+ FzP4 uintptr
+ FzType uintptr
+ FzSchema uintptr
+ FzName uintptr
+ Fsub Mem
+}
+
+// A cursor for scanning through the bytecode
+type Bytecodevtab_cursor = bytecodevtab_cursor /* sqlite3.c:96465:36 */
+
+// Create a new bytecode() table-valued function.
+func bytecodevtabConnect(tls *crt.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 { /* sqlite3.c:96484:12: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pNew uintptr
+ var rc int32
+ var isTabUsed int32 = (crt.Bool32(pAux != uintptr(0)))
+ *(*[2]uintptr)(unsafe.Pointer(bp /* azSchema */)) = [2]uintptr{
+ // bytecode() schema
+
+ ts + 5826, /* "CREATE TABLE x(a..." */
+
+ // Tables_used() schema
+
+ ts + 5938, /* "CREATE TABLE x(t..." */
+ }
+
+ rc = Xsqlite3_declare_vtab(tls, db, *(*uintptr)(unsafe.Pointer(bp /* &azSchema[0] */ + uintptr(isTabUsed)*8)))
+ if rc == 0 {
+ pNew = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Bytecodevtab{})))
+ *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew
+ if pNew == uintptr(0) {
+ return 7
+ }
+ crt.Xmemset(tls, pNew, 0, uint64(unsafe.Sizeof(Bytecodevtab{})))
+ (*Bytecodevtab)(unsafe.Pointer(pNew)).Fdb = db
+ (*Bytecodevtab)(unsafe.Pointer(pNew)).FbTablesUsed = (isTabUsed * 2)
+ }
+ return rc
+}
+
+// This method is the destructor for bytecodevtab objects.
+func bytecodevtabDisconnect(tls *crt.TLS, pVtab uintptr) int32 { /* sqlite3.c:96535:12: */
+ var p uintptr = pVtab
+ Xsqlite3_free(tls, p)
+ return 0
+}
+
+// Constructor for a new bytecodevtab_cursor object.
+func bytecodevtabOpen(tls *crt.TLS, p uintptr, ppCursor uintptr) int32 { /* sqlite3.c:96544:12: */
+ var pVTab uintptr = p
+ var pCur uintptr
+ pCur = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Bytecodevtab_cursor{})))
+ if pCur == uintptr(0) {
+ return 7
+ }
+ crt.Xmemset(tls, pCur, 0, uint64(unsafe.Sizeof(Bytecodevtab_cursor{})))
+ Xsqlite3VdbeMemInit(tls, (pCur + 72 /* &.sub */), (*Bytecodevtab)(unsafe.Pointer(pVTab)).Fdb, uint16(1))
+ *(*uintptr)(unsafe.Pointer(ppCursor)) = (pCur /* &.base */)
+ return 0
+}
+
+// Clear all internal content from a bytecodevtab cursor.
+func bytecodevtabCursorClear(tls *crt.TLS, pCur uintptr) { /* sqlite3.c:96558:13: */
+ Xsqlite3_free(tls, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4 = uintptr(0)
+ Xsqlite3VdbeMemRelease(tls, (pCur + 72 /* &.sub */))
+ Xsqlite3VdbeMemSetNull(tls, (pCur + 72 /* &.sub */))
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FneedFinalize != 0 {
+ Xsqlite3_finalize(tls, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FpStmt)
+ }
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FpStmt = uintptr(0)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FneedFinalize = 0
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzType = uintptr(0)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzSchema = uintptr(0)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName = uintptr(0)
+}
+
+// Destructor for a bytecodevtab_cursor.
+func bytecodevtabClose(tls *crt.TLS, cur uintptr) int32 { /* sqlite3.c:96576:12: */
+ var pCur uintptr = cur
+ bytecodevtabCursorClear(tls, pCur)
+ Xsqlite3_free(tls, pCur)
+ return 0
+}
+
+// Advance a bytecodevtab_cursor to its next row of output.
+func bytecodevtabNext(tls *crt.TLS, cur uintptr) int32 { /* sqlite3.c:96587:12: */
+ var pCur uintptr = cur
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
+ var rc int32
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4 != 0 {
+ Xsqlite3_free(tls, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4 = uintptr(0)
+ }
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName != 0 {
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName = uintptr(0)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzType = uintptr(0)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzSchema = uintptr(0)
+ }
+ rc = Xsqlite3VdbeNextOpcode(tls,
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FpStmt,
+ func() uintptr {
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FshowSubprograms != 0 {
+ return (pCur + 72 /* &.sub */)
+ }
+ return uintptr(0)
+ }(),
+ (*Bytecodevtab)(unsafe.Pointer(pTab)).FbTablesUsed,
+ (pCur + 16 /* &.iRowid */),
+ (pCur + 20 /* &.iAddr */),
+ (pCur + 32 /* &.aOp */))
+ if rc != 0 {
+ Xsqlite3VdbeMemSetNull(tls, (pCur + 72 /* &.sub */))
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FaOp = uintptr(0)
+ }
+ return 0
+}
+
+// Return TRUE if the cursor has been moved off of the last
+// row of output.
+func bytecodevtabEof(tls *crt.TLS, cur uintptr) int32 { /* sqlite3.c:96618:12: */
+ var pCur uintptr = cur
+ return (crt.Bool32((*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FaOp == uintptr(0)))
+}
+
+// Return values of columns for the row at which the bytecodevtab_cursor
+// is currently pointing.
+func bytecodevtabColumn(tls *crt.TLS, cur uintptr, ctx uintptr, i int32) int32 { /* sqlite3.c:96627:12: */
+ var pCur uintptr = cur
+ var pVTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
+ var pOp uintptr = ((*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FaOp + uintptr((*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiAddr)*24)
+ if (*Bytecodevtab)(unsafe.Pointer(pVTab)).FbTablesUsed != 0 {
+ if i == 4 {
+ i = 8
+ } else {
+ if (i <= 2) && ((*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzType == uintptr(0)) {
+ var pSchema uintptr
+ var k uintptr
+ var iDb int32 = (*Op)(unsafe.Pointer(pOp)).Fp3
+ var iRoot int32 = (*Op)(unsafe.Pointer(pOp)).Fp2
+ var db uintptr = (*Bytecodevtab)(unsafe.Pointer(pVTab)).Fdb
+ pSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ for k = (*Hash)(unsafe.Pointer((pSchema + 8 /* &.tblHash */))).Ffirst; k != 0; k = (*HashElem)(unsafe.Pointer(k)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(k)).Fdata
+ if !((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) && ((*Table)(unsafe.Pointer(pTab)).Ftnum == iRoot) {
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName = (*Table)(unsafe.Pointer(pTab)).FzName
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzType = ts + 6019 /* "table" */
+ break
+ }
+ }
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName == uintptr(0) {
+ for k = (*Hash)(unsafe.Pointer((pSchema + 32 /* &.idxHash */))).Ffirst; k != 0; k = (*HashElem)(unsafe.Pointer(k)).Fnext {
+ var pIdx uintptr = (*HashElem)(unsafe.Pointer(k)).Fdata
+ if (*Index)(unsafe.Pointer(pIdx)).Ftnum == iRoot {
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName = (*Index)(unsafe.Pointer(pIdx)).FzName
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzType = ts + 6025 /* "index" */
+ }
+ }
+ }
+ }
+ i = i + (10)
+ }
+ }
+ switch i {
+ case 0: // addr
+ Xsqlite3_result_int(tls, ctx, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiAddr)
+ break
+ case 1: // opcode
+ Xsqlite3_result_text(tls, ctx, Xsqlite3OpcodeName(tls, int32((*Op)(unsafe.Pointer(pOp)).Fopcode)),
+ -1, uintptr(0))
+ break
+ case 2: // p1
+ Xsqlite3_result_int(tls, ctx, (*Op)(unsafe.Pointer(pOp)).Fp1)
+ break
+ case 3: // p2
+ Xsqlite3_result_int(tls, ctx, (*Op)(unsafe.Pointer(pOp)).Fp2)
+ break
+ case 4: // p3
+ Xsqlite3_result_int(tls, ctx, (*Op)(unsafe.Pointer(pOp)).Fp3)
+ break
+ case 5:
+ fallthrough // p4
+ case 7: // comment
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4 == uintptr(0) {
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4 = Xsqlite3VdbeDisplayP4(tls, (*Bytecodevtab)(unsafe.Pointer(pVTab)).Fdb, pOp)
+ }
+ if i == 5 {
+ Xsqlite3_result_text(tls, ctx, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzP4, -1, uintptr(0))
+ } else {
+ }
+ break
+ case 6: // p5
+ Xsqlite3_result_int(tls, ctx, int32((*Op)(unsafe.Pointer(pOp)).Fp5))
+ break
+ case 8:
+ { // subprog
+ var aOp uintptr = (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FaOp
+
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiRowid == ((*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiAddr + 1) {
+ break
+ } else if *(*uintptr)(unsafe.Pointer(aOp + uintptr(0)*24 + 16 /* &.p4 */)) != uintptr(0) {
+ Xsqlite3_result_text(tls, ctx, (*(*uintptr)(unsafe.Pointer(aOp + uintptr(0)*24 + 16 /* &.p4 */)) + uintptr(3)), -1, uintptr(0))
+ } else {
+ Xsqlite3_result_text(tls, ctx, ts+6031 /* "(FK)" */, 4, uintptr(0))
+ }
+ break
+ }
+ case 10: // tables_used.type
+ Xsqlite3_result_text(tls, ctx, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzType, -1, uintptr(0))
+ break
+ case 11: // tables_used.schema
+ Xsqlite3_result_text(tls, ctx, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzSchema, -1, uintptr(0))
+ break
+ case 12: // tables_used.name
+ Xsqlite3_result_text(tls, ctx, (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FzName, -1, uintptr(0))
+ break
+ case 13: // tables_used.wr
+ Xsqlite3_result_int(tls, ctx, (crt.Bool32(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == 97)))
+ break
+ }
+ return 0
+}
+
+// Return the rowid for the current row. In this implementation, the
+// rowid is the same as the output value.
+func bytecodevtabRowid(tls *crt.TLS, cur uintptr, pRowid uintptr) int32 { /* sqlite3.c:96735:12: */
+ var pCur uintptr = cur
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = Sqlite_int64((*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiRowid)
+ return 0
+}
+
+// Initialize a cursor.
+//
+// idxNum==0 means show all subprograms
+// idxNum==1 means show only the main bytecode and omit subprograms.
+func bytecodevtabFilter(tls *crt.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) int32 { /* sqlite3.c:96747:12: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pCur uintptr = pVtabCursor
+ var pVTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pVtabCursor)).FpVtab
+ var rc int32 = 0
+
+ bytecodevtabCursorClear(tls, pCur)
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiRowid = 0
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FiAddr = 0
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FshowSubprograms = (crt.Bool32(idxNum == 0))
+
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8))) == 3 {
+ var zSql uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8)))
+ if zSql == uintptr(0) {
+ rc = 7
+ } else {
+ rc = Xsqlite3_prepare_v2(tls, (*Bytecodevtab)(unsafe.Pointer(pVTab)).Fdb, zSql, -1, (pCur + 8 /* &.pStmt */), uintptr(0))
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FneedFinalize = 1
+ }
+ } else {
+ (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FpStmt = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8)), ts+6036 /* "stmt-pointer" */)
+ }
+ if (*Bytecodevtab_cursor)(unsafe.Pointer(pCur)).FpStmt == uintptr(0) {
+ (*Bytecodevtab)(unsafe.Pointer(pVTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+6049, /* "argument to %s()..." */
+ crt.VaList(bp, func() uintptr {
+ if (*Bytecodevtab)(unsafe.Pointer(pVTab)).FbTablesUsed != 0 {
+ return ts + 6095 /* "tables_used" */
+ }
+ return ts + 6107 /* "bytecode" */
+ }()))
+ rc = 1
+ } else {
+ bytecodevtabNext(tls, pVtabCursor)
+ }
+ return rc
+}
+
+// We must have a single stmt=? constraint that will be passed through
+// into the xFilter method. If there is no valid stmt=? constraint,
+// then return an SQLITE_CONSTRAINT error.
+func bytecodevtabBestIndex(tls *crt.TLS, tab uintptr, pIdxInfo uintptr) int32 { /* sqlite3.c:96789:12: */
+ var i int32
+ var rc int32 = 19
+ var p uintptr
+ var pVTab uintptr = tab
+ var iBaseCol int32
+ if (*Bytecodevtab)(unsafe.Pointer(pVTab)).FbTablesUsed != 0 {
+ iBaseCol = 4
+ } else {
+ iBaseCol = 8
+ }
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(100)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 0
+ i = 0
+ p = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint
+__1:
+ if !(i < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
+ goto __3
+ }
+ {
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable) == 0 {
+ goto __2
+ }
+ if (int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == 2) && ((*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn == (iBaseCol + 1)) {
+ rc = 0
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).Fomit = uint8(1)
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = 1
+ }
+ if (int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == 71) && ((*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn == iBaseCol) {
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).Fomit = uint8(1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 1
+ }
+ }
+ goto __2
+__2:
+ i++
+ p += 12
+ goto __1
+ goto __3
+__3:
+ ;
+ return rc
+}
+
+// This following structure defines all the methods for the
+// virtual table.
+var bytecodevtabModule = Sqlite3_module{FiVersion:
+/* iVersion */ 0, FxCreate:
+/* xCreate */ uintptr(0), FxConnect:
+/* xConnect */ 0, FxBestIndex:
+/* xBestIndex */ 0, FxDisconnect:
+/* xDisconnect */ 0, FxDestroy:
+/* xDestroy */ uintptr(0), FxOpen:
+/* xOpen */ 0, FxClose:
+/* xClose */ 0, FxFilter:
+/* xFilter */ 0, FxNext:
+/* xNext */ 0, FxEof:
+/* xEof */ 0, FxColumn:
+/* xColumn */ 0, FxRowid:
+/* xRowid */ 0, FxUpdate:
+/* xUpdate */ uintptr(0), FxBegin:
+/* xBegin */ uintptr(0), FxSync:
+/* xSync */ uintptr(0), FxCommit:
+/* xCommit */ uintptr(0), FxRollback:
+/* xRollback */ uintptr(0), FxFindFunction:
+/* xFindMethod */ uintptr(0), FxRename:
+/* xRename */ uintptr(0), FxSavepoint:
+/* xSavepoint */ uintptr(0), FxRelease:
+/* xRelease */ uintptr(0), FxRollbackTo:
+/* xRollbackTo */ uintptr(0), FxShadowName:
+/* xShadowName */ uintptr(0),
+} /* sqlite3.c:96820:23 */
+
+func Xsqlite3VdbeBytecodeVtabInit(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:96848:20: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = db
+
+ var rc int32
+ rc = Xsqlite3_create_module(tls, *(*uintptr)(unsafe.Pointer(bp /* db */)), ts+6107 /* "bytecode" */, uintptr(unsafe.Pointer(&bytecodevtabModule)), uintptr(0))
+ if rc == 0 {
+ rc = Xsqlite3_create_module(tls, *(*uintptr)(unsafe.Pointer(bp /* db */)), ts+6095 /* "tables_used" */, uintptr(unsafe.Pointer(&bytecodevtabModule)), bp /* &db */)
+ }
+ return rc
+}
//************* End of vdbevtab.c *******************************************
//************* Begin file memjournal.c *************************************
@@ -69527,23 +71088,6 @@ type MemJournal1 = struct {
FzJournal uintptr
}
-//************* End of vdbesort.c *******************************************
-//************* Begin file vdbevtab.c ***************************************
-// 2020-03-23
-//
-// The author disclaims copyright to this source code. In place of
-// a legal notice, here is a blessing:
-//
-// May you do good and not evil.
-// May you find forgiveness for yourself and forgive others.
-// May you share freely, never taking more than you give.
-//
-//
-//
-// This file implements virtual-tables for examining the bytecode content
-// of a prepared statement.
-// #include "sqliteInt.h"
-
//************* End of vdbevtab.c *******************************************
//************* Begin file memjournal.c *************************************
// 2008 October 7
@@ -70464,7 +72008,7 @@ __5:
goto __6
__6:
;
- if !((i == (*Sqlite3)(unsafe.Pointer(db)).FnDb) && (Xsqlite3StrICmp(tls, ts+5718 /* "main" */, zDb) == 0)) {
+ if !((i == (*Sqlite3)(unsafe.Pointer(db)).FnDb) && (Xsqlite3StrICmp(tls, ts+6116 /* "main" */, zDb) == 0)) {
goto __8
}
// This branch is taken when the main database has been renamed
@@ -70653,14 +72197,14 @@ __12:
}
op = int32((*Parse)(unsafe.Pointer(pParse)).FeTriggerOp)
- if !((op != 126) && (Xsqlite3StrICmp(tls, ts+5723 /* "new" */, zTab) == 0)) {
+ if !((op != 126) && (Xsqlite3StrICmp(tls, ts+6121 /* "new" */, zTab) == 0)) {
goto __38
}
(*Expr)(unsafe.Pointer(pExpr)).FiTable = 1
pTab = (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab
goto __39
__38:
- if !((op != 125) && (Xsqlite3StrICmp(tls, ts+5727 /* "old" */, zTab) == 0)) {
+ if !((op != 125) && (Xsqlite3StrICmp(tls, ts+6125 /* "old" */, zTab) == 0)) {
goto __40
}
(*Expr)(unsafe.Pointer(pExpr)).FiTable = 0
@@ -70675,7 +72219,7 @@ __37:
goto __41
}
pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16 /* &.uNC */))
- if !((pUpsert != 0) && (Xsqlite3StrICmp(tls, ts+5731 /* "excluded" */, zTab) == 0)) {
+ if !((pUpsert != 0) && (Xsqlite3StrICmp(tls, ts+6129 /* "excluded" */, zTab) == 0)) {
goto __42
}
pTab = (*SrcList_item)(unsafe.Pointer(((*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8 /* &.a */) + uintptr(0)*112)).FpTab
@@ -70843,7 +72387,7 @@ __61:
if !((((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x00001) == 0) && (((*Expr)(unsafe.Pointer((pOrig))).Fflags & (U32(0x000010))) != U32(0))) {
goto __65
}
- Xsqlite3ErrorMsg(tls, pParse, ts+5740 /* "misuse of aliase..." */, crt.VaList(bp, zAs))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6138 /* "misuse of aliase..." */, crt.VaList(bp, zAs))
return 2
__65:
;
@@ -70851,18 +72395,18 @@ __65:
((((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x04000) == 0) || (pNC != pTopNC))) {
goto __66
}
- Xsqlite3ErrorMsg(tls, pParse, ts+5771 /* "misuse of aliase..." */, crt.VaList(bp+8, zAs))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6169 /* "misuse of aliase..." */, crt.VaList(bp+8, zAs))
return 2
__66:
;
if !(Xsqlite3ExprVectorSize(tls, pOrig) != 1) {
goto __67
}
- Xsqlite3ErrorMsg(tls, pParse, ts+5808 /* "row value misuse..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6206 /* "row value misuse..." */, 0)
return 2
__67:
;
- resolveAlias(tls, pParse, pEList, j, pExpr, ts+623 /* "" */, nSubquery)
+ resolveAlias(tls, pParse, pEList, j, pExpr, ts+672 /* "" */, nSubquery)
cnt = 1
pMatch = uintptr(0)
@@ -70934,7 +72478,7 @@ __11:
// a huge amount of legacy SQL that uses it. So for now, we just
// issue a warning.
Xsqlite3_log(tls, 28,
- ts+5826 /* "double-quoted st..." */, crt.VaList(bp+16, zCol))
+ ts+6224 /* "double-quoted st..." */, crt.VaList(bp+16, zCol))
(*Expr)(unsafe.Pointer(pExpr)).Fop = U8(115)
*(*uintptr)(unsafe.Pointer(pExpr + 64 /* &.y */)) = uintptr(0)
return 1
@@ -70955,23 +72499,23 @@ __70:
goto __73
}
if cnt == 0 {
- zErr = ts + 5861 /* "no such column" */
+ zErr = ts + 6259 /* "no such column" */
} else {
- zErr = ts + 5876 /* "ambiguous column..." */
+ zErr = ts + 6274 /* "ambiguous column..." */
}
if !(zDb != 0) {
goto __74
}
- Xsqlite3ErrorMsg(tls, pParse, ts+5898 /* "%s: %s.%s.%s" */, crt.VaList(bp+24, zErr, zDb, zTab, zCol))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6296 /* "%s: %s.%s.%s" */, crt.VaList(bp+24, zErr, zDb, zTab, zCol))
goto __75
__74:
if !(zTab != 0) {
goto __76
}
- Xsqlite3ErrorMsg(tls, pParse, ts+5911 /* "%s: %s.%s" */, crt.VaList(bp+56, zErr, zTab, zCol))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6309 /* "%s: %s.%s" */, crt.VaList(bp+56, zErr, zTab, zCol))
goto __77
__76:
- Xsqlite3ErrorMsg(tls, pParse, ts+5921 /* "%s: %s" */, crt.VaList(bp+80, zErr, zCol))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6319 /* "%s: %s" */, crt.VaList(bp+80, zErr, zCol))
__77:
;
__75:
@@ -71099,15 +72643,15 @@ func notValidImpl(tls *crt.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pExpr
bp := tls.Alloc(16)
defer tls.Free(16)
- var zIn uintptr = ts + 5928 /* "partial index WH..." */
+ var zIn uintptr = ts + 6326 /* "partial index WH..." */
if ((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x00020) != 0 {
- zIn = ts + 5956 /* "index expression..." */
+ zIn = ts + 6354 /* "index expression..." */
} else if ((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x00004) != 0 {
- zIn = ts + 5974 /* "CHECK constraint..." */
+ zIn = ts + 6372 /* "CHECK constraint..." */
} else if ((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x00008) != 0 {
- zIn = ts + 5992 /* "generated column..." */
+ zIn = ts + 6390 /* "generated column..." */
}
- Xsqlite3ErrorMsg(tls, pParse, ts+6010 /* "%s prohibited in..." */, crt.VaList(bp, zMsg, zIn))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6408 /* "%s prohibited in..." */, crt.VaList(bp, zMsg, zIn))
if pExpr != 0 {
(*Expr)(unsafe.Pointer(pExpr)).Fop = U8(119)
}
@@ -71178,7 +72722,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
if ((*NameContext)(unsafe.Pointer((pNC))).FncFlags & (0x00020 | 0x00008)) != 0 {
- notValidImpl(tls, pParse, pNC, ts+6030 /* "the \".\" operator" */, uintptr(0))
+ notValidImpl(tls, pParse, pNC, ts+6428 /* "the \".\" operator" */, uintptr(0))
}
pRight = (*Expr)(unsafe.Pointer(pExpr)).FpRight
@@ -71244,7 +72788,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
if (*Expr)(unsafe.Pointer(pExpr)).FiTable < 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+6047 /* "second argument ..." */, 0)
+ ts+6445 /* "second argument ..." */, 0)
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
}
} else {
@@ -71269,7 +72813,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
var auth int32 = Xsqlite3AuthCheck(tls, pParse, 31, uintptr(0), (*FuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0))
if auth != 0 {
if auth == 1 {
- Xsqlite3ErrorMsg(tls, pParse, ts+6118, /* "not authorized t..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+6516, /* "not authorized t..." */
crt.VaList(bp, (*FuncDef)(unsafe.Pointer(pDef)).FzName))
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
}
@@ -71292,7 +72836,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
// in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all
// all this.
if ((*NameContext)(unsafe.Pointer((pNC))).FncFlags & ((0x00020 | 0x00002) | 0x00008)) != 0 {
- notValidImpl(tls, pParse, pNC, ts+6153 /* "non-deterministi..." */, uintptr(0))
+ notValidImpl(tls, pParse, pNC, ts+6551 /* "non-deterministi..." */, uintptr(0))
}
} else {
// Must fit in 8 bits
@@ -71320,30 +72864,30 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
if ((pDef != 0) && ((*FuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0))) && (pWin != 0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+6181 /* "%.*s() may not b..." */, crt.VaList(bp+8, nId, zId))
+ ts+6579 /* "%.*s() may not b..." */, crt.VaList(bp+8, nId, zId))
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
} else if (((is_agg != 0) && (((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x00001) == 0)) ||
(((is_agg != 0) && (((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags & U32(0x00010000)) != 0)) && !(pWin != 0))) ||
(((is_agg != 0) && (pWin != 0)) && (((*NameContext)(unsafe.Pointer(pNC)).FncFlags & 0x04000) == 0)) {
var zType uintptr
if (((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags & U32(0x00010000)) != 0) || (pWin != 0) {
- zType = ts + 6225 /* "window" */
+ zType = ts + 6623 /* "window" */
} else {
- zType = ts + 6232 /* "aggregate" */
+ zType = ts + 6630 /* "aggregate" */
}
- Xsqlite3ErrorMsg(tls, pParse, ts+6242 /* "misuse of %s fun..." */, crt.VaList(bp+24, zType, nId, zId))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6640 /* "misuse of %s fun..." */, crt.VaList(bp+24, zType, nId, zId))
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
is_agg = 0
} else if (no_such_func != 0) && (int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Finit.Fbusy) == 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6271 /* "no such function..." */, crt.VaList(bp+48, nId, zId))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6669 /* "no such function..." */, crt.VaList(bp+48, nId, zId))
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
} else if wrong_num_args != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+6294, /* "wrong number of ..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+6692, /* "wrong number of ..." */
crt.VaList(bp+64, nId, zId))
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
} else if (is_agg == 0) && (((*Expr)(unsafe.Pointer((pExpr))).Fflags & (U32(0x1000000))) != U32(0)) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+6339, /* "FILTER may not b..." */
+ ts+6737, /* "FILTER may not b..." */
crt.VaList(bp+80, nId, zId))
(*NameContext)(unsafe.Pointer(pNC)).FnErr++
}
@@ -71413,7 +72957,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
var nRef int32 = (*NameContext)(unsafe.Pointer(pNC)).FnRef
if ((*NameContext)(unsafe.Pointer((pNC))).FncFlags & (((0x00004 | 0x00002) | 0x00020) | 0x00008)) != 0 {
- notValidImpl(tls, pParse, pNC, ts+6388 /* "subqueries" */, pExpr)
+ notValidImpl(tls, pParse, pNC, ts+6786 /* "subqueries" */, pExpr)
}
Xsqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32 /* &.x */)))
@@ -71429,7 +72973,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
{
if ((*NameContext)(unsafe.Pointer((pNC))).FncFlags & (((0x00004 | 0x00002) | 0x00020) | 0x00008)) != 0 {
- notValidImpl(tls, pParse, pNC, ts+6399 /* "parameters" */, pExpr)
+ notValidImpl(tls, pParse, pNC, ts+6797 /* "parameters" */, pExpr)
}
break
@@ -71488,7 +73032,7 @@ func resolveExprStep(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /* sq
}
if nLeft != nRight {
- Xsqlite3ErrorMsg(tls, pParse, ts+5808 /* "row value misuse..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6206 /* "row value misuse..." */, 0)
}
break
}
@@ -71594,7 +73138,7 @@ func resolveOutOfRangeError(tls *crt.TLS, pParse uintptr, zType uintptr, i int32
Xsqlite3ErrorMsg(tls, pParse,
- ts+6410 /* "%r %s BY term ou..." */, crt.VaList(bp, i, zType, mx))
+ ts+6808 /* "%r %s BY term ou..." */, crt.VaList(bp, i, zType, mx))
}
// Analyze the ORDER BY clause in a compound SELECT statement. Modify
@@ -71626,7 +73170,7 @@ func resolveCompoundOrderBy(tls *crt.TLS, pParse uintptr, pSelect uintptr) int32
}
db = (*Parse)(unsafe.Pointer(pParse)).Fdb
if (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(2)*4)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6466 /* "too many terms i..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6864 /* "too many terms i..." */, 0)
return 1
}
for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
@@ -71658,7 +73202,7 @@ func resolveCompoundOrderBy(tls *crt.TLS, pParse uintptr, pSelect uintptr) int32
pE = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)
if Xsqlite3ExprIsInteger(tls, pE, bp+8 /* &iCol */) != 0 {
if (*(*int32)(unsafe.Pointer(bp + 8 /* iCol */)) <= 0) || (*(*int32)(unsafe.Pointer(bp + 8 /* iCol */)) > (*ExprList)(unsafe.Pointer(pEList)).FnExpr) {
- resolveOutOfRangeError(tls, pParse, ts+6500 /* "ORDER" */, (i + 1), (*ExprList)(unsafe.Pointer(pEList)).FnExpr)
+ resolveOutOfRangeError(tls, pParse, ts+6898 /* "ORDER" */, (i + 1), (*ExprList)(unsafe.Pointer(pEList)).FnExpr)
return 1
}
} else {
@@ -71736,7 +73280,7 @@ func resolveCompoundOrderBy(tls *crt.TLS, pParse uintptr, pSelect uintptr) int32
for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
if int32(*(*uint8)(unsafe.Pointer(((pOrderBy + 8 /* &.a */) + uintptr(i)*32) + 20 /* &.done */))&0x4>>2) == 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+6506 /* "%r ORDER BY term..." */, crt.VaList(bp, (i+1)))
+ ts+6904 /* "%r ORDER BY term..." */, crt.VaList(bp, (i+1)))
return 1
}
}
@@ -71764,7 +73308,7 @@ func Xsqlite3ResolveOrderGroupBy(tls *crt.TLS, pParse uintptr, pSelect uintptr,
return 0
}
if (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(2)*4)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6567 /* "too many terms i..." */, crt.VaList(bp, zType))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6965 /* "too many terms i..." */, crt.VaList(bp, zType))
return 1
}
pEList = (*Select)(unsafe.Pointer(pSelect)).FpEList
@@ -72062,7 +73606,7 @@ func resolveSelectStep(tls *crt.TLS, pWalker uintptr, p uintptr) int32 { /* sqli
// If a HAVING clause is present, then there must be a GROUP BY clause.
if ((*Select)(unsafe.Pointer(p)).FpHaving != 0) && !(pGroupBy != 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6598 /* "a GROUP BY claus..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6996 /* "a GROUP BY claus..." */, 0)
return 2
}
@@ -72118,7 +73662,7 @@ func resolveSelectStep(tls *crt.TLS, pWalker uintptr, p uintptr) int32 { /* sqli
// is not detected until much later, and so we need to go ahead and
// resolve those symbols on the incorrect ORDER BY for consistency.
if (isCompound <= nCompound) && // Defer right-most ORDER BY of a compound
- (resolveOrderGroupBy(tls, bp /* &sNC */, p, (*Select)(unsafe.Pointer(p)).FpOrderBy, ts+6500 /* "ORDER" */) != 0) {
+ (resolveOrderGroupBy(tls, bp /* &sNC */, p, (*Select)(unsafe.Pointer(p)).FpOrderBy, ts+6898 /* "ORDER" */) != 0) {
return 2
}
if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
@@ -72131,7 +73675,7 @@ func resolveSelectStep(tls *crt.TLS, pWalker uintptr, p uintptr) int32 { /* sqli
if pGroupBy != 0 {
var pItem uintptr
- if (resolveOrderGroupBy(tls, bp /* &sNC */, p, pGroupBy, ts+6642 /* "GROUP" */) != 0) || ((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ if (resolveOrderGroupBy(tls, bp /* &sNC */, p, pGroupBy, ts+7040 /* "GROUP" */) != 0) || ((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
return 2
}
i = 0
@@ -72143,7 +73687,7 @@ func resolveSelectStep(tls *crt.TLS, pWalker uintptr, p uintptr) int32 { /* sqli
{
if ((*Expr)(unsafe.Pointer(((*ExprList_item)(unsafe.Pointer(pItem)).FpExpr))).Fflags & (U32(0x000010))) != U32(0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+6648 /* "aggregate functi..." */, 0)
+ ts+7046 /* "aggregate functi..." */, 0)
return 2
}
}
@@ -72904,7 +74448,7 @@ func codeVectorCompare(tls *crt.TLS, pParse uintptr, pExpr uintptr, dest int32,
return
}
if nLeft != Xsqlite3ExprVectorSize(tls, pRight) {
- Xsqlite3ErrorMsg(tls, pParse, ts+5808 /* "row value misuse..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6206 /* "row value misuse..." */, 0)
return
}
@@ -73109,7 +74653,7 @@ func Xsqlite3ExprAnd(tls *crt.TLS, pParse uintptr, pLeft uintptr, pRight uintptr
!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= 2) {
Xsqlite3ExprDelete(tls, db, pLeft)
Xsqlite3ExprDelete(tls, db, pRight)
- return Xsqlite3Expr(tls, db, 152, ts+6707 /* "0" */)
+ return Xsqlite3Expr(tls, db, 152, ts+7105 /* "0" */)
} else {
return Xsqlite3PExpr(tls, pParse, 44, pLeft, pRight)
}
@@ -73131,7 +74675,7 @@ func Xsqlite3ExprFunction(tls *crt.TLS, pParse uintptr, pList uintptr, pToken ui
return uintptr(0)
}
if (pList != 0) && ((*ExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer(((*Parse)(unsafe.Pointer(pParse)).Fdb + 124 /* &.aLimit */) + uintptr(6)*4))) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6709 /* "too many argumen..." */, crt.VaList(bp, pToken))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7107 /* "too many argumen..." */, crt.VaList(bp, pToken))
}
*(*uintptr)(unsafe.Pointer(pNew + 32 /* &.x */)) = pList
*(*U32)(unsafe.Pointer(pNew + 4 /* &.flags */)) |= (U32(0x000004))
@@ -73165,7 +74709,7 @@ func Xsqlite3ExprFunctionUsable(tls *crt.TLS, pParse uintptr, pExpr uintptr, pDe
// is tagged with SQLITE_FUNC_UNSAFE) and
// SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning
// that the schema is possibly tainted).
- Xsqlite3ErrorMsg(tls, pParse, ts+6743 /* "unsafe use of %s..." */, crt.VaList(bp, (*FuncDef)(unsafe.Pointer(pDef)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7141 /* "unsafe use of %s..." */, crt.VaList(bp, (*FuncDef)(unsafe.Pointer(pDef)).FzName))
}
}
}
@@ -73218,7 +74762,7 @@ func Xsqlite3ExprAssignVarNumber(tls *crt.TLS, pParse uintptr, pExpr uintptr, n
}
if ((bOk == 0) || (*(*I64)(unsafe.Pointer(bp + 8 /* i */)) < int64(1))) || (*(*I64)(unsafe.Pointer(bp + 8 /* i */)) > I64(*(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(9)*4)))) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6762, /* "variable number ..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+7160, /* "variable number ..." */
crt.VaList(bp, *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(9)*4))))
return
}
@@ -73245,7 +74789,7 @@ func Xsqlite3ExprAssignVarNumber(tls *crt.TLS, pParse uintptr, pExpr uintptr, n
}
(*Expr)(unsafe.Pointer(pExpr)).FiColumn = x
if int32(x) > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(9)*4)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6805 /* "too many SQL var..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+7203 /* "too many SQL var..." */, 0)
}
}
@@ -73876,7 +75420,7 @@ __2:
if !((int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != 136) && ((*IdList)(unsafe.Pointer(pColumns)).FnId != (crt.AssignInt32(&n, Xsqlite3ExprVectorSize(tls, pExpr))))) {
goto __3
}
- Xsqlite3ErrorMsg(tls, pParse, ts+6828, /* "%d columns assig..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+7226, /* "%d columns assig..." */
crt.VaList(bp, (*IdList)(unsafe.Pointer(pColumns)).FnId, n))
goto vector_append_error
__3:
@@ -74011,7 +75555,7 @@ func Xsqlite3ExprListCheckLength(tls *crt.TLS, pParse uintptr, pEList uintptr, z
var mx int32 = *(*int32)(unsafe.Pointer(((*Parse)(unsafe.Pointer(pParse)).Fdb + 124 /* &.aLimit */) + uintptr(2)*4))
if (pEList != 0) && ((*ExprList)(unsafe.Pointer(pEList)).FnExpr > mx) {
- Xsqlite3ErrorMsg(tls, pParse, ts+6858 /* "too many columns..." */, crt.VaList(bp, zObject))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7256 /* "too many columns..." */, crt.VaList(bp, zObject))
}
}
@@ -74065,10 +75609,10 @@ func Xsqlite3SelectWalkFail(tls *crt.TLS, pWalker uintptr, NotUsed uintptr) int3
// "false" EP_IsFalse
// anything else 0
func Xsqlite3IsTrueOrFalse(tls *crt.TLS, zIn uintptr) U32 { /* sqlite3.c:101411:20: */
- if Xsqlite3StrICmp(tls, zIn, ts+6881 /* "true" */) == 0 {
+ if Xsqlite3StrICmp(tls, zIn, ts+7279 /* "true" */) == 0 {
return U32(0x10000000)
}
- if Xsqlite3StrICmp(tls, zIn, ts+6886 /* "false" */) == 0 {
+ if Xsqlite3StrICmp(tls, zIn, ts+7284 /* "false" */) == 0 {
return U32(0x20000000)
}
return U32(0)
@@ -74505,13 +76049,13 @@ func Xsqlite3ExprNeedsNoAffinityChange(tls *crt.TLS, p uintptr, aff int8) int32
// Return TRUE if the given string is a row-id column name.
func Xsqlite3IsRowid(tls *crt.TLS, z uintptr) int32 { /* sqlite3.c:101851:20: */
- if Xsqlite3StrICmp(tls, z, ts+6892 /* "_ROWID_" */) == 0 {
+ if Xsqlite3StrICmp(tls, z, ts+7290 /* "_ROWID_" */) == 0 {
return 1
}
- if Xsqlite3StrICmp(tls, z, ts+6900 /* "ROWID" */) == 0 {
+ if Xsqlite3StrICmp(tls, z, ts+7298 /* "ROWID" */) == 0 {
return 1
}
- if Xsqlite3StrICmp(tls, z, ts+6906 /* "OID" */) == 0 {
+ if Xsqlite3StrICmp(tls, z, ts+7304 /* "OID" */) == 0 {
return 1
}
return 0
@@ -74737,7 +76281,7 @@ func Xsqlite3FindInIndex(tls *crt.TLS, pParse uintptr, pX uintptr, inFlags U32,
Xsqlite3OpenTable(tls, pParse, iTab, int32(iDb), pTab, 96)
eType = 1
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+6910 /* "USING ROWID SEAR..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+7308 /* "USING ROWID SEAR..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
Xsqlite3VdbeJumpHere(tls, v, iAddr)
} else {
var pIdx uintptr // Iterator variable
@@ -74828,7 +76372,7 @@ func Xsqlite3FindInIndex(tls *crt.TLS, pParse uintptr, pX uintptr, inFlags U32,
if colUsed == ((Bitmask((uint64(1))) << (nExpr)) - uint64(1)) {
// If we reach this point, that means the index pIdx is usable
var iAddr int32 = Xsqlite3VdbeAddOp0(tls, v, 17)
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+6957 /* "USING INDEX %s F..." */, crt.VaList(bp+8, (*Index)(unsafe.Pointer(pIdx)).FzName))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+7355 /* "USING INDEX %s F..." */, crt.VaList(bp+8, (*Index)(unsafe.Pointer(pIdx)).FzName))
Xsqlite3VdbeAddOp3(tls, v, 96, iTab, (*Index)(unsafe.Pointer(pIdx)).Ftnum, int32(iDb))
Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
@@ -74936,7 +76480,7 @@ func Xsqlite3SubselectError(tls *crt.TLS, pParse uintptr, nActual int32, nExpect
defer tls.Free(16)
if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
- var zFmt uintptr = ts + 6988 /* "sub-select retur..." */
+ var zFmt uintptr = ts + 7386 /* "sub-select retur..." */
Xsqlite3ErrorMsg(tls, pParse, zFmt, crt.VaList(bp, nActual, nExpect))
}
}
@@ -74956,7 +76500,7 @@ func Xsqlite3VectorErrorMsg(tls *crt.TLS, pParse uintptr, pExpr uintptr) { /* sq
if ((*Expr)(unsafe.Pointer(pExpr)).Fflags & U32(0x000800)) != 0 {
Xsqlite3SubselectError(tls, pParse, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32 /* &.x */)))).FpEList)).FnExpr, 1)
} else {
- Xsqlite3ErrorMsg(tls, pParse, ts+5808 /* "row value misuse..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6206 /* "row value misuse..." */, 0)
}
}
@@ -75009,7 +76553,7 @@ func Xsqlite3CodeRhsOfIN(tls *crt.TLS, pParse uintptr, pExpr uintptr, iTab int32
if ((*Expr)(unsafe.Pointer((pExpr))).Fflags & (U32(0x2000000))) != U32(0) {
addrOnce = Xsqlite3VdbeAddOp0(tls, v, 17)
if ((*Expr)(unsafe.Pointer((pExpr))).Fflags & (U32(0x000800))) != U32(0) {
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+7032 /* "REUSE LIST SUBQU..." */, crt.VaList(bp, (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32 /* &.x */)))).FselId))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+7430 /* "REUSE LIST SUBQU..." */, crt.VaList(bp, (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32 /* &.x */)))).FselId))
}
Xsqlite3VdbeAddOp2(tls, v, 12, (*struct {
FiAddr int32
@@ -75060,11 +76604,11 @@ func Xsqlite3CodeRhsOfIN(tls *crt.TLS, pParse uintptr, pExpr uintptr, iTab int32
var pSelect uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 32 /* &.x */))
var pEList uintptr = (*Select)(unsafe.Pointer(pSelect)).FpEList
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+7055 /* "%sLIST SUBQUERY ..." */, crt.VaList(bp+8, func() uintptr {
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+7453 /* "%sLIST SUBQUERY ..." */, crt.VaList(bp+8, func() uintptr {
if addrOnce != 0 {
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}
- return ts + 7074 /* "CORRELATED " */
+ return ts + 7472 /* "CORRELATED " */
}(), (*Select)(unsafe.Pointer(pSelect)).FselId))
// If the LHS and RHS of the IN operator do not match, that
// error will have been caught long before we reach this point.
@@ -75213,7 +76757,7 @@ func Xsqlite3CodeSubselect(tls *crt.TLS, pParse uintptr, pExpr uintptr) int32 {
// If this routine has already been coded, then invoke it as a
// subroutine.
if ((*Expr)(unsafe.Pointer((pExpr))).Fflags & (U32(0x2000000))) != U32(0) {
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+7086 /* "REUSE SUBQUERY %..." */, crt.VaList(bp, (*Select)(unsafe.Pointer(pSel)).FselId))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+7484 /* "REUSE SUBQUERY %..." */, crt.VaList(bp, (*Select)(unsafe.Pointer(pSel)).FselId))
Xsqlite3VdbeAddOp2(tls, v, 12, (*struct {
FiAddr int32
FregReturn int32
@@ -75251,11 +76795,11 @@ func Xsqlite3CodeSubselect(tls *crt.TLS, pParse uintptr, pExpr uintptr) int32 {
//
// In both cases, the query is augmented with "LIMIT 1". Any
// preexisting limit is discarded in place of the new LIMIT 1.
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+7104 /* "%sSCALAR SUBQUER..." */, crt.VaList(bp+8, func() uintptr {
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+7502 /* "%sSCALAR SUBQUER..." */, crt.VaList(bp+8, func() uintptr {
if addrOnce != 0 {
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}
- return ts + 7074 /* "CORRELATED " */
+ return ts + 7472 /* "CORRELATED " */
}(), (*Select)(unsafe.Pointer(pSel)).FselId))
if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == 136 {
nReg = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpEList)).FnExpr
@@ -75277,7 +76821,7 @@ func Xsqlite3CodeSubselect(tls *crt.TLS, pParse uintptr, pExpr uintptr) int32 {
// The subquery already has a limit. If the pre-existing limit is X
// then make the new limit X<>0 so that the new limit is either 1 or 0
var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
- pLimit = Xsqlite3Expr(tls, db, 152, ts+6707 /* "0" */)
+ pLimit = Xsqlite3Expr(tls, db, 152, ts+7105 /* "0" */)
if pLimit != 0 {
(*Expr)(unsafe.Pointer(pLimit)).FaffExpr = int8(0x43)
pLimit = Xsqlite3PExpr(tls, pParse, 52,
@@ -75287,7 +76831,7 @@ func Xsqlite3CodeSubselect(tls *crt.TLS, pParse uintptr, pExpr uintptr) int32 {
(*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit
} else {
// If there is no pre-existing limit add a limit of 1
- pLimit = Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, 152, ts+7125 /* "1" */)
+ pLimit = Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, 152, ts+7523 /* "1" */)
(*Select)(unsafe.Pointer(pSel)).FpLimit = Xsqlite3PExpr(tls, pParse, 146, pLimit, uintptr(0))
}
(*Select)(unsafe.Pointer(pSel)).FiLimit = 0
@@ -75774,12 +77318,12 @@ func codeInteger(tls *crt.TLS, pParse uintptr, pExpr uintptr, negFlag int32, iMe
c = Xsqlite3DecOrHexToI64(tls, z, bp+16 /* &value */)
if (((c == 3) && !(negFlag != 0)) || (c == 2)) || ((negFlag != 0) && (*(*I64)(unsafe.Pointer(bp + 16 /* value */)) == ((int64(-1)) - (int64(0xffffffff) | (I64((int64(0x7fffffff))) << 32))))) {
- if Xsqlite3_strnicmp(tls, z, ts+7127 /* "0x" */, 2) == 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+7130 /* "hex literal too ..." */, crt.VaList(bp, func() uintptr {
+ if Xsqlite3_strnicmp(tls, z, ts+7525 /* "0x" */, 2) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7528 /* "hex literal too ..." */, crt.VaList(bp, func() uintptr {
if negFlag != 0 {
- return ts + 4323 /* "-" */
+ return ts + 4431 /* "-" */
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}(), z))
} else {
codeReal(tls, v, z, negFlag, iMem)
@@ -75854,7 +77398,7 @@ func Xsqlite3ExprCodeGetColumnOfTable(tls *crt.TLS, v uintptr, pTab uintptr, iTa
} else if (int32((*Column)(unsafe.Pointer((crt.AssignUintptr(&pCol, ((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*32))))).FcolFlags) & 0x0020) != 0 {
var pParse uintptr = Xsqlite3VdbeParser(tls, v)
if (int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0100) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+7156 /* "generated column..." */, crt.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7554 /* "generated column..." */, crt.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzName))
} else {
var savedSelfTab int32 = (*Parse)(unsafe.Pointer(pParse)).FiSelfTab
*(*U16)(unsafe.Pointer(pCol + 28 /* &.colFlags */)) |= U16((0x0100))
@@ -76408,7 +77952,7 @@ __70:
if !((int32((*Column)(unsafe.Pointer(pCol1)).FcolFlags) & 0x0100) != 0) {
goto __73
}
- Xsqlite3ErrorMsg(tls, pParse, ts+7156, /* "generated column..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+7554, /* "generated column..." */
crt.VaList(bp, (*Column)(unsafe.Pointer(pCol1)).FzName))
return 0
__73:
@@ -76632,7 +78176,7 @@ __42:
goto __86
}
- Xsqlite3ErrorMsg(tls, pParse, ts+7186 /* "misuse of aggreg..." */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8 /* &.u */))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7584 /* "misuse of aggreg..." */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8 /* &.u */))))
goto __87
__86:
return (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pInfo)).FaFunc + uintptr((*Expr)(unsafe.Pointer(pExpr)).FiAgg)*24)).FiMem
@@ -76673,7 +78217,7 @@ __89:
if !((pDef == uintptr(0)) || ((*FuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0))) {
goto __90
}
- Xsqlite3ErrorMsg(tls, pParse, ts+7212 /* "unknown function..." */, crt.VaList(bp+16, zId))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7610 /* "unknown function..." */, crt.VaList(bp+16, zId))
goto __4
__90:
;
@@ -76840,7 +78384,7 @@ __115:
((*Expr)(unsafe.Pointer(pExpr)).FiTable != (crt.AssignInt32(&n1, Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft))))) {
goto __116
}
- Xsqlite3ErrorMsg(tls, pParse, ts+6828, /* "%d columns assig..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+7226, /* "%d columns assig..." */
crt.VaList(bp+24, (*Expr)(unsafe.Pointer(pExpr)).FiTable, n1))
__116:
;
@@ -76920,7 +78464,7 @@ __117:
goto __4
__53:
- Xsqlite3ErrorMsg(tls, pParse, ts+5808 /* "row value misuse..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+6206 /* "row value misuse..." */, 0)
goto __4
// TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions
@@ -77043,7 +78587,7 @@ __56:
goto __127
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+7235 /* "RAISE() may only..." */, 0)
+ ts+7633 /* "RAISE() may only..." */, 0)
return 0
__127:
;
@@ -77080,7 +78624,7 @@ __4:
return inReg
}
-var zAff = *(*[8]int8)(unsafe.Pointer(ts + 7285 /* "B\x00C\x00D\x00E" */)) /* sqlite3.c:103360:29 */
+var zAff = *(*[8]int8)(unsafe.Pointer(ts + 7683 /* "B\x00C\x00D\x00E" */)) /* sqlite3.c:103360:29 */
// Generate code that will evaluate expression pExpr just one time
// per prepared statement execution.
@@ -78884,10 +80428,10 @@ func isAlterableTable(tls *crt.TLS, pParse uintptr, pTab uintptr) int32 { /* sql
bp := tls.Alloc(8)
defer tls.Free(8)
- if (0 == Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7293 /* "sqlite_" */, 7)) ||
+ if (0 == Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7691 /* "sqlite_" */, 7)) ||
((((*Table)(unsafe.Pointer(pTab)).FtabFlags & U32(0x1000)) != U32(0)) &&
(Xsqlite3ReadOnlyShadowTables(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb) != 0)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+7301 /* "table %s may not..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7699 /* "table %s may not..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
return 1
}
return 0
@@ -78904,15 +80448,15 @@ func renameTestSchema(tls *crt.TLS, pParse uintptr, zDb uintptr, bTemp int32) {
Xsqlite3NestedParse(tls, pParse,
- ts+7329, /* "SELECT 1 FROM \"%..." */
- crt.VaList(bp, zDb, ts+5216, /* "sqlite_master" */
+ ts+7727, /* "SELECT 1 FROM \"%..." */
+ crt.VaList(bp, zDb, ts+5324, /* "sqlite_master" */
zDb, bTemp))
if bTemp == 0 {
Xsqlite3NestedParse(tls, pParse,
- ts+7485, /* "SELECT 1 FROM te..." */
- crt.VaList(bp+32, ts+5216 /* "sqlite_master" */, zDb))
+ ts+7883, /* "SELECT 1 FROM te..." */
+ crt.VaList(bp+32, ts+5324 /* "sqlite_master" */, zDb))
}
}
@@ -78986,7 +80530,7 @@ __3:
goto __4
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+7640 /* "there is already..." */, crt.VaList(bp, zName))
+ ts+8038 /* "there is already..." */, crt.VaList(bp, zName))
goto exit_rename_table
__4:
;
@@ -78999,7 +80543,7 @@ __4:
goto exit_rename_table
__5:
;
- if !(0 != Xsqlite3CheckObjectName(tls, pParse, zName, ts+7699 /* "table" */, zName)) {
+ if !(0 != Xsqlite3CheckObjectName(tls, pParse, zName, ts+6019 /* "table" */, zName)) {
goto __6
}
goto exit_rename_table
@@ -79009,7 +80553,7 @@ __6:
if !((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) {
goto __7
}
- Xsqlite3ErrorMsg(tls, pParse, ts+7705 /* "view %s may not ..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+8097 /* "view %s may not ..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
goto exit_rename_table
__7:
;
@@ -79062,24 +80606,24 @@ __12:
// the schema to use the new table name.
Xsqlite3NestedParse(tls, pParse,
- ts+7732 /* "UPDATE \"%w\".%s S..." */, crt.VaList(bp+16, zDb, ts+5216 /* "sqlite_master" */, zDb, zTabName, zName, (crt.Bool32(iDb == 1)), zTabName))
+ ts+8124 /* "UPDATE \"%w\".%s S..." */, crt.VaList(bp+16, zDb, ts+5324 /* "sqlite_master" */, zDb, zTabName, zName, (crt.Bool32(iDb == 1)), zTabName))
// Update the tbl_name and name columns of the sqlite_master table
// as required.
Xsqlite3NestedParse(tls, pParse,
- ts+7905, /* "UPDATE %Q.%s SET..." */
- crt.VaList(bp+72, zDb, ts+5216, /* "sqlite_master" */
+ ts+8297, /* "UPDATE %Q.%s SET..." */
+ crt.VaList(bp+72, zDb, ts+5324, /* "sqlite_master" */
zName, zName, zName,
nTabName, zTabName))
// If the sqlite_sequence table exists in this database, then update
// it with the new table name.
- if !(Xsqlite3FindTable(tls, db, ts+8199 /* "sqlite_sequence" */, zDb) != 0) {
+ if !(Xsqlite3FindTable(tls, db, ts+8591 /* "sqlite_sequence" */, zDb) != 0) {
goto __13
}
Xsqlite3NestedParse(tls, pParse,
- ts+8215, /* "UPDATE \"%w\".sqli..." */
+ ts+8607, /* "UPDATE \"%w\".sqli..." */
crt.VaList(bp+128, zDb, zName, (*Table)(unsafe.Pointer(pTab)).FzName))
__13:
;
@@ -79092,7 +80636,7 @@ __13:
}
Xsqlite3NestedParse(tls, pParse,
- ts+8273 /* "UPDATE sqlite_te..." */, crt.VaList(bp+152, zDb, zTabName, zName, zTabName, zDb, zName))
+ ts+8665 /* "UPDATE sqlite_te..." */, crt.VaList(bp+152, zDb, zTabName, zName, zTabName, zDb, zName))
__14:
;
@@ -79125,7 +80669,7 @@ func sqlite3ErrorIfNotEmpty(tls *crt.TLS, pParse uintptr, zDb uintptr, zTab uint
defer tls.Free(24)
Xsqlite3NestedParse(tls, pParse,
- ts+8527, /* "SELECT raise(ABO..." */
+ ts+8919, /* "SELECT raise(ABO..." */
crt.VaList(bp, zErr, zDb, zTab))
}
@@ -79173,12 +80717,12 @@ func Xsqlite3AlterFinishAddColumn(tls *crt.TLS, pParse uintptr, pColDef uintptr)
// If there is a NOT NULL constraint, then the default value for the
// column must not be NULL.
if (int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0001) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+8565 /* "Cannot add a PRI..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+8957 /* "Cannot add a PRI..." */, 0)
return
}
if (*Table)(unsafe.Pointer(pNew)).FpIndex != 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+8597 /* "Cannot add a UNI..." */, 0)
+ ts+8989 /* "Cannot add a UNI..." */, 0)
return
}
if (int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0060) == 0 {
@@ -79191,11 +80735,11 @@ func Xsqlite3AlterFinishAddColumn(tls *crt.TLS, pParse uintptr, pColDef uintptr)
}
if ((((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00004000)) != 0) && ((*Table)(unsafe.Pointer(pNew)).FpFKey != 0)) && (pDflt != 0) {
sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab,
- ts+8624 /* "Cannot add a REF..." */)
+ ts+9016 /* "Cannot add a REF..." */)
}
if ((*Column)(unsafe.Pointer(pCol)).FnotNull != 0) && !(pDflt != 0) {
sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab,
- ts+8683 /* "Cannot add a NOT..." */)
+ ts+9075 /* "Cannot add a NOT..." */)
}
// Ensure the default expression is something that sqlite3ValueFromExpr()
@@ -79211,12 +80755,12 @@ func Xsqlite3AlterFinishAddColumn(tls *crt.TLS, pParse uintptr, pColDef uintptr)
}
if !(*(*uintptr)(unsafe.Pointer(bp + 48 /* pVal */)) != 0) {
sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab,
- ts+8736 /* "Cannot add a col..." */)
+ ts+9128 /* "Cannot add a col..." */)
}
Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 48 /* pVal */)))
}
} else if (int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0040) != 0 {
- sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, ts+8782 /* "cannot add a STO..." */)
+ sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, ts+9174 /* "cannot add a STO..." */)
}
// Modify the CREATE TABLE statement.
@@ -79230,8 +80774,8 @@ func Xsqlite3AlterFinishAddColumn(tls *crt.TLS, pParse uintptr, pColDef uintptr)
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) |= (U32(0x0002))
Xsqlite3NestedParse(tls, pParse,
- ts+8809, /* "UPDATE \"%w\".%s S..." */
- crt.VaList(bp, zDb, ts+5216 /* "sqlite_master" */, (*Table)(unsafe.Pointer(pNew)).FaddColOffset, zCol, ((*Table)(unsafe.Pointer(pNew)).FaddColOffset+1),
+ ts+9201, /* "UPDATE \"%w\".%s S..." */
+ crt.VaList(bp, zDb, ts+5324 /* "sqlite_master" */, (*Table)(unsafe.Pointer(pNew)).FaddColOffset, zCol, ((*Table)(unsafe.Pointer(pNew)).FaddColOffset+1),
zTab))
Xsqlite3DbFree(tls, db, zCol)
(*Sqlite3)(unsafe.Pointer(db)).FmDbFlags = savedDbFlags
@@ -79301,7 +80845,7 @@ __2:
if !((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) {
goto __3
}
- Xsqlite3ErrorMsg(tls, pParse, ts+8918 /* "virtual tables m..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+9310 /* "virtual tables m..." */, 0)
goto exit_begin_add_column
__3:
;
@@ -79310,7 +80854,7 @@ __3:
if !((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) {
goto __4
}
- Xsqlite3ErrorMsg(tls, pParse, ts+8952 /* "Cannot add a col..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+9344 /* "Cannot add a col..." */, 0)
goto exit_begin_add_column
__4:
;
@@ -79345,7 +80889,7 @@ __6:
nAlloc = ((((int32((*Table)(unsafe.Pointer(pNew)).FnCol) - 1) / 8) * 8) + 8)
(*Table)(unsafe.Pointer(pNew)).FaCol = Xsqlite3DbMallocZero(tls, db, (uint64(uint64(unsafe.Sizeof(Column{})) * uint64(nAlloc))))
- (*Table)(unsafe.Pointer(pNew)).FzName = Xsqlite3MPrintf(tls, db, ts+8982 /* "sqlite_altertab_..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ (*Table)(unsafe.Pointer(pNew)).FzName = Xsqlite3MPrintf(tls, db, ts+9374 /* "sqlite_altertab_..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
if !(!(int32((*Table)(unsafe.Pointer(pNew)).FaCol) != 0) || !(int32((*Table)(unsafe.Pointer(pNew)).FzName) != 0)) {
goto __7
}
@@ -79392,14 +80936,14 @@ func isRealTable(tls *crt.TLS, pParse uintptr, pTab uintptr) int32 { /* sqlite3.
var zType uintptr = uintptr(0)
if (*Table)(unsafe.Pointer(pTab)).FpSelect != 0 {
- zType = ts + 9001 /* "view" */
+ zType = ts + 9393 /* "view" */
}
if (*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0 {
- zType = ts + 9006 /* "virtual table" */
+ zType = ts + 9398 /* "virtual table" */
}
if zType != 0 {
Xsqlite3ErrorMsg(tls,
- pParse, ts+9020 /* "cannot rename co..." */, crt.VaList(bp, zType, (*Table)(unsafe.Pointer(pTab)).FzName))
+ pParse, ts+9412 /* "cannot rename co..." */, crt.VaList(bp, zType, (*Table)(unsafe.Pointer(pTab)).FzName))
return 1
}
return 0
@@ -79490,7 +81034,7 @@ __8:
if !(iCol == int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
goto __10
}
- Xsqlite3ErrorMsg(tls, pParse, ts+5643 /* "no such column: ..." */, crt.VaList(bp, zOld))
+ Xsqlite3ErrorMsg(tls, pParse, ts+5751 /* "no such column: ..." */, crt.VaList(bp, zOld))
goto exit_rename_column
__10:
;
@@ -79510,15 +81054,15 @@ __11:
bQuote = (int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(pNew)).Fz + uintptr(0))))]) & 0x80)
Xsqlite3NestedParse(tls, pParse,
- ts+9053, /* "UPDATE \"%w\".%s S..." */
- crt.VaList(bp+8, zDb, ts+5216, /* "sqlite_master" */
+ ts+9445, /* "UPDATE \"%w\".%s S..." */
+ crt.VaList(bp+8, zDb, ts+5324, /* "sqlite_master" */
zDb, (*Table)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, (crt.Bool32(iSchema == 1)),
(*Table)(unsafe.Pointer(pTab)).FzName))
Xsqlite3NestedParse(tls, pParse,
- ts+9260, /* "UPDATE temp.%s S..." */
- crt.VaList(bp+80, ts+5216, /* "sqlite_master" */
+ ts+9652, /* "UPDATE temp.%s S..." */
+ crt.VaList(bp+80, ts+5324, /* "sqlite_master" */
zDb, (*Table)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote))
// Drop and reload the database schema.
@@ -79791,12 +81335,12 @@ func renameColumnParseError(tls *crt.TLS, pCtx uintptr, bPost int32, pType uintp
var zN uintptr = Xsqlite3_value_text(tls, pObject)
var zErr uintptr
- zErr = Xsqlite3_mprintf(tls, ts+9380, /* "error in %s %s%s..." */
+ zErr = Xsqlite3_mprintf(tls, ts+9772, /* "error in %s %s%s..." */
crt.VaList(bp, zT, zN, func() uintptr {
if bPost != 0 {
- return ts + 9401 /* " after rename" */
+ return ts + 9793 /* " after rename" */
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}(),
(*Parse)(unsafe.Pointer(pParse)).FzErrMsg))
Xsqlite3_result_error(tls, pCtx, zErr, -1)
@@ -79898,7 +81442,7 @@ func renameEditSql(tls *crt.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, zN
// ALTER TABLE statement was quoted (bQuote==1), then set zNew to
// point to zQuot so that all substitutions are made using the
// quoted version of the new column name.
- zQuot = Xsqlite3MPrintf(tls, db, ts+9415 /* "\"%w\"" */, crt.VaList(bp, zNew))
+ zQuot = Xsqlite3MPrintf(tls, db, ts+9807 /* "\"%w\"" */, crt.VaList(bp, zNew))
if zQuot == uintptr(0) {
return 7
} else {
@@ -80690,9 +82234,9 @@ func Xsqlite3AlterFunctions(tls *crt.TLS) { /* sqlite3.c:107314:21: */
}
var aAlterTableFuncs = [3]FuncDef{
- {FnArg: int8(9), FfuncFlags: (U32((0x00040000 | 1) | 0x0800)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 9420 /* "sqlite_rename_co..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(7), FfuncFlags: (U32((0x00040000 | 1) | 0x0800)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 9441 /* "sqlite_rename_ta..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(5), FfuncFlags: (U32((0x00040000 | 1) | 0x0800)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 9461 /* "sqlite_rename_te..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(9), FfuncFlags: (U32((0x00040000 | 1) | 0x0800)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 9812 /* "sqlite_rename_co..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(7), FfuncFlags: (U32((0x00040000 | 1) | 0x0800)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 9833 /* "sqlite_rename_ta..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(5), FfuncFlags: (U32((0x00040000 | 1) | 0x0800)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 9853 /* "sqlite_rename_te..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
} /* sqlite3.c:107315:18 */
//************* End of alter.c **********************************************
@@ -80885,7 +82429,7 @@ func openStatTable(tls *crt.TLS, pParse uintptr, iDb int32, iStatCur int32, zWhe
// of the new table in register pParse->regRoot. This is important
// because the OpenWrite opcode below will be needing it.
Xsqlite3NestedParse(tls, pParse,
- ts+9480 /* "CREATE TABLE %Q...." */, crt.VaList(bp, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zTab, aTable[i].FzCols))
+ ts+9872 /* "CREATE TABLE %Q...." */, crt.VaList(bp, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zTab, aTable[i].FzCols))
*(*int32)(unsafe.Pointer(bp + 60 /* &aRoot[0] */ + uintptr(i)*4)) = (*Parse)(unsafe.Pointer(pParse)).FregRoot
*(*U8)(unsafe.Pointer(bp + 56 /* &aCreateTbl[0] */ + uintptr(i))) = U8(0x10)
}
@@ -80897,7 +82441,7 @@ func openStatTable(tls *crt.TLS, pParse uintptr, iDb int32, iStatCur int32, zWhe
Xsqlite3TableLock(tls, pParse, iDb, *(*int32)(unsafe.Pointer(bp + 60 /* &aRoot[0] */ + uintptr(i)*4)), uint8(1), zTab)
if zWhere != 0 {
Xsqlite3NestedParse(tls, pParse,
- ts+9503, /* "DELETE FROM %Q.%..." */
+ ts+9895, /* "DELETE FROM %Q.%..." */
crt.VaList(bp+24, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere))
} else {
// The sqlite_stat[134] table already exists. Delete all rows.
@@ -80918,9 +82462,9 @@ var aTable = [3]struct {
FzName uintptr
FzCols uintptr
}{
- {FzName: ts + 9533 /* "sqlite_stat1" */, FzCols: ts + 9546 /* "tbl,idx,stat" */},
- {FzName: ts + 9559 /* "sqlite_stat4" */, FzCols: uintptr(0)},
- {FzName: ts + 9572 /* "sqlite_stat3" */, FzCols: uintptr(0)},
+ {FzName: ts + 9925 /* "sqlite_stat1" */, FzCols: ts + 9938 /* "tbl,idx,stat" */},
+ {FzName: ts + 9951 /* "sqlite_stat4" */, FzCols: uintptr(0)},
+ {FzName: ts + 9964 /* "sqlite_stat3" */, FzCols: uintptr(0)},
} /* sqlite3.c:107501:5 */
// Recommended number of samples for sqlite_stat4
@@ -81040,7 +82584,7 @@ uintptr(0), FxSFunc:// pNext
0, FxFinalize:// xSFunc
uintptr(0), FxValue:// xFinalize
uintptr(0), FxInverse: uintptr(0), FzName: // xValue, xInverse
-ts + 9585, /* "stat_init" */ Fu:// zName
+ts + 9977, /* "stat_init" */ Fu:// zName
struct{ FpHash uintptr }{FpHash: uintptr(0)},
} /* sqlite3.c:107812:22 */
@@ -81104,7 +82648,7 @@ uintptr(0), FxSFunc:// pNext
0, FxFinalize:// xSFunc
uintptr(0), FxValue:// xFinalize
uintptr(0), FxInverse: uintptr(0), FzName: // xValue, xInverse
-ts + 9595, /* "stat_push" */ Fu:// zName
+ts + 9987, /* "stat_push" */ Fu:// zName
struct{ FpHash uintptr }{FpHash: uintptr(0)},
} /* sqlite3.c:108102:22 */
@@ -81161,7 +82705,7 @@ func statGet(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqlit
return
}
- Xsqlite3_snprintf(tls, 24, zRet, ts+9605, /* "%llu" */
+ Xsqlite3_snprintf(tls, 24, zRet, ts+9997, /* "%llu" */
crt.VaList(bp, func() uint64 {
if (*StatAccum)(unsafe.Pointer(p)).FnSkipAhead != 0 {
return U64((*StatAccum)(unsafe.Pointer(p)).FnEst)
@@ -81172,7 +82716,7 @@ func statGet(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqlit
for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FnKeyCol; i++ {
var nDistinct U64 = (U64(*(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanDLt + uintptr(i)*4)) + TRowcnt(1)))
var iVal U64 = (((U64((*StatAccum)(unsafe.Pointer(p)).FnRow) + nDistinct) - uint64(1)) / nDistinct)
- Xsqlite3_snprintf(tls, 24, z, ts+9610 /* " %llu" */, crt.VaList(bp+8, iVal))
+ Xsqlite3_snprintf(tls, 24, z, ts+10002 /* " %llu" */, crt.VaList(bp+8, iVal))
z += uintptr(Xsqlite3Strlen30(tls, z))
}
@@ -81188,7 +82732,7 @@ uintptr(0), FxSFunc:// pNext
0, FxFinalize:// xSFunc
uintptr(0), FxValue:// xFinalize
uintptr(0), FxInverse: uintptr(0), FzName: // xValue, xInverse
-ts + 9616, /* "stat_get" */ Fu:// zName
+ts + 10008, /* "stat_get" */ Fu:// zName
struct{ FpHash uintptr }{FpHash: uintptr(0)},
} /* sqlite3.c:108254:22 */
@@ -81236,7 +82780,7 @@ func analyzeOneTable(tls *crt.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintpt
// Do not gather statistics on views or virtual tables
return
}
- if Xsqlite3_strlike(tls, ts+9625 /* "sqlite\\_%" */, (*Table)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 {
+ if Xsqlite3_strlike(tls, ts+10017 /* "sqlite\\_%" */, (*Table)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 {
// Do not gather statistics on system tables
return
}
@@ -81447,7 +82991,7 @@ func analyzeOneTable(tls *crt.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintpt
// Add the entry to the stat1 table.
callStatGet(tls, pParse, regStat, 0, regStat1)
- Xsqlite3VdbeAddOp4(tls, v, 91, regTabname, 3, regTemp, ts+9635 /* "BBB" */, 0)
+ Xsqlite3VdbeAddOp4(tls, v, 91, regTabname, 3, regTemp, ts+10027 /* "BBB" */, 0)
Xsqlite3VdbeAddOp2(tls, v, 120, iStatCur, regNewRowid)
Xsqlite3VdbeAddOp3(tls, v, 121, iStatCur, regTemp, regNewRowid)
Xsqlite3VdbeChangeP5(tls, v, uint16(0x08))
@@ -81466,7 +83010,7 @@ func analyzeOneTable(tls *crt.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintpt
jZeroRows = Xsqlite3VdbeAddOp1(tls, v, 20, regStat1)
Xsqlite3VdbeAddOp2(tls, v, 72, 0, regIdxname)
- Xsqlite3VdbeAddOp4(tls, v, 91, regTabname, 3, regTemp, ts+9635 /* "BBB" */, 0)
+ Xsqlite3VdbeAddOp4(tls, v, 91, regTabname, 3, regTemp, ts+10027 /* "BBB" */, 0)
Xsqlite3VdbeAddOp2(tls, v, 120, iStatCur, regNewRowid)
Xsqlite3VdbeAddOp3(tls, v, 121, iStatCur, regTemp, regNewRowid)
Xsqlite3VdbeChangeP5(tls, v, uint16(0x08))
@@ -81518,9 +83062,9 @@ func analyzeTable(tls *crt.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr)
iStatCur = (*Parse)(unsafe.Pointer(pParse)).FnTab
*(*int32)(unsafe.Pointer(pParse + 52 /* &.nTab */)) += (3)
if pOnlyIdx != 0 {
- openStatTable(tls, pParse, iDb, iStatCur, (*Index)(unsafe.Pointer(pOnlyIdx)).FzName, ts+9639 /* "idx" */)
+ openStatTable(tls, pParse, iDb, iStatCur, (*Index)(unsafe.Pointer(pOnlyIdx)).FzName, ts+10031 /* "idx" */)
} else {
- openStatTable(tls, pParse, iDb, iStatCur, (*Table)(unsafe.Pointer(pTab)).FzName, ts+9643 /* "tbl" */)
+ openStatTable(tls, pParse, iDb, iStatCur, (*Table)(unsafe.Pointer(pTab)).FzName, ts+10035 /* "tbl" */)
}
analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, ((*Parse)(unsafe.Pointer(pParse)).FnMem + 1), (*Parse)(unsafe.Pointer(pParse)).FnTab)
loadAnalysis(tls, pParse, iDb)
@@ -81632,15 +83176,15 @@ func decodeIntArray(tls *crt.TLS, zIntArray uintptr, nOut int32, aOut uintptr, a
crt.SetBitFieldPtr16Uint32(pIndex+100 /* &.bUnordered */, uint32(0), 2, 0x4)
crt.SetBitFieldPtr16Uint32(pIndex+100 /* &.noSkipScan */, uint32(0), 6, 0x40)
for *(*int8)(unsafe.Pointer(z + uintptr(0))) != 0 {
- if Xsqlite3_strglob(tls, ts+9647 /* "unordered*" */, z) == 0 {
+ if Xsqlite3_strglob(tls, ts+10039 /* "unordered*" */, z) == 0 {
crt.SetBitFieldPtr16Uint32(pIndex+100 /* &.bUnordered */, uint32(1), 2, 0x4)
- } else if Xsqlite3_strglob(tls, ts+9658 /* "sz=[0-9]*" */, z) == 0 {
+ } else if Xsqlite3_strglob(tls, ts+10050 /* "sz=[0-9]*" */, z) == 0 {
var sz int32 = Xsqlite3Atoi(tls, (z + uintptr(3)))
if sz < 2 {
sz = 2
}
(*Index)(unsafe.Pointer(pIndex)).FszIdxRow = Xsqlite3LogEst(tls, uint64(sz))
- } else if Xsqlite3_strglob(tls, ts+9668 /* "noskipscan*" */, z) == 0 {
+ } else if Xsqlite3_strglob(tls, ts+10060 /* "noskipscan*" */, z) == 0 {
crt.SetBitFieldPtr16Uint32(pIndex+100 /* &.noSkipScan */, uint32(1), 6, 0x40)
}
for (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) != 0) && (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) != ' ') {
@@ -81762,9 +83306,9 @@ func Xsqlite3AnalysisLoad(tls *crt.TLS, db uintptr, iDb int32) int32 { /* sqlite
// Load new statistics out of the sqlite_stat1 table
(*AnalysisInfo)(unsafe.Pointer(bp + 8 /* &sInfo */)).Fdb = db
(*AnalysisInfo)(unsafe.Pointer(bp + 8 /* &sInfo */)).FzDatabase = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
- if Xsqlite3FindTable(tls, db, ts+9533 /* "sqlite_stat1" */, (*AnalysisInfo)(unsafe.Pointer(bp+8 /* &sInfo */)).FzDatabase) != uintptr(0) {
+ if Xsqlite3FindTable(tls, db, ts+9925 /* "sqlite_stat1" */, (*AnalysisInfo)(unsafe.Pointer(bp+8 /* &sInfo */)).FzDatabase) != uintptr(0) {
zSql = Xsqlite3MPrintf(tls, db,
- ts+9680 /* "SELECT tbl,idx,s..." */, crt.VaList(bp, (*AnalysisInfo)(unsafe.Pointer(bp+8 /* &sInfo */)).FzDatabase))
+ ts+10072 /* "SELECT tbl,idx,s..." */, crt.VaList(bp, (*AnalysisInfo)(unsafe.Pointer(bp+8 /* &sInfo */)).FzDatabase))
if zSql == uintptr(0) {
rc = 7
} else {
@@ -81839,7 +83383,7 @@ func resolveAttachExpr(tls *crt.TLS, pName uintptr, pExpr uintptr) int32 { /* sq
// database iDb attached to handle db.
func Xsqlite3DbIsNamed(tls *crt.TLS, db uintptr, iDb int32, zName uintptr) int32 { /* sqlite3.c:109298:20: */
return (crt.Bool32((Xsqlite3StrICmp(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, zName) == 0) ||
- ((iDb == 0) && (Xsqlite3StrICmp(tls, ts+5718 /* "main" */, zName) == 0))))
+ ((iDb == 0) && (Xsqlite3StrICmp(tls, ts+6116 /* "main" */, zName) == 0))))
}
// An SQL user-function registered to do the work of an ATTACH statement. The
@@ -81890,23 +83434,23 @@ func attachFunc(tls *crt.TLS, context uintptr, NotUsed int32, argv uintptr) { /*
if !(zFile == uintptr(0)) {
goto __1
}
- zFile = ts + 623 /* "" */
+ zFile = ts + 672 /* "" */
__1:
;
if !(zName == uintptr(0)) {
goto __2
}
- zName = ts + 623 /* "" */
+ zName = ts + 672 /* "" */
__2:
;
- if !(0 != 0) {
+ if !(uint32(int32(*(*uint8)(unsafe.Pointer(db + 176 /* &.init */ + 8 /* &.reopenMemdb */))&0x4>>2)) != 0) {
goto __3
}
// This is not a real ATTACH. Instead, this routine is being called
// from sqlite3_deserialize() to close database db->init.iDb and
// reopen it as a MemDB
- *(*uintptr)(unsafe.Pointer(bp + 32 /* pVfs */)) = Xsqlite3_vfs_find(tls, ts+9721 /* "memdb" */)
+ *(*uintptr)(unsafe.Pointer(bp + 32 /* pVfs */)) = Xsqlite3_vfs_find(tls, ts+3352 /* "memdb" */)
if !(*(*uintptr)(unsafe.Pointer(bp + 32 /* pVfs */)) == uintptr(0)) {
goto __5
}
@@ -81922,7 +83466,7 @@ __6:
;
(*Db)(unsafe.Pointer(pNew)).FpBt = uintptr(0)
(*Db)(unsafe.Pointer(pNew)).FpSchema = uintptr(0)
- rc = Xsqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32 /* pVfs */)), ts+9727 /* "x\x00" */, db, (pNew + 8 /* &.pBt */), 0, 0x00000100)
+ rc = Xsqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32 /* pVfs */)), ts+10113 /* "x\x00" */, db, (pNew + 8 /* &.pBt */), 0, 0x00000100)
goto __4
__3:
// This is a real ATTACH
@@ -81935,7 +83479,7 @@ __3:
if !((*Sqlite3)(unsafe.Pointer(db)).FnDb >= (*(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(7)*4)) + 2)) {
goto __7
}
- *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+9730, /* "too many attache..." */
+ *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+10116, /* "too many attache..." */
crt.VaList(bp, *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(7)*4))))
goto attach_error
__7:
@@ -81949,7 +83493,7 @@ __8:
if !(Xsqlite3DbIsNamed(tls, db, i, zName) != 0) {
goto __11
}
- *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+9767 /* "database %s is a..." */, crt.VaList(bp+8, zName))
+ *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+10153 /* "database %s is a..." */, crt.VaList(bp+8, zName))
goto attach_error
__11:
;
@@ -81963,7 +83507,7 @@ __10:
// Allocate the new entry in the db->aDb[] array and initialize the schema
// hash tables.
- if !((*Sqlite3)(unsafe.Pointer(db)).FaDb == db+608 /* &.aDbStatic */) {
+ if !((*Sqlite3)(unsafe.Pointer(db)).FaDb == db+624 /* &.aDbStatic */) {
goto __12
}
aNew = Xsqlite3DbMallocRawNN(tls, db, (uint64(unsafe.Sizeof(Db{})) * uint64(3)))
@@ -82020,7 +83564,7 @@ __4:
goto __18
}
rc = 1
- *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+9797 /* "database is alre..." */, 0)
+ *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+10183 /* "database is alre..." */, 0)
goto __19
__18:
if !(rc == 0) {
@@ -82037,7 +83581,7 @@ __21:
goto __23
}
*(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db,
- ts+9826 /* "attached databas..." */, 0)
+ ts+10212 /* "attached databas..." */, 0)
rc = 1
__23:
;
@@ -82074,7 +83618,7 @@ __24:
Xsqlite3BtreeEnterAll(tls, db)
(*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(0)
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) &= (^U32(crt.Int32FromInt32(0x0010)))
- if !(!(0 != 0)) {
+ if !(!(int32(*(*uint8)(unsafe.Pointer(db + 176 /* &.init */ + 8 /* &.reopenMemdb */))&0x4>>2) != 0)) {
goto __26
}
rc = Xsqlite3Init(tls, db, bp+56 /* &zErrDyn */)
@@ -82086,7 +83630,7 @@ __25:
if !(rc != 0) {
goto __27
}
- if !(!(0 != 0)) {
+ if !(!(int32(*(*uint8)(unsafe.Pointer(db + 176 /* &.init */ + 8 /* &.reopenMemdb */))&0x4>>2) != 0)) {
goto __28
}
iDb = ((*Sqlite3)(unsafe.Pointer(db)).FnDb - 1)
@@ -82106,13 +83650,13 @@ __29:
}
Xsqlite3OomFault(tls, db)
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)))
- *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+5441 /* "out of memory" */, 0)
+ *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+5549 /* "out of memory" */, 0)
goto __31
__30:
if !(*(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) == uintptr(0)) {
goto __32
}
- *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+9894 /* "unable to open d..." */, crt.VaList(bp+16, zFile))
+ *(*uintptr)(unsafe.Pointer(bp + 56 /* zErrDyn */)) = Xsqlite3MPrintf(tls, db, ts+10280 /* "unable to open d..." */, crt.VaList(bp+16, zFile))
__32:
;
__31:
@@ -82168,7 +83712,7 @@ func detachFunc(tls *crt.TLS, context uintptr, NotUsed int32, argv uintptr) { /*
if !(zName == uintptr(0)) {
goto __1
}
- zName = ts + 623 /* "" */
+ zName = ts + 672 /* "" */
__1:
;
i = 0
@@ -82200,21 +83744,21 @@ __4:
if !(i >= (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
goto __7
}
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24 /* &zErr[0] */, ts+9922 /* "no such database..." */, crt.VaList(bp, zName))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24 /* &zErr[0] */, ts+10308 /* "no such database..." */, crt.VaList(bp, zName))
goto detach_error
__7:
;
if !(i < 2) {
goto __8
}
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24 /* &zErr[0] */, ts+9943 /* "cannot detach da..." */, crt.VaList(bp+8, zName))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24 /* &zErr[0] */, ts+10329 /* "cannot detach da..." */, crt.VaList(bp+8, zName))
goto detach_error
__8:
;
if !((Xsqlite3BtreeIsInReadTrans(tls, (*Db)(unsafe.Pointer(pDb)).FpBt) != 0) || (Xsqlite3BtreeIsInBackup(tls, (*Db)(unsafe.Pointer(pDb)).FpBt) != 0)) {
goto __9
}
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24 /* &zErr[0] */, ts+9969 /* "database %s is l..." */, crt.VaList(bp+16, zName))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24 /* &zErr[0] */, ts+10355 /* "database %s is l..." */, crt.VaList(bp+16, zName))
goto detach_error
__9:
;
@@ -82340,7 +83884,7 @@ uintptr(0), FxSFunc:// pNext
0, FxFinalize:// xSFunc
uintptr(0), FxValue:// xFinalize
uintptr(0), FxInverse: uintptr(0), FzName: // xValue, xInverse
-ts + 9991, /* "sqlite_detach" */ Fu:// zName
+ts + 10377, /* "sqlite_detach" */ Fu:// zName
struct{ FpHash uintptr }{FpHash: uintptr(0)},
} /* sqlite3.c:109645:24 */
@@ -82358,7 +83902,7 @@ uintptr(0), FxSFunc:// pNext
0, FxFinalize:// xSFunc
uintptr(0), FxValue:// xFinalize
uintptr(0), FxInverse: uintptr(0), FzName: // xValue, xInverse
-ts + 10005, /* "sqlite_attach" */ Fu:// zName
+ts + 10391, /* "sqlite_attach" */ Fu:// zName
struct{ FpHash uintptr }{FpHash: uintptr(0)},
} /* sqlite3.c:109665:24 */
@@ -82412,7 +83956,7 @@ __1:
if int32((*DbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 {
if ((*SrcList_item)(unsafe.Pointer(pItem)).FzDatabase != 0) && (iDb != Xsqlite3FindDbName(tls, db, (*SrcList_item)(unsafe.Pointer(pItem)).FzDatabase)) {
Xsqlite3ErrorMsg(tls, (*DbFixer)(unsafe.Pointer(pFix)).FpParse,
- ts+10019, /* "%s %T cannot ref..." */
+ ts+10405, /* "%s %T cannot ref..." */
crt.VaList(bp, (*DbFixer)(unsafe.Pointer(pFix)).FzType, (*DbFixer)(unsafe.Pointer(pFix)).FpName, (*SrcList_item)(unsafe.Pointer(pItem)).FzDatabase))
return 1
}
@@ -82488,7 +84032,7 @@ func Xsqlite3FixExpr(tls *crt.TLS, pFix uintptr, pExpr uintptr) int32 { /* sqlit
if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*DbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit.Fbusy != 0 {
(*Expr)(unsafe.Pointer(pExpr)).Fop = U8(119)
} else {
- Xsqlite3ErrorMsg(tls, (*DbFixer)(unsafe.Pointer(pFix)).FpParse, ts+10065 /* "%s cannot use va..." */, crt.VaList(bp, (*DbFixer)(unsafe.Pointer(pFix)).FzType))
+ Xsqlite3ErrorMsg(tls, (*DbFixer)(unsafe.Pointer(pFix)).FpParse, ts+10451 /* "%s cannot use va..." */, crt.VaList(bp, (*DbFixer)(unsafe.Pointer(pFix)).FzType))
return 1
}
}
@@ -82642,7 +84186,7 @@ func Xsqlite3_set_authorizer(tls *crt.TLS, db uintptr, xAuth uintptr, pArg uintp
// Write an error message into pParse->zErrMsg that explains that the
// user-supplied authorization function returned an illegal value.
func sqliteAuthBadReturnCode(tls *crt.TLS, pParse uintptr) { /* sqlite3.c:109957:13: */
- Xsqlite3ErrorMsg(tls, pParse, ts+10089 /* "authorizer malfu..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+10475 /* "authorizer malfu..." */, 0)
(*Parse)(unsafe.Pointer(pParse)).Frc = 1
}
@@ -82666,11 +84210,11 @@ func Xsqlite3AuthReadCol(tls *crt.TLS, pParse uintptr, zTab uintptr, zCol uintpt
}
rc = (*(*func(*crt.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer((db + 464 /* &.xAuth */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpAuthArg, 20, zTab, zCol, zDb, (*Parse)(unsafe.Pointer(pParse)).FzAuthContext)
if rc == 1 {
- var z uintptr = Xsqlite3_mprintf(tls, ts+10112 /* "%s.%s" */, crt.VaList(bp, zTab, zCol))
+ var z uintptr = Xsqlite3_mprintf(tls, ts+10498 /* "%s.%s" */, crt.VaList(bp, zTab, zCol))
if ((*Sqlite3)(unsafe.Pointer(db)).FnDb > 2) || (iDb != 0) {
- z = Xsqlite3_mprintf(tls, ts+10118 /* "%s.%z" */, crt.VaList(bp+16, zDb, z))
+ z = Xsqlite3_mprintf(tls, ts+10504 /* "%s.%z" */, crt.VaList(bp+16, zDb, z))
}
- Xsqlite3ErrorMsg(tls, pParse, ts+10124 /* "access to %z is ..." */, crt.VaList(bp+32, z))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10510 /* "access to %z is ..." */, crt.VaList(bp+32, z))
(*Parse)(unsafe.Pointer(pParse)).Frc = 23
} else if (rc != 2) && (rc != 0) {
sqliteAuthBadReturnCode(tls, pParse)
@@ -82726,7 +84270,7 @@ func Xsqlite3AuthRead(tls *crt.TLS, pParse uintptr, pExpr uintptr, pSchema uintp
zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr((*Table)(unsafe.Pointer(pTab)).FiPKey)*32)).FzName
} else {
- zCol = ts + 6900 /* "ROWID" */
+ zCol = ts + 7298 /* "ROWID" */
}
if 2 == Xsqlite3AuthReadCol(tls, pParse, (*Table)(unsafe.Pointer(pTab)).FzName, zCol, iDb) {
@@ -82762,7 +84306,7 @@ func Xsqlite3AuthCheck(tls *crt.TLS, pParse uintptr, code int32, zArg1 uintptr,
rc = (*(*func(*crt.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer((db + 464 /* &.xAuth */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*Parse)(unsafe.Pointer(pParse)).FzAuthContext)
if rc == 1 {
- Xsqlite3ErrorMsg(tls, pParse, ts+10151 /* "not authorized" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+10537 /* "not authorized" */, 0)
(*Parse)(unsafe.Pointer(pParse)).Frc = 23
} else if (rc != 0) && (rc != 2) {
rc = 1
@@ -83037,16 +84581,16 @@ func Xsqlite3FindTable(tls *crt.TLS, db uintptr, zName uintptr, zDatabase uintpt
if i >= (*Sqlite3)(unsafe.Pointer(db)).FnDb {
// No match against the official names. But always match "main"
// to schema 0 as a legacy fallback.
- if Xsqlite3StrICmp(tls, zDatabase, ts+5718 /* "main" */) == 0 {
+ if Xsqlite3StrICmp(tls, zDatabase, ts+6116 /* "main" */) == 0 {
i = 0
} else {
return uintptr(0)
}
}
p = Xsqlite3HashFind(tls, ((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema + 8 /* &.tblHash */), zName)
- if ((p == uintptr(0)) && (i == 1)) && (Xsqlite3StrICmp(tls, zName, ts+5216 /* "sqlite_master" */) == 0) {
+ if ((p == uintptr(0)) && (i == 1)) && (Xsqlite3StrICmp(tls, zName, ts+5324 /* "sqlite_master" */) == 0) {
// All temp.sqlite_master to be an alias for sqlite_temp_master
- p = Xsqlite3HashFind(tls, ((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(1)*32)).FpSchema + 8 /* &.tblHash */), ts+10166 /* "sqlite_temp_mast..." */)
+ p = Xsqlite3HashFind(tls, ((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(1)*32)).FpSchema + 8 /* &.tblHash */), ts+10552 /* "sqlite_temp_mast..." */)
}
} else {
// Match against TEMP first
@@ -83099,8 +84643,8 @@ func Xsqlite3LocateTable(tls *crt.TLS, pParse uintptr, flags U32, zName uintptr,
// CREATE, then check to see if it is the name of an virtual table that
// can be an eponymous virtual table.
if int32((*Parse)(unsafe.Pointer(pParse)).FdisableVtab) == 0 {
- var pMod uintptr = Xsqlite3HashFind(tls, (db + 488 /* &.aModule */), zName)
- if (pMod == uintptr(0)) && (Xsqlite3_strnicmp(tls, zName, ts+10185 /* "pragma_" */, 7) == 0) {
+ var pMod uintptr = Xsqlite3HashFind(tls, (db + 504 /* &.aModule */), zName)
+ if (pMod == uintptr(0)) && (Xsqlite3_strnicmp(tls, zName, ts+10571 /* "pragma_" */, 7) == 0) {
pMod = Xsqlite3PragmaVtabRegister(tls, db, zName)
}
if (pMod != 0) && (Xsqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0) {
@@ -83118,14 +84662,14 @@ func Xsqlite3LocateTable(tls *crt.TLS, pParse uintptr, flags U32, zName uintptr,
if p == uintptr(0) {
var zMsg uintptr
if (flags & U32(0x01)) != 0 {
- zMsg = ts + 10193 /* "no such view" */
+ zMsg = ts + 10579 /* "no such view" */
} else {
- zMsg = ts + 10206 /* "no such table" */
+ zMsg = ts + 10592 /* "no such table" */
}
if zDbase != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+5911 /* "%s: %s.%s" */, crt.VaList(bp, zMsg, zDbase, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6309 /* "%s: %s.%s" */, crt.VaList(bp, zMsg, zDbase, zName))
} else {
- Xsqlite3ErrorMsg(tls, pParse, ts+5921 /* "%s: %s" */, crt.VaList(bp+24, zMsg, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+6319 /* "%s: %s" */, crt.VaList(bp+24, zMsg, zName))
}
}
@@ -83251,10 +84795,10 @@ func Xsqlite3CollapseDatabaseArray(tls *crt.TLS, db uintptr) { /* sqlite3.c:1106
j++
}
(*Sqlite3)(unsafe.Pointer(db)).FnDb = j
- if ((*Sqlite3)(unsafe.Pointer(db)).FnDb <= 2) && ((*Sqlite3)(unsafe.Pointer(db)).FaDb != db+608 /* &.aDbStatic */) {
- crt.Xmemcpy(tls, db+608 /* &.aDbStatic */, (*Sqlite3)(unsafe.Pointer(db)).FaDb, (uint64(2) * uint64(unsafe.Sizeof(Db{}))))
+ if ((*Sqlite3)(unsafe.Pointer(db)).FnDb <= 2) && ((*Sqlite3)(unsafe.Pointer(db)).FaDb != db+624 /* &.aDbStatic */) {
+ crt.Xmemcpy(tls, db+624 /* &.aDbStatic */, (*Sqlite3)(unsafe.Pointer(db)).FaDb, (uint64(2) * uint64(unsafe.Sizeof(Db{}))))
Xsqlite3DbFree(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FaDb)
- (*Sqlite3)(unsafe.Pointer(db)).FaDb = db + 608 /* &.aDbStatic */
+ (*Sqlite3)(unsafe.Pointer(db)).FaDb = db + 624 /* &.aDbStatic */
}
}
@@ -83433,7 +84977,7 @@ func Xsqlite3NameFromToken(tls *crt.TLS, db uintptr, pName uintptr) uintptr { /*
// writing. The table is opened using cursor 0.
func Xsqlite3OpenMasterTable(tls *crt.TLS, p uintptr, iDb int32) { /* sqlite3.c:110892:21: */
var v uintptr = Xsqlite3GetVdbe(tls, p)
- Xsqlite3TableLock(tls, p, iDb, 1, uint8(1), ts+5216 /* "sqlite_master" */)
+ Xsqlite3TableLock(tls, p, iDb, 1, uint8(1), ts+5324 /* "sqlite_master" */)
Xsqlite3VdbeAddOp4Int(tls, v, 97, 0, 1, iDb, 5)
if (*Parse)(unsafe.Pointer(p)).FnTab == 0 {
(*Parse)(unsafe.Pointer(p)).FnTab = 1
@@ -83460,7 +85004,7 @@ func Xsqlite3FindDbName(tls *crt.TLS, db uintptr, zName uintptr) int32 { /* sqli
}
// "main" is always an acceptable alias for the primary database
// even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME.
- if (i == 0) && (0 == Xsqlite3_stricmp(tls, ts+5718 /* "main" */, zName)) {
+ if (i == 0) && (0 == Xsqlite3_stricmp(tls, ts+6116 /* "main" */, zName)) {
goto __3
}
}
@@ -83512,13 +85056,13 @@ func Xsqlite3TwoPartName(tls *crt.TLS, pParse uintptr, pName1 uintptr, pName2 ui
if (*Token)(unsafe.Pointer(pName2)).Fn > uint32(0) {
if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+10220 /* "corrupt database" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+10606 /* "corrupt database" */, 0)
return -1
}
*(*uintptr)(unsafe.Pointer(pUnqual)) = pName2
iDb = Xsqlite3FindDb(tls, db, pName1)
if iDb < 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+10237 /* "unknown database..." */, crt.VaList(bp, pName1))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10623 /* "unknown database..." */, crt.VaList(bp, pName1))
return -1
}
} else {
@@ -83558,14 +85102,14 @@ func Xsqlite3CheckObjectName(tls *crt.TLS, pParse uintptr, zName uintptr, zType
(Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit + uintptr(1)*8))) != 0)) ||
(Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit + uintptr(2)*8))) != 0) {
if Xsqlite3Config.FbExtraSchemaChecks != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+623 /* "" */, 0) // corruptSchema() will supply the error
+ Xsqlite3ErrorMsg(tls, pParse, ts+672 /* "" */, 0) // corruptSchema() will supply the error
return 1
}
}
} else {
- if ((int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) && (0 == Xsqlite3_strnicmp(tls, zName, ts+7293 /* "sqlite_" */, 7))) ||
+ if ((int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) && (0 == Xsqlite3_strnicmp(tls, zName, ts+7691 /* "sqlite_" */, 7))) ||
((Xsqlite3ReadOnlyShadowTables(tls, db) != 0) && (Xsqlite3ShadowTableName(tls, db, zName) != 0)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+10257, /* "object name rese..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+10643, /* "object name rese..." */
crt.VaList(bp, zName))
return 1
}
@@ -83718,9 +85262,9 @@ func Xsqlite3StartTable(tls *crt.TLS, pParse uintptr, pName1 uintptr, pName2 uin
iDb = int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb)
zName = Xsqlite3DbStrDup(tls, db, func() uintptr {
if (!(0 != 0)) && (iDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}())
*(*uintptr)(unsafe.Pointer(bp + 16 /* pName */)) = pName1
goto __2
@@ -83738,7 +85282,7 @@ __3:
}
// If creating a temp table, the name may not be qualified. Unless
// the database name is "temp" anyway.
- Xsqlite3ErrorMsg(tls, pParse, ts+10299 /* "temporary table ..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+10685 /* "temporary table ..." */, 0)
return
__4:
;
@@ -83766,9 +85310,9 @@ __7:
;
if !(Xsqlite3CheckObjectName(tls, pParse, zName, func() uintptr {
if isView != 0 {
- return ts + 9001 /* "view" */
+ return ts + 9393 /* "view" */
}
- return ts + 7699 /* "table" */
+ return ts + 6019 /* "table" */
}(), zName) != 0) {
goto __8
}
@@ -83785,9 +85329,9 @@ __9:
zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
if !(Xsqlite3AuthCheck(tls, pParse, 18, func() uintptr {
if (!(0 != 0)) && (isTemp == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}(), uintptr(0), zDb) != 0) {
goto __10
}
@@ -83825,7 +85369,7 @@ __13:
if !(!(noErr != 0)) {
goto __15
}
- Xsqlite3ErrorMsg(tls, pParse, ts+10340 /* "table %T already..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 16 /* pName */))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10726 /* "table %T already..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 16 /* pName */))))
goto __16
__15:
;
@@ -83838,7 +85382,7 @@ __14:
if !(Xsqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0)) {
goto __17
}
- Xsqlite3ErrorMsg(tls, pParse, ts+10364 /* "there is already..." */, crt.VaList(bp+8, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10750 /* "there is already..." */, crt.VaList(bp+8, zName))
goto begin_table_error
__17:
;
@@ -83866,7 +85410,7 @@ __18:
// If this is the magic sqlite_sequence table used by autoincrement,
// then record a pointer to this table in the main database structure
// so that INSERT can find the table easily.
- if !(!(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) && (crt.Xstrcmp(tls, zName, ts+8199 /* "sqlite_sequence" */) == 0)) {
+ if !(!(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) && (crt.Xstrcmp(tls, zName, ts+8591 /* "sqlite_sequence" */) == 0)) {
goto __19
}
@@ -83977,7 +85521,7 @@ func Xsqlite3AddColumn(tls *crt.TLS, pParse uintptr, pName uintptr, pType uintpt
return
}
if (int32((*Table)(unsafe.Pointer(p)).FnCol) + 1) > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(2)*4)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+10399 /* "too many columns..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(p)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10785 /* "too many columns..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(p)).FzName))
return
}
z = Xsqlite3DbMallocRaw(tls, db, (uint64(((*Token)(unsafe.Pointer(pName)).Fn + (*Token)(unsafe.Pointer(pType)).Fn) + uint32(2))))
@@ -83992,7 +85536,7 @@ func Xsqlite3AddColumn(tls *crt.TLS, pParse uintptr, pName uintptr, pType uintpt
Xsqlite3Dequote(tls, z)
for i = 0; i < int32((*Table)(unsafe.Pointer(p)).FnCol); i++ {
if Xsqlite3_stricmp(tls, z, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol+uintptr(i)*32)).FzName) == 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+10422 /* "duplicate column..." */, crt.VaList(bp+8, z))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10808 /* "duplicate column..." */, crt.VaList(bp+8, z))
Xsqlite3DbFree(tls, db, z)
return
}
@@ -84166,11 +85710,11 @@ func Xsqlite3AddDefaultValue(tls *crt.TLS, pParse uintptr, pExpr uintptr, zStart
var isInit int32 = (crt.Bool32(((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0) && (int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb) != 1)))
pCol = ((*Table)(unsafe.Pointer(p)).FaCol + uintptr((int32((*Table)(unsafe.Pointer(p)).FnCol)-1))*32)
if !(Xsqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+10448, /* "default value of..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+10834, /* "default value of..." */
crt.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzName))
} else if (int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0060) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+10493 /* "cannot use DEFAU..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+10879 /* "cannot use DEFAU..." */, 0)
} else {
// A copy of pExpr is used instead of the original, as pExpr contains
// tokens that point to volatile memory.
@@ -84220,7 +85764,7 @@ func makeColumnPartOfPrimaryKey(tls *crt.TLS, pParse uintptr, pCol uintptr) { /*
if (int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0060) != 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+10534 /* "generated column..." */, 0)
+ ts+10920 /* "generated column..." */, 0)
}
}
@@ -84265,7 +85809,7 @@ __1:
goto __2
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+10586 /* "table \"%s\" has m..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ ts+10972 /* "table \"%s\" has m..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
goto primary_key_exit
__2:
;
@@ -84325,7 +85869,7 @@ __4:
;
if !((((nTerm == 1) &&
(pCol != 0)) &&
- (Xsqlite3StrICmp(tls, Xsqlite3ColumnType(tls, pCol, ts+623 /* "" */), ts+10627 /* "INTEGER" */) == 0)) &&
+ (Xsqlite3StrICmp(tls, Xsqlite3ColumnType(tls, pCol, ts+672 /* "" */), ts+11013 /* "INTEGER" */) == 0)) &&
(sortOrder != 1)) {
goto __13
}
@@ -84353,7 +85897,7 @@ __13:
goto __17
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+10635 /* "AUTOINCREMENT is..." */, 0)
+ ts+11021 /* "AUTOINCREMENT is..." */, 0)
goto __18
__17:
Xsqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0),
@@ -84443,7 +85987,7 @@ __1:
if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) == 1) {
goto __2
}
- Xsqlite3ErrorMsg(tls, pParse, ts+10691 /* "virtual tables c..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+11077 /* "virtual tables c..." */, 0)
goto generated_done
__2:
;
@@ -84456,12 +86000,12 @@ __3:
if !(pType != 0) {
goto __4
}
- if !(((*Token)(unsafe.Pointer(pType)).Fn == uint32(7)) && (Xsqlite3_strnicmp(tls, ts+10734 /* "virtual" */, (*Token)(unsafe.Pointer(pType)).Fz, 7) == 0)) {
+ if !(((*Token)(unsafe.Pointer(pType)).Fn == uint32(7)) && (Xsqlite3_strnicmp(tls, ts+11120 /* "virtual" */, (*Token)(unsafe.Pointer(pType)).Fz, 7) == 0)) {
goto __5
}
goto __6
__5:
- if !(((*Token)(unsafe.Pointer(pType)).Fn == uint32(6)) && (Xsqlite3_strnicmp(tls, ts+10742 /* "stored" */, (*Token)(unsafe.Pointer(pType)).Fz, 6) == 0)) {
+ if !(((*Token)(unsafe.Pointer(pType)).Fn == uint32(6)) && (Xsqlite3_strnicmp(tls, ts+11128 /* "stored" */, (*Token)(unsafe.Pointer(pType)).Fz, 6) == 0)) {
goto __7
}
eType = U8(0x0040)
@@ -84494,7 +86038,7 @@ __10:
goto generated_done
generated_error:
- Xsqlite3ErrorMsg(tls, pParse, ts+10749, /* "error in generat..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+11135, /* "error in generat..." */
crt.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzName))
generated_done:
Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
@@ -84634,13 +86178,13 @@ __3:
;
n = n + (identLength(tls, (*Table)(unsafe.Pointer(p)).FzName))
if n < 50 {
- zSep = ts + 623 /* "" */
- zSep2 = ts + 10780 /* "," */
- zEnd = ts + 4348 /* ")" */
+ zSep = ts + 672 /* "" */
+ zSep2 = ts + 11166 /* "," */
+ zEnd = ts + 4456 /* ")" */
} else {
- zSep = ts + 10782 /* "\n " */
- zSep2 = ts + 10786 /* ",\n " */
- zEnd = ts + 10791 /* "\n)" */
+ zSep = ts + 11168 /* "\n " */
+ zSep2 = ts + 11172 /* ",\n " */
+ zEnd = ts + 11177 /* "\n)" */
}
n = n + (35 + (6 * int32((*Table)(unsafe.Pointer(p)).FnCol)))
zStmt = Xsqlite3DbMallocRaw(tls, uintptr(0), uint64(n))
@@ -84648,7 +86192,7 @@ __3:
Xsqlite3OomFault(tls, db)
return uintptr(0)
}
- Xsqlite3_snprintf(tls, n, zStmt, ts+10794 /* "CREATE TABLE " */, 0)
+ Xsqlite3_snprintf(tls, n, zStmt, ts+11180 /* "CREATE TABLE " */, 0)
*(*int32)(unsafe.Pointer(bp + 8 /* k */)) = Xsqlite3Strlen30(tls, zStmt)
identPut(tls, zStmt, bp+8 /* &k */, (*Table)(unsafe.Pointer(p)).FzName)
*(*int8)(unsafe.Pointer(zStmt + uintptr(crt.PostIncInt32(&*(*int32)(unsafe.Pointer(bp + 8 /* k */)), 1)))) = int8('(')
@@ -84682,16 +86226,16 @@ __5:
goto __6
__6:
;
- Xsqlite3_snprintf(tls, (n - *(*int32)(unsafe.Pointer(bp + 8 /* k */))), (zStmt + uintptr(*(*int32)(unsafe.Pointer(bp + 8 /* k */)))), ts+647 /* "%s" */, crt.VaList(bp, zEnd))
+ Xsqlite3_snprintf(tls, (n - *(*int32)(unsafe.Pointer(bp + 8 /* k */))), (zStmt + uintptr(*(*int32)(unsafe.Pointer(bp + 8 /* k */)))), ts+696 /* "%s" */, crt.VaList(bp, zEnd))
return zStmt
}
var azType1 = [5]uintptr{
- /* SQLITE_AFF_BLOB */ ts + 623, /* "" */
- /* SQLITE_AFF_TEXT */ ts + 10808, /* " TEXT" */
- /* SQLITE_AFF_NUMERIC */ ts + 10814, /* " NUM" */
- /* SQLITE_AFF_INTEGER */ ts + 10819, /* " INT" */
- /* SQLITE_AFF_REAL */ ts + 10824, /* " REAL" */
+ /* SQLITE_AFF_BLOB */ ts + 672, /* "" */
+ /* SQLITE_AFF_TEXT */ ts + 11194, /* " TEXT" */
+ /* SQLITE_AFF_NUMERIC */ ts + 11200, /* " NUM" */
+ /* SQLITE_AFF_INTEGER */ ts + 11205, /* " INT" */
+ /* SQLITE_AFF_REAL */ ts + 11210, /* " REAL" */
} /* sqlite3.c:111965:23 */
// Resize an Index object to hold N columns total. Return SQLITE_OK
@@ -85034,7 +86578,7 @@ func Xsqlite3IsShadowTableOf(tls *crt.TLS, db uintptr, pTab uintptr, zName uintp
if int32(*(*int8)(unsafe.Pointer(zName + uintptr(nName)))) != '_' {
return 0
}
- pMod = Xsqlite3HashFind(tls, (db + 488 /* &.aModule */), *(*uintptr)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FazModuleArg + uintptr(0)*8)))
+ pMod = Xsqlite3HashFind(tls, (db + 504 /* &.aModule */), *(*uintptr)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FazModuleArg + uintptr(0)*8)))
if pMod == uintptr(0) {
return 0
}
@@ -85121,7 +86665,7 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
// table itself. So mark it read-only.
if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
if pSelect != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+623 /* "" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+672 /* "" */, 0)
return
}
(*Table)(unsafe.Pointer(p)).Ftnum = (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum
@@ -85134,11 +86678,11 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
if (int32(tabOpts) & 0x0080) != 0 {
if ((*Table)(unsafe.Pointer(p)).FtabFlags & U32(0x0008)) != 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+10830 /* "AUTOINCREMENT no..." */, 0)
+ ts+11216 /* "AUTOINCREMENT no..." */, 0)
return
}
if ((*Table)(unsafe.Pointer(p)).FtabFlags & U32(0x0004)) == U32(0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+10880 /* "PRIMARY KEY miss..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(p)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+11266 /* "PRIMARY KEY miss..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(p)).FzName))
return
}
*(*U32)(unsafe.Pointer(p + 64 /* &.tabFlags */)) |= (U32(0x0080 | 0x0200))
@@ -85181,7 +86725,7 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
}
}
if nNG == 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+10912 /* "must have at lea..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+11298 /* "must have at lea..." */, 0)
return
}
}
@@ -85214,12 +86758,12 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
// Initialize zType for the new view or table.
if (*Table)(unsafe.Pointer(p)).FpSelect == uintptr(0) {
// A regular table
- zType = ts + 7699 /* "table" */
- zType2 = ts + 10956 /* "TABLE" */
+ zType = ts + 6019 /* "table" */
+ zType2 = ts + 11342 /* "TABLE" */
} else {
// A view
- zType = ts + 9001 /* "view" */
- zType2 = ts + 10962 /* "VIEW" */
+ zType = ts + 9393 /* "view" */
+ zType2 = ts + 11348 /* "VIEW" */
}
// If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT
@@ -85300,7 +86844,7 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
n = int32(uint32(n) + ((*Token)(unsafe.Pointer(pEnd2)).Fn))
}
zStmt = Xsqlite3MPrintf(tls, db,
- ts+10967 /* "CREATE %s %.*s" */, crt.VaList(bp+8, zType2, n, (*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz))
+ ts+11353 /* "CREATE %s %.*s" */, crt.VaList(bp+8, zType2, n, (*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz))
}
// A slot for the record has already been allocated in the
@@ -85308,8 +86852,8 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
// the information we've collected.
Xsqlite3NestedParse(tls, pParse,
- ts+10982, /* "UPDATE %Q.%s SET..." */
- crt.VaList(bp+32, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216, /* "sqlite_master" */
+ ts+11368, /* "UPDATE %Q.%s SET..." */
+ crt.VaList(bp+32, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324, /* "sqlite_master" */
zType,
(*Table)(unsafe.Pointer(p)).FzName,
(*Table)(unsafe.Pointer(p)).FzName,
@@ -85326,14 +86870,14 @@ func Xsqlite3EndTable(tls *crt.TLS, pParse uintptr, pCons uintptr, pEnd uintptr,
if (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) {
Xsqlite3NestedParse(tls, pParse,
- ts+11069, /* "CREATE TABLE %Q...." */
+ ts+11455, /* "CREATE TABLE %Q...." */
crt.VaList(bp+96, (*Db)(unsafe.Pointer(pDb)).FzDbSName))
}
}
// Reparse everything to update our internal data structures
Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb,
- Xsqlite3MPrintf(tls, db, ts+11111 /* "tbl_name='%q' AN..." */, crt.VaList(bp+104, (*Table)(unsafe.Pointer(p)).FzName)))
+ Xsqlite3MPrintf(tls, db, ts+11497 /* "tbl_name='%q' AN..." */, crt.VaList(bp+104, (*Table)(unsafe.Pointer(p)).FzName)))
}
// Add the table to the in-memory representation of the database.
@@ -85385,7 +86929,7 @@ func Xsqlite3CreateView(tls *crt.TLS, pParse uintptr, pBegin uintptr, pName1 uin
if !(int32((*Parse)(unsafe.Pointer(pParse)).FnVar) > 0) {
goto __1
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11145 /* "parameters are n..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+11531 /* "parameters are n..." */, 0)
goto create_view_fail
__1:
;
@@ -85399,7 +86943,7 @@ __2:
;
Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp /* &pName */)
iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(p)).FpSchema)
- Xsqlite3FixInit(tls, bp+8 /* &sFix */, pParse, iDb, ts+9001 /* "view" */, *(*uintptr)(unsafe.Pointer(bp /* pName */)))
+ Xsqlite3FixInit(tls, bp+8 /* &sFix */, pParse, iDb, ts+9393 /* "view" */, *(*uintptr)(unsafe.Pointer(bp /* pName */)))
if !(Xsqlite3FixSelect(tls, bp+8 /* &sFix */, pSelect) != 0) {
goto __3
}
@@ -85516,7 +87060,7 @@ func Xsqlite3ViewGetColumnNames(tls *crt.TLS, pParse uintptr, pTable uintptr) in
// CREATE TEMP VIEW ex1 AS SELECT a FROM ex1;
// SELECT * FROM temp.ex1;
if int32((*Table)(unsafe.Pointer(pTable)).FnCol) < 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+11181 /* "view %s is circu..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+11567 /* "view %s is circu..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName))
return 1
}
@@ -85658,7 +87202,7 @@ func destroyRootPage(tls *crt.TLS, pParse uintptr, iTable int32, iDb int32) { /*
var v uintptr = Xsqlite3GetVdbe(tls, pParse)
var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
if iTable < 2 {
- Xsqlite3ErrorMsg(tls, pParse, ts+11211 /* "corrupt schema" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+11597 /* "corrupt schema" */, 0)
}
Xsqlite3VdbeAddOp3(tls, v, 136, iTable, r1, iDb)
Xsqlite3MayAbort(tls, pParse)
@@ -85671,8 +87215,8 @@ func destroyRootPage(tls *crt.TLS, pParse uintptr, iTable int32, iDb int32) { /*
// is in register NNN. See grammar rules associated with the TK_REGISTER
// token for additional information.
Xsqlite3NestedParse(tls, pParse,
- ts+11226, /* "UPDATE %Q.%s SET..." */
- crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216 /* "sqlite_master" */, iTable, r1, r1))
+ ts+11612, /* "UPDATE %Q.%s SET..." */
+ crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324 /* "sqlite_master" */, iTable, r1, r1))
Xsqlite3ReleaseTempReg(tls, pParse, r1)
}
@@ -85735,10 +87279,10 @@ func sqlite3ClearStatTables(tls *crt.TLS, pParse uintptr, iDb int32, zType uintp
for i = 1; i <= 4; i++ {
// var zTab [24]int8 at bp+40, 24
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([24]int8{})), bp+40 /* &zTab[0] */, ts+11282 /* "sqlite_stat%d" */, crt.VaList(bp, i))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([24]int8{})), bp+40 /* &zTab[0] */, ts+11668 /* "sqlite_stat%d" */, crt.VaList(bp, i))
if Xsqlite3FindTable(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, bp+40 /* &zTab[0] */, zDbName) != 0 {
Xsqlite3NestedParse(tls, pParse,
- ts+9503, /* "DELETE FROM %Q.%..." */
+ ts+9895, /* "DELETE FROM %Q.%..." */
crt.VaList(bp+8, zDbName, bp+40 /* &zTab[0] */, zType, zName))
}
}
@@ -85778,7 +87322,7 @@ func Xsqlite3CodeDropTable(tls *crt.TLS, pParse uintptr, pTab uintptr, iDb int32
// move as a result of the drop (can happen in auto-vacuum mode).
if ((*Table)(unsafe.Pointer(pTab)).FtabFlags & U32(0x0008)) != 0 {
Xsqlite3NestedParse(tls, pParse,
- ts+11296, /* "DELETE FROM %Q.s..." */
+ ts+11682, /* "DELETE FROM %Q.s..." */
crt.VaList(bp, (*Db)(unsafe.Pointer(pDb)).FzDbSName, (*Table)(unsafe.Pointer(pTab)).FzName))
}
@@ -85789,8 +87333,8 @@ func Xsqlite3CodeDropTable(tls *crt.TLS, pParse uintptr, pTab uintptr, iDb int32
// created in the temp database that refers to a table in another
// database.
Xsqlite3NestedParse(tls, pParse,
- ts+11341, /* "DELETE FROM %Q.%..." */
- crt.VaList(bp+16, (*Db)(unsafe.Pointer(pDb)).FzDbSName, ts+5216 /* "sqlite_master" */, (*Table)(unsafe.Pointer(pTab)).FzName))
+ ts+11727, /* "DELETE FROM %Q.%..." */
+ crt.VaList(bp+16, (*Db)(unsafe.Pointer(pDb)).FzDbSName, ts+5324 /* "sqlite_master" */, (*Table)(unsafe.Pointer(pTab)).FzName))
if !(isView != 0) && !((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) {
destroyTable(tls, pParse, pTab)
}
@@ -85819,11 +87363,11 @@ func Xsqlite3ReadOnlyShadowTables(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c
// Return true if it is not allowed to drop the given table
func tableMayNotBeDropped(tls *crt.TLS, db uintptr, pTab uintptr) int32 { /* sqlite3.c:113154:12: */
- if Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7293 /* "sqlite_" */, 7) == 0 {
- if Xsqlite3_strnicmp(tls, ((*Table)(unsafe.Pointer(pTab)).FzName+uintptr(7)), ts+2236 /* "stat" */, 4) == 0 {
+ if Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7691 /* "sqlite_" */, 7) == 0 {
+ if Xsqlite3_strnicmp(tls, ((*Table)(unsafe.Pointer(pTab)).FzName+uintptr(7)), ts+2285 /* "stat" */, 4) == 0 {
return 0
}
- if Xsqlite3_strnicmp(tls, ((*Table)(unsafe.Pointer(pTab)).FzName+uintptr(7)), ts+6399 /* "parameters" */, 10) == 0 {
+ if Xsqlite3_strnicmp(tls, ((*Table)(unsafe.Pointer(pTab)).FzName+uintptr(7)), ts+6797 /* "parameters" */, 10) == 0 {
return 0
}
return 1
@@ -85903,9 +87447,9 @@ __7:
zTab = func() uintptr {
if (!(0 != 0)) && (iDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}()
zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
zArg2 = uintptr(0)
@@ -85964,7 +87508,7 @@ __18:
if !(tableMayNotBeDropped(tls, db, pTab) != 0) {
goto __19
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11397 /* "table %s may not..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+11783 /* "table %s may not..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
goto exit_drop_table
__19:
;
@@ -85974,14 +87518,14 @@ __19:
if !((isView != 0) && ((*Table)(unsafe.Pointer(pTab)).FpSelect == uintptr(0))) {
goto __20
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11425 /* "use DROP TABLE t..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+11811 /* "use DROP TABLE t..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
goto exit_drop_table
__20:
;
if !(!(isView != 0) && ((*Table)(unsafe.Pointer(pTab)).FpSelect != 0)) {
goto __21
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11459 /* "use DROP VIEW to..." */, crt.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+11845 /* "use DROP VIEW to..." */, crt.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
goto exit_drop_table
__21:
;
@@ -85996,7 +87540,7 @@ __21:
if !(!(isView != 0)) {
goto __23
}
- sqlite3ClearStatTables(tls, pParse, iDb, ts+9643 /* "tbl" */, (*Table)(unsafe.Pointer(pTab)).FzName)
+ sqlite3ClearStatTables(tls, pParse, iDb, ts+10035 /* "tbl" */, (*Table)(unsafe.Pointer(pTab)).FzName)
Xsqlite3FkDropTable(tls, pParse, pName, pTab)
__23:
;
@@ -86061,7 +87605,7 @@ __4:
goto __5
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+11491, /* "foreign key on %..." */
+ ts+11877, /* "foreign key on %..." */
crt.VaList(bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol+uintptr(iCol)*32)).FzName, pTo))
goto fk_end
__5:
@@ -86074,7 +87618,7 @@ __2:
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+11554 /* "number of column..." */, 0)
+ ts+11940 /* "number of column..." */, 0)
goto fk_end
goto __7
__6:
@@ -86158,7 +87702,7 @@ __21:
goto __23
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+11648, /* "unknown column \"..." */
+ ts+12034, /* "unknown column \"..." */
crt.VaList(bp+16, (*ExprList_item)(unsafe.Pointer((pFromCol+8 /* &.a */)+uintptr(i)*32)).FzEName))
goto fk_end
__23:
@@ -86408,12 +87952,12 @@ func Xsqlite3HasExplicitNulls(tls *crt.TLS, pParse uintptr, pList uintptr) int32
for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
if uint32(int32(*(*uint8)(unsafe.Pointer((pList + 8 /* &.a */) + uintptr(i)*32 + 20 /* &.bNulls */))&0x20>>5)) != 0 {
var sf U8 = (*ExprList_item)(unsafe.Pointer((pList + 8 /* &.a */) + uintptr(i)*32)).FsortFlags
- Xsqlite3ErrorMsg(tls, pParse, ts+11694, /* "unsupported use ..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+12080, /* "unsupported use ..." */
crt.VaList(bp, func() uintptr {
if (int32(sf) == 0) || (int32(sf) == 3) {
- return ts + 11722 /* "FIRST" */
+ return ts + 12108 /* "FIRST" */
}
- return ts + 11728 /* "LAST" */
+ return ts + 12114 /* "LAST" */
}()))
return 1
}
@@ -86567,7 +88111,7 @@ __9:
__8:
;
- Xsqlite3FixInit(tls, bp+144 /* &sFix */, pParse, iDb, ts+11733 /* "index" */, *(*uintptr)(unsafe.Pointer(bp + 136 /* pName */)))
+ Xsqlite3FixInit(tls, bp+144 /* &sFix */, pParse, iDb, ts+6025 /* "index" */, *(*uintptr)(unsafe.Pointer(bp + 136 /* pName */)))
if !(Xsqlite3FixSrcList(tls, bp+144 /* &sFix */, pTblName) != 0) {
goto __10
}
@@ -86587,7 +88131,7 @@ __11:
goto __12
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+11739, /* "cannot create a ..." */
+ ts+12119, /* "cannot create a ..." */
crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
goto exit_create_index
__12:
@@ -86614,26 +88158,26 @@ __6:
;
pDb = ((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)
- if !(((Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7293 /* "sqlite_" */, 7) == 0) &&
+ if !(((Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7691 /* "sqlite_" */, 7) == 0) &&
(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0)) &&
(pTblName != uintptr(0))) {
goto __15
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11789 /* "table %s may not..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+12169 /* "table %s may not..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
goto exit_create_index
__15:
;
if !((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) {
goto __16
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11817 /* "views may not be..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+12197 /* "views may not be..." */, 0)
goto exit_create_index
__16:
;
if !((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) {
goto __17
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11842 /* "virtual tables m..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+12222 /* "virtual tables m..." */, 0)
goto exit_create_index
__17:
;
@@ -86660,7 +88204,7 @@ __17:
__20:
;
- if !(0 != Xsqlite3CheckObjectName(tls, pParse, zName, ts+11733 /* "index" */, (*Table)(unsafe.Pointer(pTab)).FzName)) {
+ if !(0 != Xsqlite3CheckObjectName(tls, pParse, zName, ts+6025 /* "index" */, (*Table)(unsafe.Pointer(pTab)).FzName)) {
goto __21
}
goto exit_create_index
@@ -86675,7 +88219,7 @@ __21:
if !(Xsqlite3FindTable(tls, db, zName, uintptr(0)) != uintptr(0)) {
goto __24
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11876 /* "there is already..." */, crt.VaList(bp+16, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+12256 /* "there is already..." */, crt.VaList(bp+16, zName))
goto exit_create_index
__24:
;
@@ -86687,7 +88231,7 @@ __23:
if !(!(ifNotExist != 0)) {
goto __26
}
- Xsqlite3ErrorMsg(tls, pParse, ts+11910 /* "index %s already..." */, crt.VaList(bp+24, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+12290 /* "index %s already..." */, crt.VaList(bp+24, zName))
goto __27
__26:
;
@@ -86715,7 +88259,7 @@ __29:
goto __30
__30:
;
- zName = Xsqlite3MPrintf(tls, db, ts+11934 /* "sqlite_autoindex..." */, crt.VaList(bp+32, (*Table)(unsafe.Pointer(pTab)).FzName, n))
+ zName = Xsqlite3MPrintf(tls, db, ts+12314 /* "sqlite_autoindex..." */, crt.VaList(bp+32, (*Table)(unsafe.Pointer(pTab)).FzName, n))
if !(zName == uintptr(0)) {
goto __31
}
@@ -86744,9 +88288,9 @@ __19:
zDb = (*Db)(unsafe.Pointer(pDb)).FzDbSName
if !(Xsqlite3AuthCheck(tls, pParse, 18, func() uintptr {
if (!(0 != 0)) && (iDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}(), uintptr(0), zDb) != 0) {
goto __34
}
@@ -86790,7 +88334,7 @@ __39:
Xsqlite3ExprListSetSortOrder(tls, pList, sortOrder, -1)
goto __38
__37:
- Xsqlite3ExprListCheckLength(tls, pParse, pList, ts+11733 /* "index" */)
+ Xsqlite3ExprListCheckLength(tls, pParse, pList, ts+6025 /* "index" */)
if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
goto __40
}
@@ -86907,7 +88451,7 @@ __53:
goto __56
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+11957 /* "expressions proh..." */, 0)
+ ts+12337 /* "expressions proh..." */, 0)
goto exit_create_index
__56:
;
@@ -87135,7 +88679,7 @@ __88:
goto __93
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+12018 /* "conflicting ON C..." */, crt.VaList(bp+48, 0))
+ ts+12398 /* "conflicting ON C..." */, crt.VaList(bp+48, 0))
__93:
;
if !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) == 11) {
@@ -87191,7 +88735,7 @@ __81:
if !(Xsqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0) {
goto __101
}
- Xsqlite3ErrorMsg(tls, pParse, ts+12060 /* "invalid rootpage" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+12440 /* "invalid rootpage" */, 0)
(*Parse)(unsafe.Pointer(pParse)).Frc = Xsqlite3CorruptError(tls, 114060)
goto exit_create_index
__101:
@@ -87249,12 +88793,12 @@ __104:
__107:
;
// A named index with an explicit CREATE INDEX statement
- zStmt = Xsqlite3MPrintf(tls, db, ts+12077, /* "CREATE%s INDEX %..." */
+ zStmt = Xsqlite3MPrintf(tls, db, ts+12457, /* "CREATE%s INDEX %..." */
crt.VaList(bp+56, func() uintptr {
if onError == 0 {
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}
- return ts + 12097 /* " UNIQUE" */
+ return ts + 12477 /* " UNIQUE" */
}(), n1, (*Token)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 136 /* pName */)))).Fz))
goto __106
__105:
@@ -87266,8 +88810,8 @@ __106:
// Add an entry in sqlite_master for this index
Xsqlite3NestedParse(tls, pParse,
- ts+12105, /* "INSERT INTO %Q.%..." */
- crt.VaList(bp+80, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216, /* "sqlite_master" */
+ ts+12485, /* "INSERT INTO %Q.%..." */
+ crt.VaList(bp+80, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324, /* "sqlite_master" */
(*Index)(unsafe.Pointer(pIndex)).FzName,
(*Table)(unsafe.Pointer(pTab)).FzName,
iMem,
@@ -87282,7 +88826,7 @@ __106:
sqlite3RefillIndex(tls, pParse, pIndex, iMem)
Xsqlite3ChangeCookie(tls, pParse, iDb)
Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb,
- Xsqlite3MPrintf(tls, db, ts+12153 /* "name='%q' AND ty..." */, crt.VaList(bp+128, (*Index)(unsafe.Pointer(pIndex)).FzName)))
+ Xsqlite3MPrintf(tls, db, ts+12533 /* "name='%q' AND ty..." */, crt.VaList(bp+128, (*Index)(unsafe.Pointer(pIndex)).FzName)))
Xsqlite3VdbeAddOp2(tls, v, 158, 0, 1)
__108:
;
@@ -87456,7 +89000,7 @@ __2:
if !(!(ifExists != 0)) {
goto __4
}
- Xsqlite3ErrorMsg(tls, pParse, ts+12180 /* "no such index: %..." */, crt.VaList(bp, pName, 0))
+ Xsqlite3ErrorMsg(tls, pParse, ts+12560 /* "no such index: %..." */, crt.VaList(bp, pName, 0))
goto __5
__4:
Xsqlite3CodeVerifyNamedSchema(tls, pParse, (*SrcList_item)(unsafe.Pointer((pName+8 /* &.a */)+uintptr(0)*112)).FzDatabase)
@@ -87470,7 +89014,7 @@ __3:
goto __6
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+12198 /* "index associated..." */, crt.VaList(bp+16, 0))
+ ts+12578 /* "index associated..." */, crt.VaList(bp+16, 0))
goto exit_drop_index
__6:
;
@@ -87481,9 +89025,9 @@ __6:
zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
zTab = func() uintptr {
if (!(0 != 0)) && (iDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}()
if !(Xsqlite3AuthCheck(tls, pParse, 9, zTab, uintptr(0), zDb) != 0) {
goto __7
@@ -87511,9 +89055,9 @@ __9:
}
Xsqlite3BeginWriteOperation(tls, pParse, 1, iDb)
Xsqlite3NestedParse(tls, pParse,
- ts+12271, /* "DELETE FROM %Q.%..." */
- crt.VaList(bp+24, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216 /* "sqlite_master" */, (*Index)(unsafe.Pointer(pIndex)).FzName))
- sqlite3ClearStatTables(tls, pParse, iDb, ts+9639 /* "idx" */, (*Index)(unsafe.Pointer(pIndex)).FzName)
+ ts+12651, /* "DELETE FROM %Q.%..." */
+ crt.VaList(bp+24, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324 /* "sqlite_master" */, (*Index)(unsafe.Pointer(pIndex)).FzName))
+ sqlite3ClearStatTables(tls, pParse, iDb, ts+10031 /* "idx" */, (*Index)(unsafe.Pointer(pIndex)).FzName)
Xsqlite3ChangeCookie(tls, pParse, iDb)
destroyRootPage(tls, pParse, (*Index)(unsafe.Pointer(pIndex)).Ftnum, iDb)
Xsqlite3VdbeAddOp4(tls, v, 144, iDb, 0, 0, (*Index)(unsafe.Pointer(pIndex)).FzName, 0)
@@ -87664,7 +89208,7 @@ func Xsqlite3SrcListEnlarge(tls *crt.TLS, pParse uintptr, pSrc uintptr, nExtra i
var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
if ((*SrcList)(unsafe.Pointer(pSrc)).FnSrc + nExtra) >= 200 {
- Xsqlite3ErrorMsg(tls, pParse, ts+12320, /* "too many FROM cl..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+12700, /* "too many FROM cl..." */
crt.VaList(bp, 200))
return uintptr(0)
}
@@ -87864,12 +89408,12 @@ func Xsqlite3SrcListAppendFromTerm(tls *crt.TLS, pParse uintptr, p uintptr, pTab
if !(!(p != 0) && ((pOn != 0) || (pUsing != 0))) {
goto __1
}
- Xsqlite3ErrorMsg(tls, pParse, ts+12356, /* "a JOIN clause is..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+12736, /* "a JOIN clause is..." */
crt.VaList(bp, func() uintptr {
if pOn != 0 {
- return ts + 12392 /* "ON" */
+ return ts + 12772 /* "ON" */
}
- return ts + 12395 /* "USING" */
+ return ts + 12775 /* "USING" */
}()))
goto append_from_error
__1:
@@ -87979,7 +89523,7 @@ func Xsqlite3BeginTransaction(tls *crt.TLS, pParse uintptr, type1 int32) { /* sq
db = (*Parse)(unsafe.Pointer(pParse)).Fdb
- if Xsqlite3AuthCheck(tls, pParse, 22, ts+12401 /* "BEGIN" */, uintptr(0), uintptr(0)) != 0 {
+ if Xsqlite3AuthCheck(tls, pParse, 22, ts+12781 /* "BEGIN" */, uintptr(0), uintptr(0)) != 0 {
return
}
v = Xsqlite3GetVdbe(tls, pParse)
@@ -88006,9 +89550,9 @@ func Xsqlite3EndTransaction(tls *crt.TLS, pParse uintptr, eType int32) { /* sqli
if Xsqlite3AuthCheck(tls, pParse, 22,
func() uintptr {
if isRollback != 0 {
- return ts + 12407 /* "ROLLBACK" */
+ return ts + 12787 /* "ROLLBACK" */
}
- return ts + 12416 /* "COMMIT" */
+ return ts + 12796 /* "COMMIT" */
}(), uintptr(0), uintptr(0)) != 0 {
return
}
@@ -88033,7 +89577,7 @@ func Xsqlite3Savepoint(tls *crt.TLS, pParse uintptr, op int32, pName uintptr) {
}
}
-var az = [3]uintptr{ts + 12401 /* "BEGIN" */, ts + 12423 /* "RELEASE" */, ts + 12407 /* "ROLLBACK" */} /* sqlite3.c:114783:23 */
+var az = [3]uintptr{ts + 12781 /* "BEGIN" */, ts + 12803 /* "RELEASE" */, ts + 12787 /* "ROLLBACK" */} /* sqlite3.c:114783:23 */
// Make sure the TEMP database is open and available for use. Return
// the number of errors. Leave any error messages in the pParse structure.
@@ -88049,7 +89593,7 @@ func Xsqlite3OpenTempDatabase(tls *crt.TLS, pParse uintptr) int32 { /* sqlite3.c
rc = Xsqlite3BtreeOpen(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp /* &pBt */, 0, flags)
if rc != 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+12431 /* "unable to open a..." */, 0)
+ ts+12811 /* "unable to open a..." */, 0)
(*Parse)(unsafe.Pointer(pParse)).Frc = rc
return 1
}
@@ -88187,17 +89731,17 @@ func Xsqlite3UniqueConstraint(tls *crt.TLS, pParse uintptr, onError int32, pIdx
Xsqlite3StrAccumInit(tls, bp+8 /* &errMsg */, (*Parse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0,
*(*int32)(unsafe.Pointer(((*Parse)(unsafe.Pointer(pParse)).Fdb + 124 /* &.aLimit */) + uintptr(0)*4)))
if (*Index)(unsafe.Pointer(pIdx)).FaColExpr != 0 {
- Xsqlite3_str_appendf(tls, bp+8 /* &errMsg */, ts+12501 /* "index '%q'" */, crt.VaList(bp, (*Index)(unsafe.Pointer(pIdx)).FzName))
+ Xsqlite3_str_appendf(tls, bp+8 /* &errMsg */, ts+12881 /* "index '%q'" */, crt.VaList(bp, (*Index)(unsafe.Pointer(pIdx)).FzName))
} else {
for j = 0; j < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); j++ {
var zCol uintptr
zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*32)).FzName
if j != 0 {
- Xsqlite3_str_append(tls, bp+8 /* &errMsg */, ts+12512 /* ", " */, 2)
+ Xsqlite3_str_append(tls, bp+8 /* &errMsg */, ts+12892 /* ", " */, 2)
}
Xsqlite3_str_appendall(tls, bp+8 /* &errMsg */, (*Table)(unsafe.Pointer(pTab)).FzName)
- Xsqlite3_str_append(tls, bp+8 /* &errMsg */, ts+636 /* "." */, 1)
+ Xsqlite3_str_append(tls, bp+8 /* &errMsg */, ts+685 /* "." */, 1)
Xsqlite3_str_appendall(tls, bp+8 /* &errMsg */, zCol)
}
}
@@ -88220,11 +89764,11 @@ func Xsqlite3RowidConstraint(tls *crt.TLS, pParse uintptr, onError int32, pTab u
var zMsg uintptr
var rc int32
if int32((*Table)(unsafe.Pointer(pTab)).FiPKey) >= 0 {
- zMsg = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+10112 /* "%s.%s" */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
+ zMsg = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+10498 /* "%s.%s" */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
(*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr((*Table)(unsafe.Pointer(pTab)).FiPKey)*32)).FzName))
rc = (19 | (int32(6) << 8))
} else {
- zMsg = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+12515 /* "%s.rowid" */, crt.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
+ zMsg = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+12895 /* "%s.rowid" */, crt.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
rc = (19 | (int32(10) << 8))
}
Xsqlite3HaltConstraint(tls, pParse, rc, onError, zMsg, int8(-7),
@@ -88366,7 +89910,7 @@ func Xsqlite3Reindex(tls *crt.TLS, pParse uintptr, pName1 uintptr, pName2 uintpt
sqlite3RefillIndex(tls, pParse, pIndex, -1)
return
}
- Xsqlite3ErrorMsg(tls, pParse, ts+12524 /* "unable to identi..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+12904 /* "unable to identi..." */, 0)
}
// Return a KeyInfo structure that is appropriate for the given Index.
@@ -88434,7 +89978,7 @@ func Xsqlite3WithAdd(tls *crt.TLS, pParse uintptr, pWith uintptr, pName uintptr,
var i int32
for i = 0; i < (*With)(unsafe.Pointer(pWith)).FnCte; i++ {
if Xsqlite3StrICmp(tls, zName, (*Cte)(unsafe.Pointer((pWith+16 /* &.a */)+uintptr(i)*32)).FzName) == 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+12570 /* "duplicate WITH t..." */, crt.VaList(bp, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+12950 /* "duplicate WITH t..." */, crt.VaList(bp, zName))
}
}
}
@@ -88506,6 +90050,16 @@ func callCollNeeded(tls *crt.TLS, db uintptr, enc int32, zName uintptr) { /* sql
(*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer((db + 336 /* &.xCollNeeded */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg, db, enc, zExternal)
Xsqlite3DbFree(tls, db, zExternal)
}
+ if (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded16 != 0 {
+ var zExternal uintptr
+ var pTmp uintptr = Xsqlite3ValueNew(tls, db)
+ Xsqlite3ValueSetStr(tls, pTmp, -1, zName, uint8(1), uintptr(0))
+ zExternal = Xsqlite3ValueText(tls, pTmp, uint8(2))
+ if zExternal != 0 {
+ (*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer((db + 344 /* &.xCollNeeded16 */))))(tls, (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg, db, int32((*Sqlite3)(unsafe.Pointer(db)).Fenc), zExternal)
+ }
+ Xsqlite3ValueFree(tls, pTmp)
+ }
}
// This routine is called if the collation factory fails to deliver a
@@ -88564,7 +90118,7 @@ func Xsqlite3CheckCollSeq(tls *crt.TLS, pParse uintptr, pColl uintptr) int32 { /
// each collation sequence structure.
func findCollSeqEntry(tls *crt.TLS, db uintptr, zName uintptr, create int32) uintptr { /* sqlite3.c:115350:16: */
var pColl uintptr
- pColl = Xsqlite3HashFind(tls, (db + 560 /* &.aCollSeq */), zName)
+ pColl = Xsqlite3HashFind(tls, (db + 576 /* &.aCollSeq */), zName)
if (uintptr(0) == pColl) && (create != 0) {
var nName int32 = (Xsqlite3Strlen30(tls, zName) + 1)
@@ -88578,7 +90132,7 @@ func findCollSeqEntry(tls *crt.TLS, db uintptr, zName uintptr, create int32) uin
(*CollSeq)(unsafe.Pointer(pColl + uintptr(2)*40)).FzName = (pColl + uintptr(3)*40)
(*CollSeq)(unsafe.Pointer(pColl + uintptr(2)*40)).Fenc = U8(3)
crt.Xmemcpy(tls, (*CollSeq)(unsafe.Pointer(pColl+uintptr(0)*40)).FzName, zName, uint64(nName))
- pDel = Xsqlite3HashInsert(tls, (db + 560 /* &.aCollSeq */), (*CollSeq)(unsafe.Pointer(pColl+uintptr(0)*40)).FzName, pColl)
+ pDel = Xsqlite3HashInsert(tls, (db + 576 /* &.aCollSeq */), (*CollSeq)(unsafe.Pointer(pColl+uintptr(0)*40)).FzName, pColl)
// If a malloc() failure occurred in sqlite3HashInsert(), it will
// return the pColl pointer to be deleted (because it wasn't added
@@ -88665,7 +90219,7 @@ func Xsqlite3GetCollSeq(tls *crt.TLS, pParse uintptr, enc U8, pColl uintptr, zNa
}
if p == uintptr(0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+12600 /* "no such collatio..." */, crt.VaList(bp, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+12980 /* "no such collatio..." */, crt.VaList(bp, zName))
(*Parse)(unsafe.Pointer(pParse)).Frc = (1 | (int32(1) << 8))
}
return p
@@ -88825,7 +90379,7 @@ func Xsqlite3FindFunction(tls *crt.TLS, db uintptr, zName uintptr, nArg int32, e
nName = Xsqlite3Strlen30(tls, zName)
// First search for a match amongst the application-defined functions.
- p = Xsqlite3HashFind(tls, (db + 536 /* &.aFunc */), zName)
+ p = Xsqlite3HashFind(tls, (db + 552 /* &.aFunc */), zName)
for p != 0 {
var score int32 = matchQuality(tls, p, nArg, enc)
if score > bestScore {
@@ -88874,7 +90428,7 @@ func Xsqlite3FindFunction(tls *crt.TLS, db uintptr, zName uintptr, nArg int32, e
for z = (*FuncDef)(unsafe.Pointer(pBest)).FzName; *(*U8)(unsafe.Pointer(z)) != 0; z++ {
*(*U8)(unsafe.Pointer(z)) = Xsqlite3UpperToLower[*(*U8)(unsafe.Pointer(z))]
}
- pOther = Xsqlite3HashInsert(tls, (db + 536 /* &.aFunc */), (*FuncDef)(unsafe.Pointer(pBest)).FzName, pBest)
+ pOther = Xsqlite3HashInsert(tls, (db + 552 /* &.aFunc */), (*FuncDef)(unsafe.Pointer(pBest)).FzName, pBest)
if pOther == pBest {
Xsqlite3DbFree(tls, db, pBest)
Xsqlite3OomFault(tls, db)
@@ -89032,11 +90586,11 @@ func Xsqlite3IsReadOnly(tls *crt.TLS, pParse uintptr, pTab uintptr, viewOk int32
defer tls.Free(16)
if tabIsReadOnly(tls, pParse, pTab) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+12631 /* "table %s may not..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+13011 /* "table %s may not..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
return 1
}
if !(viewOk != 0) && ((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+12660 /* "cannot modify %s..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+13040 /* "cannot modify %s..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
return 1
}
return 0
@@ -89618,7 +91172,7 @@ __60:
}
Xsqlite3VdbeAddOp2(tls, v, 80, memCnt, 1)
Xsqlite3VdbeSetNumCols(tls, v, 1)
- Xsqlite3VdbeSetColName(tls, v, 0, 0, ts+12698 /* "rows deleted" */, uintptr(0))
+ Xsqlite3VdbeSetColName(tls, v, 0, 0, ts+13078 /* "rows deleted" */, uintptr(0))
__61:
;
@@ -89764,7 +91318,7 @@ func Xsqlite3GenerateRowDelete(tls *crt.TLS, pParse uintptr, pTab uintptr, pTrig
}
return 0
}())
- if (int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) || (0 == Xsqlite3_stricmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+9533 /* "sqlite_stat1" */)) {
+ if (int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) || (0 == Xsqlite3_stricmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+9925 /* "sqlite_stat1" */)) {
Xsqlite3VdbeAppendP4(tls, v, pTab, -6)
}
if int32(eMode) != 0 {
@@ -90042,7 +91596,7 @@ func typeofFunc(tls *crt.TLS, context uintptr, NotUsed int32, argv uintptr) { /*
Xsqlite3_result_text(tls, context, azType2[i], -1, uintptr(0))
}
-var azType2 = [5]uintptr{ts + 5528 /* "integer" */, ts + 5523 /* "real" */, ts + 12711 /* "text" */, ts + 12716 /* "blob" */, ts + 5518 /* "null" */} /* sqlite3.c:116835:21 */
+var azType2 = [5]uintptr{ts + 5636 /* "integer" */, ts + 5631 /* "real" */, ts + 13091 /* "text" */, ts + 13096 /* "blob" */, ts + 5626 /* "null" */} /* sqlite3.c:116835:21 */
// Implementation of the length() function
func lengthFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqlite3.c:116855:13: */
@@ -90103,7 +91657,7 @@ func absFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqlit
// IMP: R-31676-45509 If X is the integer -9223372036854775808
// then abs(X) throws an integer overflow error since there is no
// equivalent positive 64-bit two complement value.
- Xsqlite3_result_error(tls, context, ts+12721 /* "integer overflow" */, -1)
+ Xsqlite3_result_error(tls, context, ts+13101 /* "integer overflow" */, -1)
return
}
iVal = -iVal
@@ -90434,7 +91988,7 @@ func roundFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sql
return +0.5
}()))))
} else {
- zBuf = Xsqlite3_mprintf(tls, ts+12738 /* "%.*f" */, crt.VaList(bp, n, *(*float64)(unsafe.Pointer(bp + 16 /* r */))))
+ zBuf = Xsqlite3_mprintf(tls, ts+13118 /* "%.*f" */, crt.VaList(bp, n, *(*float64)(unsafe.Pointer(bp + 16 /* r */))))
if zBuf == uintptr(0) {
Xsqlite3_result_error_nomem(tls, context)
return
@@ -90883,7 +92437,7 @@ func likeFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqli
nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8)))
if nPat > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(8)*4)) {
- Xsqlite3_result_error(tls, context, ts+12743 /* "LIKE or GLOB pat..." */, -1)
+ Xsqlite3_result_error(tls, context, ts+13123 /* "LIKE or GLOB pat..." */, -1)
return
}
if argc == 3 {
@@ -90895,7 +92449,7 @@ func likeFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqli
}
if Xsqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp /* zEsc */)), -1) != 1 {
Xsqlite3_result_error(tls, context,
- ts+12776 /* "ESCAPE expressio..." */, -1)
+ ts+13156 /* "ESCAPE expressio..." */, -1)
return
}
escape = Xsqlite3Utf8Read(tls, bp /* &zEsc */)
@@ -90962,7 +92516,7 @@ func errlogFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sq
_ = argc
_ = context
- Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8))), ts+647 /* "%s" */, crt.VaList(bp, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)))))
+ Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8))), ts+696 /* "%s" */, crt.VaList(bp, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)))))
}
// Implementation of the sqlite_compileoption_used() function.
@@ -91019,10 +92573,10 @@ func quoteFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sql
// var zBuf [50]int8 at bp+16, 50
r1 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*8)))
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([50]int8{})), bp+16 /* &zBuf[0] */, ts+4316 /* "%!.15g" */, crt.VaList(bp, r1))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([50]int8{})), bp+16 /* &zBuf[0] */, ts+4424 /* "%!.15g" */, crt.VaList(bp, r1))
Xsqlite3AtoF(tls, bp+16 /* &zBuf[0] */, bp+72 /* &r2 */, 20, uint8(1))
if r1 != *(*float64)(unsafe.Pointer(bp + 72 /* r2 */)) {
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([50]int8{})), bp+16 /* &zBuf[0] */, ts+12821 /* "%!.20e" */, crt.VaList(bp+8, r1))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([50]int8{})), bp+16 /* &zBuf[0] */, ts+13201 /* "%!.20e" */, crt.VaList(bp+8, r1))
}
Xsqlite3_result_text(tls, context, bp+16 /* &zBuf[0] */, -1, crt.UintptrFromInt32(-1))
break
@@ -91092,7 +92646,7 @@ func quoteFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sql
default:
{
- Xsqlite3_result_text(tls, context, ts+624 /* "NULL" */, 4, uintptr(0))
+ Xsqlite3_result_text(tls, context, ts+673 /* "NULL" */, 4, uintptr(0))
break
}
}
@@ -91399,7 +92953,7 @@ func trimFunc(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqli
}
var lenOne = [1]uint8{uint8(1)} /* sqlite3.c:118084:32 */
-var azOne = [1]uintptr{uintptr(ts + 12828 /* " " */)} /* sqlite3.c:118085:26 */
+var azOne = [1]uintptr{uintptr(ts + 13208 /* " " */)} /* sqlite3.c:118085:26 */
// IMP: R-25361-16150 This function is omitted from SQLite by default. It
// is only available if the SQLITE_SOUNDEX compile-time option is used
@@ -91418,7 +92972,7 @@ func loadExt(tls *crt.TLS, context uintptr, argc int32, argv uintptr) { /* sqlit
// Disallow the load_extension() SQL function unless the SQLITE_LoadExtFunc
// flag is set. See the sqlite3_enable_load_extension() API.
if ((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00020000)) == uint64(0) {
- Xsqlite3_result_error(tls, context, ts+10151 /* "not authorized" */, -1)
+ Xsqlite3_result_error(tls, context, ts+10537 /* "not authorized" */, -1)
return
}
@@ -91504,7 +93058,7 @@ func sumFinalize(tls *crt.TLS, context uintptr) { /* sqlite3.c:118324:13: */
p = Xsqlite3_aggregate_context(tls, context, 0)
if (p != 0) && ((*SumCtx)(unsafe.Pointer(p)).Fcnt > int64(0)) {
if (*SumCtx)(unsafe.Pointer(p)).Foverflow != 0 {
- Xsqlite3_result_error(tls, context, ts+12721 /* "integer overflow" */, -1)
+ Xsqlite3_result_error(tls, context, ts+13101 /* "integer overflow" */, -1)
} else if (*SumCtx)(unsafe.Pointer(p)).Fapprox != 0 {
Xsqlite3_result_double(tls, context, (*SumCtx)(unsafe.Pointer(p)).FrSum)
} else {
@@ -91651,7 +93205,7 @@ func groupConcatStep(tls *crt.TLS, context uintptr, argc int32, argv uintptr) {
zSep = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)))
nSep = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)))
} else {
- zSep = ts + 10780 /* "," */
+ zSep = ts + 11166 /* "," */
nSep = 1
}
if zSep != 0 {
@@ -91726,7 +93280,7 @@ func groupConcatValue(tls *crt.TLS, context uintptr) { /* sqlite3.c:118547:13: *
// of the built-in functions above are part of the global function set.
// This routine only deals with those that are not global.
func Xsqlite3RegisterPerConnectionBuiltinFunctions(tls *crt.TLS, db uintptr) { /* sqlite3.c:118570:21: */
- var rc int32 = Xsqlite3_overload_function(tls, db, ts+12830 /* "MATCH" */, 2)
+ var rc int32 = Xsqlite3_overload_function(tls, db, ts+13210 /* "MATCH" */, 2)
if rc == 7 {
Xsqlite3OomFault(tls, db)
@@ -91746,14 +93300,14 @@ func Xsqlite3RegisterLikeFunctions(tls *crt.TLS, db uintptr, caseSensitive int32
pInfo = uintptr(unsafe.Pointer(&likeInfoNorm))
flags = 0x0004
}
- Xsqlite3CreateFunc(tls, db, ts+12836 /* "like" */, 2, 1, pInfo, *(*uintptr)(unsafe.Pointer(&struct {
+ Xsqlite3CreateFunc(tls, db, ts+13216 /* "like" */, 2, 1, pInfo, *(*uintptr)(unsafe.Pointer(&struct {
f func(*crt.TLS, uintptr, int32, uintptr)
}{likeFunc})), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
- Xsqlite3CreateFunc(tls, db, ts+12836 /* "like" */, 3, 1, pInfo, *(*uintptr)(unsafe.Pointer(&struct {
+ Xsqlite3CreateFunc(tls, db, ts+13216 /* "like" */, 3, 1, pInfo, *(*uintptr)(unsafe.Pointer(&struct {
f func(*crt.TLS, uintptr, int32, uintptr)
}{likeFunc})), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
- *(*U32)(unsafe.Pointer(Xsqlite3FindFunction(tls, db, ts+12836 /* "like" */, 2, uint8(1), uint8(0)) + 4 /* &.funcFlags */)) |= (U32(flags))
- *(*U32)(unsafe.Pointer(Xsqlite3FindFunction(tls, db, ts+12836 /* "like" */, 3, uint8(1), uint8(0)) + 4 /* &.funcFlags */)) |= (U32(flags))
+ *(*U32)(unsafe.Pointer(Xsqlite3FindFunction(tls, db, ts+13216 /* "like" */, 2, uint8(1), uint8(0)) + 4 /* &.funcFlags */)) |= (U32(flags))
+ *(*U32)(unsafe.Pointer(Xsqlite3FindFunction(tls, db, ts+13216 /* "like" */, 3, uint8(1), uint8(0)) + 4 /* &.funcFlags */)) |= (U32(flags))
}
// pExpr points to an expression which implements a function. If
@@ -91829,71 +93383,71 @@ func Xsqlite3RegisterBuiltinFunctions(tls *crt.TLS) { /* sqlite3.c:118665:21: */
var aBuiltinFunc = [63]FuncDef{
//**** Functions only available with SQLITE_TESTCTRL_INTERNAL_FUNCTIONS ****
- {FnArg: int8(2), FfuncFlags: (U32(((((1 | 0x00040000) | 0x4000) | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12841 /* "implies_nonnull_..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32(((((1 | 0x00040000) | 0x4000) | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(3)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12861 /* "expr_compare" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32(((((1 | 0x00040000) | 0x4000) | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(2)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12874 /* "expr_implies_exp..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32(((((1 | 0x00040000) | 0x4000) | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13221 /* "implies_nonnull_..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32(((((1 | 0x00040000) | 0x4000) | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(3)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13241 /* "expr_compare" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32(((((1 | 0x00040000) | 0x4000) | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(2)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13254 /* "expr_implies_exp..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
//**** Regular functions ****
- {FnArg: int8(1), FfuncFlags: (U32((1 | 0x000080000) | 0x00200000)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12892 /* "load_extension" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((1 | 0x000080000) | 0x00200000)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12892 /* "load_extension" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12907 /* "sqlite_compileop..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12933 /* "sqlite_compileop..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0x0400))), FpUserData: uintptr(int64(99)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12958 /* "unlikely" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0x0400))), FpUserData: uintptr(int64(99)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12967 /* "likelihood" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0x0400))), FpUserData: uintptr(int64(99)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12978 /* "likely" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12985 /* "ltrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12985 /* "ltrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(2)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12991 /* "rtrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(2)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12991 /* "rtrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(3)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12997 /* "trim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(3)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12997 /* "trim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13002 /* "min" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13002 /* "min" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (1 * 0x0020)) | 0x1000)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: uintptr(0), FzName: ts + 13002 /* "min" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13006 /* "max" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13006 /* "max" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (1 * 0x0020)) | 0x1000)), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: uintptr(0), FzName: ts + 13006 /* "max" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(((0x0800 | 1) | (0 * 0x0020)) | 0x0080)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13010 /* "typeof" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(((0x0800 | 1) | (0 * 0x0020)) | 0x0040)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13017 /* "length" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13024 /* "instr" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13030 /* "printf" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13037 /* "unicode" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13045 /* "char" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13050 /* "abs" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13054 /* "round" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13054 /* "round" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13060 /* "upper" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13066 /* "lower" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13072 /* "hex" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13076 /* "ifnull" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13083 /* "random" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13090 /* "randomblob" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13101 /* "nullif" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13108 /* "sqlite_version" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13123 /* "sqlite_source_id" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13140 /* "sqlite_log" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13151 /* "quote" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13157 /* "last_insert_rowi..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13175 /* "changes" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13183 /* "total_changes" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(3), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13197 /* "replace" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13205 /* "zeroblob" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13214 /* "substr" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(3), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13214 /* "substr" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13221 /* "sum" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13225 /* "total" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13231 /* "avg" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0x0100)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13235 /* "count" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13235 /* "count" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13241 /* "group_concat" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13241 /* "group_concat" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
-
- {FnArg: int8(2), FfuncFlags: (U32(((0x0800 | 1) | 0x0004) | 0x0008)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13254 /* "glob" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | 0x0004)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12836 /* "like" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(3), FfuncFlags: (U32((0x0800 | 1) | 0x0004)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 12836 /* "like" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13259 /* "coalesce" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(0), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13259 /* "coalesce" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(-1), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13259 /* "coalesce" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
- {FnArg: int8(3), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(5)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13268 /* "iif" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | 0x000080000) | 0x00200000)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13272 /* "load_extension" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((1 | 0x000080000) | 0x00200000)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13272 /* "load_extension" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13287 /* "sqlite_compileop..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13313 /* "sqlite_compileop..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0x0400))), FpUserData: uintptr(int64(99)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13338 /* "unlikely" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0x0400))), FpUserData: uintptr(int64(99)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13347 /* "likelihood" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0x0400))), FpUserData: uintptr(int64(99)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13358 /* "likely" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13365 /* "ltrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13365 /* "ltrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(2)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13371 /* "rtrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(2)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13371 /* "rtrim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(3)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13377 /* "trim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(3)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13377 /* "trim" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13382 /* "min" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13382 /* "min" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (1 * 0x0020)) | 0x1000)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: uintptr(0), FzName: ts + 13382 /* "min" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13386 /* "max" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13386 /* "max" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (1 * 0x0020)) | 0x1000)), FpUserData: uintptr(int64(1)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: uintptr(0), FzName: ts + 13386 /* "max" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(((0x0800 | 1) | (0 * 0x0020)) | 0x0080)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13390 /* "typeof" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(((0x0800 | 1) | (0 * 0x0020)) | 0x0040)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13397 /* "length" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13404 /* "instr" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13410 /* "printf" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13417 /* "unicode" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13425 /* "char" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13430 /* "abs" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13434 /* "round" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13434 /* "round" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13440 /* "upper" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13446 /* "lower" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13452 /* "hex" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13456 /* "ifnull" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13463 /* "random" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13470 /* "randomblob" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (1 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13481 /* "nullif" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13488 /* "sqlite_version" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(0x2000 | 1)), FpUserData: uintptr(0), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13503 /* "sqlite_source_id" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13520 /* "sqlite_log" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13531 /* "quote" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13537 /* "last_insert_rowi..." */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13555 /* "changes" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32(1 | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13563 /* "total_changes" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(3), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13577 /* "replace" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13585 /* "zeroblob" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13594 /* "substr" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(3), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13594 /* "substr" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13601 /* "sum" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13605 /* "total" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13611 /* "avg" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0x0100)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13615 /* "count" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13615 /* "count" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13621 /* "group_concat" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((1 | (0 * 0x0020)) | 0)), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 13621 /* "group_concat" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+
+ {FnArg: int8(2), FfuncFlags: (U32(((0x0800 | 1) | 0x0004) | 0x0008)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13634 /* "glob" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(2), FfuncFlags: (U32((0x0800 | 1) | 0x0004)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13216 /* "like" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(3), FfuncFlags: (U32((0x0800 | 1) | 0x0004)), FpUserData: 0, FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13216 /* "like" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(1), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13639 /* "coalesce" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(0), FfuncFlags: (U32((0x0800 | 1) | (0 * 0x0020))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: uintptr(0), FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13639 /* "coalesce" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(-1), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(0)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13639 /* "coalesce" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
+ {FnArg: int8(3), FfuncFlags: (U32(((1 | 0x00400000) | 0x0800) | (0))), FpUserData: uintptr(int64(5)), FpNext: uintptr(0), FxSFunc: 0, FxFinalize: uintptr(0), FxValue: uintptr(0), FxInverse: uintptr(0), FzName: ts + 13648 /* "iif" */, Fu: struct{ FpHash uintptr }{FpHash: uintptr(0)}},
} /* sqlite3.c:118676:18 */
//************* End of func.c ***********************************************
@@ -92180,7 +93734,7 @@ func Xsqlite3FkLocateIndex(tls *crt.TLS, pParse uintptr, pParent uintptr, pFKey
if !(pIdx != 0) {
if !(int32((*Parse)(unsafe.Pointer(pParse)).FdisableTriggers) != 0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+13272, /* "foreign key mism..." */
+ ts+13652, /* "foreign key mism..." */
crt.VaList(bp, (*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*FKey)(unsafe.Pointer(pFKey)).FzTo))
}
Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, aiCol)
@@ -93068,8 +94622,8 @@ func fkActionTrigger(tls *crt.TLS, pParse uintptr, pTab uintptr, pFKey uintptr,
}
for i = 0; i < (*FKey)(unsafe.Pointer(pFKey)).FnCol; i++ {
- *(*Token)(unsafe.Pointer(bp + 48 /* tOld */)) = Token{Fz: ts + 5727 /* "old" */, Fn: uint32(3)} // Literal "old" token
- *(*Token)(unsafe.Pointer(bp + 64 /* tNew */)) = Token{Fz: ts + 5723 /* "new" */, Fn: uint32(3)} // Literal "new" token
+ *(*Token)(unsafe.Pointer(bp + 48 /* tOld */)) = Token{Fz: ts + 6125 /* "old" */, Fn: uint32(3)} // Literal "old" token
+ *(*Token)(unsafe.Pointer(bp + 64 /* tNew */)) = Token{Fz: ts + 6121 /* "new" */, Fn: uint32(3)} // Literal "new" token
// var tFromCol Token at bp+32, 16
// Name of column in child table
// var tToCol Token at bp+16, 16
@@ -93157,7 +94711,7 @@ func fkActionTrigger(tls *crt.TLS, pParse uintptr, pTab uintptr, pFKey uintptr,
(*Token)(unsafe.Pointer(bp + 80 /* &tFrom */)).Fz = zFrom
(*Token)(unsafe.Pointer(bp + 80 /* &tFrom */)).Fn = uint32(nFrom)
- pRaise = Xsqlite3Expr(tls, db, 71, ts+4527 /* "FOREIGN KEY cons..." */)
+ pRaise = Xsqlite3Expr(tls, db, 71, ts+4635 /* "FOREIGN KEY cons..." */)
if pRaise != 0 {
(*Expr)(unsafe.Pointer(pRaise)).FaffExpr = int8(2)
}
@@ -93585,7 +95139,7 @@ func Xsqlite3ComputeGeneratedColumns(tls *crt.TLS, pParse uintptr, iRegStore int
}
}
if pRedo != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+7156 /* "generated column..." */, crt.VaList(bp, (*Column)(unsafe.Pointer(pRedo)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+7554 /* "generated column..." */, crt.VaList(bp, (*Column)(unsafe.Pointer(pRedo)).FzName))
}
(*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
}
@@ -94143,7 +95697,7 @@ __23:
goto __24
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+13317, /* "cannot INSERT in..." */
+ ts+13697, /* "cannot INSERT in..." */
crt.VaList(bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*32)).FzName))
goto insert_cleanup
__24:
@@ -94168,7 +95722,7 @@ __20:
bIdListInOrder = U8(0)
goto __27
__26:
- Xsqlite3ErrorMsg(tls, pParse, ts+13358, /* "table %S has no ..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+13738, /* "table %S has no ..." */
crt.VaList(bp+8, pTabList, 0, (*IdList_item)(unsafe.Pointer((*IdList)(unsafe.Pointer(pColumn)).Fa+uintptr(i)*16)).FzName))
(*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
goto insert_cleanup
@@ -94334,7 +95888,7 @@ __44:
goto __46
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+13390, /* "table %S has %d ..." */
+ ts+13770, /* "table %S has %d ..." */
crt.VaList(bp+32, pTabList, 0, (int32((*Table)(unsafe.Pointer(pTab)).FnCol)-nHidden), nColumn))
goto insert_cleanup
__46:
@@ -94342,7 +95896,7 @@ __46:
if !((pColumn != uintptr(0)) && (nColumn != (*IdList)(unsafe.Pointer(pColumn)).FnId)) {
goto __47
}
- Xsqlite3ErrorMsg(tls, pParse, ts+13442 /* "%d values for %d..." */, crt.VaList(bp+64, nColumn, (*IdList)(unsafe.Pointer(pColumn)).FnId))
+ Xsqlite3ErrorMsg(tls, pParse, ts+13822 /* "%d values for %d..." */, crt.VaList(bp+64, nColumn, (*IdList)(unsafe.Pointer(pColumn)).FnId))
goto insert_cleanup
__47:
;
@@ -94397,7 +95951,7 @@ __49:
if !((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) {
goto __55
}
- Xsqlite3ErrorMsg(tls, pParse, ts+13467, /* "UPSERT not imple..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+13847, /* "UPSERT not imple..." */
crt.VaList(bp+80, (*Table)(unsafe.Pointer(pTab)).FzName))
goto insert_cleanup
__55:
@@ -94405,7 +95959,7 @@ __55:
if !((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) {
goto __56
}
- Xsqlite3ErrorMsg(tls, pParse, ts+13513 /* "cannot UPSERT a ..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+13893 /* "cannot UPSERT a ..." */, 0)
goto insert_cleanup
__56:
;
@@ -94870,7 +96424,7 @@ __117:
}
Xsqlite3VdbeAddOp2(tls, v, 80, regRowCount, 1)
Xsqlite3VdbeSetNumCols(tls, v, 1)
- Xsqlite3VdbeSetColName(tls, v, 0, 0, ts+13534 /* "rows inserted" */, uintptr(0))
+ Xsqlite3VdbeSetColName(tls, v, 0, 0, ts+13914 /* "rows inserted" */, uintptr(0))
__118:
;
@@ -95143,7 +96697,7 @@ func Xsqlite3GenerateConstraintChecks(tls *crt.TLS, pParse uintptr, pTab uintptr
fallthrough
case 3:
{
- var zMsg uintptr = Xsqlite3MPrintf(tls, db, ts+10112 /* "%s.%s" */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
+ var zMsg uintptr = Xsqlite3MPrintf(tls, db, ts+10498 /* "%s.%s" */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
(*Column)(unsafe.Pointer(pCol)).FzName))
Xsqlite3VdbeAddOp3(tls, v, 67, (19 | (int32(5) << 8)),
onError, iReg)
@@ -96413,7 +97967,7 @@ __1:
if !(zSql == uintptr(0)) {
goto __2
}
- zSql = ts + 623 /* "" */
+ zSql = ts + 672 /* "" */
__2:
;
@@ -96629,8 +98183,8 @@ type Sqlite3_loadext_entry = uintptr /* sqlite3.c:123639:13 */
// intend to use is supported by the library. Extensions should
// also check to make sure that the pointer to the function is
// not NULL before calling it.
-var sqlite3Apis = Sqlite3_api_routines{Faggregate_context: 0, Faggregate_count: 0, Fbind_blob: 0, Fbind_double: 0, Fbind_int: 0, Fbind_int64: 0, Fbind_null: 0, Fbind_parameter_count: 0, Fbind_parameter_index: 0, Fbind_parameter_name: 0, Fbind_text: 0, Fbind_text16: uintptr(0), Fbind_value: 0, Fbusy_handler: 0, Fbusy_timeout: 0, Fchanges: 0, Fclose: 0, Fcollation_needed: 0, Fcollation_needed16: uintptr(0), Fcolumn_blob: 0, Fcolumn_bytes: 0, Fcolumn_bytes16: 0, Fcolumn_count: 0, Fcolumn_database_name: uintptr(0), Fcolumn_database_name16: uintptr(0), Fcolumn_decltype: 0, Fcolumn_decltype16: uintptr(0), Fcolumn_double: 0, Fcolumn_int: 0, Fcolumn_int64: 0, Fcolumn_name: 0, Fcolumn_name16: uintptr(0), Fcolumn_origin_name: uintptr(0), Fcolumn_origin_name16: uintptr(0), Fcolumn_table_name: uintptr(0), Fcolumn_table_name16: uintptr(0), Fcolumn_text: 0, Fcolumn_text16: uintptr(0), Fcolumn_type: 0, Fcolumn_value: 0, Fcommit_hook: 0, Fcomplete: 0, Fcomplete16: uintptr(0), Fcreate_collation: 0, Fcreate_collation16: uintptr(0), Fcreate_function: 0, Fcreate_function16: uintptr(0), Fcreate_module: 0, Fdata_count: 0, Fdb_handle: 0, Fdeclare_vtab: 0, Fenable_shared_cache: 0, Ferrcode: 0, Ferrmsg: 0, Ferrmsg16: uintptr(0), Fexec: 0, Fexpired: 0, Ffinalize: 0, Ffree: 0, Ffree_table: 0, Fget_autocommit: 0, Fget_auxdata: 0, Fget_table: 0, Fglobal_recover: uintptr(0), Finterruptx: // Was sqlite3_global_recover(), but that function is deprecated
-0, Flast_insert_rowid: 0, Flibversion: 0, Flibversion_number: 0, Fmalloc: 0, Fmprintf: 0, Fopen64: 0, Fopen16: uintptr(0), Fprepare: 0, Fprepare16: uintptr(0), Fprofile: 0, Fprogress_handler: uintptr(0), Frealloc: 0, Freset: 0, Fresult_blob: 0, Fresult_double: 0, Fresult_error: 0, Fresult_error16: uintptr(0), Fresult_int: 0, Fresult_int64: 0, Fresult_null: 0, Fresult_text: 0, Fresult_text16: uintptr(0), Fresult_text16be: uintptr(0), Fresult_text16le: uintptr(0), Fresult_value: 0, Frollback_hook: 0, Fset_authorizer: 0, Fset_auxdata: 0, Fxsnprintf: 0, Fstep: 0, Ftable_column_metadata: 0, Fthread_cleanup: 0, Ftotal_changes: 0, Ftrace: 0, Ftransfer_bindings: 0, Fupdate_hook: 0, Fuser_data: 0, Fvalue_blob: 0, Fvalue_bytes: 0, Fvalue_bytes16: 0, Fvalue_double: 0, Fvalue_int: 0, Fvalue_int64: 0, Fvalue_numeric_type: 0, Fvalue_text: 0, Fvalue_text16: uintptr(0), Fvalue_text16be: uintptr(0), Fvalue_text16le: uintptr(0), Fvalue_type: 0, Fvmprintf: 0, Foverload_function:
+var sqlite3Apis = Sqlite3_api_routines{Faggregate_context: 0, Faggregate_count: 0, Fbind_blob: 0, Fbind_double: 0, Fbind_int: 0, Fbind_int64: 0, Fbind_null: 0, Fbind_parameter_count: 0, Fbind_parameter_index: 0, Fbind_parameter_name: 0, Fbind_text: 0, Fbind_text16: 0, Fbind_value: 0, Fbusy_handler: 0, Fbusy_timeout: 0, Fchanges: 0, Fclose: 0, Fcollation_needed: 0, Fcollation_needed16: 0, Fcolumn_blob: 0, Fcolumn_bytes: 0, Fcolumn_bytes16: 0, Fcolumn_count: 0, Fcolumn_database_name: uintptr(0), Fcolumn_database_name16: uintptr(0), Fcolumn_decltype: 0, Fcolumn_decltype16: 0, Fcolumn_double: 0, Fcolumn_int: 0, Fcolumn_int64: 0, Fcolumn_name: 0, Fcolumn_name16: 0, Fcolumn_origin_name: uintptr(0), Fcolumn_origin_name16: uintptr(0), Fcolumn_table_name: uintptr(0), Fcolumn_table_name16: uintptr(0), Fcolumn_text: 0, Fcolumn_text16: 0, Fcolumn_type: 0, Fcolumn_value: 0, Fcommit_hook: 0, Fcomplete: 0, Fcomplete16: 0, Fcreate_collation: 0, Fcreate_collation16: 0, Fcreate_function: 0, Fcreate_function16: 0, Fcreate_module: 0, Fdata_count: 0, Fdb_handle: 0, Fdeclare_vtab: 0, Fenable_shared_cache: 0, Ferrcode: 0, Ferrmsg: 0, Ferrmsg16: 0, Fexec: 0, Fexpired: 0, Ffinalize: 0, Ffree: 0, Ffree_table: 0, Fget_autocommit: 0, Fget_auxdata: 0, Fget_table: 0, Fglobal_recover: uintptr(0), Finterruptx: // Was sqlite3_global_recover(), but that function is deprecated
+0, Flast_insert_rowid: 0, Flibversion: 0, Flibversion_number: 0, Fmalloc: 0, Fmprintf: 0, Fopen64: 0, Fopen16: 0, Fprepare: 0, Fprepare16: 0, Fprofile: 0, Fprogress_handler: 0, Frealloc: 0, Freset: 0, Fresult_blob: 0, Fresult_double: 0, Fresult_error: 0, Fresult_error16: 0, Fresult_int: 0, Fresult_int64: 0, Fresult_null: 0, Fresult_text: 0, Fresult_text16: 0, Fresult_text16be: 0, Fresult_text16le: 0, Fresult_value: 0, Frollback_hook: 0, Fset_authorizer: 0, Fset_auxdata: 0, Fxsnprintf: 0, Fstep: 0, Ftable_column_metadata: 0, Fthread_cleanup: 0, Ftotal_changes: 0, Ftrace: 0, Ftransfer_bindings: 0, Fupdate_hook: 0, Fuser_data: 0, Fvalue_blob: 0, Fvalue_bytes: 0, Fvalue_bytes16: 0, Fvalue_double: 0, Fvalue_int: 0, Fvalue_int64: 0, Fvalue_numeric_type: 0, Fvalue_text: 0, Fvalue_text16: 0, Fvalue_text16be: 0, Fvalue_text16le: 0, Fvalue_type: 0, Fvmprintf: 0, Foverload_function:
// The original API set ends here. All extensions can call any
// of the APIs above provided that the pointer is not NULL. But
// before calling APIs that follow, extension should check the
@@ -96640,7 +98194,7 @@ var sqlite3Apis = Sqlite3_api_routines{Faggregate_context: 0, Faggregate_count:
0, Fprepare_v2:
// Added after 3.3.13
-0, Fprepare16_v2: uintptr(0), Fclear_bindings: 0, Fcreate_module_v2:
+0, Fprepare16_v2: 0, Fclear_bindings: 0, Fcreate_module_v2:
// Added for 3.4.1
0, Fbind_zeroblob:
@@ -96671,7 +98225,7 @@ var sqlite3Apis = Sqlite3_api_routines{Faggregate_context: 0, Faggregate_count:
// Version 3.18.0 and later
0, Fprepare_v3:
// Version 3.20.0 and later
-0, Fprepare16_v3: uintptr(0), Fbind_pointer: 0, Fresult_pointer: 0, Fvalue_pointer: 0, Fvtab_nochange:
+0, Fprepare16_v3: 0, Fbind_pointer: 0, Fresult_pointer: 0, Fvalue_pointer: 0, Fvtab_nochange:
// Version 3.22.0 and later
0, Fvalue_nochange: 0, Fvtab_collation: 0, Fkeyword_count:
// Version 3.24.0 and later
@@ -96729,7 +98283,7 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
// to turn on extension loading.
if ((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00010000)) == uint64(0) {
if pzErrMsg != 0 {
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+10151 /* "not authorized" */, 0)
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+10537 /* "not authorized" */, 0)
}
return 1
}
@@ -96737,12 +98291,12 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
if zProc != 0 {
zEntry = zProc
} else {
- zEntry = ts + 13548 /* "sqlite3_extensio..." */
+ zEntry = ts + 13928 /* "sqlite3_extensio..." */
}
handle = Xsqlite3OsDlOpen(tls, pVfs, zFile)
for ii = 0; (ii < (int32(uint64(unsafe.Sizeof(azEndings)) / uint64(unsafe.Sizeof(uintptr(0)))))) && (handle == uintptr(0)); ii++ {
- var zAltFile uintptr = Xsqlite3_mprintf(tls, ts+10112 /* "%s.%s" */, crt.VaList(bp, zFile, azEndings[ii]))
+ var zAltFile uintptr = Xsqlite3_mprintf(tls, ts+10498 /* "%s.%s" */, crt.VaList(bp, zFile, azEndings[ii]))
if zAltFile == uintptr(0) {
return 7
}
@@ -96754,7 +98308,7 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
*(*uintptr)(unsafe.Pointer(pzErrMsg)) = crt.AssignPtrUintptr(bp+48 /* zErrmsg */, Xsqlite3_malloc64(tls, nMsg))
if *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)) != 0 {
Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)),
- ts+13571 /* "unable to open s..." */, crt.VaList(bp+16, zFile))
+ ts+13951 /* "unable to open s..." */, crt.VaList(bp+16, zFile))
Xsqlite3OsDlError(tls, pVfs, (int32(nMsg - uint64(1))), *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)))
}
}
@@ -96782,11 +98336,11 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
Xsqlite3OsDlClose(tls, pVfs, handle)
return 7
}
- crt.Xmemcpy(tls, zAltEntry, ts+13606 /* "sqlite3_" */, uint64(8))
+ crt.Xmemcpy(tls, zAltEntry, ts+13986 /* "sqlite3_" */, uint64(8))
for iFile = (ncFile - 1); (iFile >= 0) && !((int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile))))) == '/'); iFile-- {
}
iFile++
- if Xsqlite3_strnicmp(tls, (zFile+uintptr(iFile)), ts+13615 /* "lib" */, 3) == 0 {
+ if Xsqlite3_strnicmp(tls, (zFile+uintptr(iFile)), ts+13995 /* "lib" */, 3) == 0 {
iFile = iFile + (3)
}
for iEntry = 8; ((crt.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))))) != 0) && (c != '.'); iFile++ {
@@ -96794,7 +98348,7 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
*(*int8)(unsafe.Pointer(zAltEntry + uintptr(crt.PostIncInt32(&iEntry, 1)))) = int8(Xsqlite3UpperToLower[uint32(c)])
}
}
- crt.Xmemcpy(tls, (zAltEntry + uintptr(iEntry)), ts+13619 /* "_init" */, uint64(6))
+ crt.Xmemcpy(tls, (zAltEntry + uintptr(iEntry)), ts+13999 /* "_init" */, uint64(6))
zEntry = zAltEntry
xInit = Xsqlite3OsDlSym(tls, pVfs, handle, zEntry)
}
@@ -96804,7 +98358,7 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
*(*uintptr)(unsafe.Pointer(pzErrMsg)) = crt.AssignPtrUintptr(bp+48 /* zErrmsg */, Xsqlite3_malloc64(tls, nMsg))
if *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)) != 0 {
Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)),
- ts+13625 /* "no entry point [..." */, crt.VaList(bp+24, zEntry, zFile))
+ ts+14005 /* "no entry point [..." */, crt.VaList(bp+24, zEntry, zFile))
Xsqlite3OsDlError(tls, pVfs, (int32(nMsg - uint64(1))), *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)))
}
}
@@ -96819,7 +98373,7 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
return 0
}
if pzErrMsg != 0 {
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+13668 /* "error during ini..." */, crt.VaList(bp+40, *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */))))
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+14048 /* "error during ini..." */, crt.VaList(bp+40, *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */))))
}
Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 48 /* zErrmsg */)))
Xsqlite3OsDlClose(tls, pVfs, handle)
@@ -96842,7 +98396,7 @@ func sqlite3LoadExtension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr
}
var azEndings = [1]uintptr{
- ts + 13700, /* "so" */
+ ts + 14080, /* "so" */
} /* sqlite3.c:124459:21 */
func Xsqlite3_load_extension(tls *crt.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) int32 { /* sqlite3.c:124582:16: */
var rc int32
@@ -97007,7 +98561,7 @@ func Xsqlite3AutoLoadExtensions(tls *crt.TLS, db uintptr) { /* sqlite3.c:124753:
*(*uintptr)(unsafe.Pointer(bp + 8 /* zErrmsg */)) = uintptr(0)
if (xInit != 0) && ((crt.AssignInt32(&rc, (*(*func(*crt.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&xInit)))(tls, db, bp+8 /* &zErrmsg */, pThunk))) != 0) {
Xsqlite3ErrorWithMsg(tls, db, rc,
- ts+13703 /* "automatic extens..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErrmsg */))))
+ ts+14083 /* "automatic extens..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErrmsg */))))
go1 = 0
}
Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErrmsg */)))
@@ -97052,61 +98606,61 @@ func Xsqlite3AutoLoadExtensions(tls *crt.TLS, db uintptr) { /* sqlite3.c:124753:
// or that return single-column results where the name of the
// result column is different from the name of the pragma
var pragCName = [51]uintptr{
- /* 0 */ ts + 4448, /* "id" */ // Used by: foreign_key_list
- /* 1 */ ts + 13742, /* "seq" */
- /* 2 */ ts + 7699, /* "table" */
- /* 3 */ ts + 13746, /* "from" */
- /* 4 */ ts + 13751, /* "to" */
- /* 5 */ ts + 13754, /* "on_update" */
- /* 6 */ ts + 13764, /* "on_delete" */
- /* 7 */ ts + 13774, /* "match" */
- /* 8 */ ts + 13780, /* "cid" */ // Used by: table_xinfo
- /* 9 */ ts + 13784, /* "name" */
- /* 10 */ ts + 13789, /* "type" */
- /* 11 */ ts + 13794, /* "notnull" */
- /* 12 */ ts + 13802, /* "dflt_value" */
- /* 13 */ ts + 13813, /* "pk" */
- /* 14 */ ts + 13816, /* "hidden" */
+ /* 0 */ ts + 4556, /* "id" */ // Used by: foreign_key_list
+ /* 1 */ ts + 14122, /* "seq" */
+ /* 2 */ ts + 6019, /* "table" */
+ /* 3 */ ts + 14126, /* "from" */
+ /* 4 */ ts + 14131, /* "to" */
+ /* 5 */ ts + 14134, /* "on_update" */
+ /* 6 */ ts + 14144, /* "on_delete" */
+ /* 7 */ ts + 14154, /* "match" */
+ /* 8 */ ts + 14160, /* "cid" */ // Used by: table_xinfo
+ /* 9 */ ts + 14164, /* "name" */
+ /* 10 */ ts + 14169, /* "type" */
+ /* 11 */ ts + 14174, /* "notnull" */
+ /* 12 */ ts + 14182, /* "dflt_value" */
+ /* 13 */ ts + 14193, /* "pk" */
+ /* 14 */ ts + 14196, /* "hidden" */
// table_info reuses 8
- /* 15 */ ts + 13823, /* "seqno" */ // Used by: index_xinfo
- /* 16 */ ts + 13780, /* "cid" */
- /* 17 */ ts + 13784, /* "name" */
- /* 18 */ ts + 13829, /* "desc" */
- /* 19 */ ts + 13834, /* "coll" */
- /* 20 */ ts + 13839, /* "key" */
- /* 21 */ ts + 13784, /* "name" */ // Used by: function_list
- /* 22 */ ts + 13843, /* "builtin" */
- /* 23 */ ts + 13789, /* "type" */
- /* 24 */ ts + 13851, /* "enc" */
- /* 25 */ ts + 13855, /* "narg" */
- /* 26 */ ts + 13860, /* "flags" */
- /* 27 */ ts + 9643, /* "tbl" */ // Used by: stats
- /* 28 */ ts + 9639, /* "idx" */
- /* 29 */ ts + 13866, /* "wdth" */
- /* 30 */ ts + 13871, /* "hght" */
- /* 31 */ ts + 13876, /* "flgs" */
- /* 32 */ ts + 13742, /* "seq" */ // Used by: index_list
- /* 33 */ ts + 13784, /* "name" */
- /* 34 */ ts + 13881, /* "unique" */
- /* 35 */ ts + 13888, /* "origin" */
- /* 36 */ ts + 13895, /* "partial" */
- /* 37 */ ts + 7699, /* "table" */ // Used by: foreign_key_check
- /* 38 */ ts + 13903, /* "rowid" */
- /* 39 */ ts + 4451, /* "parent" */
- /* 40 */ ts + 13909, /* "fkid" */
+ /* 15 */ ts + 14203, /* "seqno" */ // Used by: index_xinfo
+ /* 16 */ ts + 14160, /* "cid" */
+ /* 17 */ ts + 14164, /* "name" */
+ /* 18 */ ts + 14209, /* "desc" */
+ /* 19 */ ts + 14214, /* "coll" */
+ /* 20 */ ts + 14219, /* "key" */
+ /* 21 */ ts + 14164, /* "name" */ // Used by: function_list
+ /* 22 */ ts + 14223, /* "builtin" */
+ /* 23 */ ts + 14169, /* "type" */
+ /* 24 */ ts + 14231, /* "enc" */
+ /* 25 */ ts + 14235, /* "narg" */
+ /* 26 */ ts + 14240, /* "flags" */
+ /* 27 */ ts + 10035, /* "tbl" */ // Used by: stats
+ /* 28 */ ts + 10031, /* "idx" */
+ /* 29 */ ts + 14246, /* "wdth" */
+ /* 30 */ ts + 14251, /* "hght" */
+ /* 31 */ ts + 14256, /* "flgs" */
+ /* 32 */ ts + 14122, /* "seq" */ // Used by: index_list
+ /* 33 */ ts + 14164, /* "name" */
+ /* 34 */ ts + 14261, /* "unique" */
+ /* 35 */ ts + 14268, /* "origin" */
+ /* 36 */ ts + 14275, /* "partial" */
+ /* 37 */ ts + 6019, /* "table" */ // Used by: foreign_key_check
+ /* 38 */ ts + 14283, /* "rowid" */
+ /* 39 */ ts + 4559, /* "parent" */
+ /* 40 */ ts + 14289, /* "fkid" */
// index_info reuses 15
- /* 41 */ ts + 13742, /* "seq" */ // Used by: database_list
- /* 42 */ ts + 13784, /* "name" */
- /* 43 */ ts + 13914, /* "file" */
- /* 44 */ ts + 13919, /* "busy" */ // Used by: wal_checkpoint
- /* 45 */ ts + 13924, /* "log" */
- /* 46 */ ts + 13928, /* "checkpointed" */
+ /* 41 */ ts + 14122, /* "seq" */ // Used by: database_list
+ /* 42 */ ts + 14164, /* "name" */
+ /* 43 */ ts + 14294, /* "file" */
+ /* 44 */ ts + 14299, /* "busy" */ // Used by: wal_checkpoint
+ /* 45 */ ts + 14304, /* "log" */
+ /* 46 */ ts + 14308, /* "checkpointed" */
// collation_list reuses 32
- /* 47 */ ts + 13941, /* "database" */ // Used by: lock_status
- /* 48 */ ts + 13950, /* "status" */
- /* 49 */ ts + 13957, /* "cache_size" */ // Used by: default_cache_size
+ /* 47 */ ts + 14321, /* "database" */ // Used by: lock_status
+ /* 48 */ ts + 14330, /* "status" */
+ /* 49 */ ts + 14337, /* "cache_size" */ // Used by: default_cache_size
// module_list pragma_list reuses 9
- /* 50 */ ts + 13968, /* "timeout" */ // Used by: busy_timeout
+ /* 50 */ ts + 14348, /* "timeout" */ // Used by: busy_timeout
} /* sqlite3.c:124893:19 */
// Definitions of all built-in pragmas
@@ -97121,328 +98675,333 @@ type PragmaName1 = struct {
// Definitions of all built-in pragmas
type PragmaName = PragmaName1 /* sqlite3.c:124959:3 */
-var aPragmaName = [65]PragmaName{
- {FzName: /* zName: */ ts + 13976 /* "analysis_limit" */, FePragTyp:
+var aPragmaName = [66]PragmaName{
+ {FzName: /* zName: */ ts + 14356 /* "analysis_limit" */, FePragTyp:
/* ePragTyp: */ U8(1), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 13991 /* "application_id" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14371 /* "application_id" */, FePragTyp:
/* ePragTyp: */ U8(2), FmPragFlg:
/* ePragFlg: */ (U8(0x04 | 0x10)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(8)},
- {FzName: /* zName: */ ts + 14006 /* "auto_vacuum" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14386 /* "auto_vacuum" */, FePragTyp:
/* ePragTyp: */ U8(3), FmPragFlg:
/* ePragFlg: */ (U8(((0x01 | 0x10) | 0x80) | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14018 /* "automatic_index" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14398 /* "automatic_index" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00008000)},
- {FzName: /* zName: */ ts + 14034 /* "busy_timeout" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14414 /* "busy_timeout" */, FePragTyp:
/* ePragTyp: */ U8(5), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(50), FnPragCName: U8(1), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 13957 /* "cache_size" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14337 /* "cache_size" */, FePragTyp:
/* ePragTyp: */ U8(6), FmPragFlg:
/* ePragFlg: */ (U8(((0x01 | 0x10) | 0x80) | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14047 /* "cache_spill" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14427 /* "cache_spill" */, FePragTyp:
/* ePragTyp: */ U8(7), FmPragFlg:
/* ePragFlg: */ (U8((0x10 | 0x80) | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14059 /* "case_sensitive_l..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14439 /* "case_sensitive_l..." */, FePragTyp:
/* ePragTyp: */ U8(8), FmPragFlg:
/* ePragFlg: */ U8(0x02), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14079 /* "cell_size_check" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14459 /* "cell_size_check" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00200000)},
- {FzName: /* zName: */ ts + 14095 /* "checkpoint_fullf..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14475 /* "checkpoint_fullf..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000010)},
- {FzName: /* zName: */ ts + 14116 /* "collation_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14496 /* "collation_list" */, FePragTyp:
/* ePragTyp: */ U8(9), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(32), FnPragCName: U8(2), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14131 /* "compile_options" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14511 /* "compile_options" */, FePragTyp:
/* ePragTyp: */ U8(10), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14147 /* "count_changes" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14527 /* "count_changes" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ (U64((uint64(0x00001))) << 32)},
- {FzName: /* zName: */ ts + 14161 /* "data_version" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14541 /* "data_version" */, FePragTyp:
/* ePragTyp: */ U8(2), FmPragFlg:
/* ePragFlg: */ (U8(0x08 | 0x10)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(15)},
- {FzName: /* zName: */ ts + 14174 /* "database_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14554 /* "database_list" */, FePragTyp:
/* ePragTyp: */ U8(12), FmPragFlg:
/* ePragFlg: */ (U8(0x01 | 0x10)), FiPragCName:
/* ColNames: */ U8(41), FnPragCName: U8(3), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14188 /* "default_cache_si..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14568 /* "default_cache_si..." */, FePragTyp:
/* ePragTyp: */ U8(13), FmPragFlg:
/* ePragFlg: */ (U8(((0x01 | 0x10) | 0x80) | 0x04)), FiPragCName:
/* ColNames: */ U8(49), FnPragCName: U8(1), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14207 /* "defer_foreign_ke..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14587 /* "defer_foreign_ke..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00080000)},
- {FzName: /* zName: */ ts + 14226 /* "empty_result_cal..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14606 /* "empty_result_cal..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000100)},
- {FzName: /* zName: */ ts + 14249 /* "foreign_key_chec..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14629 /* "encoding" */, FePragTyp:
+ /* ePragTyp: */ U8(14), FmPragFlg:
+ /* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
+ /* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
+ /* iArg: */ uint64(0)},
+ {FzName: /* zName: */ ts + 14638 /* "foreign_key_chec..." */, FePragTyp:
/* ePragTyp: */ U8(15), FmPragFlg:
/* ePragFlg: */ (U8(0x01 | 0x10)), FiPragCName:
/* ColNames: */ U8(37), FnPragCName: U8(4), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14267 /* "foreign_key_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14656 /* "foreign_key_list" */, FePragTyp:
/* ePragTyp: */ U8(16), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x20) | 0x40)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(8), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14284 /* "foreign_keys" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14673 /* "foreign_keys" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00004000)},
- {FzName: /* zName: */ ts + 14297 /* "freelist_count" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14686 /* "freelist_count" */, FePragTyp:
/* ePragTyp: */ U8(2), FmPragFlg:
/* ePragFlg: */ (U8(0x08 | 0x10)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14312 /* "full_column_name..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14701 /* "full_column_name..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000004)},
- {FzName: /* zName: */ ts + 14330 /* "fullfsync" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14719 /* "fullfsync" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000008)},
- {FzName: /* zName: */ ts + 14340 /* "function_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14729 /* "function_list" */, FePragTyp:
/* ePragTyp: */ U8(17), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(21), FnPragCName: U8(6), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14354 /* "hard_heap_limit" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14743 /* "hard_heap_limit" */, FePragTyp:
/* ePragTyp: */ U8(18), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14370 /* "ignore_check_con..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14759 /* "ignore_check_con..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000200)},
- {FzName: /* zName: */ ts + 14395 /* "incremental_vacu..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14784 /* "incremental_vacu..." */, FePragTyp:
/* ePragTyp: */ U8(19), FmPragFlg:
/* ePragFlg: */ (U8(0x01 | 0x02)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14414 /* "index_info" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14803 /* "index_info" */, FePragTyp:
/* ePragTyp: */ U8(20), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x20) | 0x40)), FiPragCName:
/* ColNames: */ U8(15), FnPragCName: U8(3), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14425 /* "index_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14814 /* "index_list" */, FePragTyp:
/* ePragTyp: */ U8(21), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x20) | 0x40)), FiPragCName:
/* ColNames: */ U8(32), FnPragCName: U8(5), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14436 /* "index_xinfo" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14825 /* "index_xinfo" */, FePragTyp:
/* ePragTyp: */ U8(20), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x20) | 0x40)), FiPragCName:
/* ColNames: */ U8(15), FnPragCName: U8(6), FiArg:
/* iArg: */ uint64(1)},
- {FzName: /* zName: */ ts + 14448 /* "integrity_check" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14837 /* "integrity_check" */, FePragTyp:
/* ePragTyp: */ U8(22), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x10) | 0x20)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14464 /* "journal_mode" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14853 /* "journal_mode" */, FePragTyp:
/* ePragTyp: */ U8(23), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x10) | 0x80)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14477 /* "journal_size_lim..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14866 /* "journal_size_lim..." */, FePragTyp:
/* ePragTyp: */ U8(24), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x80)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14496 /* "legacy_alter_tab..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 14885 /* "legacy_alter_tab..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x04000000)},
- {FzName: /* zName: */ ts + 14515 /* "lock_status" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14904 /* "lock_status" */, FePragTyp:
/* ePragTyp: */ U8(43), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(47), FnPragCName: U8(2), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14527 /* "locking_mode" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14916 /* "locking_mode" */, FePragTyp:
/* ePragTyp: */ U8(26), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x80)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14540 /* "max_page_count" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14929 /* "max_page_count" */, FePragTyp:
/* ePragTyp: */ U8(27), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x10) | 0x80)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14555 /* "mmap_size" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14944 /* "mmap_size" */, FePragTyp:
/* ePragTyp: */ U8(28), FmPragFlg:
/* ePragFlg: */ U8(0), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14565 /* "module_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14954 /* "module_list" */, FePragTyp:
/* ePragTyp: */ U8(29), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(9), FnPragCName: U8(1), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14577 /* "optimize" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14966 /* "optimize" */, FePragTyp:
/* ePragTyp: */ U8(30), FmPragFlg:
/* ePragFlg: */ (U8(0x20 | 0x01)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14586 /* "page_count" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14975 /* "page_count" */, FePragTyp:
/* ePragTyp: */ U8(27), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x10) | 0x80)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14597 /* "page_size" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14986 /* "page_size" */, FePragTyp:
/* ePragTyp: */ U8(31), FmPragFlg:
/* ePragFlg: */ (U8((0x10 | 0x80) | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14607 /* "pragma_list" */, FePragTyp:
+ {FzName: /* zName: */ ts + 14996 /* "pragma_list" */, FePragTyp:
/* ePragTyp: */ U8(32), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(9), FnPragCName: U8(1), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14619 /* "query_only" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15008 /* "query_only" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00100000)},
- {FzName: /* zName: */ ts + 14630 /* "quick_check" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15019 /* "quick_check" */, FePragTyp:
/* ePragTyp: */ U8(22), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x10) | 0x20)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14642 /* "read_uncommitted" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15031 /* "read_uncommitted" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000400)},
- {FzName: /* zName: */ ts + 14659 /* "recursive_trigge..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 15048 /* "recursive_trigge..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00002000)},
- {FzName: /* zName: */ ts + 14678 /* "reverse_unordere..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 15067 /* "reverse_unordere..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00001000)},
- {FzName: /* zName: */ ts + 14704 /* "schema_version" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15093 /* "schema_version" */, FePragTyp:
/* ePragTyp: */ U8(2), FmPragFlg:
/* ePragFlg: */ (U8(0x04 | 0x10)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(1)},
- {FzName: /* zName: */ ts + 14719 /* "secure_delete" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15108 /* "secure_delete" */, FePragTyp:
/* ePragTyp: */ U8(33), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14733 /* "short_column_nam..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 15122 /* "short_column_nam..." */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000040)},
- {FzName: /* zName: */ ts + 14752 /* "shrink_memory" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15141 /* "shrink_memory" */, FePragTyp:
/* ePragTyp: */ U8(34), FmPragFlg:
/* ePragFlg: */ U8(0x02), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14766 /* "soft_heap_limit" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15155 /* "soft_heap_limit" */, FePragTyp:
/* ePragTyp: */ U8(35), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14782 /* "synchronous" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15171 /* "synchronous" */, FePragTyp:
/* ePragTyp: */ U8(36), FmPragFlg:
/* ePragFlg: */ (U8(((0x01 | 0x10) | 0x80) | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14794 /* "table_info" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15183 /* "table_info" */, FePragTyp:
/* ePragTyp: */ U8(37), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x20) | 0x40)), FiPragCName:
/* ColNames: */ U8(8), FnPragCName: U8(6), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14805 /* "table_xinfo" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15194 /* "table_xinfo" */, FePragTyp:
/* ePragTyp: */ U8(37), FmPragFlg:
/* ePragFlg: */ (U8((0x01 | 0x20) | 0x40)), FiPragCName:
/* ColNames: */ U8(8), FnPragCName: U8(7), FiArg:
/* iArg: */ uint64(1)},
- {FzName: /* zName: */ ts + 14817 /* "temp_store" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15206 /* "temp_store" */, FePragTyp:
/* ePragTyp: */ U8(38), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14828 /* "temp_store_direc..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 15217 /* "temp_store_direc..." */, FePragTyp:
/* ePragTyp: */ U8(39), FmPragFlg:
/* ePragFlg: */ U8(0x04), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14849 /* "threads" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15238 /* "threads" */, FePragTyp:
/* ePragTyp: */ U8(40), FmPragFlg:
/* ePragFlg: */ U8(0x10), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14857 /* "trusted_schema" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15246 /* "trusted_schema" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0x00000080)},
- {FzName: /* zName: */ ts + 14872 /* "user_version" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15261 /* "user_version" */, FePragTyp:
/* ePragTyp: */ U8(2), FmPragFlg:
/* ePragFlg: */ (U8(0x04 | 0x10)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(6)},
- {FzName: /* zName: */ ts + 14885 /* "wal_autocheckpoi..." */, FePragTyp:
+ {FzName: /* zName: */ ts + 15274 /* "wal_autocheckpoi..." */, FePragTyp:
/* ePragTyp: */ U8(41), FmPragFlg:
/* ePragFlg: */ U8(0), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14904 /* "wal_checkpoint" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15293 /* "wal_checkpoint" */, FePragTyp:
/* ePragTyp: */ U8(42), FmPragFlg:
/* ePragFlg: */ U8(0x01), FiPragCName:
/* ColNames: */ U8(44), FnPragCName: U8(3), FiArg:
/* iArg: */ uint64(0)},
- {FzName: /* zName: */ ts + 14919 /* "writable_schema" */, FePragTyp:
+ {FzName: /* zName: */ ts + 15308 /* "writable_schema" */, FePragTyp:
/* ePragTyp: */ U8(4), FmPragFlg:
/* ePragFlg: */ (U8(0x10 | 0x04)), FiPragCName:
/* ColNames: */ U8(0), FnPragCName: U8(0), FiArg:
@@ -97479,7 +99038,7 @@ func getSafetyLevel(tls *crt.TLS, z uintptr, omitFull int32, dflt U8) U8 { /* sq
return dflt
}
-var zText = *(*[25]int8)(unsafe.Pointer(ts + 14935 /* "onoffalseyestrue..." */)) /* sqlite3.c:125491:21 */
+var zText = *(*[25]int8)(unsafe.Pointer(ts + 15324 /* "onoffalseyestrue..." */)) /* sqlite3.c:125491:21 */
var iOffset = [8]U8{U8(0), U8(1), U8(2), U8(4), U8(9), U8(12), U8(15), U8(20)} /* sqlite3.c:125492:19 */
var iLength = [8]U8{U8(2), U8(2), U8(3), U8(5), U8(3), U8(4), U8(5), U8(4)} /* sqlite3.c:125493:19 */
var iValue = [8]U8{U8(1), U8(0), U8(0), U8(0), U8(1), U8(1), U8(3), U8(2)} /* sqlite3.c:125494:19 */
@@ -97496,10 +99055,10 @@ func Xsqlite3GetBoolean(tls *crt.TLS, z uintptr, dflt U8) U8 { /* sqlite3.c:1255
// Interpret the given string as a locking mode value.
func getLockingMode(tls *crt.TLS, z uintptr) int32 { /* sqlite3.c:125527:12: */
if z != 0 {
- if 0 == Xsqlite3StrICmp(tls, z, ts+14960 /* "exclusive" */) {
+ if 0 == Xsqlite3StrICmp(tls, z, ts+15349 /* "exclusive" */) {
return 1
}
- if 0 == Xsqlite3StrICmp(tls, z, ts+14970 /* "normal" */) {
+ if 0 == Xsqlite3StrICmp(tls, z, ts+15359 /* "normal" */) {
return 0
}
}
@@ -97512,13 +99071,13 @@ func getLockingMode(tls *crt.TLS, z uintptr) int32 { /* sqlite3.c:125527:12: */
// acceptable, as are their numeric equivalents: 0, 1 and 2 respectively.
func getAutoVacuum(tls *crt.TLS, z uintptr) int32 { /* sqlite3.c:125542:12: */
var i int32
- if 0 == Xsqlite3StrICmp(tls, z, ts+14977 /* "none" */) {
+ if 0 == Xsqlite3StrICmp(tls, z, ts+15366 /* "none" */) {
return 0
}
- if 0 == Xsqlite3StrICmp(tls, z, ts+14982 /* "full" */) {
+ if 0 == Xsqlite3StrICmp(tls, z, ts+15371 /* "full" */) {
return 1
}
- if 0 == Xsqlite3StrICmp(tls, z, ts+14987 /* "incremental" */) {
+ if 0 == Xsqlite3StrICmp(tls, z, ts+15376 /* "incremental" */) {
return 2
}
i = Xsqlite3Atoi(tls, z)
@@ -97536,9 +99095,9 @@ func getAutoVacuum(tls *crt.TLS, z uintptr) int32 { /* sqlite3.c:125542:12: */
func getTempStore(tls *crt.TLS, z uintptr) int32 { /* sqlite3.c:125558:12: */
if (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) >= '0') && (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) <= '2') {
return (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) - '0')
- } else if Xsqlite3StrICmp(tls, z, ts+13914 /* "file" */) == 0 {
+ } else if Xsqlite3StrICmp(tls, z, ts+14294 /* "file" */) == 0 {
return 1
- } else if Xsqlite3StrICmp(tls, z, ts+14999 /* "memory" */) == 0 {
+ } else if Xsqlite3StrICmp(tls, z, ts+15388 /* "memory" */) == 0 {
return 2
} else {
return 0
@@ -97553,7 +99112,7 @@ func invalidateTempStorage(tls *crt.TLS, pParse uintptr) int32 { /* sqlite3.c:12
if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(1)*32)).FpBt != uintptr(0) {
if !(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0) || (Xsqlite3BtreeIsInReadTrans(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(1)*32)).FpBt) != 0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+15006 /* "temporary storag..." */, 0)
+ ts+15395 /* "temporary storag..." */, 0)
return 1
}
Xsqlite3BtreeClose(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(1)*32)).FpBt)
@@ -97652,19 +99211,19 @@ func actionName(tls *crt.TLS, action U8) uintptr { /* sqlite3.c:125684:19: */
var zName uintptr
switch int32(action) {
case 8:
- zName = ts + 15068 /* "SET NULL" */
+ zName = ts + 15457 /* "SET NULL" */
break
case 9:
- zName = ts + 15077 /* "SET DEFAULT" */
+ zName = ts + 15466 /* "SET DEFAULT" */
break
case 10:
- zName = ts + 15089 /* "CASCADE" */
+ zName = ts + 15478 /* "CASCADE" */
break
case 7:
- zName = ts + 15097 /* "RESTRICT" */
+ zName = ts + 15486 /* "RESTRICT" */
break
default:
- zName = ts + 15106 /* "NO ACTION" */
+ zName = ts + 15495 /* "NO ACTION" */
break
}
return zName
@@ -97682,7 +99241,7 @@ func Xsqlite3JournalModename(tls *crt.TLS, eMode int32) uintptr { /* sqlite3.c:1
}
var azModeName = [6]uintptr{
- ts + 15116 /* "delete" */, ts + 15123 /* "persist" */, ts + 15131 /* "off" */, ts + 15135 /* "truncate" */, ts + 14999 /* "memory" */, ts + 15144, /* "wal" */
+ ts + 15505 /* "delete" */, ts + 15512 /* "persist" */, ts + 15520 /* "off" */, ts + 15524 /* "truncate" */, ts + 15388 /* "memory" */, ts + 15533, /* "wal" */
} /* sqlite3.c:125705:15 */
// Locate a pragma in the aPragmaName[] array.
@@ -97728,13 +99287,13 @@ func pragmaFunclistLine(tls *crt.TLS, v uintptr, p uintptr, isBuiltin int32, sho
continue
}
if (*FuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) {
- zType = ts + 15148 /* "w" */
+ zType = ts + 15537 /* "w" */
} else if (*FuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) {
- zType = ts + 15150 /* "a" */
+ zType = ts + 15539 /* "a" */
} else {
- zType = ts + 15152 /* "s" */
+ zType = ts + 15541 /* "s" */
}
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15154, /* "sissii" */
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15543, /* "sissii" */
crt.VaList(bp, (*FuncDef)(unsafe.Pointer(p)).FzName, isBuiltin,
zType, azEnc[((*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(0x0003))],
int32((*FuncDef)(unsafe.Pointer(p)).FnArg),
@@ -97743,7 +99302,7 @@ func pragmaFunclistLine(tls *crt.TLS, v uintptr, p uintptr, isBuiltin int32, sho
}
var mask U32 = (U32((((0x000000800 | 0x000080000) | 0x000100000) | 0x000200000) | 0x00040000)) /* sqlite3.c:125755:22 */
-var azEnc = [4]uintptr{uintptr(0), ts + 15161 /* "utf8" */, ts + 15166 /* "utf16le" */, ts + 15174 /* "utf16be" */} /* sqlite3.c:125762:23 */
+var azEnc = [4]uintptr{uintptr(0), ts + 15550 /* "utf8" */, ts + 15555 /* "utf16le" */, ts + 15563 /* "utf16be" */} /* sqlite3.c:125762:23 */
// Helper subroutine for PRAGMA integrity_check:
//
@@ -97773,15 +99332,15 @@ func integrityCheckResultRow(tls *crt.TLS, v uintptr) int32 { /* sqlite3.c:12579
// and pId2 is the id. If the left side is just "id" then pId1 is the
// id and pId2 is any empty string.
func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { /* sqlite3.c:125823:21: */
- bp := tls.Alloc(532)
- defer tls.Free(532)
+ bp := tls.Alloc(540)
+ defer tls.Free(540)
var zLeft uintptr // Nul-terminated UTF-8 string <id>
var zRight uintptr // Nul-terminated UTF-8 string <value>, or NULL
var zDb uintptr // The database name
- // var pId uintptr at bp+368, 8
+ // var pId uintptr at bp+376, 8
// Pointer to <id> token
- // var aFcntl [4]uintptr at bp+376, 32
+ // var aFcntl [4]uintptr at bp+384, 32
// Argument to SQLITE_FCNTL_PRAGMA
var iDb int32 // Database index for <database>
var rc int32 // return value form SQLITE_FCNTL_PRAGMA
@@ -97813,22 +99372,22 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var eMode1 int32 // One of the PAGER_JOURNALMODE_XXX symbols
var ii2 int32
var pPager1 uintptr
- // var iLimit I64 at bp+408, 8
+ // var iLimit I64 at bp+416, 8
var aOp1 uintptr
var iAddr int32
var eAuto int32
var pBt2 uintptr
- // var iLimit1 int32 at bp+416, 4
+ // var iLimit1 int32 at bp+424, 4
var addr int32
var size2 int32
- // var size3 int32 at bp+420, 4
+ // var size3 int32 at bp+428, 4
var ii3 int32
- // var sz Sqlite3_int64 at bp+424, 8
+ // var sz Sqlite3_int64 at bp+432, 8
- // var res int32 at bp+432, 4
+ // var res int32 at bp+440, 4
var iLevel int32
var mask U64
@@ -97846,7 +99405,7 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var mx int32
var pIdx uintptr
var pTab1 uintptr
- // var azOrigin [3]uintptr at bp+440, 24
+ // var azOrigin [3]uintptr at bp+448, 24
var iTabDb1 int32
var pIdx1 uintptr
@@ -97874,7 +99433,7 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var pFK1 uintptr // A foreign key constraint
var pTab4 uintptr // Child table contain "REFERENCES" keyword
var pParent uintptr // Parent table that child points to
- // var pIdx2 uintptr at bp+464, 8
+ // var pIdx2 uintptr at bp+472, 8
// Index in the parent table
var i8 int32 // Loop counter: Foreign key number for pTab
var j3 int32 // Loop counter: Field of the foreign key
@@ -97885,7 +99444,7 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var regRow int32 // Registers to hold a row from pTab
var addrTop int32 // Top of a loop checking foreign keys
var addrOk int32 // Jump here if the key is OK
- // var aiCols uintptr at bp+472, 8
+ // var aiCols uintptr at bp+480, 8
var pTab5 uintptr // Current table
var pIdx3 uintptr // An index on pTab
@@ -97904,7 +99463,7 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var jmp6 int32
var kk int32
var jmp21 int32
- // var jmp3 int32 at bp+492, 4
+ // var jmp3 int32 at bp+500, 4
var jmp4 int32
var jmp5 int32
@@ -97914,9 +99473,9 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var pPk1 uintptr
var pPrior uintptr
var loopTop int32
- // var iDataCur int32 at bp+484, 4
+ // var iDataCur int32 at bp+492, 4
- // var iIdxCur int32 at bp+488, 4
+ // var iIdxCur int32 at bp+496, 4
var r1 int32
var x1 uintptr // For looping over tables in the schema
@@ -97928,9 +99487,11 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var i9 int32
var j4 int32
var addr1 int32
- // var mxErr int32 at bp+480, 4
+ // var mxErr int32 at bp+488, 4
var isQuick int32
+ var enc U8
+ var pEnc uintptr
var aOp3 uintptr
var aOp4 uintptr
var iCookie int32
@@ -97948,18 +99509,18 @@ func Xsqlite3Pragma(tls *crt.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pV
var szThreshold LogEst // Size threshold above which reanalysis is needd
var zSubSql uintptr // SQL statement for the OP_SqlExec opcode
var opMask U32
- // var N Sqlite3_int64 at bp+496, 8
+ // var N Sqlite3_int64 at bp+504, 8
var iPrior Sqlite3_int64
- // var N1 Sqlite3_int64 at bp+504, 8
+ // var N1 Sqlite3_int64 at bp+512, 8
- // var N2 Sqlite3_int64 at bp+512, 8
+ // var N2 Sqlite3_int64 at bp+520, 8
- // var N3 Sqlite3_int64 at bp+520, 8
+ // var N3 Sqlite3_int64 at bp+528, 8
var pBt3 uintptr
var zState uintptr
- // var j5 int32 at bp+528, 4
+ // var j5 int32 at bp+536, 4
var i11 int32
zLeft = uintptr(0)
@@ -97979,7 +99540,7 @@ __1:
// Interpret the [schema.] part of the pragma statement. iDb is the
// index of the database this pragma is being applied to in db.aDb[].
- iDb = Xsqlite3TwoPartName(tls, pParse, pId1, pId2, bp+368 /* &pId */)
+ iDb = Xsqlite3TwoPartName(tls, pParse, pId1, pId2, bp+376 /* &pId */)
if !(iDb < 0) {
goto __2
}
@@ -97997,7 +99558,7 @@ __2:
__3:
;
- zLeft = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp + 368 /* pId */)))
+ zLeft = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp + 376 /* pId */)))
if !(!(zLeft != 0)) {
goto __4
}
@@ -98007,7 +99568,7 @@ __4:
if !(minusFlag != 0) {
goto __5
}
- zRight = Xsqlite3MPrintf(tls, db, ts+15182 /* "-%T" */, crt.VaList(bp, pValue))
+ zRight = Xsqlite3MPrintf(tls, db, ts+15571 /* "-%T" */, crt.VaList(bp, pValue))
goto __6
__5:
zRight = Xsqlite3NameFromToken(tls, db, pValue)
@@ -98040,30 +99601,30 @@ __7:
// second element of the array is the name of the pragma and the third
// element is the argument to the pragma or NULL if the pragma has no
// argument.
- *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8)) = uintptr(0)
- *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(1)*8)) = zLeft
- *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(2)*8)) = zRight
- *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(3)*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(1)*8)) = zLeft
+ *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(2)*8)) = zRight
+ *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(3)*8)) = uintptr(0)
(*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
- rc = Xsqlite3_file_control(tls, db, zDb, 14, bp+376 /* aFcntl */)
+ rc = Xsqlite3_file_control(tls, db, zDb, 14, bp+384 /* aFcntl */)
if !(rc == 0) {
goto __8
}
Xsqlite3VdbeSetNumCols(tls, v, 1)
- Xsqlite3VdbeSetColName(tls, v, 0, 0, *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8)), crt.UintptrFromInt32(-1))
- returnSingleText(tls, v, *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8)))
- Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8)))
+ Xsqlite3VdbeSetColName(tls, v, 0, 0, *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8)), crt.UintptrFromInt32(-1))
+ returnSingleText(tls, v, *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8)))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8)))
goto pragma_out
__8:
;
if !(rc != 12) {
goto __9
}
- if !(*(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8)) != 0) {
+ if !(*(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8)) != 0) {
goto __10
}
- Xsqlite3ErrorMsg(tls, pParse, ts+647 /* "%s" */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8))))
- Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 376 /* &aFcntl[0] */ + uintptr(0)*8)))
+ Xsqlite3ErrorMsg(tls, pParse, ts+696 /* "%s" */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8))))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 384 /* &aFcntl[0] */ + uintptr(0)*8)))
__10:
;
(*Parse)(unsafe.Pointer(pParse)).FnErr++
@@ -98338,6 +99899,29 @@ __14:
case 22:
goto __43
+ // PRAGMA encoding
+ // PRAGMA encoding = "utf-8"|"utf-16"|"utf-16le"|"utf-16be"
+ //
+ // In its first form, this pragma returns the encoding of the main
+ // database. If the database is not initialized, it is initialized now.
+ //
+ // The second form of this pragma is a no-op if the main database file
+ // has not already been initialized. In this case it sets the default
+ // encoding that will be used for the main database file if a new file
+ // is created. If an existing main database file is opened, then the
+ // default text encoding for the existing database is used.
+ //
+ // In all cases new databases created using the ATTACH command are
+ // created to use the same default text encoding as the main database. If
+ // the main database has not been initialized and/or created when ATTACH
+ // is executed, this is done before the ATTACH operation.
+ //
+ // In the second form this pragma sets the text encoding to be used in
+ // new database files created using this database handle. It is only
+ // useful if invoked immediately after the main database i
+ case 14:
+ goto __44
+
// PRAGMA [schema.]schema_version
// PRAGMA [schema.]schema_version = <integer>
//
@@ -98369,20 +99953,20 @@ __14:
// The user-version is not used internally by SQLite. It may be used by
// applications for any purpose.
case 2:
- goto __44
+ goto __45
// PRAGMA compile_options
//
// Return the names of all compile-time options used in this build,
// one option per row.
case 10:
- goto __45
+ goto __46
// PRAGMA [schema.]wal_checkpoint = passive|full|restart|truncate
//
// Checkpoint the database.
case 42:
- goto __46
+ goto __47
// PRAGMA wal_autocheckpoint
// PRAGMA wal_autocheckpoint = N
@@ -98391,7 +99975,7 @@ __14:
// after accumulating N frames in the log. Or query for the current value
// of N.
case 41:
- goto __47
+ goto __48
// PRAGMA shrink_memory
//
@@ -98399,7 +99983,7 @@ __14:
// connection on which it is invoked to free up as much memory as it
// can, by calling sqlite3_db_release_memory().
case 34:
- goto __48
+ goto __49
// PRAGMA optimize
// PRAGMA optimize(MASK)
@@ -98454,7 +100038,7 @@ __14:
// The rules for when tables are analyzed are likely to change in
// future releases.
case 30:
- goto __49
+ goto __50
// PRAGMA busy_timeout
// PRAGMA busy_timeout = N
@@ -98465,7 +100049,7 @@ __14:
// disables the timeout.
/*case PragTyp_BUSY_TIMEOUT*/
default:
- goto __50
+ goto __51
// PRAGMA soft_heap_limit
// PRAGMA soft_heap_limit = N
@@ -98477,7 +100061,7 @@ __14:
// returns the same integer that would be returned by the
// sqlite3_soft_heap_limit64(-1) C-language function.
case 35:
- goto __51
+ goto __52
// PRAGMA hard_heap_limit
// PRAGMA hard_heap_limit = N
@@ -98489,7 +100073,7 @@ __14:
// the hard heap limit. This allows an application to set a heap limit
// constraint that cannot be relaxed by an untrusted SQL script.
case 18:
- goto __52
+ goto __53
// PRAGMA threads
// PRAGMA threads = N
@@ -98497,7 +100081,7 @@ __14:
// Configure the maximum number of worker threads. Return the new
// maximum, which might be less than requested.
case 40:
- goto __53
+ goto __54
// PRAGMA analysis_limit
// PRAGMA analysis_limit = N
@@ -98505,11 +100089,11 @@ __14:
// Configure the maximum number of rows that ANALYZE will examine
// in each index that it looks at. Return the new limit.
case 1:
- goto __54
+ goto __55
// Report the current state of file logs for all databases
case 43:
- goto __55
+ goto __56
}
goto __15
@@ -98530,29 +100114,29 @@ __14:
__16:
Xsqlite3VdbeUsesBtree(tls, v, iDb)
if !(!(zRight != 0)) {
- goto __56
+ goto __57
}
*(*int32)(unsafe.Pointer(pParse + 56 /* &.nMem */)) += (2)
aOp = Xsqlite3VdbeAddOpList(tls, v, (int32(uint64(unsafe.Sizeof(getCacheSize)) / uint64(unsafe.Sizeof(VdbeOpList{})))), uintptr(unsafe.Pointer(&getCacheSize)), iLn3)
if !(0 != 0) {
- goto __58
+ goto __59
}
goto __15
-__58:
+__59:
;
(*VdbeOp)(unsafe.Pointer(aOp + uintptr(0)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp + uintptr(1)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp + uintptr(6)*24)).Fp1 = -2000
- goto __57
-__56:
+ goto __58
+__57:
size = Xsqlite3AbsInt32(tls, Xsqlite3Atoi(tls, zRight))
Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
Xsqlite3VdbeAddOp3(tls, v, 94, iDb, 3, size)
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size = size
Xsqlite3BtreeSetCacheSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size)
-__57:
+__58:
;
goto __15
@@ -98567,7 +100151,7 @@ __17:
pBt = (*Db)(unsafe.Pointer(pDb)).FpBt
if !(!(zRight != 0)) {
- goto __59
+ goto __60
}
if pBt != 0 {
size1 = Xsqlite3BtreeGetPageSize(tls, pBt)
@@ -98575,18 +100159,18 @@ __17:
size1 = 0
}
returnSingleInt(tls, v, int64(size1))
- goto __60
-__59:
+ goto __61
+__60:
// Malloc may fail when setting the page-size, as there is an internal
// buffer that the pager module resizes using sqlite3_realloc().
(*Sqlite3)(unsafe.Pointer(db)).FnextPagesize = Xsqlite3Atoi(tls, zRight)
if !(7 == Xsqlite3BtreeSetPageSize(tls, pBt, (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize, 0, 0)) {
- goto __61
+ goto __62
}
Xsqlite3OomFault(tls, db)
-__61:
+__62:
;
-__60:
+__61:
;
goto __15
@@ -98601,36 +100185,36 @@ __18:
b = -1
if !(zRight != 0) {
- goto __62
- }
- if !(Xsqlite3_stricmp(tls, zRight, ts+15186 /* "fast" */) == 0) {
goto __63
}
+ if !(Xsqlite3_stricmp(tls, zRight, ts+15575 /* "fast" */) == 0) {
+ goto __64
+ }
b = 2
- goto __64
-__63:
- b = int32(Xsqlite3GetBoolean(tls, zRight, uint8(0)))
+ goto __65
__64:
+ b = int32(Xsqlite3GetBoolean(tls, zRight, uint8(0)))
+__65:
;
-__62:
+__63:
;
if !(((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) && (b >= 0)) {
- goto __65
+ goto __66
}
ii = 0
-__66:
+__67:
if !(ii < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __68
+ goto __69
}
Xsqlite3BtreeSecureDelete(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii)*32)).FpBt, b)
- goto __67
-__67:
- ii++
- goto __66
goto __68
__68:
+ ii++
+ goto __67
+ goto __69
+__69:
;
-__65:
+__66:
;
b = Xsqlite3BtreeSecureDelete(tls, pBt1, b)
returnSingleInt(tls, v, int64(b))
@@ -98655,14 +100239,14 @@ __19:
Xsqlite3CodeVerifySchema(tls, pParse, iDb)
iReg = crt.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
if !((int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(zLeft + uintptr(0))))])) == 'p') {
- goto __69
+ goto __70
}
Xsqlite3VdbeAddOp2(tls, v, 168, iDb, iReg)
- goto __70
-__69:
+ goto __71
+__70:
Xsqlite3VdbeAddOp3(tls, v, 169, iDb, iReg,
Xsqlite3AbsInt32(tls, Xsqlite3Atoi(tls, zRight)))
-__70:
+__71:
;
Xsqlite3VdbeAddOp2(tls, v, 80, iReg, 1)
goto __15
@@ -98670,49 +100254,49 @@ __70:
// PRAGMA [schema.]locking_mode
// PRAGMA [schema.]locking_mode = (normal|exclusive)
__20:
- zRet = ts + 14970 /* "normal" */
+ zRet = ts + 15359 /* "normal" */
eMode = getLockingMode(tls, zRight)
if !(((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) && (eMode == -1)) {
- goto __71
+ goto __72
}
// Simple "PRAGMA locking_mode;" statement. This is a query for
// the current default locking mode (which may be different to
// the locking-mode of the main database).
eMode = int32((*Sqlite3)(unsafe.Pointer(db)).FdfltLockMode)
- goto __72
-__71:
+ goto __73
+__72:
if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) {
- goto __73
+ goto __74
}
ii1 = 2
-__74:
+__75:
if !(ii1 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __76
+ goto __77
}
pPager = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii1)*32)).FpBt)
Xsqlite3PagerLockingMode(tls, pPager, eMode)
- goto __75
-__75:
- ii1++
- goto __74
goto __76
__76:
+ ii1++
+ goto __75
+ goto __77
+__77:
;
(*Sqlite3)(unsafe.Pointer(db)).FdfltLockMode = U8(eMode)
-__73:
+__74:
;
pPager = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
eMode = Xsqlite3PagerLockingMode(tls, pPager, eMode)
-__72:
+__73:
;
if !(eMode == 1) {
- goto __77
+ goto __78
}
- zRet = ts + 14960 /* "exclusive" */
-__77:
+ zRet = ts + 15349 /* "exclusive" */
+__78:
;
returnSingleText(tls, v, zRet)
goto __15
@@ -98723,76 +100307,76 @@ __77:
__21: // Loop counter
if !(zRight == uintptr(0)) {
- goto __78
+ goto __79
}
// If there is no "=MODE" part of the pragma, do a query for the
// current mode
eMode1 = -1
- goto __79
-__78:
+ goto __80
+__79:
n = Xsqlite3Strlen30(tls, zRight)
eMode1 = 0
-__80:
+__81:
if !((crt.AssignUintptr(&zMode, Xsqlite3JournalModename(tls, eMode1))) != uintptr(0)) {
- goto __82
+ goto __83
}
if !(Xsqlite3_strnicmp(tls, zRight, zMode, n) == 0) {
- goto __83
+ goto __84
}
- goto __82
-__83:
+ goto __83
+__84:
;
- goto __81
-__81:
- eMode1++
- goto __80
goto __82
__82:
+ eMode1++
+ goto __81
+ goto __83
+__83:
;
if !(!(zMode != 0)) {
- goto __84
+ goto __85
}
// If the "=MODE" part does not match any known journal mode,
// then do a query
eMode1 = -1
-__84:
+__85:
;
if !((eMode1 == 2) && (((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x10000000)) != uint64(0))) {
- goto __85
+ goto __86
}
// Do not allow journal-mode "OFF" in defensive since the database
// can become corrupted using ordinary SQL when the journal is off
eMode1 = -1
-__85:
+__86:
;
-__79:
+__80:
;
if !((eMode1 == (-1)) && ((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0))) {
- goto __86
+ goto __87
}
// Convert "PRAGMA journal_mode" into "PRAGMA main.journal_mode"
iDb = 0
(*Token)(unsafe.Pointer(pId2)).Fn = uint32(1)
-__86:
+__87:
;
ii2 = ((*Sqlite3)(unsafe.Pointer(db)).FnDb - 1)
-__87:
+__88:
if !(ii2 >= 0) {
- goto __89
+ goto __90
}
if !(((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii2)*32)).FpBt != 0) && ((ii2 == iDb) || ((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)))) {
- goto __90
+ goto __91
}
Xsqlite3VdbeUsesBtree(tls, v, ii2)
Xsqlite3VdbeAddOp3(tls, v, 7, ii2, 1, eMode1)
-__90:
+__91:
;
- goto __88
-__88:
- ii2--
- goto __87
goto __89
__89:
+ ii2--
+ goto __88
+ goto __90
+__90:
;
Xsqlite3VdbeAddOp2(tls, v, 80, 1, 1)
goto __15
@@ -98803,21 +100387,21 @@ __89:
// Get or set the size limit on rollback journal files.
__22:
pPager1 = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
- *(*I64)(unsafe.Pointer(bp + 408 /* iLimit */)) = int64(-2)
+ *(*I64)(unsafe.Pointer(bp + 416 /* iLimit */)) = int64(-2)
if !(zRight != 0) {
- goto __91
- }
- Xsqlite3DecOrHexToI64(tls, zRight, bp+408 /* &iLimit */)
- if !(*(*I64)(unsafe.Pointer(bp + 408 /* iLimit */)) < int64(-1)) {
goto __92
}
- *(*I64)(unsafe.Pointer(bp + 408 /* iLimit */)) = int64(-1)
-__92:
+ Xsqlite3DecOrHexToI64(tls, zRight, bp+416 /* &iLimit */)
+ if !(*(*I64)(unsafe.Pointer(bp + 416 /* iLimit */)) < int64(-1)) {
+ goto __93
+ }
+ *(*I64)(unsafe.Pointer(bp + 416 /* iLimit */)) = int64(-1)
+__93:
;
-__91:
+__92:
;
- *(*I64)(unsafe.Pointer(bp + 408 /* iLimit */)) = Xsqlite3PagerJournalSizeLimit(tls, pPager1, *(*I64)(unsafe.Pointer(bp + 408 /* iLimit */)))
- returnSingleInt(tls, v, *(*I64)(unsafe.Pointer(bp + 408 /* iLimit */)))
+ *(*I64)(unsafe.Pointer(bp + 416 /* iLimit */)) = Xsqlite3PagerJournalSizeLimit(tls, pPager1, *(*I64)(unsafe.Pointer(bp + 416 /* iLimit */)))
+ returnSingleInt(tls, v, *(*I64)(unsafe.Pointer(bp + 416 /* iLimit */)))
goto __15
// PRAGMA [schema.]auto_vacuum
@@ -98829,11 +100413,11 @@ __23:
pBt2 = (*Db)(unsafe.Pointer(pDb)).FpBt
if !(!(zRight != 0)) {
- goto __93
+ goto __94
}
returnSingleInt(tls, v, int64(Xsqlite3BtreeGetAutoVacuum(tls, pBt2)))
- goto __94
-__93:
+ goto __95
+__94:
eAuto = getAutoVacuum(tls, zRight)
(*Sqlite3)(unsafe.Pointer(db)).FnextAutovac = int8(U8(eAuto))
@@ -98843,16 +100427,16 @@ __93:
// as an auto-vacuum capable db.
rc = Xsqlite3BtreeSetAutoVacuum(tls, pBt2, eAuto)
if !((rc == 0) && ((eAuto == 1) || (eAuto == 2))) {
- goto __95
+ goto __96
}
iAddr = Xsqlite3VdbeCurrentAddr(tls, v)
aOp1 = Xsqlite3VdbeAddOpList(tls, v, (int32(uint64(unsafe.Sizeof(setMeta6)) / uint64(unsafe.Sizeof(VdbeOpList{})))), uintptr(unsafe.Pointer(&setMeta6)), iLn4)
if !(0 != 0) {
- goto __96
+ goto __97
}
goto __15
-__96:
+__97:
;
(*VdbeOp)(unsafe.Pointer(aOp1 + uintptr(0)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp1 + uintptr(1)*24)).Fp1 = iDb
@@ -98860,9 +100444,9 @@ __96:
(*VdbeOp)(unsafe.Pointer(aOp1 + uintptr(4)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp1 + uintptr(4)*24)).Fp3 = (eAuto - 1)
Xsqlite3VdbeUsesBtree(tls, v, iDb)
-__95:
+__96:
;
-__94:
+__95:
;
goto __15
@@ -98870,14 +100454,14 @@ __94:
//
// Do N steps of incremental vacuuming on a database.
__24:
- if !(((zRight == uintptr(0)) || !(Xsqlite3GetInt32(tls, zRight, bp+416 /* &iLimit1 */) != 0)) || (*(*int32)(unsafe.Pointer(bp + 416 /* iLimit1 */)) <= 0)) {
- goto __97
+ if !(((zRight == uintptr(0)) || !(Xsqlite3GetInt32(tls, zRight, bp+424 /* &iLimit1 */) != 0)) || (*(*int32)(unsafe.Pointer(bp + 424 /* iLimit1 */)) <= 0)) {
+ goto __98
}
- *(*int32)(unsafe.Pointer(bp + 416 /* iLimit1 */)) = 0x7fffffff
-__97:
+ *(*int32)(unsafe.Pointer(bp + 424 /* iLimit1 */)) = 0x7fffffff
+__98:
;
Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
- Xsqlite3VdbeAddOp2(tls, v, 69, *(*int32)(unsafe.Pointer(bp + 416 /* iLimit1 */)), 1)
+ Xsqlite3VdbeAddOp2(tls, v, 69, *(*int32)(unsafe.Pointer(bp + 424 /* iLimit1 */)), 1)
addr = Xsqlite3VdbeAddOp1(tls, v, 60, iDb)
Xsqlite3VdbeAddOp1(tls, v, 80, 1)
Xsqlite3VdbeAddOp2(tls, v, 82, 1, -1)
@@ -98897,15 +100481,15 @@ __97:
__25:
;
if !(!(zRight != 0)) {
- goto __98
+ goto __99
}
returnSingleInt(tls, v, int64((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size))
- goto __99
-__98:
+ goto __100
+__99:
size2 = Xsqlite3Atoi(tls, zRight)
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size = size2
Xsqlite3BtreeSetCacheSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size)
-__99:
+__100:
;
goto __15
@@ -98932,7 +100516,7 @@ __99:
__26:
;
if !(!(zRight != 0)) {
- goto __100
+ goto __101
}
returnSingleInt(tls, v,
func() int64 {
@@ -98941,26 +100525,26 @@ __26:
}
return int64(Xsqlite3BtreeSetSpillSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, 0))
}())
- goto __101
-__100:
- *(*int32)(unsafe.Pointer(bp + 420 /* size3 */)) = 1
- if !(Xsqlite3GetInt32(tls, zRight, bp+420 /* &size3 */) != 0) {
- goto __102
+ goto __102
+__101:
+ *(*int32)(unsafe.Pointer(bp + 428 /* size3 */)) = 1
+ if !(Xsqlite3GetInt32(tls, zRight, bp+428 /* &size3 */) != 0) {
+ goto __103
}
- Xsqlite3BtreeSetSpillSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, *(*int32)(unsafe.Pointer(bp + 420 /* size3 */)))
-__102:
+ Xsqlite3BtreeSetSpillSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, *(*int32)(unsafe.Pointer(bp + 428 /* size3 */)))
+__103:
;
- if !(Xsqlite3GetBoolean(tls, zRight, (uint8(crt.Bool32(*(*int32)(unsafe.Pointer(bp + 420 /* size3 */)) != 0)))) != 0) {
- goto __103
+ if !(Xsqlite3GetBoolean(tls, zRight, (uint8(crt.Bool32(*(*int32)(unsafe.Pointer(bp + 428 /* size3 */)) != 0)))) != 0) {
+ goto __104
}
*(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) |= (uint64(0x00000020))
- goto __104
-__103:
- *(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) &= (^uint64(crt.Uint64FromUint64(uint64(0x00000020))))
+ goto __105
__104:
+ *(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) &= (^uint64(crt.Uint64FromUint64(uint64(0x00000020))))
+__105:
;
setAllPagerFlags(tls, db)
-__101:
+__102:
;
goto __15
@@ -98979,57 +100563,57 @@ __101:
__27:
;
if !(zRight != 0) {
- goto __105
- }
- Xsqlite3DecOrHexToI64(tls, zRight, bp+424 /* &sz */)
- if !(*(*Sqlite3_int64)(unsafe.Pointer(bp + 424 /* sz */)) < int64(0)) {
goto __106
}
- *(*Sqlite3_int64)(unsafe.Pointer(bp + 424 /* sz */)) = Xsqlite3Config.FszMmap
-__106:
- ;
- if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) {
+ Xsqlite3DecOrHexToI64(tls, zRight, bp+432 /* &sz */)
+ if !(*(*Sqlite3_int64)(unsafe.Pointer(bp + 432 /* sz */)) < int64(0)) {
goto __107
}
- (*Sqlite3)(unsafe.Pointer(db)).FszMmap = *(*Sqlite3_int64)(unsafe.Pointer(bp + 424 /* sz */))
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 432 /* sz */)) = Xsqlite3Config.FszMmap
__107:
;
- ii3 = ((*Sqlite3)(unsafe.Pointer(db)).FnDb - 1)
+ if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) {
+ goto __108
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FszMmap = *(*Sqlite3_int64)(unsafe.Pointer(bp + 432 /* sz */))
__108:
+ ;
+ ii3 = ((*Sqlite3)(unsafe.Pointer(db)).FnDb - 1)
+__109:
if !(ii3 >= 0) {
- goto __110
+ goto __111
}
if !(((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii3)*32)).FpBt != 0) && ((ii3 == iDb) || ((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)))) {
- goto __111
+ goto __112
}
- Xsqlite3BtreeSetMmapLimit(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii3)*32)).FpBt, *(*Sqlite3_int64)(unsafe.Pointer(bp + 424 /* sz */)))
-__111:
+ Xsqlite3BtreeSetMmapLimit(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii3)*32)).FpBt, *(*Sqlite3_int64)(unsafe.Pointer(bp + 432 /* sz */)))
+__112:
;
- goto __109
-__109:
- ii3--
- goto __108
goto __110
__110:
+ ii3--
+ goto __109
+ goto __111
+__111:
;
-__105:
+__106:
;
- *(*Sqlite3_int64)(unsafe.Pointer(bp + 424 /* sz */)) = int64(-1)
- rc = Xsqlite3_file_control(tls, db, zDb, 18, bp+424 /* &sz */)
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 432 /* sz */)) = int64(-1)
+ rc = Xsqlite3_file_control(tls, db, zDb, 18, bp+432 /* &sz */)
if !(rc == 0) {
- goto __112
+ goto __113
}
- returnSingleInt(tls, v, *(*Sqlite3_int64)(unsafe.Pointer(bp + 424 /* sz */)))
- goto __113
-__112:
+ returnSingleInt(tls, v, *(*Sqlite3_int64)(unsafe.Pointer(bp + 432 /* sz */)))
+ goto __114
+__113:
if !(rc != 12) {
- goto __114
+ goto __115
}
(*Parse)(unsafe.Pointer(pParse)).FnErr++
(*Parse)(unsafe.Pointer(pParse)).Frc = rc
-__114:
+__115:
;
-__113:
+__114:
;
goto __15
@@ -99044,13 +100628,13 @@ __113:
// override this setting
__28:
if !(!(zRight != 0)) {
- goto __115
+ goto __116
}
returnSingleInt(tls, v, int64((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store))
- goto __116
-__115:
- changeTempStorage(tls, pParse, zRight)
+ goto __117
__116:
+ changeTempStorage(tls, pParse, zRight)
+__117:
;
goto __15
@@ -99064,43 +100648,43 @@ __116:
//
__29:
if !(!(zRight != 0)) {
- goto __117
+ goto __118
}
returnSingleText(tls, v, Xsqlite3_temp_directory)
- goto __118
-__117:
+ goto __119
+__118:
if !(*(*int8)(unsafe.Pointer(zRight + uintptr(0))) != 0) {
- goto __119
- }
- rc = Xsqlite3OsAccess(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, zRight, 1, bp+432 /* &res */)
- if !((rc != 0) || (*(*int32)(unsafe.Pointer(bp + 432 /* res */)) == 0)) {
goto __120
}
- Xsqlite3ErrorMsg(tls, pParse, ts+15191 /* "not a writable d..." */, 0)
+ rc = Xsqlite3OsAccess(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, zRight, 1, bp+440 /* &res */)
+ if !((rc != 0) || (*(*int32)(unsafe.Pointer(bp + 440 /* res */)) == 0)) {
+ goto __121
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+15580 /* "not a writable d..." */, 0)
goto pragma_out
-__120:
+__121:
;
-__119:
+__120:
;
if !(((1 == 0) ||
((1 == 1) && (int32((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store) <= 1))) ||
((1 == 2) && (int32((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store) == 1))) {
- goto __121
+ goto __122
}
invalidateTempStorage(tls, pParse)
-__121:
+__122:
;
Xsqlite3_free(tls, Xsqlite3_temp_directory)
if !(*(*int8)(unsafe.Pointer(zRight + uintptr(0))) != 0) {
- goto __122
+ goto __123
}
- Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp+16, zRight))
- goto __123
-__122:
- Xsqlite3_temp_directory = uintptr(0)
+ Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp+16, zRight))
+ goto __124
__123:
+ Xsqlite3_temp_directory = uintptr(0)
+__124:
;
-__118:
+__119:
;
goto __15
@@ -99113,71 +100697,71 @@ __118:
// opened.
__30:
if !(!(zRight != 0)) {
- goto __124
+ goto __125
}
returnSingleInt(tls, v, (int64(int32((*Db)(unsafe.Pointer(pDb)).Fsafety_level) - 1)))
- goto __125
-__124:
+ goto __126
+__125:
if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0)) {
- goto __126
+ goto __127
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+15216 /* "Safety level may..." */, 0)
- goto __127
-__126:
+ ts+15605 /* "Safety level may..." */, 0)
+ goto __128
+__127:
if !(iDb != 1) {
- goto __128
+ goto __129
}
iLevel = ((int32(getSafetyLevel(tls, zRight, 0, uint8(1))) + 1) & 0x07)
if !(iLevel == 0) {
- goto __129
+ goto __130
}
iLevel = 1
-__129:
+__130:
;
(*Db)(unsafe.Pointer(pDb)).Fsafety_level = U8(iLevel)
(*Db)(unsafe.Pointer(pDb)).FbSyncSet = U8(1)
setAllPagerFlags(tls, db)
-__128:
+__129:
;
-__127:
+__128:
;
-__125:
+__126:
;
goto __15
__31:
if !(zRight == uintptr(0)) {
- goto __130
+ goto __131
}
setPragmaResultColumnNames(tls, v, pPragma)
returnSingleInt(tls, v, (int64(crt.Bool32(((*Sqlite3)(unsafe.Pointer(db)).Fflags & (*PragmaName)(unsafe.Pointer(pPragma)).FiArg) != uint64(0)))))
- goto __131
-__130:
+ goto __132
+__131:
mask = (*PragmaName)(unsafe.Pointer(pPragma)).FiArg // Mask of bits to set or clear.
if !(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0) {
- goto __132
+ goto __133
}
// Foreign key support may not be enabled or disabled while not
// in auto-commit mode.
mask = mask & (^uint64(crt.Int32FromInt32(0x00004000)))
-__132:
+__133:
;
if !(Xsqlite3GetBoolean(tls, zRight, uint8(0)) != 0) {
- goto __133
+ goto __134
}
*(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) |= (mask)
- goto __134
-__133:
+ goto __135
+__134:
*(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) &= (^mask)
if !(mask == uint64(0x00080000)) {
- goto __135
+ goto __136
}
(*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = int64(0)
-__135:
+__136:
;
-__134:
+__135:
;
// Many of the flag-pragmas modify the code generated by the SQL
@@ -99185,7 +100769,7 @@ __134:
// compiled SQL statements after modifying a pragma value.
Xsqlite3VdbeAddOp0(tls, v, 158)
setAllPagerFlags(tls, db)
-__131:
+__132:
;
goto __15
@@ -99202,11 +100786,11 @@ __131:
// pk: Non-zero for PK fields.
__32:
if !(zRight != 0) {
- goto __136
+ goto __137
}
pTab = Xsqlite3LocateTable(tls, pParse, uint32(0x02), zRight, zDb)
if !(pTab != 0) {
- goto __137
+ goto __138
}
iTabDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
nHidden = 0
@@ -99216,79 +100800,79 @@ __32:
Xsqlite3ViewGetColumnNames(tls, pParse, pTab)
i = 0
pCol = (*Table)(unsafe.Pointer(pTab)).FaCol
-__138:
+__139:
if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
- goto __140
+ goto __141
}
isHidden = 0
if !((int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0062) != 0) {
- goto __141
+ goto __142
}
if !((*PragmaName)(unsafe.Pointer(pPragma)).FiArg == uint64(0)) {
- goto __142
+ goto __143
}
nHidden++
- goto __139
-__142:
+ goto __140
+__143:
;
if !((int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0020) != 0) {
- goto __143
+ goto __144
}
isHidden = 2
- goto __144
-__143:
+ goto __145
+__144:
if !((int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0040) != 0) {
- goto __145
+ goto __146
}
isHidden = 3
- goto __146
-__145:
+ goto __147
+__146:
;
isHidden = 1
-__146:
+__147:
;
-__144:
+__145:
;
-__141:
+__142:
;
if !((int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & 0x0001) == 0) {
- goto __147
+ goto __148
}
k = 0
- goto __148
-__147:
+ goto __149
+__148:
if !(pPk == uintptr(0)) {
- goto __149
+ goto __150
}
k = 1
- goto __150
-__149:
+ goto __151
+__150:
k = 1
-__151:
+__152:
if !((k <= int32((*Table)(unsafe.Pointer(pTab)).FnCol)) && (int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr((k-1))*2))) != i)) {
- goto __153
+ goto __154
}
- goto __152
-__152:
- k++
- goto __151
goto __153
__153:
+ k++
+ goto __152
+ goto __154
+__154:
;
-__150:
+__151:
;
-__148:
+__149:
;
Xsqlite3VdbeMultiLoad(tls, v, 1, func() uintptr {
if (*PragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 {
- return ts + 15269 /* "issisii" */
+ return ts + 15658 /* "issisii" */
}
- return ts + 15277 /* "issisi" */
+ return ts + 15666 /* "issisi" */
}(),
crt.VaList(bp+24, (i-nHidden),
(*Column)(unsafe.Pointer(pCol)).FzName,
- Xsqlite3ColumnType(tls, pCol, ts+623 /* "" */),
+ Xsqlite3ColumnType(tls, pCol, ts+672 /* "" */),
func() int32 {
if (*Column)(unsafe.Pointer(pCol)).FnotNull != 0 {
return 1
@@ -99303,67 +100887,67 @@ __148:
}(),
k,
isHidden))
- goto __139
-__139:
- i++
- pCol += 32
- goto __138
goto __140
__140:
+ i++
+ pCol += 32
+ goto __139
+ goto __141
+__141:
;
-__137:
+__138:
;
-__136:
+__137:
;
goto __15
__33:
if !(zRight != 0) {
- goto __154
+ goto __155
}
pIdx = Xsqlite3FindIndex(tls, db, zRight, zDb)
if !(pIdx == uintptr(0)) {
- goto __155
+ goto __156
}
// If there is no index named zRight, check to see if there is a
// WITHOUT ROWID table named zRight, and if there is, show the
// structure of the PRIMARY KEY index for that table.
pTab1 = Xsqlite3LocateTable(tls, pParse, uint32(0x02), zRight, zDb)
if !((pTab1 != 0) && !(((*Table)(unsafe.Pointer((pTab1))).FtabFlags & U32(0x0080)) == U32(0))) {
- goto __156
+ goto __157
}
pIdx = Xsqlite3PrimaryKeyIndex(tls, pTab1)
-__156:
+__157:
;
-__155:
+__156:
;
if !(pIdx != 0) {
- goto __157
+ goto __158
}
iIdxDb = Xsqlite3SchemaToIndex(tls, db, (*Index)(unsafe.Pointer(pIdx)).FpSchema)
if !((*PragmaName)(unsafe.Pointer(pPragma)).FiArg != 0) {
- goto __158
+ goto __159
}
// PRAGMA index_xinfo (newer version with more rows and columns)
mx = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
(*Parse)(unsafe.Pointer(pParse)).FnMem = 6
- goto __159
-__158:
+ goto __160
+__159:
// PRAGMA index_info (legacy version)
mx = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
(*Parse)(unsafe.Pointer(pParse)).FnMem = 3
-__159:
+__160:
;
pTab1 = (*Index)(unsafe.Pointer(pIdx)).FpTable
Xsqlite3CodeVerifySchema(tls, pParse, iIdxDb)
i1 = 0
-__160:
+__161:
if !(i1 < mx) {
- goto __162
+ goto __163
}
cnum = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i1)*2))
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15284 /* "iisX" */, crt.VaList(bp+80, i1, int32(cnum),
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15673 /* "iisX" */, crt.VaList(bp+80, i1, int32(cnum),
func() uintptr {
if int32(cnum) < 0 {
return uintptr(0)
@@ -99371,109 +100955,109 @@ __160:
return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab1)).FaCol + uintptr(cnum)*32)).FzName
}()))
if !((*PragmaName)(unsafe.Pointer(pPragma)).FiArg != 0) {
- goto __163
+ goto __164
}
- Xsqlite3VdbeMultiLoad(tls, v, 4, ts+15289, /* "isiX" */
+ Xsqlite3VdbeMultiLoad(tls, v, 4, ts+15678, /* "isiX" */
crt.VaList(bp+104, int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))),
*(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)),
(crt.Bool32(i1 < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)))))
-__163:
+__164:
;
Xsqlite3VdbeAddOp2(tls, v, 80, 1, (*Parse)(unsafe.Pointer(pParse)).FnMem)
- goto __161
-__161:
- i1++
- goto __160
goto __162
__162:
+ i1++
+ goto __161
+ goto __163
+__163:
;
-__157:
+__158:
;
-__154:
+__155:
;
goto __15
__34:
if !(zRight != 0) {
- goto __164
+ goto __165
}
pTab2 = Xsqlite3FindTable(tls, db, zRight, zDb)
if !(pTab2 != 0) {
- goto __165
+ goto __166
}
iTabDb1 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab2)).FpSchema)
(*Parse)(unsafe.Pointer(pParse)).FnMem = 5
Xsqlite3CodeVerifySchema(tls, pParse, iTabDb1)
pIdx1 = (*Table)(unsafe.Pointer(pTab2)).FpIndex
i2 = 0
-__166:
+__167:
if !(pIdx1 != 0) {
- goto __168
+ goto __169
}
- *(*[3]uintptr)(unsafe.Pointer(bp + 440 /* azOrigin */)) = [3]uintptr{ts + 15294 /* "c" */, ts + 15296 /* "u" */, ts + 13813 /* "pk" */}
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15298, /* "isisi" */
+ *(*[3]uintptr)(unsafe.Pointer(bp + 448 /* azOrigin */)) = [3]uintptr{ts + 15683 /* "c" */, ts + 15685 /* "u" */, ts + 14193 /* "pk" */}
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15687, /* "isisi" */
crt.VaList(bp+128, i2,
(*Index)(unsafe.Pointer(pIdx1)).FzName,
(crt.Bool32(int32((*Index)(unsafe.Pointer((pIdx1))).FonError) != 0)),
- *(*uintptr)(unsafe.Pointer(bp + 440 /* &azOrigin[0] */ + uintptr(uint32(int32(*(*uint16)(unsafe.Pointer(pIdx1 + 100 /* &.idxType */))&0x3>>0)))*8)),
+ *(*uintptr)(unsafe.Pointer(bp + 448 /* &azOrigin[0] */ + uintptr(uint32(int32(*(*uint16)(unsafe.Pointer(pIdx1 + 100 /* &.idxType */))&0x3>>0)))*8)),
(crt.Bool32((*Index)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))))
- goto __167
-__167:
- pIdx1 = (*Index)(unsafe.Pointer(pIdx1)).FpNext
- i2++
- goto __166
goto __168
__168:
+ pIdx1 = (*Index)(unsafe.Pointer(pIdx1)).FpNext
+ i2++
+ goto __167
+ goto __169
+__169:
;
-__165:
+__166:
;
-__164:
+__165:
;
goto __15
__35:
(*Parse)(unsafe.Pointer(pParse)).FnMem = 3
i3 = 0
-__169:
+__170:
if !(i3 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __171
+ goto __172
}
if !((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i3)*32)).FpBt == uintptr(0)) {
- goto __172
+ goto __173
}
- goto __170
-__172:
+ goto __171
+__173:
;
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15304, /* "iss" */
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15693, /* "iss" */
crt.VaList(bp+168, i3,
(*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i3)*32)).FzDbSName,
Xsqlite3BtreeGetFilename(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i3)*32)).FpBt)))
- goto __170
-__170:
- i3++
- goto __169
goto __171
__171:
+ i3++
+ goto __170
+ goto __172
+__172:
;
goto __15
__36:
i4 = 0
(*Parse)(unsafe.Pointer(pParse)).FnMem = 2
- p = (*Hash)(unsafe.Pointer((db + 560 /* &.aCollSeq */))).Ffirst
-__173:
+ p = (*Hash)(unsafe.Pointer((db + 576 /* &.aCollSeq */))).Ffirst
+__174:
if !(p != 0) {
- goto __175
+ goto __176
}
pColl = (*HashElem)(unsafe.Pointer(p)).Fdata
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15308 /* "is" */, crt.VaList(bp+192, crt.PostIncInt32(&i4, 1), (*CollSeq)(unsafe.Pointer(pColl)).FzName))
- goto __174
-__174:
- p = (*HashElem)(unsafe.Pointer(p)).Fnext
- goto __173
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15697 /* "is" */, crt.VaList(bp+192, crt.PostIncInt32(&i4, 1), (*CollSeq)(unsafe.Pointer(pColl)).FzName))
goto __175
__175:
+ p = (*HashElem)(unsafe.Pointer(p)).Fnext
+ goto __174
+ goto __176
+__176:
;
goto __15
@@ -99481,106 +101065,106 @@ __37:
showInternFunc = (crt.Bool32(((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags & U32(0x0020)) != U32(0)))
(*Parse)(unsafe.Pointer(pParse)).FnMem = 6
i5 = 0
-__176:
+__177:
if !(i5 < 23) {
- goto __178
+ goto __179
}
p1 = *(*uintptr)(unsafe.Pointer((uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)) /* &.a */) + uintptr(i5)*8))
-__179:
+__180:
if !(p1 != 0) {
- goto __181
+ goto __182
}
pragmaFunclistLine(tls, v, p1, 1, showInternFunc)
- goto __180
-__180:
- p1 = *(*uintptr)(unsafe.Pointer(p1 + 64 /* &.u */))
- goto __179
goto __181
__181:
+ p1 = *(*uintptr)(unsafe.Pointer(p1 + 64 /* &.u */))
+ goto __180
+ goto __182
+__182:
;
- goto __177
-__177:
- i5++
- goto __176
goto __178
__178:
+ i5++
+ goto __177
+ goto __179
+__179:
;
- j = (*Hash)(unsafe.Pointer((db + 536 /* &.aFunc */))).Ffirst
-__182:
+ j = (*Hash)(unsafe.Pointer((db + 552 /* &.aFunc */))).Ffirst
+__183:
if !(j != 0) {
- goto __184
+ goto __185
}
p1 = (*HashElem)(unsafe.Pointer(j)).Fdata
pragmaFunclistLine(tls, v, p1, 0, showInternFunc)
- goto __183
-__183:
- j = (*HashElem)(unsafe.Pointer(j)).Fnext
- goto __182
goto __184
__184:
+ j = (*HashElem)(unsafe.Pointer(j)).Fnext
+ goto __183
+ goto __185
+__185:
;
goto __15
__38:
(*Parse)(unsafe.Pointer(pParse)).FnMem = 1
- j1 = (*Hash)(unsafe.Pointer((db + 488 /* &.aModule */))).Ffirst
-__185:
+ j1 = (*Hash)(unsafe.Pointer((db + 504 /* &.aModule */))).Ffirst
+__186:
if !(j1 != 0) {
- goto __187
+ goto __188
}
pMod = (*HashElem)(unsafe.Pointer(j1)).Fdata
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15152 /* "s" */, crt.VaList(bp+208, (*Module)(unsafe.Pointer(pMod)).FzName))
- goto __186
-__186:
- j1 = (*HashElem)(unsafe.Pointer(j1)).Fnext
- goto __185
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15541 /* "s" */, crt.VaList(bp+208, (*Module)(unsafe.Pointer(pMod)).FzName))
goto __187
__187:
+ j1 = (*HashElem)(unsafe.Pointer(j1)).Fnext
+ goto __186
+ goto __188
+__188:
;
goto __15
__39:
i6 = 0
-__188:
+__189:
if !(i6 < (int32(uint64(unsafe.Sizeof(aPragmaName)) / uint64(unsafe.Sizeof(PragmaName{}))))) {
- goto __190
+ goto __191
}
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15152 /* "s" */, crt.VaList(bp+216, aPragmaName[i6].FzName))
- goto __189
-__189:
- i6++
- goto __188
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15541 /* "s" */, crt.VaList(bp+216, aPragmaName[i6].FzName))
goto __190
__190:
+ i6++
+ goto __189
+ goto __191
+__191:
;
goto __15
__40:
if !(zRight != 0) {
- goto __191
+ goto __192
}
pTab3 = Xsqlite3FindTable(tls, db, zRight, zDb)
if !(pTab3 != 0) {
- goto __192
+ goto __193
}
pFK = (*Table)(unsafe.Pointer(pTab3)).FpFKey
if !(pFK != 0) {
- goto __193
+ goto __194
}
iTabDb2 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab3)).FpSchema)
i7 = 0
(*Parse)(unsafe.Pointer(pParse)).FnMem = 8
Xsqlite3CodeVerifySchema(tls, pParse, iTabDb2)
-__194:
+__195:
if !(pFK != 0) {
- goto __195
+ goto __196
}
j2 = 0
-__196:
+__197:
if !(j2 < (*FKey)(unsafe.Pointer(pFK)).FnCol) {
- goto __198
+ goto __199
}
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15311, /* "iissssss" */
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15700, /* "iissssss" */
crt.VaList(bp+224, i7,
j2,
(*FKey)(unsafe.Pointer(pFK)).FzTo,
@@ -99588,25 +101172,25 @@ __196:
(*sColMap)(unsafe.Pointer((pFK+64 /* &.aCol */)+uintptr(j2)*16)).FzCol,
actionName(tls, *(*U8)(unsafe.Pointer((pFK + 45 /* &.aAction */) + uintptr(1)))), // ON UPDATE
actionName(tls, *(*U8)(unsafe.Pointer((pFK + 45 /* &.aAction */) + uintptr(0)))), // ON DELETE
- ts+2474 /* "NONE" */))
- goto __197
-__197:
- j2++
- goto __196
+ ts+2523 /* "NONE" */))
goto __198
__198:
+ j2++
+ goto __197
+ goto __199
+__199:
;
i7++
pFK = (*FKey)(unsafe.Pointer(pFK)).FpNextFrom
- goto __194
-__195:
+ goto __195
+__196:
+ ;
+__194:
;
__193:
;
__192:
;
-__191:
- ;
goto __15
__41: // child to parent column mapping
@@ -99616,109 +101200,109 @@ __41: // child to parent column mapping
regKey = crt.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
regRow = crt.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
k1 = (*Hash)(unsafe.Pointer(((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 8 /* &.tblHash */))).Ffirst
-__199:
+__200:
if !(k1 != 0) {
- goto __200
+ goto __201
}
if !(zRight != 0) {
- goto __201
+ goto __202
}
pTab4 = Xsqlite3LocateTable(tls, pParse, uint32(0), zRight, zDb)
k1 = uintptr(0)
- goto __202
-__201:
+ goto __203
+__202:
pTab4 = (*HashElem)(unsafe.Pointer(k1)).Fdata
k1 = (*HashElem)(unsafe.Pointer(k1)).Fnext
-__202:
+__203:
;
if !((pTab4 == uintptr(0)) || ((*Table)(unsafe.Pointer(pTab4)).FpFKey == uintptr(0))) {
- goto __203
+ goto __204
}
- goto __199
-__203:
+ goto __200
+__204:
;
iTabDb3 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab4)).FpSchema)
Xsqlite3CodeVerifySchema(tls, pParse, iTabDb3)
Xsqlite3TableLock(tls, pParse, iTabDb3, (*Table)(unsafe.Pointer(pTab4)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTab4)).FzName)
if !((int32((*Table)(unsafe.Pointer(pTab4)).FnCol) + regRow) > (*Parse)(unsafe.Pointer(pParse)).FnMem) {
- goto __204
+ goto __205
}
(*Parse)(unsafe.Pointer(pParse)).FnMem = (int32((*Table)(unsafe.Pointer(pTab4)).FnCol) + regRow)
-__204:
+__205:
;
Xsqlite3OpenTable(tls, pParse, 0, iTabDb3, pTab4, 96)
Xsqlite3VdbeLoadString(tls, v, regResult, (*Table)(unsafe.Pointer(pTab4)).FzName)
i8 = 1
pFK1 = (*Table)(unsafe.Pointer(pTab4)).FpFKey
-__205:
+__206:
if !(pFK1 != 0) {
- goto __207
+ goto __208
}
pParent = Xsqlite3FindTable(tls, db, (*FKey)(unsafe.Pointer(pFK1)).FzTo, zDb)
if !(pParent == uintptr(0)) {
- goto __208
+ goto __209
}
- goto __206
-__208:
+ goto __207
+__209:
;
- *(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */)) = uintptr(0)
Xsqlite3TableLock(tls, pParse, iTabDb3, (*Table)(unsafe.Pointer(pParent)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pParent)).FzName)
- x = Xsqlite3FkLocateIndex(tls, pParse, pParent, pFK1, bp+464 /* &pIdx2 */, uintptr(0))
+ x = Xsqlite3FkLocateIndex(tls, pParse, pParent, pFK1, bp+472 /* &pIdx2 */, uintptr(0))
if !(x == 0) {
- goto __209
+ goto __210
}
- if !(*(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */)) == uintptr(0)) {
- goto __211
+ if !(*(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */)) == uintptr(0)) {
+ goto __212
}
Xsqlite3OpenTable(tls, pParse, i8, iTabDb3, pParent, 96)
- goto __212
-__211:
- Xsqlite3VdbeAddOp3(tls, v, 96, i8, (*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */)))).Ftnum, iTabDb3)
- Xsqlite3VdbeSetP4KeyInfo(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */)))
+ goto __213
__212:
+ Xsqlite3VdbeAddOp3(tls, v, 96, i8, (*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */)))).Ftnum, iTabDb3)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */)))
+__213:
;
- goto __210
-__209:
- k1 = uintptr(0)
- goto __207
+ goto __211
__210:
+ k1 = uintptr(0)
+ goto __208
+__211:
;
- goto __206
-__206:
- i8++
- pFK1 = (*FKey)(unsafe.Pointer(pFK1)).FpNextFrom
- goto __205
goto __207
__207:
+ i8++
+ pFK1 = (*FKey)(unsafe.Pointer(pFK1)).FpNextFrom
+ goto __206
+ goto __208
+__208:
;
if !(pFK1 != 0) {
- goto __213
+ goto __214
}
- goto __200
-__213:
+ goto __201
+__214:
;
if !((*Parse)(unsafe.Pointer(pParse)).FnTab < i8) {
- goto __214
+ goto __215
}
(*Parse)(unsafe.Pointer(pParse)).FnTab = i8
-__214:
+__215:
;
addrTop = Xsqlite3VdbeAddOp1(tls, v, 37, 0)
i8 = 1
pFK1 = (*Table)(unsafe.Pointer(pTab4)).FpFKey
-__215:
+__216:
if !(pFK1 != 0) {
- goto __217
+ goto __218
}
pParent = Xsqlite3FindTable(tls, db, (*FKey)(unsafe.Pointer(pFK1)).FzTo, zDb)
- *(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */)) = uintptr(0)
- *(*uintptr)(unsafe.Pointer(bp + 472 /* aiCols */)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 480 /* aiCols */)) = uintptr(0)
if !(pParent != 0) {
- goto __218
+ goto __219
}
- x = Xsqlite3FkLocateIndex(tls, pParse, pParent, pFK1, bp+464 /* &pIdx2 */, bp+472 /* &aiCols */)
-__218:
+ x = Xsqlite3FkLocateIndex(tls, pParse, pParent, pFK1, bp+472 /* &pIdx2 */, bp+480 /* &aiCols */)
+__219:
;
addrOk = Xsqlite3VdbeMakeLabel(tls, pParse)
@@ -99727,72 +101311,72 @@ __218:
// row cannot cause an FK violation. Jump directly to addrOk in
// this case.
j3 = 0
-__219:
+__220:
if !(j3 < (*FKey)(unsafe.Pointer(pFK1)).FnCol) {
- goto __221
+ goto __222
}
- if *(*uintptr)(unsafe.Pointer(bp + 472 /* aiCols */)) != 0 {
- iCol = *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 472 /* aiCols */)) + uintptr(j3)*4))
+ if *(*uintptr)(unsafe.Pointer(bp + 480 /* aiCols */)) != 0 {
+ iCol = *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 480 /* aiCols */)) + uintptr(j3)*4))
} else {
iCol = (*sColMap)(unsafe.Pointer((pFK1 + 64 /* &.aCol */) + uintptr(j3)*16)).FiFrom
}
Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab4, 0, iCol, (regRow + j3))
Xsqlite3VdbeAddOp2(tls, v, 50, (regRow + j3), addrOk)
- goto __220
-__220:
- j3++
- goto __219
goto __221
__221:
+ j3++
+ goto __220
+ goto __222
+__222:
;
// Generate code to query the parent index for a matching parent
// key. If a match is found, jump to addrOk.
- if !(*(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */)) != 0) {
- goto __222
+ if !(*(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */)) != 0) {
+ goto __223
}
Xsqlite3VdbeAddOp4(tls, v, 91, regRow, (*FKey)(unsafe.Pointer(pFK1)).FnCol, regKey,
- Xsqlite3IndexAffinityStr(tls, db, *(*uintptr)(unsafe.Pointer(bp + 464 /* pIdx2 */))), (*FKey)(unsafe.Pointer(pFK1)).FnCol)
+ Xsqlite3IndexAffinityStr(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472 /* pIdx2 */))), (*FKey)(unsafe.Pointer(pFK1)).FnCol)
Xsqlite3VdbeAddOp4Int(tls, v, 30, i8, addrOk, regKey, 0)
- goto __223
-__222:
+ goto __224
+__223:
if !(pParent != 0) {
- goto __224
+ goto __225
}
jmp = (Xsqlite3VdbeCurrentAddr(tls, v) + 2)
Xsqlite3VdbeAddOp3(tls, v, 31, i8, jmp, regRow)
Xsqlite3VdbeGoto(tls, v, addrOk)
-__224:
+__225:
;
-__223:
+__224:
;
// Generate code to report an FK violation to the caller.
if !(((*Table)(unsafe.Pointer((pTab4))).FtabFlags & U32(0x0080)) == U32(0)) {
- goto __225
+ goto __226
}
Xsqlite3VdbeAddOp2(tls, v, 127, 0, (regResult + 1))
- goto __226
-__225:
- Xsqlite3VdbeAddOp2(tls, v, 72, 0, (regResult + 1))
+ goto __227
__226:
+ Xsqlite3VdbeAddOp2(tls, v, 72, 0, (regResult + 1))
+__227:
;
- Xsqlite3VdbeMultiLoad(tls, v, (regResult + 2), ts+15320 /* "siX" */, crt.VaList(bp+288, (*FKey)(unsafe.Pointer(pFK1)).FzTo, (i8-1)))
+ Xsqlite3VdbeMultiLoad(tls, v, (regResult + 2), ts+15709 /* "siX" */, crt.VaList(bp+288, (*FKey)(unsafe.Pointer(pFK1)).FzTo, (i8-1)))
Xsqlite3VdbeAddOp2(tls, v, 80, regResult, 4)
Xsqlite3VdbeResolveLabel(tls, v, addrOk)
- Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472 /* aiCols */)))
- goto __216
-__216:
- i8++
- pFK1 = (*FKey)(unsafe.Pointer(pFK1)).FpNextFrom
- goto __215
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 480 /* aiCols */)))
goto __217
__217:
+ i8++
+ pFK1 = (*FKey)(unsafe.Pointer(pFK1)).FpNextFrom
+ goto __216
+ goto __218
+__218:
;
Xsqlite3VdbeAddOp2(tls, v, 5, 0, (addrTop + 1))
Xsqlite3VdbeJumpHere(tls, v, addrTop)
- goto __199
-__200:
+ goto __200
+__201:
;
goto __15
@@ -99800,10 +101384,10 @@ __200:
// used will be case sensitive or not depending on the RHS.
__42:
if !(zRight != 0) {
- goto __227
+ goto __228
}
Xsqlite3RegisterLikeFunctions(tls, db, int32(Xsqlite3GetBoolean(tls, zRight, uint8(0))))
-__227:
+__228:
;
goto __15
@@ -99833,51 +101417,51 @@ __43:
// of all attached databases.
if !((*Token)(unsafe.Pointer(pId2)).Fz == uintptr(0)) {
- goto __228
+ goto __229
}
iDb = -1
-__228:
+__229:
;
// Initialize the VDBE program
(*Parse)(unsafe.Pointer(pParse)).FnMem = 6
// Set the maximum error count
- *(*int32)(unsafe.Pointer(bp + 480 /* mxErr */)) = 100
+ *(*int32)(unsafe.Pointer(bp + 488 /* mxErr */)) = 100
if !(zRight != 0) {
- goto __229
- }
- Xsqlite3GetInt32(tls, zRight, bp+480 /* &mxErr */)
- if !(*(*int32)(unsafe.Pointer(bp + 480 /* mxErr */)) <= 0) {
goto __230
}
- *(*int32)(unsafe.Pointer(bp + 480 /* mxErr */)) = 100
-__230:
+ Xsqlite3GetInt32(tls, zRight, bp+488 /* &mxErr */)
+ if !(*(*int32)(unsafe.Pointer(bp + 488 /* mxErr */)) <= 0) {
+ goto __231
+ }
+ *(*int32)(unsafe.Pointer(bp + 488 /* mxErr */)) = 100
+__231:
;
-__229:
+__230:
;
- Xsqlite3VdbeAddOp2(tls, v, 69, (*(*int32)(unsafe.Pointer(bp + 480 /* mxErr */)) - 1), 1) // reg[1] holds errors left
+ Xsqlite3VdbeAddOp2(tls, v, 69, (*(*int32)(unsafe.Pointer(bp + 488 /* mxErr */)) - 1), 1) // reg[1] holds errors left
// Do an integrity check on each database file
i9 = 0
-__231:
+__232:
if !(i9 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __233
+ goto __234
} // Array of root page numbers of all btrees
cnt = 0 // Number of entries in aRoot[]
mxIdx = 0 // Maximum number of indexes for any table
if !((0 != 0) && (i9 == 1)) {
- goto __234
+ goto __235
}
- goto __232
-__234:
+ goto __233
+__235:
;
if !((iDb >= 0) && (i9 != iDb)) {
- goto __235
+ goto __236
}
- goto __232
-__235:
+ goto __233
+__236:
;
Xsqlite3CodeVerifySchema(tls, pParse, i9)
@@ -99890,84 +101474,84 @@ __235:
pTbls = ((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i9)*32)).FpSchema + 8 /* &.tblHash */)
cnt = 0
x1 = (*Hash)(unsafe.Pointer(pTbls)).Ffirst
-__236:
+__237:
if !(x1 != 0) {
- goto __238
+ goto __239
}
pTab5 = (*HashElem)(unsafe.Pointer(x1)).Fdata // Number of indexes on pTab
if !(((*Table)(unsafe.Pointer((pTab5))).FtabFlags & U32(0x0080)) == U32(0)) {
- goto __239
+ goto __240
}
cnt++
-__239:
+__240:
;
nIdx = 0
pIdx3 = (*Table)(unsafe.Pointer(pTab5)).FpIndex
-__240:
+__241:
if !(pIdx3 != 0) {
- goto __242
+ goto __243
}
cnt++
- goto __241
-__241:
- pIdx3 = (*Index)(unsafe.Pointer(pIdx3)).FpNext
- nIdx++
- goto __240
goto __242
__242:
+ pIdx3 = (*Index)(unsafe.Pointer(pIdx3)).FpNext
+ nIdx++
+ goto __241
+ goto __243
+__243:
;
if !(nIdx > mxIdx) {
- goto __243
+ goto __244
}
mxIdx = nIdx
-__243:
+__244:
;
- goto __237
-__237:
- x1 = (*HashElem)(unsafe.Pointer(x1)).Fnext
- goto __236
goto __238
__238:
+ x1 = (*HashElem)(unsafe.Pointer(x1)).Fnext
+ goto __237
+ goto __239
+__239:
;
aRoot = Xsqlite3DbMallocRawNN(tls, db, (uint64(uint64(unsafe.Sizeof(int32(0))) * (uint64(cnt + 1)))))
if !(aRoot == uintptr(0)) {
- goto __244
+ goto __245
}
- goto __233
-__244:
+ goto __234
+__245:
;
cnt = 0
x1 = (*Hash)(unsafe.Pointer(pTbls)).Ffirst
-__245:
+__246:
if !(x1 != 0) {
- goto __247
+ goto __248
}
pTab6 = (*HashElem)(unsafe.Pointer(x1)).Fdata
if !(((*Table)(unsafe.Pointer((pTab6))).FtabFlags & U32(0x0080)) == U32(0)) {
- goto __248
+ goto __249
}
*(*int32)(unsafe.Pointer(aRoot + uintptr(crt.PreIncInt32(&cnt, 1))*4)) = (*Table)(unsafe.Pointer(pTab6)).Ftnum
-__248:
+__249:
;
pIdx4 = (*Table)(unsafe.Pointer(pTab6)).FpIndex
-__249:
+__250:
if !(pIdx4 != 0) {
- goto __251
+ goto __252
}
*(*int32)(unsafe.Pointer(aRoot + uintptr(crt.PreIncInt32(&cnt, 1))*4)) = (*Index)(unsafe.Pointer(pIdx4)).Ftnum
- goto __250
-__250:
- pIdx4 = (*Index)(unsafe.Pointer(pIdx4)).FpNext
- goto __249
goto __251
__251:
+ pIdx4 = (*Index)(unsafe.Pointer(pIdx4)).FpNext
+ goto __250
+ goto __252
+__252:
;
- goto __246
-__246:
- x1 = (*HashElem)(unsafe.Pointer(x1)).Fnext
- goto __245
goto __247
__247:
+ x1 = (*HashElem)(unsafe.Pointer(x1)).Fnext
+ goto __246
+ goto __248
+__248:
;
*(*int32)(unsafe.Pointer(aRoot + uintptr(0)*4)) = cnt
@@ -99985,7 +101569,7 @@ __247:
Xsqlite3VdbeChangeP5(tls, v, uint16(U8(i9)))
addr1 = Xsqlite3VdbeAddOp1(tls, v, 50, 2)
Xsqlite3VdbeAddOp4(tls, v, 115, 0, 3, 0,
- Xsqlite3MPrintf(tls, db, ts+15324 /* "*** in database ..." */, crt.VaList(bp+304, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i9)*32)).FzDbSName)),
+ Xsqlite3MPrintf(tls, db, ts+15713 /* "*** in database ..." */, crt.VaList(bp+304, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i9)*32)).FzDbSName)),
-7)
Xsqlite3VdbeAddOp3(tls, v, 110, 2, 3, 3)
integrityCheckResultRow(tls, v)
@@ -99993,19 +101577,19 @@ __247:
// Make sure all the indices are constructed correctly.
x1 = (*Hash)(unsafe.Pointer(pTbls)).Ffirst
-__252:
+__253:
if !(x1 != 0) {
- goto __254
+ goto __255
}
pTab7 = (*HashElem)(unsafe.Pointer(x1)).Fdata
pPrior = uintptr(0)
r1 = -1
if !((*Table)(unsafe.Pointer(pTab7)).Ftnum < 1) {
- goto __255
+ goto __256
}
- goto __253
-__255:
+ goto __254
+__256:
; // Skip VIEWs or VIRTUAL TABLEs
if ((*Table)(unsafe.Pointer((pTab7))).FtabFlags & U32(0x0080)) == U32(0) {
pPk1 = uintptr(0)
@@ -100013,139 +101597,139 @@ __255:
pPk1 = Xsqlite3PrimaryKeyIndex(tls, pTab7)
}
Xsqlite3OpenTableAndIndices(tls, pParse, pTab7, 96, uint8(0),
- 1, uintptr(0), bp+484 /* &iDataCur */, bp+488 /* &iIdxCur */)
+ 1, uintptr(0), bp+492 /* &iDataCur */, bp+496 /* &iIdxCur */)
// reg[7] counts the number of entries in the table.
// reg[8+i] counts the number of entries in the i-th index
Xsqlite3VdbeAddOp2(tls, v, 69, 0, 7)
j4 = 0
pIdx5 = (*Table)(unsafe.Pointer(pTab7)).FpIndex
-__256:
+__257:
if !(pIdx5 != 0) {
- goto __258
+ goto __259
}
Xsqlite3VdbeAddOp2(tls, v, 69, 0, (8 + j4))
- goto __257
-__257:
- pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
- j4++
- goto __256
goto __258
__258:
+ pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
+ j4++
+ goto __257
+ goto __259
+__259:
;
- Xsqlite3VdbeAddOp2(tls, v, 37, *(*int32)(unsafe.Pointer(bp + 484 /* iDataCur */)), 0)
+ Xsqlite3VdbeAddOp2(tls, v, 37, *(*int32)(unsafe.Pointer(bp + 492 /* iDataCur */)), 0)
loopTop = Xsqlite3VdbeAddOp2(tls, v, 82, 7, 1)
if !(!(isQuick != 0)) {
- goto __259
+ goto __260
}
// Sanity check on record header decoding
- Xsqlite3VdbeAddOp3(tls, v, 89, *(*int32)(unsafe.Pointer(bp + 484 /* iDataCur */)), (int32((*Table)(unsafe.Pointer(pTab7)).FnNVCol) - 1), 3)
+ Xsqlite3VdbeAddOp3(tls, v, 89, *(*int32)(unsafe.Pointer(bp + 492 /* iDataCur */)), (int32((*Table)(unsafe.Pointer(pTab7)).FnNVCol) - 1), 3)
Xsqlite3VdbeChangeP5(tls, v, uint16(0x80))
-__259:
+__260:
;
// Verify that all NOT NULL columns really are NOT NULL
j4 = 0
-__260:
+__261:
if !(j4 < int32((*Table)(unsafe.Pointer(pTab7)).FnCol)) {
- goto __262
+ goto __263
}
if !(j4 == int32((*Table)(unsafe.Pointer(pTab7)).FiPKey)) {
- goto __263
+ goto __264
}
- goto __261
-__263:
+ goto __262
+__264:
;
if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab7)).FaCol+uintptr(j4)*32)).FnotNull) == 0) {
- goto __264
+ goto __265
}
- goto __261
-__264:
+ goto __262
+__265:
;
- Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab7, *(*int32)(unsafe.Pointer(bp + 484 /* iDataCur */)), j4, 3)
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab7, *(*int32)(unsafe.Pointer(bp + 492 /* iDataCur */)), j4, 3)
if !(int32((*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, v, -1))).Fopcode) == 89) {
- goto __265
+ goto __266
}
Xsqlite3VdbeChangeP5(tls, v, uint16(0x80))
-__265:
+__266:
;
jmp2 = Xsqlite3VdbeAddOp1(tls, v, 51, 3)
- zErr = Xsqlite3MPrintf(tls, db, ts+15348 /* "NULL value in %s..." */, crt.VaList(bp+312, (*Table)(unsafe.Pointer(pTab7)).FzName,
+ zErr = Xsqlite3MPrintf(tls, db, ts+15737 /* "NULL value in %s..." */, crt.VaList(bp+312, (*Table)(unsafe.Pointer(pTab7)).FzName,
(*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab7)).FaCol+uintptr(j4)*32)).FzName))
Xsqlite3VdbeAddOp4(tls, v, 115, 0, 3, 0, zErr, -7)
integrityCheckResultRow(tls, v)
Xsqlite3VdbeJumpHere(tls, v, jmp2)
- goto __261
-__261:
- j4++
- goto __260
goto __262
__262:
+ j4++
+ goto __261
+ goto __263
+__263:
;
// Verify CHECK constraints
if !(((*Table)(unsafe.Pointer(pTab7)).FpCheck != 0) && (((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00000200)) == uint64(0))) {
- goto __266
+ goto __267
}
pCheck = Xsqlite3ExprListDup(tls, db, (*Table)(unsafe.Pointer(pTab7)).FpCheck, 0)
if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0) {
- goto __267
+ goto __268
}
addrCkFault = Xsqlite3VdbeMakeLabel(tls, pParse)
addrCkOk = Xsqlite3VdbeMakeLabel(tls, pParse)
- (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = (*(*int32)(unsafe.Pointer(bp + 484 /* iDataCur */)) + 1)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = (*(*int32)(unsafe.Pointer(bp + 492 /* iDataCur */)) + 1)
k2 = ((*ExprList)(unsafe.Pointer(pCheck)).FnExpr - 1)
-__268:
+__269:
if !(k2 > 0) {
- goto __270
+ goto __271
}
Xsqlite3ExprIfFalse(tls, pParse, (*ExprList_item)(unsafe.Pointer((pCheck+8 /* &.a */)+uintptr(k2)*32)).FpExpr, addrCkFault, 0)
- goto __269
-__269:
- k2--
- goto __268
goto __270
__270:
+ k2--
+ goto __269
+ goto __271
+__271:
;
Xsqlite3ExprIfTrue(tls, pParse, (*ExprList_item)(unsafe.Pointer((pCheck+8 /* &.a */)+uintptr(0)*32)).FpExpr, addrCkOk,
0x10)
Xsqlite3VdbeResolveLabel(tls, v, addrCkFault)
(*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
- zErr1 = Xsqlite3MPrintf(tls, db, ts+15368, /* "CHECK constraint..." */
+ zErr1 = Xsqlite3MPrintf(tls, db, ts+15757, /* "CHECK constraint..." */
crt.VaList(bp+328, (*Table)(unsafe.Pointer(pTab7)).FzName))
Xsqlite3VdbeAddOp4(tls, v, 115, 0, 3, 0, zErr1, -7)
integrityCheckResultRow(tls, v)
Xsqlite3VdbeResolveLabel(tls, v, addrCkOk)
-__267:
+__268:
;
Xsqlite3ExprListDelete(tls, db, pCheck)
-__266:
+__267:
;
if !(!(isQuick != 0)) {
- goto __271
+ goto __272
} // Omit the remaining tests for quick_check
// Validate index entries for the current row
j4 = 0
pIdx5 = (*Table)(unsafe.Pointer(pTab7)).FpIndex
-__272:
+__273:
if !(pIdx5 != 0) {
- goto __274
+ goto __275
}
ckUniq = Xsqlite3VdbeMakeLabel(tls, pParse)
if !(pPk1 == pIdx5) {
- goto __275
+ goto __276
}
- goto __273
-__275:
+ goto __274
+__276:
;
- r1 = Xsqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 484 /* iDataCur */)), 0, 0, bp+492, /* &jmp3 */
+ r1 = Xsqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 492 /* iDataCur */)), 0, 0, bp+500, /* &jmp3 */
pPrior, r1)
pPrior = pIdx5
Xsqlite3VdbeAddOp2(tls, v, 82, (8 + j4), 1) // increment entry count
// Verify that an index entry exists for the current table row
- jmp21 = Xsqlite3VdbeAddOp4Int(tls, v, 30, (*(*int32)(unsafe.Pointer(bp + 488 /* iIdxCur */)) + j4), ckUniq, r1,
+ jmp21 = Xsqlite3VdbeAddOp4Int(tls, v, 30, (*(*int32)(unsafe.Pointer(bp + 496 /* iIdxCur */)) + j4), ckUniq, r1,
int32((*Index)(unsafe.Pointer(pIdx5)).FnColumn))
- Xsqlite3VdbeLoadString(tls, v, 3, ts+15398 /* "row " */)
+ Xsqlite3VdbeLoadString(tls, v, 3, ts+15787 /* "row " */)
Xsqlite3VdbeAddOp3(tls, v, 110, 7, 3, 3)
- Xsqlite3VdbeLoadString(tls, v, 4, ts+15403 /* " missing from in..." */)
+ Xsqlite3VdbeLoadString(tls, v, 4, ts+15792 /* " missing from in..." */)
Xsqlite3VdbeAddOp3(tls, v, 110, 4, 3, 3)
jmp5 = Xsqlite3VdbeLoadString(tls, v, 4, (*Index)(unsafe.Pointer(pIdx5)).FzName)
Xsqlite3VdbeAddOp3(tls, v, 110, 4, 3, 3)
@@ -100155,116 +101739,194 @@ __275:
// current key. The entry is unique if (1) any column is NULL
// or (2) the next entry has a different key
if !(int32((*Index)(unsafe.Pointer((pIdx5))).FonError) != 0) {
- goto __276
+ goto __277
}
uniqOk = Xsqlite3VdbeMakeLabel(tls, pParse)
kk = 0
-__277:
+__278:
if !(kk < int32((*Index)(unsafe.Pointer(pIdx5)).FnKeyCol)) {
- goto __279
+ goto __280
}
iCol1 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2)))
if !((iCol1 >= 0) && ((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab7)).FaCol+uintptr(iCol1)*32)).FnotNull != 0)) {
- goto __280
+ goto __281
}
- goto __278
-__280:
+ goto __279
+__281:
;
Xsqlite3VdbeAddOp2(tls, v, 50, (r1 + kk), uniqOk)
- goto __278
-__278:
- kk++
- goto __277
goto __279
__279:
+ kk++
+ goto __278
+ goto __280
+__280:
;
- jmp6 = Xsqlite3VdbeAddOp1(tls, v, 5, (*(*int32)(unsafe.Pointer(bp + 488 /* iIdxCur */)) + j4))
+ jmp6 = Xsqlite3VdbeAddOp1(tls, v, 5, (*(*int32)(unsafe.Pointer(bp + 496 /* iIdxCur */)) + j4))
Xsqlite3VdbeGoto(tls, v, uniqOk)
Xsqlite3VdbeJumpHere(tls, v, jmp6)
- Xsqlite3VdbeAddOp4Int(tls, v, 39, (*(*int32)(unsafe.Pointer(bp + 488 /* iIdxCur */)) + j4), uniqOk, r1,
+ Xsqlite3VdbeAddOp4Int(tls, v, 39, (*(*int32)(unsafe.Pointer(bp + 496 /* iIdxCur */)) + j4), uniqOk, r1,
int32((*Index)(unsafe.Pointer(pIdx5)).FnKeyCol))
- Xsqlite3VdbeLoadString(tls, v, 3, ts+15424 /* "non-unique entry..." */)
+ Xsqlite3VdbeLoadString(tls, v, 3, ts+15813 /* "non-unique entry..." */)
Xsqlite3VdbeGoto(tls, v, jmp5)
Xsqlite3VdbeResolveLabel(tls, v, uniqOk)
-__276:
+__277:
;
Xsqlite3VdbeJumpHere(tls, v, jmp4)
- Xsqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 492 /* jmp3 */)))
- goto __273
-__273:
- pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
- j4++
- goto __272
+ Xsqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 500 /* jmp3 */)))
goto __274
__274:
+ pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
+ j4++
+ goto __273
+ goto __275
+__275:
;
-__271:
+__272:
;
- Xsqlite3VdbeAddOp2(tls, v, 5, *(*int32)(unsafe.Pointer(bp + 484 /* iDataCur */)), loopTop)
+ Xsqlite3VdbeAddOp2(tls, v, 5, *(*int32)(unsafe.Pointer(bp + 492 /* iDataCur */)), loopTop)
Xsqlite3VdbeJumpHere(tls, v, (loopTop - 1))
if !(!(isQuick != 0)) {
- goto __281
+ goto __282
}
- Xsqlite3VdbeLoadString(tls, v, 2, ts+15451 /* "wrong # of entri..." */)
+ Xsqlite3VdbeLoadString(tls, v, 2, ts+15840 /* "wrong # of entri..." */)
j4 = 0
pIdx5 = (*Table)(unsafe.Pointer(pTab7)).FpIndex
-__282:
+__283:
if !(pIdx5 != 0) {
- goto __284
+ goto __285
}
if !(pPk1 == pIdx5) {
- goto __285
+ goto __286
}
- goto __283
-__285:
+ goto __284
+__286:
;
- Xsqlite3VdbeAddOp2(tls, v, 92, (*(*int32)(unsafe.Pointer(bp + 488 /* iIdxCur */)) + j4), 3)
+ Xsqlite3VdbeAddOp2(tls, v, 92, (*(*int32)(unsafe.Pointer(bp + 496 /* iIdxCur */)) + j4), 3)
addr1 = Xsqlite3VdbeAddOp3(tls, v, 53, (8 + j4), 0, 3)
Xsqlite3VdbeChangeP5(tls, v, uint16(0x90))
Xsqlite3VdbeLoadString(tls, v, 4, (*Index)(unsafe.Pointer(pIdx5)).FzName)
Xsqlite3VdbeAddOp3(tls, v, 110, 4, 2, 3)
integrityCheckResultRow(tls, v)
Xsqlite3VdbeJumpHere(tls, v, addr1)
- goto __283
-__283:
- pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
- j4++
- goto __282
goto __284
__284:
+ pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
+ j4++
+ goto __283
+ goto __285
+__285:
;
-__281:
+__282:
;
- goto __253
-__253:
- x1 = (*HashElem)(unsafe.Pointer(x1)).Fnext
- goto __252
goto __254
__254:
+ x1 = (*HashElem)(unsafe.Pointer(x1)).Fnext
+ goto __253
+ goto __255
+__255:
;
- goto __232
-__232:
- i9++
- goto __231
goto __233
__233:
+ i9++
+ goto __232
+ goto __234
+__234:
;
aOp2 = Xsqlite3VdbeAddOpList(tls, v, (int32(uint64(unsafe.Sizeof(endCode)) / uint64(unsafe.Sizeof(VdbeOpList{})))), uintptr(unsafe.Pointer(&endCode)), iLn5)
if !(aOp2 != 0) {
- goto __286
+ goto __287
}
- (*VdbeOp)(unsafe.Pointer(aOp2 + uintptr(0)*24)).Fp2 = (1 - *(*int32)(unsafe.Pointer(bp + 480 /* mxErr */)))
+ (*VdbeOp)(unsafe.Pointer(aOp2 + uintptr(0)*24)).Fp2 = (1 - *(*int32)(unsafe.Pointer(bp + 488 /* mxErr */)))
(*VdbeOp)(unsafe.Pointer(aOp2 + uintptr(2)*24)).Fp4type = int8(-1)
- *(*uintptr)(unsafe.Pointer(aOp2 + uintptr(2)*24 + 16 /* &.p4 */)) = ts + 2796 /* "ok" */
+ *(*uintptr)(unsafe.Pointer(aOp2 + uintptr(2)*24 + 16 /* &.p4 */)) = ts + 2845 /* "ok" */
(*VdbeOp)(unsafe.Pointer(aOp2 + uintptr(5)*24)).Fp4type = int8(-1)
*(*uintptr)(unsafe.Pointer(aOp2 + uintptr(5)*24 + 16 /* &.p4 */)) = Xsqlite3ErrStr(tls, 11)
-__286:
+__287:
;
Xsqlite3VdbeChangeP3(tls, v, 0, (Xsqlite3VdbeCurrentAddr(tls, v) - 2))
goto __15
+ // PRAGMA encoding
+ // PRAGMA encoding = "utf-8"|"utf-16"|"utf-16le"|"utf-16be"
+ //
+ // In its first form, this pragma returns the encoding of the main
+ // database. If the database is not initialized, it is initialized now.
+ //
+ // The second form of this pragma is a no-op if the main database file
+ // has not already been initialized. In this case it sets the default
+ // encoding that will be used for the main database file if a new file
+ // is created. If an existing main database file is opened, then the
+ // default text encoding for the existing database is used.
+ //
+ // In all cases new databases created using the ATTACH command are
+ // created to use the same default text encoding as the main database. If
+ // the main database has not been initialized and/or created when ATTACH
+ // is executed, this is done before the ATTACH operation.
+ //
+ // In the second form this pragma sets the text encoding to be used in
+ // new database files created using this database handle. It is only
+ // useful if invoked immediately after the main database i
+__44:
+ if !(!(zRight != 0)) {
+ goto __288
+ } // "PRAGMA encoding"
+ if !(Xsqlite3ReadSchema(tls, pParse) != 0) {
+ goto __290
+ }
+ goto pragma_out
+__290:
+ ;
+
+ returnSingleText(tls, v, encnames1[(*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fenc].FzName)
+ goto __289
+__288: // "PRAGMA encoding = XXX"
+ // Only change the value of sqlite.enc if the database handle is not
+ // initialized. If the main database exists, the new sqlite.enc value
+ // will be overwritten when the schema is next loaded. If it does not
+ // already exists, it will be created to use the new encoding value.
+ if !(((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags & U32(0x0040)) == U32(0)) {
+ goto __291
+ }
+ pEnc = (uintptr(unsafe.Pointer(&encnames1)) + uintptr(0)*16)
+__292:
+ if !((*EncName)(unsafe.Pointer(pEnc)).FzName != 0) {
+ goto __294
+ }
+ if !(0 == Xsqlite3StrICmp(tls, zRight, (*EncName)(unsafe.Pointer(pEnc)).FzName)) {
+ goto __295
+ }
+ if (*EncName)(unsafe.Pointer(pEnc)).Fenc != 0 {
+ enc = (*EncName)(unsafe.Pointer(pEnc)).Fenc
+ } else {
+ enc = uint8(2)
+ }
+ ((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((db))).FaDb + uintptr(0)*32)).FpSchema)).Fenc) = enc
+ Xsqlite3SetTextEncoding(tls, db, enc)
+ goto __294
+__295:
+ ;
+ goto __293
+__293:
+ pEnc += 16
+ goto __292
+ goto __294
+__294:
+ ;
+ if !(!(int32((*EncName)(unsafe.Pointer(pEnc)).FzName) != 0)) {
+ goto __296
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+15869 /* "unsupported enco..." */, crt.VaList(bp+336, zRight))
+__296:
+ ;
+__291:
+ ;
+__289:
+ ;
+ goto __15
+
// PRAGMA [schema.]schema_version
// PRAGMA [schema.]schema_version = <integer>
//
@@ -100295,39 +101957,39 @@ __286:
//
// The user-version is not used internally by SQLite. It may be used by
// applications for any purpose.
-__44:
+__45:
iCookie = int32((*PragmaName)(unsafe.Pointer(pPragma)).FiArg) // Which cookie to read or write
Xsqlite3VdbeUsesBtree(tls, v, iDb)
if !((zRight != 0) && ((int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg) & 0x08) == 0)) {
- goto __287
+ goto __297
}
aOp3 = Xsqlite3VdbeAddOpList(tls, v, (int32(uint64(unsafe.Sizeof(setCookie)) / uint64(unsafe.Sizeof(VdbeOpList{})))), uintptr(unsafe.Pointer(&setCookie)), 0)
if !(0 != 0) {
- goto __289
+ goto __299
}
goto __15
-__289:
+__299:
;
(*VdbeOp)(unsafe.Pointer(aOp3 + uintptr(0)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp3 + uintptr(1)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp3 + uintptr(1)*24)).Fp2 = iCookie
(*VdbeOp)(unsafe.Pointer(aOp3 + uintptr(1)*24)).Fp3 = Xsqlite3Atoi(tls, zRight)
- goto __288
-__287:
+ goto __298
+__297:
;
aOp4 = Xsqlite3VdbeAddOpList(tls, v, (int32(uint64(unsafe.Sizeof(readCookie)) / uint64(unsafe.Sizeof(VdbeOpList{})))), uintptr(unsafe.Pointer(&readCookie)), 0)
if !(0 != 0) {
- goto __290
+ goto __300
}
goto __15
-__290:
+__300:
;
(*VdbeOp)(unsafe.Pointer(aOp4 + uintptr(0)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp4 + uintptr(1)*24)).Fp1 = iDb
(*VdbeOp)(unsafe.Pointer(aOp4 + uintptr(1)*24)).Fp3 = iCookie
Xsqlite3VdbeReusable(tls, v)
-__288:
+__298:
;
goto __15
@@ -100335,17 +101997,17 @@ __288:
//
// Return the names of all compile-time options used in this build,
// one option per row.
-__45:
+__46:
i10 = 0
(*Parse)(unsafe.Pointer(pParse)).FnMem = 1
-__291:
+__301:
if !((crt.AssignUintptr(&zOpt, Xsqlite3_compileoption_get(tls, crt.PostIncInt32(&i10, 1)))) != uintptr(0)) {
- goto __292
+ goto __302
}
Xsqlite3VdbeLoadString(tls, v, 1, zOpt)
Xsqlite3VdbeAddOp2(tls, v, 80, 1, 1)
- goto __291
-__292:
+ goto __301
+__302:
;
Xsqlite3VdbeReusable(tls, v)
goto __15
@@ -100353,7 +102015,7 @@ __292:
// PRAGMA [schema.]wal_checkpoint = passive|full|restart|truncate
//
// Checkpoint the database.
-__46:
+__47:
iBt = func() int32 {
if (*Token)(unsafe.Pointer(pId2)).Fz != 0 {
return iDb
@@ -100362,31 +102024,31 @@ __46:
}()
eMode2 = 0
if !(zRight != 0) {
- goto __293
+ goto __303
}
- if !(Xsqlite3StrICmp(tls, zRight, ts+14982 /* "full" */) == 0) {
- goto __294
+ if !(Xsqlite3StrICmp(tls, zRight, ts+15371 /* "full" */) == 0) {
+ goto __304
}
eMode2 = 1
- goto __295
-__294:
- if !(Xsqlite3StrICmp(tls, zRight, ts+15480 /* "restart" */) == 0) {
- goto __296
+ goto __305
+__304:
+ if !(Xsqlite3StrICmp(tls, zRight, ts+15894 /* "restart" */) == 0) {
+ goto __306
}
eMode2 = 2
- goto __297
-__296:
- if !(Xsqlite3StrICmp(tls, zRight, ts+15135 /* "truncate" */) == 0) {
- goto __298
+ goto __307
+__306:
+ if !(Xsqlite3StrICmp(tls, zRight, ts+15524 /* "truncate" */) == 0) {
+ goto __308
}
eMode2 = 3
-__298:
+__308:
;
-__297:
+__307:
;
-__295:
+__305:
;
-__293:
+__303:
;
(*Parse)(unsafe.Pointer(pParse)).FnMem = 3
Xsqlite3VdbeAddOp3(tls, v, 6, iBt, eMode2, 1)
@@ -100399,12 +102061,12 @@ __293:
// Configure a database connection to automatically checkpoint a database
// after accumulating N frames in the log. Or query for the current value
// of N.
-__47:
+__48:
if !(zRight != 0) {
- goto __299
+ goto __309
}
Xsqlite3_wal_autocheckpoint(tls, db, Xsqlite3Atoi(tls, zRight))
-__299:
+__309:
;
returnSingleInt(tls, v,
func() int64 {
@@ -100422,7 +102084,7 @@ __299:
// IMPLEMENTATION-OF: R-23445-46109 This pragma causes the database
// connection on which it is invoked to free up as much memory as it
// can, by calling sqlite3_db_release_memory().
-__48:
+__49:
Xsqlite3_db_release_memory(tls, db)
goto __15
@@ -100478,22 +102140,22 @@ __48:
//
// The rules for when tables are analyzed are likely to change in
// future releases.
-__49: // Mask of operations to perform
+__50: // Mask of operations to perform
if !(zRight != 0) {
- goto __300
+ goto __310
}
opMask = U32(Xsqlite3Atoi(tls, zRight))
if !((opMask & U32(0x02)) == U32(0)) {
- goto __302
+ goto __312
}
goto __15
-__302:
+__312:
;
- goto __301
-__300:
+ goto __311
+__310:
opMask = U32(0xfffe)
-__301:
+__311:
;
iTabCur = crt.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
iDbLast = func() int32 {
@@ -100502,22 +102164,22 @@ __301:
}
return ((*Sqlite3)(unsafe.Pointer(db)).FnDb - 1)
}()
-__303:
+__313:
if !(iDb <= iDbLast) {
- goto __305
+ goto __315
}
if !(iDb == 1) {
- goto __306
+ goto __316
}
- goto __304
-__306:
+ goto __314
+__316:
;
Xsqlite3CodeVerifySchema(tls, pParse, iDb)
pSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
k3 = (*Hash)(unsafe.Pointer((pSchema + 8 /* &.tblHash */))).Ffirst
-__307:
+__317:
if !(k3 != 0) {
- goto __309
+ goto __319
}
pTab8 = (*HashElem)(unsafe.Pointer(k3)).Fdata
@@ -100525,67 +102187,67 @@ __307:
// having analysis statistics during the current session, then skip it.
// This also has the effect of skipping virtual tables and views
if !(((*Table)(unsafe.Pointer(pTab8)).FtabFlags & U32(0x0100)) == U32(0)) {
- goto __310
+ goto __320
}
- goto __308
-__310:
+ goto __318
+__320:
;
// Reanalyze if the table is 25 times larger than the last analysis
szThreshold = (LogEst(int32((*Table)(unsafe.Pointer(pTab8)).FnRowLogEst) + 46))
pIdx6 = (*Table)(unsafe.Pointer(pTab8)).FpIndex
-__311:
+__321:
if !(pIdx6 != 0) {
- goto __313
+ goto __323
}
if !(!(int32(*(*uint16)(unsafe.Pointer(pIdx6 + 100 /* &.hasStat1 */))&0x80>>7) != 0)) {
- goto __314
+ goto __324
}
szThreshold = int16(0) // Always analyze if any index lacks statistics
- goto __313
-__314:
+ goto __323
+__324:
;
- goto __312
-__312:
+ goto __322
+__322:
pIdx6 = (*Index)(unsafe.Pointer(pIdx6)).FpNext
- goto __311
- goto __313
-__313:
+ goto __321
+ goto __323
+__323:
;
if !(szThreshold != 0) {
- goto __315
+ goto __325
}
Xsqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab8, 96)
Xsqlite3VdbeAddOp3(tls, v, 34, iTabCur,
(int32((U32(Xsqlite3VdbeCurrentAddr(tls, v) + 2)) + (opMask & U32(1)))), int32(szThreshold))
-__315:
+__325:
;
- zSubSql = Xsqlite3MPrintf(tls, db, ts+15488, /* "ANALYZE \"%w\".\"%w..." */
- crt.VaList(bp+336, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, (*Table)(unsafe.Pointer(pTab8)).FzName))
+ zSubSql = Xsqlite3MPrintf(tls, db, ts+15902, /* "ANALYZE \"%w\".\"%w..." */
+ crt.VaList(bp+344, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, (*Table)(unsafe.Pointer(pTab8)).FzName))
if !((opMask & U32(0x01)) != 0) {
- goto __316
+ goto __326
}
r11 = Xsqlite3GetTempReg(tls, pParse)
Xsqlite3VdbeAddOp4(tls, v, 115, 0, r11, 0, zSubSql, -7)
Xsqlite3VdbeAddOp2(tls, v, 80, r11, 1)
- goto __317
-__316:
+ goto __327
+__326:
Xsqlite3VdbeAddOp4(tls, v, 140, 0, 0, 0, zSubSql, -7)
-__317:
+__327:
;
- goto __308
-__308:
+ goto __318
+__318:
k3 = (*HashElem)(unsafe.Pointer(k3)).Fnext
- goto __307
- goto __309
-__309:
+ goto __317
+ goto __319
+__319:
;
- goto __304
-__304:
+ goto __314
+__314:
iDb++
- goto __303
- goto __305
-__305:
+ goto __313
+ goto __315
+__315:
;
Xsqlite3VdbeAddOp0(tls, v, 158)
goto __15
@@ -100598,13 +102260,13 @@ __305:
// then 0 is returned. Setting the busy_timeout to 0 or negative
// disables the timeout.
/*case PragTyp_BUSY_TIMEOUT*/
-__50:
+__51:
;
if !(zRight != 0) {
- goto __318
+ goto __328
}
Xsqlite3_busy_timeout(tls, db, Xsqlite3Atoi(tls, zRight))
-__318:
+__328:
;
returnSingleInt(tls, v, int64((*Sqlite3)(unsafe.Pointer(db)).FbusyTimeout))
goto __15
@@ -100618,12 +102280,12 @@ __318:
// IMPLEMENTATION-OF: R-64451-07163 The soft_heap_limit pragma always
// returns the same integer that would be returned by the
// sqlite3_soft_heap_limit64(-1) C-language function.
-__51:
- if !((zRight != 0) && (Xsqlite3DecOrHexToI64(tls, zRight, bp+496 /* &N */) == 0)) {
- goto __319
+__52:
+ if !((zRight != 0) && (Xsqlite3DecOrHexToI64(tls, zRight, bp+504 /* &N */) == 0)) {
+ goto __329
}
- Xsqlite3_soft_heap_limit64(tls, *(*Sqlite3_int64)(unsafe.Pointer(bp + 496 /* N */)))
-__319:
+ Xsqlite3_soft_heap_limit64(tls, *(*Sqlite3_int64)(unsafe.Pointer(bp + 504 /* N */)))
+__329:
;
returnSingleInt(tls, v, Xsqlite3_soft_heap_limit64(tls, int64(-1)))
goto __15
@@ -100637,18 +102299,18 @@ __319:
// sqlite3_hard_heap_limit64() C-language API can raise or deactivate
// the hard heap limit. This allows an application to set a heap limit
// constraint that cannot be relaxed by an untrusted SQL script.
-__52:
- if !((zRight != 0) && (Xsqlite3DecOrHexToI64(tls, zRight, bp+504 /* &N1 */) == 0)) {
- goto __320
+__53:
+ if !((zRight != 0) && (Xsqlite3DecOrHexToI64(tls, zRight, bp+512 /* &N1 */) == 0)) {
+ goto __330
}
iPrior = Xsqlite3_hard_heap_limit64(tls, int64(-1))
- if !((*(*Sqlite3_int64)(unsafe.Pointer(bp + 504 /* N1 */)) > int64(0)) && ((iPrior == int64(0)) || (iPrior > *(*Sqlite3_int64)(unsafe.Pointer(bp + 504 /* N1 */))))) {
- goto __321
+ if !((*(*Sqlite3_int64)(unsafe.Pointer(bp + 512 /* N1 */)) > int64(0)) && ((iPrior == int64(0)) || (iPrior > *(*Sqlite3_int64)(unsafe.Pointer(bp + 512 /* N1 */))))) {
+ goto __331
}
- Xsqlite3_hard_heap_limit64(tls, *(*Sqlite3_int64)(unsafe.Pointer(bp + 504 /* N1 */)))
-__321:
+ Xsqlite3_hard_heap_limit64(tls, *(*Sqlite3_int64)(unsafe.Pointer(bp + 512 /* N1 */)))
+__331:
;
-__320:
+__330:
;
returnSingleInt(tls, v, Xsqlite3_hard_heap_limit64(tls, int64(-1)))
goto __15
@@ -100658,14 +102320,14 @@ __320:
//
// Configure the maximum number of worker threads. Return the new
// maximum, which might be less than requested.
-__53:
+__54:
if !(((zRight != 0) &&
- (Xsqlite3DecOrHexToI64(tls, zRight, bp+512 /* &N2 */) == 0)) &&
- (*(*Sqlite3_int64)(unsafe.Pointer(bp + 512 /* N2 */)) >= int64(0))) {
- goto __322
+ (Xsqlite3DecOrHexToI64(tls, zRight, bp+520 /* &N2 */) == 0)) &&
+ (*(*Sqlite3_int64)(unsafe.Pointer(bp + 520 /* N2 */)) >= int64(0))) {
+ goto __332
}
- Xsqlite3_limit(tls, db, 11, (int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 512 /* N2 */)) & int64(0x7fffffff))))
-__322:
+ Xsqlite3_limit(tls, db, 11, (int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 520 /* N2 */)) & int64(0x7fffffff))))
+__332:
;
returnSingleInt(tls, v, int64(Xsqlite3_limit(tls, db, 11, -1)))
goto __15
@@ -100675,61 +102337,61 @@ __322:
//
// Configure the maximum number of rows that ANALYZE will examine
// in each index that it looks at. Return the new limit.
-__54:
+__55:
if !(((zRight != 0) &&
- (Xsqlite3DecOrHexToI64(tls, zRight, bp+520 /* &N3 */) == 0)) &&
- (*(*Sqlite3_int64)(unsafe.Pointer(bp + 520 /* N3 */)) >= int64(0))) {
- goto __323
+ (Xsqlite3DecOrHexToI64(tls, zRight, bp+528 /* &N3 */) == 0)) &&
+ (*(*Sqlite3_int64)(unsafe.Pointer(bp + 528 /* N3 */)) >= int64(0))) {
+ goto __333
}
- (*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 520 /* N3 */)) & int64(0x7fffffff)))
-__323:
+ (*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 528 /* N3 */)) & int64(0x7fffffff)))
+__333:
;
returnSingleInt(tls, v, int64((*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit))
goto __15
// Report the current state of file logs for all databases
-__55:
+__56:
(*Parse)(unsafe.Pointer(pParse)).FnMem = 2
i11 = 0
-__324:
+__334:
if !(i11 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
- goto __326
+ goto __336
}
- zState = ts + 15506 /* "unknown" */
+ zState = ts + 15920 /* "unknown" */
if !((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i11)*32)).FzDbSName == uintptr(0)) {
- goto __327
+ goto __337
}
- goto __325
-__327:
+ goto __335
+__337:
;
pBt3 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i11)*32)).FpBt
if !((pBt3 == uintptr(0)) || (Xsqlite3BtreePager(tls, pBt3) == uintptr(0))) {
- goto __328
+ goto __338
}
- zState = ts + 15514 /* "closed" */
- goto __329
-__328:
+ zState = ts + 15928 /* "closed" */
+ goto __339
+__338:
if !(Xsqlite3_file_control(tls, db, func() uintptr {
if i11 != 0 {
return (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i11)*32)).FzDbSName
}
return uintptr(0)
}(),
- 1, bp+528 /* &j5 */) == 0) {
- goto __330
+ 1, bp+536 /* &j5 */) == 0) {
+ goto __340
}
- zState = azLockName[*(*int32)(unsafe.Pointer(bp + 528 /* j5 */))]
-__330:
+ zState = azLockName[*(*int32)(unsafe.Pointer(bp + 536 /* j5 */))]
+__340:
;
-__329:
+__339:
;
- Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15521 /* "ss" */, crt.VaList(bp+352, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i11)*32)).FzDbSName, zState))
- goto __325
-__325:
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+15935 /* "ss" */, crt.VaList(bp+360, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i11)*32)).FzDbSName, zState))
+ goto __335
+__335:
i11++
- goto __324
- goto __326
-__326:
+ goto __334
+ goto __336
+__336:
;
goto __15
__15:
@@ -100741,9 +102403,9 @@ __15:
// to the PRAGMA, the implementation has not added any OP_ResultRow
// instructions to the VM.
if !(((int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg) & 0x04) != 0) && (zRight != 0)) {
- goto __331
+ goto __341
}
-__331:
+__341:
;
pragma_out:
@@ -100751,6 +102413,12 @@ pragma_out:
Xsqlite3DbFree(tls, db, zRight)
}
+type EncName = struct {
+ FzName uintptr
+ Fenc U8
+ _ [7]byte
+}
+
var iLn3 int32 = 0 /* sqlite3.c:125948:22 */
var getCacheSize = [9]VdbeOpList{
{Fopcode: U8(2), Fp1: int8(0), Fp2: int8(0), Fp3: int8(0)}, // 0
@@ -100781,6 +102449,17 @@ var endCode = [7]VdbeOpList{
{Fopcode: U8(115), Fp1: int8(0), Fp2: int8(3), Fp3: int8(0)}, // 5
{Fopcode: U8(11), Fp1: int8(0), Fp2: int8(3), Fp3: int8(0)}, // 6
} /* sqlite3.c:127194:31 */
+var encnames1 = [9]EncName{
+ {FzName: ts + 15938 /* "UTF8" */, Fenc: U8(1)},
+ {FzName: ts + 15943 /* "UTF-8" */, Fenc: U8(1)}, // Must be element [1]
+ {FzName: ts + 15949 /* "UTF-16le" */, Fenc: U8(2)}, // Must be element [2]
+ {FzName: ts + 15958 /* "UTF-16be" */, Fenc: U8(3)}, // Must be element [3]
+ {FzName: ts + 15967 /* "UTF16le" */, Fenc: U8(2)},
+ {FzName: ts + 15975 /* "UTF16be" */, Fenc: U8(3)},
+ {FzName: ts + 15983 /* "UTF-16" */, Fenc: U8(0)}, // SQLITE_UTF16NATIVE
+ {FzName: ts + 15990 /* "UTF16" */, Fenc: U8(0)}, // SQLITE_UTF16NATIVE
+ {FzName: uintptr(0), Fenc: U8(0)},
+} /* sqlite3.c:127246:7 */
var setCookie = [2]VdbeOpList{
{Fopcode: U8(2), Fp1: int8(0), Fp2: int8(1), Fp3: int8(0)}, // 0
{Fopcode: U8(94), Fp1: int8(0), Fp2: int8(0), Fp3: int8(0)}, // 1
@@ -100791,7 +102470,7 @@ var readCookie = [3]VdbeOpList{
{Fopcode: U8(80), Fp1: int8(1), Fp2: int8(1), Fp3: int8(0)},
} /* sqlite3.c:127340:31 */
var azLockName = [5]uintptr{
- ts + 15524 /* "unlocked" */, ts + 15533 /* "shared" */, ts + 15540 /* "reserved" */, ts + 15549 /* "pending" */, ts + 14960, /* "exclusive" */
+ ts + 15996 /* "unlocked" */, ts + 16005 /* "shared" */, ts + 16012 /* "reserved" */, ts + 16021 /* "pending" */, ts + 15349, /* "exclusive" */
} /* sqlite3.c:127648:23 */
// ****************************************************************************
//
@@ -100838,7 +102517,7 @@ func pragmaVtabConnect(tls *crt.TLS, db uintptr, pAux uintptr, argc int32, argv
_ = argc
_ = argv
Xsqlite3StrAccumInit(tls, bp+32 /* &acc */, uintptr(0), bp+64 /* &zBuf[0] */, int32(unsafe.Sizeof([200]int8{})), 0)
- Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+15557 /* "CREATE TABLE x" */)
+ Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+16029 /* "CREATE TABLE x" */)
i = 0
j = int32((*PragmaName)(unsafe.Pointer(pPragma)).FiPragCName)
__1:
@@ -100846,7 +102525,7 @@ __1:
goto __3
}
{
- Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+15572 /* "%c\"%s\"" */, crt.VaList(bp, int32(cSep), pragCName[j]))
+ Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+16044 /* "%c\"%s\"" */, crt.VaList(bp, int32(cSep), pragCName[j]))
cSep = int8(',')
}
goto __2
@@ -100858,19 +102537,19 @@ __2:
__3:
;
if i == 0 {
- Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+15579 /* "(\"%s\"" */, crt.VaList(bp+16, (*PragmaName)(unsafe.Pointer(pPragma)).FzName))
+ Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+16051 /* "(\"%s\"" */, crt.VaList(bp+16, (*PragmaName)(unsafe.Pointer(pPragma)).FzName))
i++
}
j = 0
if (int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg) & 0x20) != 0 {
- Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+15585 /* ",arg HIDDEN" */)
+ Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+16057 /* ",arg HIDDEN" */)
j++
}
if (int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg) & (0x40 | 0x80)) != 0 {
- Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+15597 /* ",schema HIDDEN" */)
+ Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+16069 /* ",schema HIDDEN" */)
j++
}
- Xsqlite3_str_append(tls, bp+32 /* &acc */, ts+4348 /* ")" */, 1)
+ Xsqlite3_str_append(tls, bp+32 /* &acc */, ts+4456 /* ")" */, 1)
Xsqlite3StrAccumFinish(tls, bp+32 /* &acc */)
rc = Xsqlite3_declare_vtab(tls, db, bp+64 /* &zBuf[0] */)
@@ -100886,7 +102565,7 @@ __3:
(*PragmaVtab)(unsafe.Pointer(pTab)).FnHidden = U8(j)
}
} else {
- *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp+24, Xsqlite3_errmsg(tls, db)))
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp+24, Xsqlite3_errmsg(tls, db)))
}
*(*uintptr)(unsafe.Pointer(ppVtab)) = pTab
@@ -101048,7 +102727,7 @@ __1:
var zText uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
if zText != 0 {
- *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(j)*8)) = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp, zText))
+ *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(j)*8)) = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp, zText))
if *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(j)*8)) == uintptr(0) {
return 7
}
@@ -101063,13 +102742,13 @@ __2:
__3:
;
Xsqlite3StrAccumInit(tls, bp+32 /* &acc */, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer(((*PragmaVtab)(unsafe.Pointer(pTab)).Fdb + 124 /* &.aLimit */) + uintptr(1)*4)))
- Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+15612 /* "PRAGMA " */)
+ Xsqlite3_str_appendall(tls, bp+32 /* &acc */, ts+16084 /* "PRAGMA " */)
if *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(1)*8)) != 0 {
- Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+15620 /* "%Q." */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(1)*8))))
+ Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+16092 /* "%Q." */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(1)*8))))
}
Xsqlite3_str_appendall(tls, bp+32 /* &acc */, (*PragmaName)(unsafe.Pointer((*PragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName)
if *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(0)*8)) != 0 {
- Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+15624 /* "=%Q" */, crt.VaList(bp+16, *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(0)*8))))
+ Xsqlite3_str_appendf(tls, bp+32 /* &acc */, ts+16096 /* "=%Q" */, crt.VaList(bp+16, *(*uintptr)(unsafe.Pointer((pCsr + 24 /* &.azArg */) + uintptr(0)*8))))
}
zSql = Xsqlite3StrAccumFinish(tls, bp+32 /* &acc */)
if zSql == uintptr(0) {
@@ -101078,7 +102757,7 @@ __3:
rc = Xsqlite3_prepare_v2(tls, (*PragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -1, (pCsr + 8 /* &.pPragma */), uintptr(0))
Xsqlite3_free(tls, zSql)
if rc != 0 {
- (*PragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp+24, Xsqlite3_errmsg(tls, (*PragmaVtab)(unsafe.Pointer(pTab)).Fdb)))
+ (*PragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp+24, Xsqlite3_errmsg(tls, (*PragmaVtab)(unsafe.Pointer(pTab)).Fdb)))
return rc
}
return pragmaVtabNext(tls, pVtabCursor)
@@ -101189,11 +102868,11 @@ func corruptSchema(tls *crt.TLS, pData uintptr, zObj uintptr, zExtra uintptr) {
} else {
var z uintptr
if zObj == uintptr(0) {
- zObj = ts + 4399 /* "?" */
+ zObj = ts + 4507 /* "?" */
}
- z = Xsqlite3MPrintf(tls, db, ts+15628 /* "malformed databa..." */, crt.VaList(bp, zObj))
+ z = Xsqlite3MPrintf(tls, db, ts+16100 /* "malformed databa..." */, crt.VaList(bp, zObj))
if (zExtra != 0) && (*(*int8)(unsafe.Pointer(zExtra + uintptr(0))) != 0) {
- z = Xsqlite3MPrintf(tls, db, ts+15659 /* "%z - %s" */, crt.VaList(bp+8, z, zExtra))
+ z = Xsqlite3MPrintf(tls, db, ts+16131 /* "%z - %s" */, crt.VaList(bp+8, z, zExtra))
}
*(*uintptr)(unsafe.Pointer((*InitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z
(*InitData)(unsafe.Pointer(pData)).Frc = Xsqlite3CorruptError(tls, 128052)
@@ -101248,7 +102927,7 @@ func Xsqlite3InitCallback(tls *crt.TLS, pInit uintptr, argc int32, argv uintptr,
} // Might happen if EMPTY_RESULT_CALLBACKS are on
if *(*uintptr)(unsafe.Pointer(argv + uintptr(3)*8)) == uintptr(0) {
corruptSchema(tls, pData, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)), uintptr(0))
- } else if Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(4)*8)), ts+15667 /* "create " */, 7) == 0 {
+ } else if Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(4)*8)), ts+16139 /* "create " */, 7) == 0 {
// Call the parser to process a CREATE TABLE, INDEX or VIEW.
// But because db->init.busy is set to 1, no VDBE code is generated
// or executed. All the parser does is build the internal data
@@ -101299,9 +102978,9 @@ func Xsqlite3InitCallback(tls *crt.TLS, pInit uintptr, argc int32, argv uintptr,
(Xsqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0) {
corruptSchema(tls, pData, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)), func() uintptr {
if pIndex != 0 {
- return ts + 12060 /* "invalid rootpage" */
+ return ts + 12440 /* "invalid rootpage" */
}
- return ts + 15675 /* "orphan index" */
+ return ts + 16147 /* "orphan index" */
}())
}
}
@@ -101344,16 +103023,16 @@ func Xsqlite3InitOne(tls *crt.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFla
// table name will be inserted automatically by the parser so we can just
// use the abbreviation "x" here. The parser will also automatically tag
// the schema table as read-only.
- *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(0)*8)) = ts + 7699 /* "table" */
+ *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(0)*8)) = ts + 6019 /* "table" */
*(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(1)*8)) = crt.AssignUintptr(&zMasterName, func() uintptr {
if (!(0 != 0)) && (iDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}())
*(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(2)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(1)*8))
- *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(3)*8)) = ts + 7125 /* "1" */
- *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(4)*8)) = ts + 15688 /* "CREATE TABLE x(t..." */
+ *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(3)*8)) = ts + 7523 /* "1" */
+ *(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(4)*8)) = ts + 16160 /* "CREATE TABLE x(t..." */
*(*uintptr)(unsafe.Pointer(bp + 16 /* &azArg[0] */ + uintptr(5)*8)) = uintptr(0)
(*InitData)(unsafe.Pointer(bp + 64 /* &initData */)).Fdb = db
(*InitData)(unsafe.Pointer(bp + 64 /* &initData */)).FiDb = iDb
@@ -101449,19 +103128,26 @@ __8:
if !((iDb == 0) && (((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags & U32(0x0040)) == U32(0))) {
goto __10
}
+ // If opening the main database, set ENC(db).
+ encoding = (U8(int32(U8(*(*int32)(unsafe.Pointer(bp + 96 /* &meta[0] */ + uintptr((5-1))*4)))) & 3))
+ if !(int32(encoding) == 0) {
+ goto __12
+ }
encoding = U8(1)
+__12:
+ ;
Xsqlite3SetTextEncoding(tls, db, encoding)
goto __11
__10:
// If opening an attached database, the encoding much match ENC(db)
if !((*(*int32)(unsafe.Pointer(bp + 96 /* &meta[0] */ + uintptr((5-1))*4)) & 3) != (int32((*Sqlite3)(unsafe.Pointer(db)).Fenc))) {
- goto __12
+ goto __13
}
Xsqlite3SetString(tls, pzErrMsg, db,
- ts+9826 /* "attached databas..." */)
+ ts+10212 /* "attached databas..." */)
rc = 1
goto initone_error_out
-__12:
+__13:
;
__11:
;
@@ -101470,18 +103156,18 @@ __9:
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fenc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
if !((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size == 0) {
- goto __13
+ goto __14
}
size = Xsqlite3AbsInt32(tls, *(*int32)(unsafe.Pointer(bp + 96 /* &meta[0] */ + uintptr((3-1))*4)))
if !(size == 0) {
- goto __14
+ goto __15
}
size = -2000
-__14:
+__15:
;
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size = size
Xsqlite3BtreeSetCacheSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size)
-__13:
+__14:
;
// file_format==1 Version 3.0.0.
@@ -101490,18 +103176,18 @@ __13:
// file_format==4 Version 3.3.0. // DESC indices. Boolean constants
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = U8(*(*int32)(unsafe.Pointer(bp + 96 /* &meta[0] */ + uintptr((2-1))*4)))
if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) == 0) {
- goto __15
+ goto __16
}
(*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = U8(1)
-__15:
+__16:
;
if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > 4) {
- goto __16
+ goto __17
}
- Xsqlite3SetString(tls, pzErrMsg, db, ts+15760 /* "unsupported file..." */)
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+16232 /* "unsupported file..." */)
rc = 1
goto initone_error_out
-__16:
+__17:
;
// Ticket #2804: When we open a database in the newer file format,
@@ -101509,16 +103195,16 @@ __16:
// not downgrade the database and thus invalidate any descending
// indices that the user might have created.
if !((iDb == 0) && (*(*int32)(unsafe.Pointer(bp + 96 /* &meta[0] */ + uintptr((2-1))*4)) >= 4)) {
- goto __17
+ goto __18
}
*(*U64)(unsafe.Pointer(db + 48 /* &.flags */)) &= (^uint64(crt.Uint64FromUint64(uint64(0x00000002))))
-__17:
+__18:
;
// Read the schema information out of the schema tables
zSql = Xsqlite3MPrintf(tls, db,
- ts+15784, /* "SELECT*FROM\"%w\"...." */
+ ts+16256, /* "SELECT*FROM\"%w\"...." */
crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, zMasterName))
xAuth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
@@ -101528,27 +103214,27 @@ __17:
}{Xsqlite3InitCallback})), bp+64 /* &initData */, uintptr(0))
(*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
if !(rc == 0) {
- goto __18
+ goto __19
}
rc = (*InitData)(unsafe.Pointer(bp + 64 /* &initData */)).Frc
-__18:
+__19:
;
Xsqlite3DbFree(tls, db, zSql)
if !(rc == 0) {
- goto __19
+ goto __20
}
Xsqlite3AnalysisLoad(tls, db, iDb)
-__19:
+__20:
;
if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
- goto __20
+ goto __21
}
rc = 7
Xsqlite3ResetAllSchemasOfConnection(tls, db)
-__20:
+__21:
;
if !((rc == 0) || (((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x08000000)) != 0)) {
- goto __21
+ goto __22
}
// Black magic: If the SQLITE_NoSchemaError flag is set, then consider
// the schema loaded, even if errors occurred. In this situation the
@@ -101559,7 +103245,7 @@ __20:
// even when its contents have been corrupted.
*(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((db))).FaDb+uintptr(iDb)*32)).FpSchema + 114 /* &.schemaFlags */)) |= U16((0x0001))
rc = 0
-__21:
+__22:
;
// Jump here for an error that occurs after successfully allocating
@@ -101567,25 +103253,25 @@ __21:
// before that point, jump to error_out.
initone_error_out:
if !(openedTransaction != 0) {
- goto __22
+ goto __23
}
Xsqlite3BtreeCommit(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
-__22:
+__23:
;
Xsqlite3BtreeLeave(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
error_out:
if !(rc != 0) {
- goto __23
+ goto __24
}
if !((rc == 7) || (rc == (10 | (int32(12) << 8)))) {
- goto __24
+ goto __25
}
Xsqlite3OomFault(tls, db)
-__24:
+__25:
;
Xsqlite3ResetOneSchema(tls, db, iDb)
-__23:
+__24:
;
(*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(0)
return rc
@@ -101833,7 +103519,7 @@ __3:
goto __7
}
zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FzDbSName
- Xsqlite3ErrorWithMsg(tls, db, rc, ts+15818 /* "database schema ..." */, crt.VaList(bp, zDb))
+ Xsqlite3ErrorWithMsg(tls, db, rc, ts+16290 /* "database schema ..." */, crt.VaList(bp, zDb))
goto end_prepare
__7:
@@ -101861,7 +103547,7 @@ __2:
if !(nBytes > mxLen) {
goto __10
}
- Xsqlite3ErrorWithMsg(tls, db, 18, ts+15848 /* "statement too lo..." */, 0)
+ Xsqlite3ErrorWithMsg(tls, db, 18, ts+16320 /* "statement too lo..." */, 0)
rc = Xsqlite3ApiExit(tls, db, 18)
goto end_prepare
__10:
@@ -101934,7 +103620,7 @@ __19:
if !(*(*uintptr)(unsafe.Pointer(bp + 440 /* zErrMsg */)) != 0) {
goto __21
}
- Xsqlite3ErrorWithMsg(tls, db, rc, ts+647 /* "%s" */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 440 /* zErrMsg */))))
+ Xsqlite3ErrorWithMsg(tls, db, rc, ts+696 /* "%s" */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 440 /* zErrMsg */))))
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 440 /* zErrMsg */)))
goto __22
__21:
@@ -102061,6 +103747,76 @@ func Xsqlite3_prepare_v3(tls *crt.TLS, db uintptr, zSql uintptr, nBytes int32, p
return rc
}
+// Compile the UTF-16 encoded SQL statement zSql into a statement handle.
+func sqlite3Prepare16(tls *crt.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags U32, ppStmt uintptr, pzTail uintptr) int32 { /* sqlite3.c:128854:12: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // This function currently works by first transforming the UTF-16
+ // encoded string to UTF-8, then invoking sqlite3_prepare(). The
+ // tricky bit is figuring out the pointer to return in *pzTail.
+ var zSql8 uintptr
+ *(*uintptr)(unsafe.Pointer(bp /* zTail8 */)) = uintptr(0)
+ var rc int32 = 0
+
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+ if !(Xsqlite3SafetyCheckOk(tls, db) != 0) || (zSql == uintptr(0)) {
+ return Xsqlite3MisuseError(tls, 128875)
+ }
+ if nBytes >= 0 {
+ var sz int32
+ var z uintptr = zSql
+ for sz = 0; (sz < nBytes) && ((int32(*(*int8)(unsafe.Pointer(z + uintptr(sz)))) != 0) || (int32(*(*int8)(unsafe.Pointer(z + uintptr((sz + 1))))) != 0)); sz = sz + (2) {
+ }
+ nBytes = sz
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ zSql8 = Xsqlite3Utf16to8(tls, db, zSql, nBytes, uint8(2))
+ if zSql8 != 0 {
+ rc = sqlite3LockAndPrepare(tls, db, zSql8, -1, prepFlags, uintptr(0), ppStmt, bp /* &zTail8 */)
+ }
+
+ if (*(*uintptr)(unsafe.Pointer(bp /* zTail8 */)) != 0) && (pzTail != 0) {
+ // If sqlite3_prepare returns a tail pointer, we calculate the
+ // equivalent pointer into the UTF-16 string by counting the unicode
+ // characters between zSql8 and zTail8, and then returning a pointer
+ // the same number of characters into the UTF-16 string.
+ var chars_parsed int32 = Xsqlite3Utf8CharLen(tls, zSql8, (int32((int64(*(*uintptr)(unsafe.Pointer(bp /* zTail8 */))) - int64(zSql8)) / 1)))
+ *(*uintptr)(unsafe.Pointer(pzTail)) = (zSql + uintptr(Xsqlite3Utf16ByteLen(tls, zSql, chars_parsed)))
+ }
+ Xsqlite3DbFree(tls, db, zSql8)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Two versions of the official API. Legacy and new use. In the legacy
+// version, the original SQL text is not saved in the prepared statement
+// and so if a schema change occurs, SQLITE_SCHEMA is returned by
+// sqlite3_step(). In the new version, the original SQL text is retained
+// and the statement is automatically recompiled if an schema change
+// occurs.
+func Xsqlite3_prepare16(tls *crt.TLS, db uintptr, zSql uintptr, nBytes int32, ppStmt uintptr, pzTail uintptr) int32 { /* sqlite3.c:128912:16: */
+ var rc int32
+ rc = sqlite3Prepare16(tls, db, zSql, nBytes, uint32(0), ppStmt, pzTail)
+ // VERIFY: F13021
+ return rc
+}
+func Xsqlite3_prepare16_v2(tls *crt.TLS, db uintptr, zSql uintptr, nBytes int32, ppStmt uintptr, pzTail uintptr) int32 { /* sqlite3.c:128924:16: */
+ var rc int32
+ rc = sqlite3Prepare16(tls, db, zSql, nBytes, uint32(0x80), ppStmt, pzTail)
+ // VERIFY: F13021
+ return rc
+}
+func Xsqlite3_prepare16_v3(tls *crt.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags uint32, ppStmt uintptr, pzTail uintptr) int32 { /* sqlite3.c:128936:16: */
+ var rc int32
+ rc = sqlite3Prepare16(tls, db, zSql, nBytes,
+ (uint32(0x80) | (prepFlags & uint32(0x0f))),
+ ppStmt, pzTail)
+ // VERIFY: F13021
+ return rc
+}
+
//************* End of prepare.c ********************************************
//************* Begin file select.c *****************************************
// 2001 September 15
@@ -102332,24 +104088,24 @@ func Xsqlite3JoinType(tls *crt.TLS, pParse uintptr, pA uintptr, pB uintptr, pC u
}
}
if ((jointype & (0x0001 | 0x0020)) == (0x0001 | 0x0020)) || ((jointype & 0x0040) != 0) {
- var zSp uintptr = ts + 12828 /* " " */
+ var zSp uintptr = ts + 13208 /* " " */
if pC == uintptr(0) {
zSp++
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+15867 /* "unknown or unsup..." */, crt.VaList(bp, pA, pB, zSp, pC))
+ ts+16339 /* "unknown or unsup..." */, crt.VaList(bp, pA, pB, zSp, pC))
jointype = 0x0001
} else if ((jointype & 0x0020) != 0) &&
((jointype & (0x0008 | 0x0010)) != 0x0008) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+15911 /* "RIGHT and FULL O..." */, 0)
+ ts+16383 /* "RIGHT and FULL O..." */, 0)
jointype = 0x0001
}
return jointype
}
-var zKeyText = *(*[34]int8)(unsafe.Pointer(ts + 15966 /* "naturaleftouteri..." */)) /* sqlite3.c:129193:21 */
+var zKeyText = *(*[34]int8)(unsafe.Pointer(ts + 16438 /* "naturaleftouteri..." */)) /* sqlite3.c:129193:21 */
var aKeyword = [7]struct {
Fi U8
FnChar U8
@@ -102535,7 +104291,7 @@ __1:
if (int32((*SrcList_item)(unsafe.Pointer(pRight)).Ffg.Fjointype) & 0x0004) != 0 {
if ((*SrcList_item)(unsafe.Pointer(pRight)).FpOn != 0) || ((*SrcList_item)(unsafe.Pointer(pRight)).FpUsing != 0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+16000 /* "a NATURAL join m..." */, crt.VaList(bp, 0))
+ ts+16472 /* "a NATURAL join m..." */, crt.VaList(bp, 0))
return 1
}
for j = 0; j < int32((*Table)(unsafe.Pointer(pRightTab)).FnCol); j++ {
@@ -102559,7 +104315,7 @@ __1:
// Disallow both ON and USING clauses in the same join
if ((*SrcList_item)(unsafe.Pointer(pRight)).FpOn != 0) && ((*SrcList_item)(unsafe.Pointer(pRight)).FpUsing != 0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+16050 /* "cannot have both..." */, 0)
+ ts+16522 /* "cannot have both..." */, 0)
return 1
}
@@ -102594,7 +104350,7 @@ __1:
if (iRightCol < 0) ||
!(tableAndColumnIndex(tls, pSrc, (i+1), zName, bp+24 /* &iLeft */, bp+28 /* &iLeftCol */, 0) != 0) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+16105 /* "cannot join usin..." */, crt.VaList(bp+8, zName))
+ ts+16577 /* "cannot join usin..." */, crt.VaList(bp+8, zName))
return 1
}
addWhereTerm(tls, pParse, pSrc, *(*int32)(unsafe.Pointer(bp + 24 /* iLeft */)), *(*int32)(unsafe.Pointer(bp + 28 /* iLeftCol */)), (i + 1), iRightCol,
@@ -103282,16 +105038,16 @@ func selectOpName(tls *crt.TLS, id int32) uintptr { /* sqlite3.c:130342:19: */
var z uintptr
switch id {
case 133:
- z = ts + 16169 /* "UNION ALL" */
+ z = ts + 16641 /* "UNION ALL" */
break
case 135:
- z = ts + 16179 /* "INTERSECT" */
+ z = ts + 16651 /* "INTERSECT" */
break
case 134:
- z = ts + 16189 /* "EXCEPT" */
+ z = ts + 16661 /* "EXCEPT" */
break
default:
- z = ts + 16196 /* "UNION" */
+ z = ts + 16668 /* "UNION" */
break
}
return z
@@ -103309,7 +105065,7 @@ func explainTempTable(tls *crt.TLS, pParse uintptr, zUsage uintptr) { /* sqlite3
bp := tls.Alloc(8)
defer tls.Free(8)
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+16202 /* "USE TEMP B-TREE ..." */, crt.VaList(bp, zUsage))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+16674 /* "USE TEMP B-TREE ..." */, crt.VaList(bp, zUsage))
}
// Assign expression b to lvalue a. A second, no-op, version of this macro
@@ -103559,7 +105315,7 @@ func columnTypeImpl(tls *crt.TLS, pNC uintptr, pExpr uintptr) uintptr { /* sqlit
// A real table or a CTE table
if iCol < 0 {
- zType = ts + 10627 /* "INTEGER" */
+ zType = ts + 11013 /* "INTEGER" */
} else {
zType = Xsqlite3ColumnType(tls, ((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*32), uintptr(0))
}
@@ -103688,13 +105444,13 @@ func generateColumnNames(tls *crt.TLS, pParse uintptr, pSelect uintptr) { /* sql
}
if iCol < 0 {
- zCol = ts + 13903 /* "rowid" */
+ zCol = ts + 14283 /* "rowid" */
} else {
zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*32)).FzName
}
if fullName != 0 {
var zName uintptr = uintptr(0)
- zName = Xsqlite3MPrintf(tls, db, ts+10112 /* "%s.%s" */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName, zCol))
+ zName = Xsqlite3MPrintf(tls, db, ts+10498 /* "%s.%s" */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName, zCol))
Xsqlite3VdbeSetColName(tls, v, i, 0, zName, *(*uintptr)(unsafe.Pointer(&struct{ f func(*crt.TLS, uintptr) int32 }{Xsqlite3MallocSize})))
} else {
Xsqlite3VdbeSetColName(tls, v, i, 0, zCol, crt.UintptrFromInt32(-1))
@@ -103702,7 +105458,7 @@ func generateColumnNames(tls *crt.TLS, pParse uintptr, pSelect uintptr) { /* sql
} else {
var z uintptr = (*ExprList_item)(unsafe.Pointer((pEList + 8 /* &.a */) + uintptr(i)*32)).FzEName
if z == uintptr(0) {
- z = Xsqlite3MPrintf(tls, db, ts+16225 /* "column%d" */, crt.VaList(bp+16, (i+1)))
+ z = Xsqlite3MPrintf(tls, db, ts+16697 /* "column%d" */, crt.VaList(bp+16, (i+1)))
} else {
z = Xsqlite3DbStrDup(tls, db, z)
}
@@ -103790,7 +105546,7 @@ __1:
if iCol >= 0 {
zName = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*32)).FzName
} else {
- zName = ts + 13903 /* "rowid" */
+ zName = ts + 14283 /* "rowid" */
}
} else if int32((*Expr)(unsafe.Pointer(pColExpr)).Fop) == 59 {
@@ -103803,7 +105559,7 @@ __1:
if (zName != 0) && !(Xsqlite3IsTrueOrFalse(tls, zName) != 0) {
zName = Xsqlite3DbStrDup(tls, db, zName)
} else {
- zName = Xsqlite3MPrintf(tls, db, ts+16225 /* "column%d" */, crt.VaList(bp, (i+1)))
+ zName = Xsqlite3MPrintf(tls, db, ts+16697 /* "column%d" */, crt.VaList(bp, (i+1)))
}
// Make sure the column name is unique. If the name is not unique,
@@ -103818,7 +105574,7 @@ __1:
nName = j
}
}
- zName = Xsqlite3MPrintf(tls, db, ts+16234 /* "%.*z:%u" */, crt.VaList(bp+8, nName, zName, crt.PreIncUint32(&*(*U32)(unsafe.Pointer(bp + 56 /* cnt */)), 1)))
+ zName = Xsqlite3MPrintf(tls, db, ts+16706 /* "%.*z:%u" */, crt.VaList(bp+8, nName, zName, crt.PreIncUint32(&*(*U32)(unsafe.Pointer(bp + 56 /* cnt */)), 1)))
if *(*U32)(unsafe.Pointer(bp + 56 /* cnt */)) > U32(3) {
Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U32(0))), bp+56 /* &cnt */)
}
@@ -104173,7 +105929,7 @@ func generateWithRecursiveQuery(tls *crt.TLS, pParse uintptr, p uintptr, pDest u
if !((*Select)(unsafe.Pointer(p)).FpWin != 0) {
goto __1
}
- Xsqlite3ErrorMsg(tls, pParse, ts+16242 /* "cannot use windo..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+16714 /* "cannot use windo..." */, 0)
return
__1:
;
@@ -104271,7 +106027,7 @@ __11:
// Store the results of the setup-query in Queue.
(*Select)(unsafe.Pointer(pSetup)).FpNext = uintptr(0)
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16291 /* "SETUP" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16763 /* "SETUP" */, 0)
rc = Xsqlite3Select(tls, pParse, pSetup, bp /* &destQueue */)
(*Select)(unsafe.Pointer(pSetup)).FpNext = p
if !(rc != 0) {
@@ -104315,11 +106071,11 @@ __15:
if !(((*Select)(unsafe.Pointer(p)).FselFlags & U32(0x0000008)) != 0) {
goto __16
}
- Xsqlite3ErrorMsg(tls, pParse, ts+16297 /* "recursive aggreg..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+16769 /* "recursive aggreg..." */, 0)
goto __17
__16:
(*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16339 /* "RECURSIVE STEP" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16811 /* "RECURSIVE STEP" */, 0)
Xsqlite3Select(tls, pParse, p, bp /* &destQueue */)
(*Select)(unsafe.Pointer(p)).FpPrior = pSetup
@@ -104371,11 +106127,11 @@ func multiSelectValues(tls *crt.TLS, pParse uintptr, p uintptr, pDest uintptr) i
p = (*Select)(unsafe.Pointer(p)).FpPrior
nRow = nRow + (bShowAll)
}
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+16354 /* "SCAN %d CONSTANT..." */, crt.VaList(bp, nRow, func() uintptr {
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+16826 /* "SCAN %d CONSTANT..." */, crt.VaList(bp, nRow, func() uintptr {
if nRow == 1 {
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}
- return ts + 16377 /* "S" */
+ return ts + 16849 /* "S" */
}()))
for p != 0 {
selectInnerLoop(tls, pParse, p, -1, uintptr(0), uintptr(0), pDest, 1, 1)
@@ -104470,12 +106226,12 @@ func multiSelect(tls *crt.TLS, pParse uintptr, p uintptr, pDest uintptr) int32 {
if !(((*Select)(unsafe.Pointer(pPrior)).FpOrderBy != 0) || ((*Select)(unsafe.Pointer(pPrior)).FpLimit != 0)) {
goto __1
}
- Xsqlite3ErrorMsg(tls, pParse, ts+16379, /* "%s clause should..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+16851, /* "%s clause should..." */
crt.VaList(bp, func() uintptr {
if (*Select)(unsafe.Pointer(pPrior)).FpOrderBy != uintptr(0) {
- return ts + 16421 /* "ORDER BY" */
+ return ts + 16893 /* "ORDER BY" */
}
- return ts + 16430 /* "LIMIT" */
+ return ts + 16902 /* "LIMIT" */
}(), selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
rc = 1
goto multi_select_end
@@ -104531,8 +106287,8 @@ __7:
if !((*Select)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0)) {
goto __9
}
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16436 /* "COMPOUND QUERY" */, 0)
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16451 /* "LEFT-MOST SUBQUE..." */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16908 /* "COMPOUND QUERY" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16923 /* "LEFT-MOST SUBQUE..." */, 0)
__9:
;
@@ -104579,7 +106335,7 @@ __17:
;
__16:
;
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16169 /* "UNION ALL" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16641 /* "UNION ALL" */, 0)
rc = Xsqlite3Select(tls, pParse, p, bp+32 /* &dest */)
pDelete = (*Select)(unsafe.Pointer(p)).FpPrior
@@ -104651,7 +106407,7 @@ __24:
pLimit = (*Select)(unsafe.Pointer(p)).FpLimit
(*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
(*SelectDest)(unsafe.Pointer(bp + 72 /* &uniondest */)).FeDest = op
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16470 /* "%s USING TEMP B-..." */, crt.VaList(bp+16, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16942 /* "%s USING TEMP B-..." */, crt.VaList(bp+16, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
rc = Xsqlite3Select(tls, pParse, p, bp+72 /* &uniondest */)
pDelete = (*Select)(unsafe.Pointer(p)).FpPrior
@@ -104720,7 +106476,7 @@ __27:
pLimit1 = (*Select)(unsafe.Pointer(p)).FpLimit
(*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
(*SelectDest)(unsafe.Pointer(bp + 104 /* &intersectdest */)).FiSDParm = tab2
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16470 /* "%s USING TEMP B-..." */, crt.VaList(bp+24, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16942 /* "%s USING TEMP B-..." */, crt.VaList(bp+24, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
rc = Xsqlite3Select(tls, pParse, p, bp+104 /* &intersectdest */)
pDelete = (*Select)(unsafe.Pointer(p)).FpPrior
@@ -104879,10 +106635,10 @@ func Xsqlite3SelectWrongNumTermsError(tls *crt.TLS, pParse uintptr, p uintptr) {
defer tls.Free(8)
if ((*Select)(unsafe.Pointer(p)).FselFlags & U32(0x0000200)) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+16491 /* "all VALUES must ..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+16963 /* "all VALUES must ..." */, 0)
} else {
Xsqlite3ErrorMsg(tls, pParse,
- ts+16537 /* "SELECTs to the l..." */, crt.VaList(bp, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+ ts+17009 /* "SELECTs to the l..." */, crt.VaList(bp, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
}
}
@@ -105265,9 +107021,9 @@ func multiSelectOrderBy(tls *crt.TLS, pParse uintptr, p uintptr, pDest uintptr)
// Separate the left and the right query from one another
(*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
(*Select)(unsafe.Pointer(pPrior)).FpNext = uintptr(0)
- Xsqlite3ResolveOrderGroupBy(tls, pParse, p, (*Select)(unsafe.Pointer(p)).FpOrderBy, ts+6500 /* "ORDER" */)
+ Xsqlite3ResolveOrderGroupBy(tls, pParse, p, (*Select)(unsafe.Pointer(p)).FpOrderBy, ts+6898 /* "ORDER" */)
if (*Select)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) {
- Xsqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*Select)(unsafe.Pointer(pPrior)).FpOrderBy, ts+6500 /* "ORDER" */)
+ Xsqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*Select)(unsafe.Pointer(pPrior)).FpOrderBy, ts+6898 /* "ORDER" */)
}
// Compute the limit registers
@@ -105296,7 +107052,7 @@ func multiSelectOrderBy(tls *crt.TLS, pParse uintptr, p uintptr, pDest uintptr)
Xsqlite3SelectDestInit(tls, bp+8 /* &destA */, 13, regAddrA)
Xsqlite3SelectDestInit(tls, bp+40 /* &destB */, 13, regAddrB)
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16619 /* "MERGE (%s)" */, crt.VaList(bp, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17091 /* "MERGE (%s)" */, crt.VaList(bp, selectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
// Generate a coroutine to evaluate the SELECT statement to the
// left of the compound operator - the "A" select.
@@ -105304,7 +107060,7 @@ func multiSelectOrderBy(tls *crt.TLS, pParse uintptr, p uintptr, pDest uintptr)
addr1 = Xsqlite3VdbeAddOp3(tls, v, 13, regAddrA, 0, addrSelectA)
(*Select)(unsafe.Pointer(pPrior)).FiLimit = regLimitA
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16630 /* "LEFT" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17102 /* "LEFT" */, 0)
Xsqlite3Select(tls, pParse, pPrior, bp+8 /* &destA */)
Xsqlite3VdbeEndCoroutine(tls, v, regAddrA)
Xsqlite3VdbeJumpHere(tls, v, addr1)
@@ -105318,7 +107074,7 @@ func multiSelectOrderBy(tls *crt.TLS, pParse uintptr, p uintptr, pDest uintptr)
savedOffset = (*Select)(unsafe.Pointer(p)).FiOffset
(*Select)(unsafe.Pointer(p)).FiLimit = regLimitB
(*Select)(unsafe.Pointer(p)).FiOffset = 0
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+16635 /* "RIGHT" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17107 /* "RIGHT" */, 0)
Xsqlite3Select(tls, pParse, p, bp+40 /* &destB */)
(*Select)(unsafe.Pointer(p)).FiLimit = savedLimit
(*Select)(unsafe.Pointer(p)).FiOffset = savedOffset
@@ -105511,7 +107267,7 @@ func substExpr(tls *crt.TLS, pSubst uintptr, pExpr uintptr) uintptr { /* sqlite3
if pColl != 0 {
return (*CollSeq)(unsafe.Pointer(pColl)).FzName
}
- return ts + 181 /* "BINARY" */
+ return ts + 230 /* "BINARY" */
}())
}
*(*U32)(unsafe.Pointer(pExpr + 4 /* &.flags */)) &= (^U32(crt.Int32FromInt32(0x000100)))
@@ -106512,12 +108268,12 @@ func minMaxQuery(tls *crt.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) U8 {
return U8(eRet)
}
zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8 /* &.u */))
- if Xsqlite3StrICmp(tls, zFunc, ts+13002 /* "min" */) == 0 {
+ if Xsqlite3StrICmp(tls, zFunc, ts+13382 /* "min" */) == 0 {
eRet = 0x0001
if Xsqlite3ExprCanBeNull(tls, (*ExprList_item)(unsafe.Pointer((pEList+8 /* &.a */)+uintptr(0)*32)).FpExpr) != 0 {
sortFlags = U8(0x02)
}
- } else if Xsqlite3StrICmp(tls, zFunc, ts+13006 /* "max" */) == 0 {
+ } else if Xsqlite3StrICmp(tls, zFunc, ts+13386 /* "max" */) == 0 {
eRet = 0x0002
sortFlags = U8(0x01)
} else {
@@ -106586,7 +108342,7 @@ func Xsqlite3IndexedByLookup(tls *crt.TLS, pParse uintptr, pFrom uintptr) int32
for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; (pIdx != 0) && (Xsqlite3StrICmp(tls, (*Index)(unsafe.Pointer(pIdx)).FzName, zIndexedBy) != 0); pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
}
if !(pIdx != 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+16641 /* "no such index: %..." */, crt.VaList(bp, zIndexedBy, 0))
+ Xsqlite3ErrorMsg(tls, pParse, ts+17113 /* "no such index: %..." */, crt.VaList(bp, zIndexedBy, 0))
(*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
return 1
}
@@ -106701,7 +108457,7 @@ func cannotBeFunction(tls *crt.TLS, pParse uintptr, pFrom uintptr) int32 { /* sq
defer tls.Free(8)
if uint32(int32(*(*uint8)(unsafe.Pointer(pFrom + 60 /* &.fg */ + 4 /* &.isTabFunc */))&0x4>>2)) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+16659 /* "'%s' is not a fu..." */, crt.VaList(bp, (*SrcList_item)(unsafe.Pointer(pFrom)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+17131 /* "'%s' is not a fu..." */, crt.VaList(bp, (*SrcList_item)(unsafe.Pointer(pFrom)).FzName))
return 1
}
return 0
@@ -106837,11 +108593,11 @@ func withExpand(tls *crt.TLS, pWalker uintptr, pFrom uintptr) int32 { /* sqlite3
/* Only one recursive reference is permitted. */
if (*Table)(unsafe.Pointer(pTab)).FnTabRef > U32(2) {
Xsqlite3ErrorMsg(tls,
- pParse, ts+16682 /* "multiple referen..." */, crt.VaList(bp+8, (*Cte)(unsafe.Pointer(pCte)).FzName))
+ pParse, ts+17154 /* "multiple referen..." */, crt.VaList(bp+8, (*Cte)(unsafe.Pointer(pCte)).FzName))
return 1
}
- (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 16725 /* "circular referen..." */
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 17197 /* "circular referen..." */
pSavedWith = (*Parse)(unsafe.Pointer(pParse)).FpWith
(*Parse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp + 40 /* pWith */))
if bMayRecursive != 0 {
@@ -106860,7 +108616,7 @@ func withExpand(tls *crt.TLS, pWalker uintptr, pFrom uintptr) int32 { /* sqlite3
pEList = (*Select)(unsafe.Pointer(pLeft)).FpEList
if (*Cte)(unsafe.Pointer(pCte)).FpCols != 0 {
if (pEList != 0) && ((*ExprList)(unsafe.Pointer(pEList)).FnExpr != (*ExprList)(unsafe.Pointer((*Cte)(unsafe.Pointer(pCte)).FpCols)).FnExpr) {
- Xsqlite3ErrorMsg(tls, pParse, ts+16748, /* "table %s has %d ..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+17220, /* "table %s has %d ..." */
crt.VaList(bp+16, (*Cte)(unsafe.Pointer(pCte)).FzName, (*ExprList)(unsafe.Pointer(pEList)).FnExpr, (*ExprList)(unsafe.Pointer((*Cte)(unsafe.Pointer(pCte)).FpCols)).FnExpr))
(*Parse)(unsafe.Pointer(pParse)).FpWith = pSavedWith
return 1
@@ -106871,9 +108627,9 @@ func withExpand(tls *crt.TLS, pWalker uintptr, pFrom uintptr) int32 { /* sqlite3
Xsqlite3ColumnsFromExprList(tls, pParse, pEList, (pTab + 70 /* &.nCol */), (pTab + 8 /* &.aCol */))
if bMayRecursive != 0 {
if ((*Select)(unsafe.Pointer(pSel)).FselFlags & U32(0x0002000)) != 0 {
- (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 16786 /* "multiple recursi..." */
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 17258 /* "multiple recursi..." */
} else {
- (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 16820 /* "recursive refere..." */
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 17292 /* "recursive refere..." */
}
Xsqlite3WalkSelect(tls, pWalker, pSel)
}
@@ -106921,7 +108677,7 @@ func Xsqlite3ExpandSubquery(tls *crt.TLS, pParse uintptr, pFrom uintptr) int32 {
if (*SrcList_item)(unsafe.Pointer(pFrom)).FzAlias != 0 {
(*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3DbStrDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*SrcList_item)(unsafe.Pointer(pFrom)).FzAlias)
} else {
- (*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+16858 /* "subquery_%u" */, crt.VaList(bp, (*Select)(unsafe.Pointer(pSel)).FselId))
+ (*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+17330 /* "subquery_%u" */, crt.VaList(bp, (*Select)(unsafe.Pointer(pSel)).FselId))
}
for (*Select)(unsafe.Pointer(pSel)).FpPrior != 0 {
pSel = (*Select)(unsafe.Pointer(pSel)).FpPrior
@@ -107035,7 +108791,7 @@ __1:
return 2
}
if (*Table)(unsafe.Pointer(pTab)).FnTabRef >= U32(0xffff) {
- Xsqlite3ErrorMsg(tls, pParse, ts+16870, /* "too many referen..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+17342, /* "too many referen..." */
crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
(*SrcList_item)(unsafe.Pointer(pFrom)).FpTab = uintptr(0)
return 2
@@ -107052,14 +108808,14 @@ __1:
}
if ((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) && (((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x80000000)) == uint64(0)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+16909, /* "access to view \"..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+17381, /* "access to view \"..." */
crt.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
}
if ((((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) &&
(uint32(int32(*(*uint8)(unsafe.Pointer((pFrom + 60 /* &.fg */) + 4 /* &.fromDDL */))&0x40>>6)) != 0)) &&
((*Table)(unsafe.Pointer(pTab)).FpVTable != uintptr(0))) &&
(int32((*VTable)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FpVTable)).FeVtabRisk) > (crt.Bool32(((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(0x00000080)) != uint64(0)))) {
- Xsqlite3ErrorMsg(tls, pParse, ts+16940, /* "unsafe use of vi..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+17412, /* "unsafe use of vi..." */
crt.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
}
(*SrcList_item)(unsafe.Pointer(pFrom)).FpSelect = Xsqlite3SelectDup(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSelect, 0)
@@ -107173,7 +108929,7 @@ __3:
if iDb >= 0 {
zSchemaName = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
} else {
- zSchemaName = ts + 16973 /* "*" */
+ zSchemaName = ts + 17445 /* "*" */
}
}
for j = 0; j < int32((*Table)(unsafe.Pointer(pTab)).FnCol); j++ {
@@ -107222,7 +108978,7 @@ __3:
pExpr = Xsqlite3PExpr(tls, pParse, 139, pLeft, pExpr)
}
if longNames != 0 {
- zColname = Xsqlite3MPrintf(tls, db, ts+10112 /* "%s.%s" */, crt.VaList(bp+24, zTabName, zName))
+ zColname = Xsqlite3MPrintf(tls, db, ts+10498 /* "%s.%s" */, crt.VaList(bp+24, zTabName, zName))
zToFree = zColname
}
} else {
@@ -107237,7 +108993,7 @@ __3:
if pSub != 0 {
(*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3DbStrDup(tls, db, (*ExprList_item)(unsafe.Pointer(((*Select)(unsafe.Pointer(pSub)).FpEList+8 /* &.a */)+uintptr(j)*32)).FzEName)
} else {
- (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3MPrintf(tls, db, ts+16975, /* "%s.%s.%s" */
+ (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3MPrintf(tls, db, ts+17447, /* "%s.%s.%s" */
crt.VaList(bp+40, zSchemaName, zTabName, zColname))
}
crt.SetBitFieldPtr8Uint32(pX+20 /* &.eEName */, uint32(2), 0, 0x3)
@@ -107255,9 +109011,9 @@ __3:
;
if !(tableSeen != 0) {
if zTName != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+16984 /* "no such table: %..." */, crt.VaList(bp+64, zTName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+17456 /* "no such table: %..." */, crt.VaList(bp+64, zTName))
} else {
- Xsqlite3ErrorMsg(tls, pParse, ts+17002 /* "no tables specif..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+17474 /* "no tables specif..." */, 0)
}
}
}
@@ -107267,7 +109023,7 @@ __3:
}
if (*Select)(unsafe.Pointer(p)).FpEList != 0 {
if (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(2)*4)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+17022 /* "too many columns..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+17494 /* "too many columns..." */, 0)
return 2
}
if (elistFlags & (U32(0x000004 | 0x200000))) != U32(0) {
@@ -107451,7 +109207,7 @@ __1:
if (*(*uintptr)(unsafe.Pointer(pE + 32 /* &.x */)) == uintptr(0)) || ((*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32 /* &.x */)))).FnExpr != 1) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+17053 /* "DISTINCT aggrega..." */, 0)
+ ts+17525 /* "DISTINCT aggrega..." */, 0)
(*AggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -1
} else {
var pKeyInfo uintptr = Xsqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32 /* &.x */)), 0, 0)
@@ -107648,19 +109404,19 @@ func explainSimpleCount(tls *crt.TLS, pParse uintptr, pTab uintptr, pIdx uintptr
if int32((*Parse)(unsafe.Pointer(pParse)).Fexplain) == 2 {
var bCover int32 = (crt.Bool32((pIdx != uintptr(0)) && ((((*Table)(unsafe.Pointer((pTab))).FtabFlags & U32(0x0080)) == U32(0)) || !(int32(*(*uint16)(unsafe.Pointer((pIdx) + 100 /* &.idxType */))&0x3>>0) == 2))))
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+17104, /* "SCAN TABLE %s%s%..." */
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+17576, /* "SCAN TABLE %s%s%..." */
crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
func() uintptr {
if bCover != 0 {
- return ts + 17122 /* " USING COVERING ..." */
+ return ts + 17594 /* " USING COVERING ..." */
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}(),
func() uintptr {
if bCover != 0 {
return (*Index)(unsafe.Pointer(pIdx)).FzName
}
- return ts + 623 /* "" */
+ return ts + 672 /* "" */
}()))
}
}
@@ -107679,7 +109435,7 @@ func havingToWhereExprCb(tls *crt.TLS, pWalker uintptr, pExpr uintptr) int32 { /
var pS uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40 /* &.u */))
if Xsqlite3ExprIsConstantOrGroupBy(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*Select)(unsafe.Pointer(pS)).FpGroupBy) != 0 {
var db uintptr = (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(pWalker)).FpParse)).Fdb
- var pNew uintptr = Xsqlite3Expr(tls, db, 152, ts+7125 /* "1" */)
+ var pNew uintptr = Xsqlite3Expr(tls, db, 152, ts+7523 /* "1" */)
if pNew != 0 {
var pWhere uintptr = (*Select)(unsafe.Pointer(pS)).FpWhere
{
@@ -107985,7 +109741,7 @@ __11:
if !(int32((*Table)(unsafe.Pointer(pTab)).FnCol) != (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub)).FpEList)).FnExpr) {
goto __12
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17145, /* "expected %d colu..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+17617, /* "expected %d colu..." */
crt.VaList(bp, int32((*Table)(unsafe.Pointer(pTab)).FnCol), (*Table)(unsafe.Pointer(pTab)).FzName, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub)).FpEList)).FnExpr))
goto select_end
__12:
@@ -108125,7 +109881,7 @@ __23:
if !(((*SrcList_item)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0)) && ((*SrcList_item)(unsafe.Pointer(pItem1)).FzName != uintptr(0))) {
goto __26
}
- Xsqlite3AuthCheck(tls, pParse, 20, (*SrcList_item)(unsafe.Pointer(pItem1)).FzName, ts+623 /* "" */, (*SrcList_item)(unsafe.Pointer(pItem1)).FzDatabase)
+ Xsqlite3AuthCheck(tls, pParse, 20, (*SrcList_item)(unsafe.Pointer(pItem1)).FzName, ts+672 /* "" */, (*SrcList_item)(unsafe.Pointer(pItem1)).FzDatabase)
__26:
;
@@ -108196,7 +109952,7 @@ __29:
(*SrcList_item)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop
Xsqlite3SelectDestInit(tls, bp+88 /* &dest */, 13, (*SrcList_item)(unsafe.Pointer(pItem1)).FregReturn)
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17185 /* "CO-ROUTINE %u" */, crt.VaList(bp+24, (*Select)(unsafe.Pointer(pSub1)).FselId))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17657 /* "CO-ROUTINE %u" */, crt.VaList(bp+24, (*Select)(unsafe.Pointer(pSub1)).FselId))
Xsqlite3Select(tls, pParse, pSub1, bp+88 /* &dest */)
(*Table)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*Select)(unsafe.Pointer(pSub1)).FnSelectRow
crt.SetBitFieldPtr8Uint32(pItem1+60 /* &.fg */ +4 /* &.viaCoroutine */, uint32(1), 4, 0x10)
@@ -108234,7 +109990,7 @@ __33:
goto __35
__34:
Xsqlite3SelectDestInit(tls, bp+88 /* &dest */, 12, (*SrcList_item)(unsafe.Pointer(pItem1)).FiCursor)
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17199 /* "MATERIALIZE %u" */, crt.VaList(bp+32, (*Select)(unsafe.Pointer(pSub1)).FselId))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+17671 /* "MATERIALIZE %u" */, crt.VaList(bp+32, (*Select)(unsafe.Pointer(pSub1)).FselId))
Xsqlite3Select(tls, pParse, pSub1, bp+88 /* &dest */)
__35:
;
@@ -108714,9 +110470,9 @@ __84:
explainTempTable(tls, pParse,
func() uintptr {
if ((*DistinctCtx)(unsafe.Pointer(bp+120 /* &sDistinct */)).FisTnct != 0) && (((*Select)(unsafe.Pointer(p)).FselFlags & U32(0x0000001)) == U32(0)) {
- return ts + 17214 /* "DISTINCT" */
+ return ts + 17686 /* "DISTINCT" */
}
- return ts + 17223 /* "GROUP BY" */
+ return ts + 17695 /* "GROUP BY" */
}())
groupBySort = 1
@@ -109089,7 +110845,7 @@ __47:
if !(int32((*DistinctCtx)(unsafe.Pointer(bp+120 /* &sDistinct */)).FeTnctType) == 3) {
goto __123
}
- explainTempTable(tls, pParse, ts+17214 /* "DISTINCT" */)
+ explainTempTable(tls, pParse, ts+17686 /* "DISTINCT" */)
__123:
;
@@ -109101,9 +110857,9 @@ __123:
explainTempTable(tls, pParse,
func() uintptr {
if (*SortCtx)(unsafe.Pointer(bp+40 /* &sSort */)).FnOBSat > 0 {
- return ts + 17232 /* "RIGHT PART OF OR..." */
+ return ts + 17704 /* "RIGHT PART OF OR..." */
}
- return ts + 16421 /* "ORDER BY" */
+ return ts + 16893 /* "ORDER BY" */
}())
generateSortTail(tls, pParse, p, bp+40 /* &sSort */, (*ExprList)(unsafe.Pointer(pEList)).FnExpr, pDest)
@@ -109235,7 +110991,7 @@ __7:
if !(i < nCol) {
goto __9
}
- z = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8))))
+ z = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8))))
if !(z == uintptr(0)) {
goto __10
}
@@ -109257,7 +111013,7 @@ __5:
}
Xsqlite3_free(tls, (*TabResult)(unsafe.Pointer(p)).FzErrMsg)
(*TabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls,
- ts+17255 /* "sqlite3_get_tabl..." */, 0)
+ ts+17727 /* "sqlite3_get_tabl..." */, 0)
(*TabResult)(unsafe.Pointer(p)).Frc = 1
return 1
__11:
@@ -109356,7 +111112,7 @@ func Xsqlite3_get_table(tls *crt.TLS, db uintptr, zSql uintptr, pazResult uintpt
if (*TabResult)(unsafe.Pointer(bp+8 /* &res */)).FzErrMsg != 0 {
if pzErrMsg != 0 {
Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg)))
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp, (*TabResult)(unsafe.Pointer(bp+8 /* &res */)).FzErrMsg))
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp, (*TabResult)(unsafe.Pointer(bp+8 /* &res */)).FzErrMsg))
}
Xsqlite3_free(tls, (*TabResult)(unsafe.Pointer(bp+8 /* &res */)).FzErrMsg)
}
@@ -109518,7 +111274,7 @@ func Xsqlite3BeginTrigger(tls *crt.TLS, pParse uintptr, pName1 uintptr, pName2 u
if !((*Token)(unsafe.Pointer(pName2)).Fn > uint32(0)) {
goto __3
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17320 /* "temporary trigge..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+17792 /* "temporary trigge..." */, 0)
goto trigger_cleanup
__3:
;
@@ -109579,7 +111335,7 @@ __7:
__8:
;
- Xsqlite3FixInit(tls, bp+56 /* &sFix */, pParse, iDb, ts+17366 /* "trigger" */, *(*uintptr)(unsafe.Pointer(bp + 48 /* pName */)))
+ Xsqlite3FixInit(tls, bp+56 /* &sFix */, pParse, iDb, ts+17838 /* "trigger" */, *(*uintptr)(unsafe.Pointer(bp + 48 /* pName */)))
if !(Xsqlite3FixSrcList(tls, bp+56 /* &sFix */, pTableName) != 0) {
goto __9
}
@@ -109610,7 +111366,7 @@ __10:
if !((*Table)(unsafe.Pointer(pTab)).FnModuleArg != 0) {
goto __12
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17374 /* "cannot create tr..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+17846 /* "cannot create tr..." */, 0)
goto trigger_cleanup
__12:
;
@@ -109625,7 +111381,7 @@ __12:
goto trigger_cleanup
__13:
;
- if !(Xsqlite3CheckObjectName(tls, pParse, zName, ts+17366 /* "trigger" */, (*Table)(unsafe.Pointer(pTab)).FzName) != 0) {
+ if !(Xsqlite3CheckObjectName(tls, pParse, zName, ts+17838 /* "trigger" */, (*Table)(unsafe.Pointer(pTab)).FzName) != 0) {
goto __14
}
goto trigger_cleanup
@@ -109641,7 +111397,7 @@ __14:
if !(!(noErr != 0)) {
goto __17
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17415 /* "trigger %T alrea..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 48 /* pName */))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+17887 /* "trigger %T alrea..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 48 /* pName */))))
goto __18
__17:
;
@@ -109655,10 +111411,10 @@ __15:
;
// Do not create a trigger on a system table
- if !(Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7293 /* "sqlite_" */, 7) == 0) {
+ if !(Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+7691 /* "sqlite_" */, 7) == 0) {
goto __19
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17441 /* "cannot create tr..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+17913 /* "cannot create tr..." */, 0)
goto trigger_cleanup
__19:
;
@@ -109668,12 +111424,12 @@ __19:
if !(((*Table)(unsafe.Pointer(pTab)).FpSelect != 0) && (tr_tm != 65)) {
goto __20
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17479, /* "cannot create %s..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+17951, /* "cannot create %s..." */
crt.VaList(bp+8, func() uintptr {
if tr_tm == 33 {
- return ts + 17516 /* "BEFORE" */
+ return ts + 17988 /* "BEFORE" */
}
- return ts + 17523 /* "AFTER" */
+ return ts + 17995 /* "AFTER" */
}(), pTableName, 0))
goto trigger_cleanup
__20:
@@ -109682,7 +111438,7 @@ __20:
goto __21
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+17529 /* "cannot create IN..." */, crt.VaList(bp+32, pTableName, 0))
+ ts+18001 /* "cannot create IN..." */, crt.VaList(bp+32, pTableName, 0))
goto trigger_cleanup
__21:
;
@@ -109712,9 +111468,9 @@ __24:
;
if !(Xsqlite3AuthCheck(tls, pParse, 18, func() uintptr {
if (!(0 != 0)) && (iTabDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}(), uintptr(0), zDb) != 0) {
goto __25
}
@@ -109828,7 +111584,7 @@ __2:
__3:
;
Xsqlite3TokenInit(tls, bp+48 /* &nameToken */, (*Trigger)(unsafe.Pointer(pTrig)).FzName)
- Xsqlite3FixInit(tls, bp+64 /* &sFix */, pParse, iDb, ts+17366 /* "trigger" */, bp+48 /* &nameToken */)
+ Xsqlite3FixInit(tls, bp+64 /* &sFix */, pParse, iDb, ts+17838 /* "trigger" */, bp+48 /* &nameToken */)
if !((Xsqlite3FixTriggerStep(tls, bp+64 /* &sFix */, (*Trigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0) ||
(Xsqlite3FixExpr(tls, bp+64 /* &sFix */, (*Trigger)(unsafe.Pointer(pTrig)).FpWhen) != 0)) {
goto __4
@@ -109864,13 +111620,13 @@ __8:
z = Xsqlite3DbStrNDup(tls, db, (*Token)(unsafe.Pointer(pAll)).Fz, uint64((*Token)(unsafe.Pointer(pAll)).Fn))
Xsqlite3NestedParse(tls, pParse,
- ts+17575, /* "INSERT INTO %Q.%..." */
- crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216 /* "sqlite_master" */, zName,
+ ts+18047, /* "INSERT INTO %Q.%..." */
+ crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324 /* "sqlite_master" */, zName,
(*Trigger)(unsafe.Pointer(pTrig)).Ftable, z))
Xsqlite3DbFree(tls, db, z)
Xsqlite3ChangeCookie(tls, pParse, iDb)
Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb,
- Xsqlite3MPrintf(tls, db, ts+17639 /* "type='trigger' A..." */, crt.VaList(bp+40, zName)))
+ Xsqlite3MPrintf(tls, db, ts+18111 /* "type='trigger' A..." */, crt.VaList(bp+40, zName)))
__7:
;
__6:
@@ -110132,7 +111888,7 @@ __5:
if !(!(noErr != 0)) {
goto __9
}
- Xsqlite3ErrorMsg(tls, pParse, ts+17668 /* "no such trigger:..." */, crt.VaList(bp, pName, 0))
+ Xsqlite3ErrorMsg(tls, pParse, ts+18140 /* "no such trigger:..." */, crt.VaList(bp, pName, 0))
goto __10
__9:
Xsqlite3CodeVerifyNamedSchema(tls, pParse, zDb)
@@ -110173,9 +111929,9 @@ func Xsqlite3DropTriggerPtr(tls *crt.TLS, pParse uintptr, pTrigger uintptr) { /*
var zDb uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
var zTab uintptr = func() uintptr {
if (!(0 != 0)) && (iDb == 1) {
- return ts + 10166 /* "sqlite_temp_mast..." */
+ return ts + 10552 /* "sqlite_temp_mast..." */
}
- return ts + 5216 /* "sqlite_master" */
+ return ts + 5324 /* "sqlite_master" */
}()
if iDb == 1 {
code = 14
@@ -110188,8 +111944,8 @@ func Xsqlite3DropTriggerPtr(tls *crt.TLS, pParse uintptr, pTrigger uintptr) { /*
// Generate code to destroy the database record of the trigger.
if (crt.AssignUintptr(&v, Xsqlite3GetVdbe(tls, pParse))) != uintptr(0) {
Xsqlite3NestedParse(tls, pParse,
- ts+17688, /* "DELETE FROM %Q.%..." */
- crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216 /* "sqlite_master" */, (*Trigger)(unsafe.Pointer(pTrigger)).FzName))
+ ts+18160, /* "DELETE FROM %Q.%..." */
+ crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324 /* "sqlite_master" */, (*Trigger)(unsafe.Pointer(pTrigger)).FzName))
Xsqlite3ChangeCookie(tls, pParse, iDb)
Xsqlite3VdbeAddOp4(tls, v, 145, iDb, 0, 0, (*Trigger)(unsafe.Pointer(pTrigger)).FzName, 0)
}
@@ -110329,7 +112085,7 @@ func codeTriggerProgram(tls *crt.TLS, pParse uintptr, pStepList uintptr, orconf
if (*TriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 {
Xsqlite3VdbeAddOp4(tls, v, 170, 0x7fffffff, 1, 0,
- Xsqlite3MPrintf(tls, db, ts+5403 /* "-- %s" */, crt.VaList(bp, (*TriggerStep)(unsafe.Pointer(pStep)).FzSpan)),
+ Xsqlite3MPrintf(tls, db, ts+5511 /* "-- %s" */, crt.VaList(bp, (*TriggerStep)(unsafe.Pointer(pStep)).FzSpan)),
-7)
}
@@ -110455,7 +112211,7 @@ func codeRowTrigger(tls *crt.TLS, pParse uintptr, pTrigger uintptr, pTab uintptr
if (*Trigger)(unsafe.Pointer(pTrigger)).FzName != 0 {
Xsqlite3VdbeChangeP4(tls, v, -1,
- Xsqlite3MPrintf(tls, db, ts+17739 /* "-- TRIGGER %s" */, crt.VaList(bp, (*Trigger)(unsafe.Pointer(pTrigger)).FzName)), -7)
+ Xsqlite3MPrintf(tls, db, ts+18211 /* "-- TRIGGER %s" */, crt.VaList(bp, (*Trigger)(unsafe.Pointer(pTrigger)).FzName)), -7)
}
// If one was specified, code the WHEN clause. If it evaluates to false
@@ -111002,7 +112758,7 @@ __25:
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+17753, /* "cannot UPDATE ge..." */
+ ts+18225, /* "cannot UPDATE ge..." */
crt.VaList(bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*32)).FzName))
goto update_cleanup
__27:
@@ -111033,7 +112789,7 @@ __21:
pRowidExpr = (*ExprList_item)(unsafe.Pointer((pChanges + 8 /* &.a */) + uintptr(i)*32)).FpExpr
goto __30
__29:
- Xsqlite3ErrorMsg(tls, pParse, ts+17789 /* "no such column: ..." */, crt.VaList(bp+8, (*ExprList_item)(unsafe.Pointer((pChanges+8 /* &.a */)+uintptr(i)*32)).FzEName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+18261 /* "no such column: ..." */, crt.VaList(bp+8, (*ExprList_item)(unsafe.Pointer((pChanges+8 /* &.a */)+uintptr(i)*32)).FzEName))
(*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
goto update_cleanup
__30:
@@ -111044,7 +112800,7 @@ __28:
rc = Xsqlite3AuthCheck(tls, pParse, 23, (*Table)(unsafe.Pointer(pTab)).FzName,
func() uintptr {
if j < 0 {
- return ts + 6900 /* "ROWID" */
+ return ts + 7298 /* "ROWID" */
}
return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*32)).FzName
}(),
@@ -111928,7 +113684,7 @@ __147:
}
Xsqlite3VdbeAddOp2(tls, v, 80, regRowCount, 1)
Xsqlite3VdbeSetNumCols(tls, v, 1)
- Xsqlite3VdbeSetColName(tls, v, 0, 0, ts+17808 /* "rows updated" */, uintptr(0))
+ Xsqlite3VdbeSetColName(tls, v, 0, 0, ts+18280 /* "rows updated" */, uintptr(0))
__148:
;
@@ -112253,7 +114009,7 @@ func Xsqlite3UpsertAnalyzeTarget(tls *crt.TLS, pParse uintptr, pTabList uintptr,
return 0
}
Xsqlite3ErrorMsg(tls, pParse,
- ts+17821 /* "ON CONFLICT clau..." */, 0)
+ ts+18293 /* "ON CONFLICT clau..." */, 0)
return 1
}
@@ -112294,7 +114050,7 @@ func Xsqlite3UpsertDoUpdate(tls *crt.TLS, pParse uintptr, pUpsert uintptr, pTab
i = Xsqlite3VdbeAddOp4Int(tls, v, 30, iDataCur, 0, iPk, nPk)
Xsqlite3VdbeAddOp4(tls, v, 68, 11, 2, 0,
- ts+10220 /* "corrupt database" */, -1)
+ ts+10606 /* "corrupt database" */, -1)
Xsqlite3MayAbort(tls, pParse)
Xsqlite3VdbeJumpHere(tls, v, i)
}
@@ -112364,7 +114120,7 @@ func execSql(tls *crt.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) int32 { /
// then run VACUUM to get those statements to execute at inappropriate
// times.
if (zSubSql != 0) &&
- ((crt.Xstrncmp(tls, zSubSql, ts+17892 /* "CRE" */, uint64(3)) == 0) || (crt.Xstrncmp(tls, zSubSql, ts+17896 /* "INS" */, uint64(3)) == 0)) {
+ ((crt.Xstrncmp(tls, zSubSql, ts+18364 /* "CRE" */, uint64(3)) == 0) || (crt.Xstrncmp(tls, zSubSql, ts+18368 /* "INS" */, uint64(3)) == 0)) {
rc = execSql(tls, db, pzErrMsg, zSubSql)
if rc != 0 {
break
@@ -112513,14 +114269,14 @@ func Xsqlite3RunVacuum(tls *crt.TLS, pzErrMsg uintptr, db uintptr, iDb int32, pO
if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0)) {
goto __1
}
- Xsqlite3SetString(tls, pzErrMsg, db, ts+17900 /* "cannot VACUUM fr..." */)
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+18372 /* "cannot VACUUM fr..." */)
return 1
__1:
;
if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive > 1) {
goto __2
}
- Xsqlite3SetString(tls, pzErrMsg, db, ts+17940 /* "cannot VACUUM - ..." */)
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+18412 /* "cannot VACUUM - ..." */)
return 1
__2:
;
@@ -112531,7 +114287,7 @@ __2:
if !(Xsqlite3_value_type(tls, pOut) != 3) {
goto __5
}
- Xsqlite3SetString(tls, pzErrMsg, db, ts+17983 /* "non-text filenam..." */)
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+18455 /* "non-text filenam..." */)
return 1
__5:
;
@@ -112540,7 +114296,7 @@ __5:
*(*uint32)(unsafe.Pointer(db + 76 /* &.openFlags */)) |= (uint32(0x00000004 | 0x00000002))
goto __4
__3:
- zOut = ts + 623 /* "" */
+ zOut = ts + 672 /* "" */
__4:
;
@@ -112576,7 +114332,7 @@ __4:
// time to parse and run the PRAGMA to turn journalling off than it does
// to write the journal header file.
nDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb
- rc = execSqlF(tls, db, pzErrMsg, ts+18001 /* "ATTACH %Q AS vac..." */, crt.VaList(bp, zOut))
+ rc = execSqlF(tls, db, pzErrMsg, ts+18473 /* "ATTACH %Q AS vac..." */, crt.VaList(bp, zOut))
(*Sqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags
if !(rc != 0) {
goto __6
@@ -112597,7 +114353,7 @@ __6:
goto __8
}
rc = 1
- Xsqlite3SetString(tls, pzErrMsg, db, ts+18024 /* "output file alre..." */)
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+18496 /* "output file alre..." */)
goto end_of_vacuum
__8:
;
@@ -112613,7 +114369,7 @@ __7:
// Begin a transaction and take an exclusive lock on the main database
// file. This is done before the sqlite3BtreeGetPageSize(pMain) call below,
// to ensure that we do not try to change the page-size on a WAL database.
- rc = execSql(tls, db, pzErrMsg, ts+12401 /* "BEGIN" */)
+ rc = execSql(tls, db, pzErrMsg, ts+12781 /* "BEGIN" */)
if !(rc != 0) {
goto __9
}
@@ -112664,7 +114420,7 @@ __12:
(*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(nDb) // force new CREATE statements into vacuum_db
rc = execSqlF(tls, db, pzErrMsg,
- ts+18051, /* "SELECT sql FROM ..." */
+ ts+18523, /* "SELECT sql FROM ..." */
crt.VaList(bp+8, zDbMain))
if !(rc != 0) {
goto __13
@@ -112674,7 +114430,7 @@ __13:
;
rc = execSqlF(tls, db, pzErrMsg,
- ts+18159, /* "SELECT sql FROM ..." */
+ ts+18631, /* "SELECT sql FROM ..." */
crt.VaList(bp+16, zDbMain))
if !(rc != 0) {
goto __14
@@ -112689,7 +114445,7 @@ __14:
// the contents to the temporary database.
rc = execSqlF(tls, db, pzErrMsg,
- ts+18213, /* "SELECT'INSERT IN..." */
+ ts+18685, /* "SELECT'INSERT IN..." */
crt.VaList(bp+24, zDbMain))
*(*U32)(unsafe.Pointer(db + 44 /* &.mDbFlags */)) &= (^U32(crt.Int32FromInt32(0x0004)))
@@ -112706,7 +114462,7 @@ __15:
// from the SQLITE_MASTER table.
rc = execSqlF(tls, db, pzErrMsg,
- ts+18364, /* "INSERT INTO vacu..." */
+ ts+18836, /* "INSERT INTO vacu..." */
crt.VaList(bp+32, zDbMain))
if !(rc != 0) {
goto __16
@@ -112850,7 +114606,7 @@ func Xsqlite3VtabCreateModule(tls *crt.TLS, db uintptr, zName uintptr, pModule u
(*Module)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0)
(*Module)(unsafe.Pointer(pMod)).FnRefModule = 1
}
- pDel = Xsqlite3HashInsert(tls, (db + 488 /* &.aModule */), zCopy, pMod)
+ pDel = Xsqlite3HashInsert(tls, (db + 504 /* &.aModule */), zCopy, pMod)
if pDel != 0 {
if pDel == pMod {
Xsqlite3OomFault(tls, db)
@@ -112895,7 +114651,7 @@ func Xsqlite3_create_module_v2(tls *crt.TLS, db uintptr, zName uintptr, pModule
func Xsqlite3_drop_modules(tls *crt.TLS, db uintptr, azNames uintptr) int32 { /* sqlite3.c:139094:16: */
var pThis uintptr
var pNext uintptr
- for pThis = (*Hash)(unsafe.Pointer((db + 488 /* &.aModule */))).Ffirst; pThis != 0; pThis = pNext {
+ for pThis = (*Hash)(unsafe.Pointer((db + 504 /* &.aModule */))).Ffirst; pThis != 0; pThis = pNext {
var pMod uintptr = (*HashElem)(unsafe.Pointer(pThis)).Fdata
pNext = (*HashElem)(unsafe.Pointer(pThis)).Fnext
if azNames != 0 {
@@ -113086,7 +114842,7 @@ func addModuleArgument(tls *crt.TLS, pParse uintptr, pTable uintptr, zArg uintpt
var azModuleArg uintptr
var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
if ((*Table)(unsafe.Pointer(pTable)).FnModuleArg + 3) >= *(*int32)(unsafe.Pointer((db + 124 /* &.aLimit */) + uintptr(2)*4)) {
- Xsqlite3ErrorMsg(tls, pParse, ts+10399 /* "too many columns..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+10785 /* "too many columns..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName))
}
azModuleArg = Xsqlite3DbRealloc(tls, db, (*Table)(unsafe.Pointer(pTable)).FazModuleArg, uint64(nBytes))
if azModuleArg == uintptr(0) {
@@ -113180,7 +114936,7 @@ func Xsqlite3VtabFinishParse(tls *crt.TLS, pParse uintptr, pEnd uintptr) { /* sq
if pEnd != 0 {
(*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fn = (uint32((int32((int64((*Token)(unsafe.Pointer(pEnd)).Fz) - int64((*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) / 1))) + (*Token)(unsafe.Pointer(pEnd)).Fn)
}
- zStmt = Xsqlite3MPrintf(tls, db, ts+18494 /* "CREATE VIRTUAL T..." */, crt.VaList(bp, (pParse+248 /* &.sNameToken */)))
+ zStmt = Xsqlite3MPrintf(tls, db, ts+18966 /* "CREATE VIRTUAL T..." */, crt.VaList(bp, (pParse+248 /* &.sNameToken */)))
// A slot for the record has already been allocated in the
// SQLITE_MASTER table. We just need to update that slot with all
@@ -113192,8 +114948,8 @@ func Xsqlite3VtabFinishParse(tls *crt.TLS, pParse uintptr, pEnd uintptr) { /* sq
iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
Xsqlite3NestedParse(tls, pParse,
- ts+18518, /* "UPDATE %Q.%s SET..." */
- crt.VaList(bp+8, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5216, /* "sqlite_master" */
+ ts+18990, /* "UPDATE %Q.%s SET..." */
+ crt.VaList(bp+8, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, ts+5324, /* "sqlite_master" */
(*Table)(unsafe.Pointer(pTab)).FzName,
(*Table)(unsafe.Pointer(pTab)).FzName,
zStmt,
@@ -113202,7 +114958,7 @@ func Xsqlite3VtabFinishParse(tls *crt.TLS, pParse uintptr, pEnd uintptr) { /* sq
Xsqlite3ChangeCookie(tls, pParse, iDb)
Xsqlite3VdbeAddOp0(tls, v, 158)
- zWhere = Xsqlite3MPrintf(tls, db, ts+18606 /* "name=%Q AND sql=..." */, crt.VaList(bp+56, (*Table)(unsafe.Pointer(pTab)).FzName, zStmt))
+ zWhere = Xsqlite3MPrintf(tls, db, ts+19078 /* "name=%Q AND sql=..." */, crt.VaList(bp+56, (*Table)(unsafe.Pointer(pTab)).FzName, zStmt))
Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere)
Xsqlite3DbFree(tls, db, zStmt)
@@ -113267,7 +115023,7 @@ func vtabCallConstructor(tls *crt.TLS, db uintptr, pTab uintptr, pMod uintptr, x
for pCtx = (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx; pCtx != 0; pCtx = (*VtabCtx)(unsafe.Pointer(pCtx)).FpPrior {
if (*VtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab {
*(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db,
- ts+18625 /* "vtable construct..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ ts+19097 /* "vtable construct..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
return 6
}
}
@@ -113305,9 +115061,9 @@ func vtabCallConstructor(tls *crt.TLS, db uintptr, pTab uintptr, pMod uintptr, x
if 0 != rc {
if *(*uintptr)(unsafe.Pointer(bp + 64 /* zErr */)) == uintptr(0) {
- *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+18667 /* "vtable construct..." */, crt.VaList(bp+8, zModuleName))
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+19139 /* "vtable construct..." */, crt.VaList(bp+8, zModuleName))
} else {
- *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+647 /* "%s" */, crt.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp + 64 /* zErr */))))
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+696 /* "%s" */, crt.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp + 64 /* zErr */))))
Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 64 /* zErr */)))
}
Xsqlite3DbFree(tls, db, pVTable)
@@ -113319,7 +115075,7 @@ func vtabCallConstructor(tls *crt.TLS, db uintptr, pTab uintptr, pMod uintptr, x
(*Module)(unsafe.Pointer(pMod)).FnRefModule++
(*VTable)(unsafe.Pointer(pVTable)).FnRef = 1
if (*VtabCtx)(unsafe.Pointer(bp+32 /* &sCtx */)).FbDeclared == 0 {
- var zFormat uintptr = ts + 18697 /* "vtable construct..." */
+ var zFormat uintptr = ts + 19169 /* "vtable construct..." */
*(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, zFormat, crt.VaList(bp+24, (*Table)(unsafe.Pointer(pTab)).FzName))
Xsqlite3VtabUnlock(tls, pVTable)
rc = 1
@@ -113335,12 +115091,12 @@ func vtabCallConstructor(tls *crt.TLS, db uintptr, pTab uintptr, pMod uintptr, x
(*Table)(unsafe.Pointer(pTab)).FpVTable = pVTable
for iCol = 0; iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol); iCol++ {
- var zType uintptr = Xsqlite3ColumnType(tls, ((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*32), ts+623 /* "" */)
+ var zType uintptr = Xsqlite3ColumnType(tls, ((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*32), ts+672 /* "" */)
var nType int32
var i int32 = 0
nType = Xsqlite3Strlen30(tls, zType)
for i = 0; i < nType; i++ {
- if ((0 == Xsqlite3_strnicmp(tls, ts+13816 /* "hidden" */, (zType+uintptr(i)), 6)) &&
+ if ((0 == Xsqlite3_strnicmp(tls, ts+14196 /* "hidden" */, (zType+uintptr(i)), 6)) &&
((i == 0) || (int32(*(*int8)(unsafe.Pointer(zType + uintptr((i - 1))))) == ' '))) &&
((int32(*(*int8)(unsafe.Pointer(zType + uintptr((i + 6))))) == 0) || (int32(*(*int8)(unsafe.Pointer(zType + uintptr((i + 6))))) == ' ')) {
break
@@ -113394,17 +115150,17 @@ func Xsqlite3VtabCallConnect(tls *crt.TLS, pParse uintptr, pTab uintptr) int32 {
// Locate the required virtual table module
zMod = *(*uintptr)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FazModuleArg + uintptr(0)*8))
- pMod = Xsqlite3HashFind(tls, (db + 488 /* &.aModule */), zMod)
+ pMod = Xsqlite3HashFind(tls, (db + 504 /* &.aModule */), zMod)
if !(pMod != 0) {
var zModule uintptr = *(*uintptr)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FazModuleArg + uintptr(0)*8))
- Xsqlite3ErrorMsg(tls, pParse, ts+18743 /* "no such module: ..." */, crt.VaList(bp, zModule))
+ Xsqlite3ErrorMsg(tls, pParse, ts+19215 /* "no such module: ..." */, crt.VaList(bp, zModule))
rc = 1
} else {
*(*uintptr)(unsafe.Pointer(bp + 16 /* zErr */)) = uintptr(0)
rc = vtabCallConstructor(tls, db, pTab, pMod, (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp+16 /* &zErr */)
if rc != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+647 /* "%s" */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 16 /* zErr */))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+696 /* "%s" */, crt.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 16 /* zErr */))))
(*Parse)(unsafe.Pointer(pParse)).Frc = rc
}
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 16 /* zErr */)))
@@ -113460,13 +115216,13 @@ func Xsqlite3VtabCallCreate(tls *crt.TLS, db uintptr, iDb int32, zTab uintptr, p
// Locate the required virtual table module
zMod = *(*uintptr)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FazModuleArg + uintptr(0)*8))
- pMod = Xsqlite3HashFind(tls, (db + 488 /* &.aModule */), zMod)
+ pMod = Xsqlite3HashFind(tls, (db + 504 /* &.aModule */), zMod)
// If the module has been registered and includes a Create method,
// invoke it now. If the module has not been registered, return an
// error. Otherwise, do nothing.
if ((pMod == uintptr(0)) || ((*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0))) || ((*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0)) {
- *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+18743 /* "no such module: ..." */, crt.VaList(bp, zMod))
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+19215 /* "no such module: ..." */, crt.VaList(bp, zMod))
rc = 1
} else {
rc = vtabCallConstructor(tls, db, pTab, pMod, (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr)
@@ -113543,7 +115299,7 @@ func Xsqlite3_declare_vtab(tls *crt.TLS, db uintptr, zCreateTable uintptr) int32
} else {
Xsqlite3ErrorWithMsg(tls, db, 1, func() uintptr {
if *(*uintptr)(unsafe.Pointer(bp + 432 /* zErr */)) != 0 {
- return ts + 647 /* "%s" */
+ return ts + 696 /* "%s" */
}
return uintptr(0)
}(), crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 432 /* zErr */))))
@@ -113914,7 +115670,7 @@ func Xsqlite3VtabEponymousTableInit(tls *crt.TLS, pParse uintptr, pMod uintptr)
addModuleArgument(tls, pParse, pTab, Xsqlite3DbStrDup(tls, db, (*Table)(unsafe.Pointer(pTab)).FzName))
rc = vtabCallConstructor(tls, db, pTab, pMod, (*Sqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp+8 /* &zErr */)
if rc != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+647 /* "%s" */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErr */))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+696 /* "%s" */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErr */))))
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8 /* zErr */)))
Xsqlite3VtabEponymousTableClear(tls, db, pMod)
return 0
@@ -114255,10 +116011,10 @@ type WhereExprMod = WhereExprMod1 /* sqlite3.c:140749:29 */
func explainIndexColumnName(tls *crt.TLS, pIdx uintptr, i int32) uintptr { /* sqlite3.c:140927:19: */
i = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)))
if i == (-2) {
- return ts + 18762 /* "<expr>" */
+ return ts + 19234 /* "<expr>" */
}
if i == (-1) {
- return ts + 13903 /* "rowid" */
+ return ts + 14283 /* "rowid" */
}
return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*32)).FzName
}
@@ -114273,35 +116029,35 @@ func explainAppendTerm(tls *crt.TLS, pStr uintptr, pIdx uintptr, nTerm int32, iT
var i int32
if bAnd != 0 {
- Xsqlite3_str_append(tls, pStr, ts+18769 /* " AND " */, 5)
+ Xsqlite3_str_append(tls, pStr, ts+19241 /* " AND " */, 5)
}
if nTerm > 1 {
- Xsqlite3_str_append(tls, pStr, ts+18775 /* "(" */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+19247 /* "(" */, 1)
}
for i = 0; i < nTerm; i++ {
if i != 0 {
- Xsqlite3_str_append(tls, pStr, ts+10780 /* "," */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+11166 /* "," */, 1)
}
Xsqlite3_str_appendall(tls, pStr, explainIndexColumnName(tls, pIdx, (iTerm+i)))
}
if nTerm > 1 {
- Xsqlite3_str_append(tls, pStr, ts+4348 /* ")" */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+4456 /* ")" */, 1)
}
Xsqlite3_str_append(tls, pStr, zOp, 1)
if nTerm > 1 {
- Xsqlite3_str_append(tls, pStr, ts+18775 /* "(" */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+19247 /* "(" */, 1)
}
for i = 0; i < nTerm; i++ {
if i != 0 {
- Xsqlite3_str_append(tls, pStr, ts+10780 /* "," */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+11166 /* "," */, 1)
}
- Xsqlite3_str_append(tls, pStr, ts+4399 /* "?" */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+4507 /* "?" */, 1)
}
if nTerm > 1 {
- Xsqlite3_str_append(tls, pStr, ts+4348 /* ")" */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+4456 /* ")" */, 1)
}
}
@@ -114342,17 +116098,17 @@ func explainIndexRange(tls *crt.TLS, pStr uintptr, pLoop uintptr) { /* sqlite3.c
if (int32(nEq) == 0) && (((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags & (U32(0x00000020 | 0x00000010))) == U32(0)) {
return
}
- Xsqlite3_str_append(tls, pStr, ts+18777 /* " (" */, 2)
+ Xsqlite3_str_append(tls, pStr, ts+19249 /* " (" */, 2)
for i = 0; i < int32(nEq); i++ {
var z uintptr = explainIndexColumnName(tls, pIndex, i)
if i != 0 {
- Xsqlite3_str_append(tls, pStr, ts+18769 /* " AND " */, 5)
+ Xsqlite3_str_append(tls, pStr, ts+19241 /* " AND " */, 5)
}
Xsqlite3_str_appendf(tls, pStr, func() uintptr {
if i >= int32(nSkip) {
- return ts + 18780 /* "%s=?" */
+ return ts + 19252 /* "%s=?" */
}
- return ts + 18785 /* "ANY(%s)" */
+ return ts + 19257 /* "ANY(%s)" */
}(), crt.VaList(bp, z))
}
@@ -114364,7 +116120,7 @@ func explainIndexRange(tls *crt.TLS, pStr uintptr, pLoop uintptr) { /* sqlite3.c
FnTop U16
FnDistinctCol U16
FpIndex uintptr
- })(unsafe.Pointer(pLoop+24 /* &.u */)).FnBtm), j, i, ts+18793 /* ">" */)
+ })(unsafe.Pointer(pLoop+24 /* &.u */)).FnBtm), j, i, ts+19265 /* ">" */)
i = 1
}
if ((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags & U32(0x00000010)) != 0 {
@@ -114374,9 +116130,9 @@ func explainIndexRange(tls *crt.TLS, pStr uintptr, pLoop uintptr) { /* sqlite3.c
FnTop U16
FnDistinctCol U16
FpIndex uintptr
- })(unsafe.Pointer(pLoop+24 /* &.u */)).FnTop), j, i, ts+18795 /* "<" */)
+ })(unsafe.Pointer(pLoop+24 /* &.u */)).FnTop), j, i, ts+19267 /* "<" */)
}
- Xsqlite3_str_append(tls, pStr, ts+4348 /* ")" */, 1)
+ Xsqlite3_str_append(tls, pStr, ts+4456 /* ")" */, 1)
}
// This function is a no-op unless currently processing an EXPLAIN QUERY PLAN
@@ -114428,18 +116184,18 @@ func Xsqlite3WhereExplainOneScan(tls *crt.TLS, pParse uintptr, pTabList uintptr,
Xsqlite3StrAccumInit(tls, bp+56 /* &str */, db, bp+88 /* &zBuf[0] */, int32(unsafe.Sizeof([100]int8{})), 1000000000)
Xsqlite3_str_appendall(tls, bp+56 /* &str */, func() uintptr {
if isSearch != 0 {
- return ts + 18797 /* "SEARCH" */
+ return ts + 19269 /* "SEARCH" */
}
- return ts + 18804 /* "SCAN" */
+ return ts + 19276 /* "SCAN" */
}())
if (*SrcList_item)(unsafe.Pointer(pItem)).FpSelect != 0 {
- Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+18809 /* " SUBQUERY %u" */, crt.VaList(bp, (*Select)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pItem)).FpSelect)).FselId))
+ Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+19281 /* " SUBQUERY %u" */, crt.VaList(bp, (*Select)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pItem)).FpSelect)).FselId))
} else {
- Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+18822 /* " TABLE %s" */, crt.VaList(bp+8, (*SrcList_item)(unsafe.Pointer(pItem)).FzName))
+ Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+19294 /* " TABLE %s" */, crt.VaList(bp+8, (*SrcList_item)(unsafe.Pointer(pItem)).FzName))
}
if (*SrcList_item)(unsafe.Pointer(pItem)).FzAlias != 0 {
- Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+18832 /* " AS %s" */, crt.VaList(bp+16, (*SrcList_item)(unsafe.Pointer(pItem)).FzAlias))
+ Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+19304 /* " AS %s" */, crt.VaList(bp+16, (*SrcList_item)(unsafe.Pointer(pItem)).FzAlias))
}
if (flags & (U32(0x00000100 | 0x00000400))) == U32(0) {
var zFmt uintptr = uintptr(0)
@@ -114455,38 +116211,38 @@ func Xsqlite3WhereExplainOneScan(tls *crt.TLS, pParse uintptr, pTabList uintptr,
if !(((*Table)(unsafe.Pointer(((*SrcList_item)(unsafe.Pointer(pItem)).FpTab))).FtabFlags & U32(0x0080)) == U32(0)) && (int32(*(*uint16)(unsafe.Pointer((pIdx) + 100 /* &.idxType */))&0x3>>0) == 2) {
if isSearch != 0 {
- zFmt = ts + 18839 /* "PRIMARY KEY" */
+ zFmt = ts + 19311 /* "PRIMARY KEY" */
}
} else if (flags & U32(0x00020000)) != 0 {
- zFmt = ts + 18851 /* "AUTOMATIC PARTIA..." */
+ zFmt = ts + 19323 /* "AUTOMATIC PARTIA..." */
} else if (flags & U32(0x00004000)) != 0 {
- zFmt = ts + 18884 /* "AUTOMATIC COVERI..." */
+ zFmt = ts + 19356 /* "AUTOMATIC COVERI..." */
} else if (flags & U32(0x00000040)) != 0 {
- zFmt = ts + 18909 /* "COVERING INDEX %..." */
+ zFmt = ts + 19381 /* "COVERING INDEX %..." */
} else {
- zFmt = ts + 18927 /* "INDEX %s" */
+ zFmt = ts + 19399 /* "INDEX %s" */
}
if zFmt != 0 {
- Xsqlite3_str_append(tls, bp+56 /* &str */, ts+18936 /* " USING " */, 7)
+ Xsqlite3_str_append(tls, bp+56 /* &str */, ts+19408 /* " USING " */, 7)
Xsqlite3_str_appendf(tls, bp+56 /* &str */, zFmt, crt.VaList(bp+24, (*Index)(unsafe.Pointer(pIdx)).FzName))
explainIndexRange(tls, bp+56 /* &str */, pLoop)
}
} else if ((flags & U32(0x00000100)) != U32(0)) && ((flags & U32(0x0000000f)) != U32(0)) {
var zRangeOp uintptr
if (flags & (U32(0x00000001 | 0x00000004))) != 0 {
- zRangeOp = ts + 18944 /* "=" */
+ zRangeOp = ts + 19416 /* "=" */
} else if (flags & U32(0x00000030)) == U32(0x00000030) {
- zRangeOp = ts + 18946 /* ">? AND rowid<" */
+ zRangeOp = ts + 19418 /* ">? AND rowid<" */
} else if (flags & U32(0x00000020)) != 0 {
- zRangeOp = ts + 18793 /* ">" */
+ zRangeOp = ts + 19265 /* ">" */
} else {
- zRangeOp = ts + 18795 /* "<" */
+ zRangeOp = ts + 19267 /* "<" */
}
Xsqlite3_str_appendf(tls, bp+56, /* &str */
- ts+18960 /* " USING INTEGER P..." */, crt.VaList(bp+32, zRangeOp))
+ ts+19432 /* " USING INTEGER P..." */, crt.VaList(bp+32, zRangeOp))
} else if (flags & U32(0x00000400)) != U32(0) {
- Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+18998, /* " VIRTUAL TABLE I..." */
+ Xsqlite3_str_appendf(tls, bp+56 /* &str */, ts+19470, /* " VIRTUAL TABLE I..." */
crt.VaList(bp+40, (*struct {
FidxNum int32
FneedFree U8
@@ -116133,7 +117889,7 @@ func Xsqlite3WhereCodeOneLoopStart(tls *crt.TLS, pParse uintptr, v uintptr, pWIn
// eliminating duplicates from other WHERE clauses, the action for each
// sub-WHERE clause is to to invoke the main loop body as a subroutine.
wctrlFlags = (U16(0x0020 | (int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags) & 0x0400)))
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19025 /* "MULTI-INDEX OR" */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19497 /* "MULTI-INDEX OR" */, 0)
for ii = 0; ii < (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm; ii++ {
var pOrTerm uintptr = ((*WhereClause)(unsafe.Pointer(pOrWc)).Fa + uintptr(ii)*64)
if ((*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor == iCur) || ((int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FeOperator) & 0x0400) != 0) {
@@ -116146,7 +117902,7 @@ func Xsqlite3WhereCodeOneLoopStart(tls *crt.TLS, pParse uintptr, v uintptr, pWIn
pOrExpr = pAndExpr
}
// Loop through table entries that match term pOrTerm.
- Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19040 /* "INDEX %d" */, crt.VaList(bp, (ii+1)))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19512 /* "INDEX %d" */, crt.VaList(bp, (ii+1)))
pSubWInfo = Xsqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0),
wctrlFlags, iCovCur)
@@ -116902,10 +118658,10 @@ type Op2 = struct {
}
var aOp = [4]Op2{
- {FzOp: ts + 13774 /* "match" */, FeOp2: uint8(64)},
- {FzOp: ts + 13254 /* "glob" */, FeOp2: uint8(66)},
- {FzOp: ts + 12836 /* "like" */, FeOp2: uint8(65)},
- {FzOp: ts + 19049 /* "regexp" */, FeOp2: uint8(67)},
+ {FzOp: ts + 14154 /* "match" */, FeOp2: uint8(64)},
+ {FzOp: ts + 13634 /* "glob" */, FeOp2: uint8(66)},
+ {FzOp: ts + 13216 /* "like" */, FeOp2: uint8(65)},
+ {FzOp: ts + 19521 /* "regexp" */, FeOp2: uint8(67)},
} /* sqlite3.c:143730:7 */
// If the pBase expression originated in the ON or USING clause of
@@ -117594,7 +119350,7 @@ func exprAnalyze(tls *crt.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { /* sq
extraRight = (x - uint64(1)) // ON clause terms may not be used with an index
// on left table of a LEFT JOIN. Ticket #3015
if (prereqAll >> 1) >= x {
- Xsqlite3ErrorMsg(tls, pParse, ts+19056 /* "ON clause refere..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+19528 /* "ON clause refere..." */, 0)
return
}
}
@@ -117750,7 +119506,7 @@ func exprAnalyze(tls *crt.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { /* sq
}
zCollSeqName = func() uintptr {
if *(*int32)(unsafe.Pointer(bp + 20 /* noCase */)) != 0 {
- return ts + 19097 /* "NOCASE" */
+ return ts + 19569 /* "NOCASE" */
}
return uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
}()
@@ -118064,7 +119820,7 @@ func Xsqlite3WhereTabFuncArgs(tls *crt.TLS, pParse uintptr, pItem uintptr, pWC u
k++
}
if k >= int32((*Table)(unsafe.Pointer(pTab)).FnCol) {
- Xsqlite3ErrorMsg(tls, pParse, ts+19104, /* "too many argumen..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+19576, /* "too many argumen..." */
crt.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName, j))
return
}
@@ -118843,7 +120599,7 @@ __4:
goto __6
}
Xsqlite3_log(tls, (28 | (int32(1) << 8)),
- ts+19140 /* "automatic index ..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName,
+ ts+19612 /* "automatic index ..." */, crt.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName,
(*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTable)).FaCol+uintptr(iCol)*32)).FzName))
sentWarning = U8(1)
__6:
@@ -118936,7 +120692,7 @@ __14:
FnDistinctCol U16
FpIndex uintptr
})(unsafe.Pointer(pLoop + 24 /* &.u */)).FpIndex = pIdx
- (*Index)(unsafe.Pointer(pIdx)).FzName = ts + 19166 /* "auto-index" */
+ (*Index)(unsafe.Pointer(pIdx)).FzName = ts + 19638 /* "auto-index" */
(*Index)(unsafe.Pointer(pIdx)).FpTable = pTable
n = 0
idxCols = uint64(0)
@@ -119168,7 +120924,7 @@ __3:
((uint64(unsafe.Sizeof(sqlite3_index_constraint{})) + uint64(unsafe.Sizeof(sqlite3_index_constraint_usage{}))) * uint64(nTerm))) +
(uint64(unsafe.Sizeof(sqlite3_index_orderby{})) * uint64(nOrderBy))) + uint64(unsafe.Sizeof(HiddenIndexInfo1{})))))
if pIdxInfo == uintptr(0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+5441 /* "out of memory" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+5549 /* "out of memory" */, 0)
return uintptr(0)
}
pHidden = (pIdxInfo + uintptr(1)*96)
@@ -119294,9 +121050,9 @@ func vtabBestIndex(tls *crt.TLS, pParse uintptr, pTab uintptr, p uintptr) int32
if rc == 7 {
Xsqlite3OomFault(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb)
} else if !(int32((*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg) != 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+647 /* "%s" */, crt.VaList(bp, Xsqlite3ErrStr(tls, rc)))
+ Xsqlite3ErrorMsg(tls, pParse, ts+696 /* "%s" */, crt.VaList(bp, Xsqlite3ErrStr(tls, rc)))
} else {
- Xsqlite3ErrorMsg(tls, pParse, ts+647 /* "%s" */, crt.VaList(bp+8, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg))
+ Xsqlite3ErrorMsg(tls, pParse, ts+696 /* "%s" */, crt.VaList(bp+8, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg))
}
}
Xsqlite3_free(tls, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)
@@ -120967,7 +122723,7 @@ __4:
(j >= (*WhereClause)(unsafe.Pointer(pWC)).FnTerm)) ||
(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0))) ||
(int32((*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+19177 /* "%s.xBestIndex ma..." */, crt.VaList(bp, (*Table)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pSrc)).FpTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+19649 /* "%s.xBestIndex ma..." */, crt.VaList(bp, (*Table)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pSrc)).FpTab)).FzName))
return 1
}
@@ -121013,7 +122769,7 @@ __6:
if *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) {
// The non-zero argvIdx values must be contiguous. Raise an
// error if they are not
- Xsqlite3ErrorMsg(tls, pParse, ts+19177 /* "%s.xBestIndex ma..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pSrc)).FpTab)).FzName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+19649 /* "%s.xBestIndex ma..." */, crt.VaList(bp+8, (*Table)(unsafe.Pointer((*SrcList_item)(unsafe.Pointer(pSrc)).FpTab)).FzName))
return 1
}
@@ -121449,7 +123205,7 @@ __1:
if (rc != 0) || ((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
if rc == 101 {
// We hit the query planner search limit set by iPlanLimit
- Xsqlite3_log(tls, 28, ts+19203 /* "abbreviated quer..." */, 0)
+ Xsqlite3_log(tls, 28, ts+19675 /* "abbreviated quer..." */, 0)
rc = 0
} else {
goto __3
@@ -122235,7 +123991,7 @@ __3:
}
if nFrom == 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+19238 /* "no query solutio..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+19710 /* "no query solutio..." */, 0)
Xsqlite3DbFreeNN(tls, db, pSpace)
return 1
}
@@ -122629,7 +124385,7 @@ __2:
if !((*SrcList)(unsafe.Pointer(pTabList)).FnSrc > (int32(uint64(unsafe.Sizeof(Bitmask(0))) * uint64(8)))) {
goto __3
}
- Xsqlite3ErrorMsg(tls, pParse, ts+19256 /* "at most %d table..." */, crt.VaList(bp, (int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+19728 /* "at most %d table..." */, crt.VaList(bp, (int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)))))
return uintptr(0)
__3:
;
@@ -122704,7 +124460,7 @@ __7:
(*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(1)
__8:
;
- Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+19284 /* "SCAN CONSTANT RO..." */, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+19756 /* "SCAN CONSTANT RO..." */, 0)
goto __6
__5:
// Assign a bit from the bitmask to every term in the FROM clause.
@@ -123821,7 +125577,7 @@ __1:
error_out:
Xsqlite3_result_error(tls,
- pCtx, ts+19302 /* "second argument ..." */, -1)
+ pCtx, ts+19774 /* "second argument ..." */, -1)
}
func nth_valueFinalizeFunc(tls *crt.TLS, pCtx uintptr) { /* sqlite3.c:150779:13: */
var p uintptr
@@ -123963,7 +125719,7 @@ func ntileStepFunc(tls *crt.TLS, pCtx uintptr, nArg int32, apArg uintptr) { /* s
(*NtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg + uintptr(0)*8)))
if (*NtileCtx)(unsafe.Pointer(p)).FnParam <= int64(0) {
Xsqlite3_result_error(tls,
- pCtx, ts+19358 /* "argument of ntil..." */, -1)
+ pCtx, ts+19830 /* "argument of ntil..." */, -1)
}
}
(*NtileCtx)(unsafe.Pointer(p)).FnTotal++
@@ -124055,17 +125811,17 @@ func last_valueFinalizeFunc(tls *crt.TLS, pCtx uintptr) { /* sqlite3.c:151058:13
// comparison of the zName pointer. Example:
//
// if( pFuncDef->zName==row_valueName ){ ... }
-var row_numberName = *(*[11]int8)(unsafe.Pointer(ts + 19403 /* "row_number" */)) /* sqlite3.c:151076:19 */
-var dense_rankName = *(*[11]int8)(unsafe.Pointer(ts + 19414 /* "dense_rank" */)) /* sqlite3.c:151077:19 */
-var rankName = *(*[5]int8)(unsafe.Pointer(ts + 19425 /* "rank" */)) /* sqlite3.c:151078:19 */
-var percent_rankName = *(*[13]int8)(unsafe.Pointer(ts + 19430 /* "percent_rank" */)) /* sqlite3.c:151079:19 */
-var cume_distName = *(*[10]int8)(unsafe.Pointer(ts + 19443 /* "cume_dist" */)) /* sqlite3.c:151080:19 */
-var ntileName = *(*[6]int8)(unsafe.Pointer(ts + 19453 /* "ntile" */)) /* sqlite3.c:151081:19 */
-var last_valueName = *(*[11]int8)(unsafe.Pointer(ts + 19459 /* "last_value" */)) /* sqlite3.c:151082:19 */
-var nth_valueName = *(*[10]int8)(unsafe.Pointer(ts + 19470 /* "nth_value" */)) /* sqlite3.c:151083:19 */
-var first_valueName = *(*[12]int8)(unsafe.Pointer(ts + 19480 /* "first_value" */)) /* sqlite3.c:151084:19 */
-var leadName = *(*[5]int8)(unsafe.Pointer(ts + 19492 /* "lead" */)) /* sqlite3.c:151085:19 */
-var lagName = *(*[4]int8)(unsafe.Pointer(ts + 19497 /* "lag" */)) /* sqlite3.c:151086:19 */
+var row_numberName = *(*[11]int8)(unsafe.Pointer(ts + 19875 /* "row_number" */)) /* sqlite3.c:151076:19 */
+var dense_rankName = *(*[11]int8)(unsafe.Pointer(ts + 19886 /* "dense_rank" */)) /* sqlite3.c:151077:19 */
+var rankName = *(*[5]int8)(unsafe.Pointer(ts + 19897 /* "rank" */)) /* sqlite3.c:151078:19 */
+var percent_rankName = *(*[13]int8)(unsafe.Pointer(ts + 19902 /* "percent_rank" */)) /* sqlite3.c:151079:19 */
+var cume_distName = *(*[10]int8)(unsafe.Pointer(ts + 19915 /* "cume_dist" */)) /* sqlite3.c:151080:19 */
+var ntileName = *(*[6]int8)(unsafe.Pointer(ts + 19925 /* "ntile" */)) /* sqlite3.c:151081:19 */
+var last_valueName = *(*[11]int8)(unsafe.Pointer(ts + 19931 /* "last_value" */)) /* sqlite3.c:151082:19 */
+var nth_valueName = *(*[10]int8)(unsafe.Pointer(ts + 19942 /* "nth_value" */)) /* sqlite3.c:151083:19 */
+var first_valueName = *(*[12]int8)(unsafe.Pointer(ts + 19952 /* "first_value" */)) /* sqlite3.c:151084:19 */
+var leadName = *(*[5]int8)(unsafe.Pointer(ts + 19964 /* "lead" */)) /* sqlite3.c:151085:19 */
+var lagName = *(*[4]int8)(unsafe.Pointer(ts + 19969 /* "lag" */)) /* sqlite3.c:151086:19 */
// No-op implementations of xStep() and xFinalize(). Used as place-holders
// for built-in window functions that never call those interfaces.
@@ -124126,7 +125882,7 @@ func windowFind(tls *crt.TLS, pParse uintptr, pList uintptr, zName uintptr) uint
}
}
if p == uintptr(0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+19501 /* "no such window: ..." */, crt.VaList(bp, zName))
+ Xsqlite3ErrorMsg(tls, pParse, ts+19973 /* "no such window: ..." */, crt.VaList(bp, zName))
}
return p
}
@@ -124170,12 +125926,12 @@ func Xsqlite3WindowUpdate(tls *crt.TLS, pParse uintptr, pList uintptr, pWin uint
(((*Window)(unsafe.Pointer(pWin)).FpStart != 0) || ((*Window)(unsafe.Pointer(pWin)).FpEnd != 0))) &&
(((*Window)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0)) || ((*ExprList)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != 1)) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+19520 /* "RANGE with offse..." */, 0)
+ ts+19992 /* "RANGE with offse..." */, 0)
} else if ((*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags & U32(0x00010000)) != 0 {
var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
if (*Window)(unsafe.Pointer(pWin)).FpFilter != 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+19591 /* "FILTER clause ma..." */, 0)
+ ts+20063 /* "FILTER clause ma..." */, 0)
} else {
*(*[8]WindowUpdate)(unsafe.Pointer(bp /* aUp */)) = [8]WindowUpdate{
{FzFunc: uintptr(unsafe.Pointer(&row_numberName)), FeFrmType: 76, FeStart: 90, FeEnd: 85},
@@ -124198,7 +125954,7 @@ func Xsqlite3WindowUpdate(tls *crt.TLS, pParse uintptr, pList uintptr, pWin uint
(*Window)(unsafe.Pointer(pWin)).FeEnd = U8((*WindowUpdate)(unsafe.Pointer(bp /* &aUp */ + uintptr(i)*24)).FeEnd)
(*Window)(unsafe.Pointer(pWin)).FeExclude = U8(0)
if int32((*Window)(unsafe.Pointer(pWin)).FeStart) == 86 {
- (*Window)(unsafe.Pointer(pWin)).FpStart = Xsqlite3Expr(tls, db, 152, ts+7125 /* "1" */)
+ (*Window)(unsafe.Pointer(pWin)).FpStart = Xsqlite3Expr(tls, db, 152, ts+7523 /* "1" */)
}
break
}
@@ -124540,7 +126296,7 @@ func Xsqlite3WindowRewrite(tls *crt.TLS, pParse uintptr, p uintptr) int32 { /* s
// keep everything legal in this case.
if *(*uintptr)(unsafe.Pointer(bp + 48 /* pSublist */)) == uintptr(0) {
*(*uintptr)(unsafe.Pointer(bp + 48 /* pSublist */)) = Xsqlite3ExprListAppend(tls, pParse, uintptr(0),
- Xsqlite3Expr(tls, db, 152, ts+6707 /* "0" */))
+ Xsqlite3Expr(tls, db, 152, ts+7105 /* "0" */))
}
pSub = Xsqlite3SelectNew(tls,
@@ -124680,7 +126436,7 @@ __1:
((eStart == 86) && ((eEnd == 88) || (eEnd == 85)))) {
goto __2
}
- Xsqlite3ErrorMsg(tls, pParse, ts+19654 /* "unsupported fram..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+20126 /* "unsupported fram..." */, 0)
goto windowAllocErr
__2:
;
@@ -124746,15 +126502,15 @@ func Xsqlite3WindowChain(tls *crt.TLS, pParse uintptr, pWin uintptr, pList uintp
var zErr uintptr = uintptr(0)
// Check for errors
if (*Window)(unsafe.Pointer(pWin)).FpPartition != 0 {
- zErr = ts + 19686 /* "PARTITION clause" */
+ zErr = ts + 20158 /* "PARTITION clause" */
} else if ((*Window)(unsafe.Pointer(pExist)).FpOrderBy != 0) && ((*Window)(unsafe.Pointer(pWin)).FpOrderBy != 0) {
- zErr = ts + 19703 /* "ORDER BY clause" */
+ zErr = ts + 20175 /* "ORDER BY clause" */
} else if int32((*Window)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 {
- zErr = ts + 19719 /* "frame specificat..." */
+ zErr = ts + 20191 /* "frame specificat..." */
}
if zErr != 0 {
Xsqlite3ErrorMsg(tls, pParse,
- ts+19739 /* "cannot override ..." */, crt.VaList(bp, zErr, (*Window)(unsafe.Pointer(pWin)).FzBase))
+ ts+20211 /* "cannot override ..." */, crt.VaList(bp, zErr, (*Window)(unsafe.Pointer(pWin)).FzBase))
} else {
(*Window)(unsafe.Pointer(pWin)).FpPartition = Xsqlite3ExprListDup(tls, db, (*Window)(unsafe.Pointer(pExist)).FpPartition, 0)
if (*Window)(unsafe.Pointer(pExist)).FpOrderBy != 0 {
@@ -124777,7 +126533,7 @@ func Xsqlite3WindowAttach(tls *crt.TLS, pParse uintptr, p uintptr, pWin uintptr)
(*Window)(unsafe.Pointer(pWin)).FpOwner = p
if (((*Expr)(unsafe.Pointer(p)).Fflags & U32(0x000002)) != 0) && (int32((*Window)(unsafe.Pointer(pWin)).FeFrmType) != 163) {
Xsqlite3ErrorMsg(tls, pParse,
- ts+19772 /* "DISTINCT is not ..." */, 0)
+ ts+20244 /* "DISTINCT is not ..." */, 0)
}
} else {
Xsqlite3WindowDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pWin)
@@ -124923,7 +126679,7 @@ func windowCheckValue(tls *crt.TLS, pParse uintptr, reg int32, eCond int32) { /*
Xsqlite3VdbeAddOp2(tls, v, 69, 0, regZero)
if eCond >= 3 {
var regString int32 = Xsqlite3GetTempReg(tls, pParse)
- Xsqlite3VdbeAddOp4(tls, v, 115, 0, regString, 0, ts+623 /* "" */, -1)
+ Xsqlite3VdbeAddOp4(tls, v, 115, 0, regString, 0, ts+672 /* "" */, -1)
Xsqlite3VdbeAddOp3(tls, v, 57, regString, (Xsqlite3VdbeCurrentAddr(tls, v) + 2), reg)
Xsqlite3VdbeChangeP5(tls, v, (uint16(0x43 | 0x10)))
@@ -124944,11 +126700,11 @@ func windowCheckValue(tls *crt.TLS, pParse uintptr, reg int32, eCond int32) { /*
}
var azErr = [5]uintptr{
- ts + 19819, /* "frame starting o..." */
- ts + 19872, /* "frame ending off..." */
- ts + 19302, /* "second argument ..." */
- ts + 19923, /* "frame starting o..." */
- ts + 19975, /* "frame ending off..." */
+ ts + 20291, /* "frame starting o..." */
+ ts + 20344, /* "frame ending off..." */
+ ts + 19774, /* "second argument ..." */
+ ts + 20395, /* "frame starting o..." */
+ ts + 20447, /* "frame ending off..." */
} /* sqlite3.c:151962:21 */
var aOp1 = [5]int32{57, 57, 54, 57, 57} /* sqlite3.c:151969:14 */
@@ -125493,7 +127249,7 @@ func windowCodeRangeTest(tls *crt.TLS, p uintptr, op int32, csr1 int32, regVal i
// the add/subtract is skipped for these, as required. If reg1 is a NULL,
// then the arithmetic is performed, but since adding or subtracting from
// NULL is always NULL anyway, this case is handled as required too.
- Xsqlite3VdbeAddOp4(tls, v, 115, 0, regString, 0, ts+623 /* "" */, -1)
+ Xsqlite3VdbeAddOp4(tls, v, 115, 0, regString, 0, ts+672 /* "" */, -1)
addrGe = Xsqlite3VdbeAddOp3(tls, v, 57, regString, 0, reg1)
Xsqlite3VdbeAddOp3(tls, v, arith, regVal, reg1, reg1)
@@ -126550,7 +128306,7 @@ func parserDoubleLinkSelect(tls *crt.TLS, pParse uintptr, p uintptr) { /* sqlite
__3:
;
if ((((*Select)(unsafe.Pointer(p)).FselFlags & U32(0x0000400)) == U32(0)) && ((crt.AssignInt32(&mxSelect, *(*int32)(unsafe.Pointer(((*Parse)(unsafe.Pointer(pParse)).Fdb + 124 /* &.aLimit */) + uintptr(4)*4)))) > 0)) && (cnt > mxSelect) {
- Xsqlite3ErrorMsg(tls, pParse, ts+20025 /* "too many terms i..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+20497 /* "too many terms i..." */, 0)
}
}
}
@@ -126613,7 +128369,7 @@ func parserAddExprIdListTerm(tls *crt.TLS, pParse uintptr, pPrior uintptr, pIdTo
var p uintptr = Xsqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0))
if ((hasCollate != 0) || (sortOrder != -1)) &&
(int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Finit.Fbusy) == 0) {
- Xsqlite3ErrorMsg(tls, pParse, ts+20059, /* "syntax error aft..." */
+ Xsqlite3ErrorMsg(tls, pParse, ts+20531, /* "syntax error aft..." */
crt.VaList(bp, (*Token)(unsafe.Pointer(pIdToken)).Fn, (*Token)(unsafe.Pointer(pIdToken)).Fz))
}
Xsqlite3ExprListSetName(tls, pParse, p, pIdToken, 1)
@@ -127816,7 +129572,7 @@ func yyStackOverflow(tls *crt.TLS, yypParser uintptr) { /* sqlite3.c:155924:13:
// stack every overflows
//******* Begin %stack_overflow code *****************************************
- Xsqlite3ErrorMsg(tls, pParse, ts+20097 /* "parser stack ove..." */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+20569 /* "parser stack ove..." */, 0)
//******* End %stack_overflow code *******************************************
(*YyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
@@ -128782,11 +130538,11 @@ func yy_reduce(tls *crt.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int
break
case uint32(22): /* table_options ::= WITHOUT nm */
{
- if ((*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fn == uint32(5)) && (Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fz, ts+13903 /* "rowid" */, 5) == 0) {
+ if ((*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fn == uint32(5)) && (Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fz, ts+14283 /* "rowid" */, 5) == 0) {
*(*int32)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)) = (0x0080 | 0x0200)
} else {
*(*int32)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)) = 0
- Xsqlite3ErrorMsg(tls, pParse, ts+20119 /* "unknown table op..." */, crt.VaList(bp, (*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fn, (*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fz))
+ Xsqlite3ErrorMsg(tls, pParse, ts+20591 /* "unknown table op..." */, crt.VaList(bp, (*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fn, (*Token)(unsafe.Pointer(yymsp+uintptr(0)*24+8 /* &.minor */)).Fz))
}
}
break
@@ -129544,7 +131300,7 @@ func yy_reduce(tls *crt.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int
case uint32(151): /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
{
Xsqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-4)*24 + 8 /* &.minor */)), (yymsp + crt.UintptrFromInt32(-3)*24 + 8 /* &.minor */ /* &.yy0 */))
- Xsqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)), ts+20146 /* "set list" */)
+ Xsqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)), ts+20618 /* "set list" */)
Xsqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-4)*24 + 8 /* &.minor */)), *(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(0)*24 + 8 /* &.minor */)), *(*int32)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-5)*24 + 8 /* &.minor */)), uintptr(0), uintptr(0), uintptr(0))
}
break
@@ -129680,7 +131436,7 @@ func yy_reduce(tls *crt.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int
*(*Token)(unsafe.Pointer(bp + 88 /* t */)) = *(*Token)(unsafe.Pointer(yymsp + uintptr(0)*24 + 8 /* &.minor */)) //A-overwrites-X
if int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+20155 /* "near \"%T\": synta..." */, crt.VaList(bp+16, bp+88 /* &t */))
+ Xsqlite3ErrorMsg(tls, pParse, ts+20627 /* "near \"%T\": synta..." */, crt.VaList(bp+16, bp+88 /* &t */))
*(*uintptr)(unsafe.Pointer(yymsp + uintptr(0)*24 + 8 /* &.minor */)) = uintptr(0)
} else {
*(*uintptr)(unsafe.Pointer(yymsp + uintptr(0)*24 + 8 /* &.minor */)) = Xsqlite3PExpr(tls, pParse, 173, uintptr(0), uintptr(0))
@@ -129884,9 +131640,9 @@ func yy_reduce(tls *crt.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int
Xsqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-4)*24 + 8 /* &.minor */)))
*(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-4)*24 + 8 /* &.minor */)) = Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, 152, func() uintptr {
if *(*int32)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-3)*24 + 8 /* &.minor */)) != 0 {
- return ts + 7125 /* "1" */
+ return ts + 7523 /* "1" */
}
- return ts + 6707 /* "0" */
+ return ts + 7105 /* "0" */
}())
} else if ((*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)))).FnExpr == 1) && (Xsqlite3ExprIsConstant(tls, (*ExprList_item)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */))+8 /* &.a */)+uintptr(0)*32)).FpExpr) != 0) {
var pRHS uintptr = (*ExprList_item)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-1)*24 + 8 /* &.minor */)) + 8 /* &.a */) + uintptr(0)*32)).FpExpr
@@ -130156,21 +131912,21 @@ func yy_reduce(tls *crt.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int
*(*Token)(unsafe.Pointer(yymsp + crt.UintptrFromInt32(-2)*24 + 8 /* &.minor */)) = *(*Token)(unsafe.Pointer(yymsp + uintptr(0)*24 + 8 /* &.minor */))
Xsqlite3ErrorMsg(tls, pParse,
- ts+20179 /* "qualified table ..." */, 0)
+ ts+20651 /* "qualified table ..." */, 0)
}
break
case uint32(259): /* tridxby ::= INDEXED BY nm */
{
Xsqlite3ErrorMsg(tls, pParse,
- ts+20274 /* "the INDEXED BY c..." */, 0)
+ ts+20746 /* "the INDEXED BY c..." */, 0)
}
break
case uint32(260): /* tridxby ::= NOT INDEXED */
{
Xsqlite3ErrorMsg(tls, pParse,
- ts+20358 /* "the NOT INDEXED ..." */, 0)
+ ts+20830 /* "the NOT INDEXED ..." */, 0)
}
break
case uint32(261): /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
@@ -130588,9 +132344,9 @@ func yy_syntax_error(tls *crt.TLS, yypParser uintptr, yymajor int32, yyminor Tok
_ = yymajor // Silence some compiler warnings
if *(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(bp+8 /* &yyminor */)).Fz + uintptr(0))) != 0 {
- Xsqlite3ErrorMsg(tls, pParse, ts+20155 /* "near \"%T\": synta..." */, crt.VaList(bp, bp+8 /* &yyminor */))
+ Xsqlite3ErrorMsg(tls, pParse, ts+20627 /* "near \"%T\": synta..." */, crt.VaList(bp, bp+8 /* &yyminor */))
} else {
- Xsqlite3ErrorMsg(tls, pParse, ts+20443 /* "incomplete input" */, 0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+20915 /* "incomplete input" */, 0)
}
//*********** End %syntax_error code *****************************************
@@ -131737,7 +133493,7 @@ func Xsqlite3RunParser(tls *crt.TLS, pParse uintptr, zSql uintptr, pzErrMsg uint
*(*int32)(unsafe.Pointer(bp + 2464 /* tokenType */)) = analyzeFilterKeyword(tls, (zSql + uintptr(6)), lastTokenParsed)
} else {
- Xsqlite3ErrorMsg(tls, pParse, ts+20460 /* "unrecognized tok..." */, crt.VaList(bp, n, zSql))
+ Xsqlite3ErrorMsg(tls, pParse, ts+20932 /* "unrecognized tok..." */, crt.VaList(bp, n, zSql))
break
}
}
@@ -131757,12 +133513,12 @@ func Xsqlite3RunParser(tls *crt.TLS, pParse uintptr, zSql uintptr, pzErrMsg uint
(*Parse)(unsafe.Pointer(pParse)).Frc = 7
}
if (((*Parse)(unsafe.Pointer(pParse)).Frc != 0) && ((*Parse)(unsafe.Pointer(pParse)).Frc != 101)) && ((*Parse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0)) {
- (*Parse)(unsafe.Pointer(pParse)).FzErrMsg = Xsqlite3MPrintf(tls, db, ts+647 /* "%s" */, crt.VaList(bp+16, Xsqlite3ErrStr(tls, (*Parse)(unsafe.Pointer(pParse)).Frc)))
+ (*Parse)(unsafe.Pointer(pParse)).FzErrMsg = Xsqlite3MPrintf(tls, db, ts+696 /* "%s" */, crt.VaList(bp+16, Xsqlite3ErrStr(tls, (*Parse)(unsafe.Pointer(pParse)).Frc)))
}
if (*Parse)(unsafe.Pointer(pParse)).FzErrMsg != 0 {
*(*uintptr)(unsafe.Pointer(pzErrMsg)) = (*Parse)(unsafe.Pointer(pParse)).FzErrMsg
- Xsqlite3_log(tls, (*Parse)(unsafe.Pointer(pParse)).Frc, ts+20487, /* "%s in \"%s\"" */
+ Xsqlite3_log(tls, (*Parse)(unsafe.Pointer(pParse)).Frc, ts+20959, /* "%s in \"%s\"" */
crt.VaList(bp+24, *(*uintptr)(unsafe.Pointer(pzErrMsg)), (*Parse)(unsafe.Pointer(pParse)).FzTail))
(*Parse)(unsafe.Pointer(pParse)).FzErrMsg = uintptr(0)
nErr++
@@ -131982,7 +133738,7 @@ func Xsqlite3_complete(tls *crt.TLS, zSql uintptr) int32 { /* sqlite3.c:160050:1
fallthrough
case 'C':
{
- if (nId == 6) && (Xsqlite3_strnicmp(tls, zSql, ts+20498 /* "create" */, 6) == 0) {
+ if (nId == 6) && (Xsqlite3_strnicmp(tls, zSql, ts+20970 /* "create" */, 6) == 0) {
token = U8(4)
} else {
token = U8(2)
@@ -131994,11 +133750,11 @@ func Xsqlite3_complete(tls *crt.TLS, zSql uintptr) int32 { /* sqlite3.c:160050:1
fallthrough
case 'T':
{
- if (nId == 7) && (Xsqlite3_strnicmp(tls, zSql, ts+17366 /* "trigger" */, 7) == 0) {
+ if (nId == 7) && (Xsqlite3_strnicmp(tls, zSql, ts+17838 /* "trigger" */, 7) == 0) {
token = U8(6)
- } else if (nId == 4) && (Xsqlite3_strnicmp(tls, zSql, ts+20505 /* "temp" */, 4) == 0) {
+ } else if (nId == 4) && (Xsqlite3_strnicmp(tls, zSql, ts+20977 /* "temp" */, 4) == 0) {
token = U8(5)
- } else if (nId == 9) && (Xsqlite3_strnicmp(tls, zSql, ts+20510 /* "temporary" */, 9) == 0) {
+ } else if (nId == 9) && (Xsqlite3_strnicmp(tls, zSql, ts+20982 /* "temporary" */, 9) == 0) {
token = U8(5)
} else {
token = U8(2)
@@ -132010,9 +133766,9 @@ func Xsqlite3_complete(tls *crt.TLS, zSql uintptr) int32 { /* sqlite3.c:160050:1
fallthrough
case 'E':
{
- if (nId == 3) && (Xsqlite3_strnicmp(tls, zSql, ts+20520 /* "end" */, 3) == 0) {
+ if (nId == 3) && (Xsqlite3_strnicmp(tls, zSql, ts+20992 /* "end" */, 3) == 0) {
token = U8(7)
- } else if (nId == 7) && (Xsqlite3_strnicmp(tls, zSql, ts+20524 /* "explain" */, 7) == 0) {
+ } else if (nId == 7) && (Xsqlite3_strnicmp(tls, zSql, ts+20996 /* "explain" */, 7) == 0) {
token = U8(3)
} else {
token = U8(2)
@@ -132053,6 +133809,30 @@ var trans = [8][8]U8{
/* 7 END: */ {U8(1), U8(7), U8(5), U8(5), U8(5), U8(5), U8(5), U8(5)},
} /* sqlite3.c:160058:19 */
+// This routine is the same as the sqlite3_complete() routine described
+// above, except that the parameter is required to be UTF-16 encoded, not
+// UTF-8.
+func Xsqlite3_complete16(tls *crt.TLS, zSql uintptr) int32 { /* sqlite3.c:160215:16: */
+ var pVal uintptr
+ var zSql8 uintptr
+ var rc int32
+
+ rc = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ }
+ pVal = Xsqlite3ValueNew(tls, uintptr(0))
+ Xsqlite3ValueSetStr(tls, pVal, -1, zSql, uint8(2), uintptr(0))
+ zSql8 = Xsqlite3ValueText(tls, pVal, uint8(1))
+ if zSql8 != 0 {
+ rc = Xsqlite3_complete(tls, zSql8)
+ } else {
+ rc = 7
+ }
+ Xsqlite3ValueFree(tls, pVal)
+ return (rc & 0xff)
+}
+
//************* End of complete.c *******************************************
//************* Begin file main.c *******************************************
// 2001 September 15
@@ -132079,12 +133859,12 @@ func sqlite3TestExtInit(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:160368:12
return Xsqlite3FaultSim(tls, 500)
}
-// Forward declarations of external module initializer functions
-// for modules that need them.
-
// An array of pointers to extension initializer functions for
// built-in extensions.
-var sqlite3BuiltinExtensions = [1]uintptr{
+var sqlite3BuiltinExtensions = [4]uintptr{
+ 0,
+ 0,
+ 0,
0,
} /* sqlite3.c:160398:12 */
@@ -132108,7 +133888,7 @@ func Xsqlite3_libversion_number(tls *crt.TLS) int32 { /* sqlite3.c:160458:16: */
// IMPLEMENTATION-OF: R-20790-14025 The sqlite3_threadsafe() function returns
// zero if and only if SQLite was compiled with mutexing code omitted due to
// the SQLITE_THREADSAFE compile-time option being set to 0.
-func Xsqlite3_threadsafe(tls *crt.TLS) int32 { /* sqlite3.c:160464:16: */ return 2 }
+func Xsqlite3_threadsafe(tls *crt.TLS) int32 { /* sqlite3.c:160464:16: */ return 1 }
// When compiling the test fixture or with debugging enabled (on Win32),
// this variable being set to non-zero will cause OSTRACE macros to emit
@@ -132244,6 +134024,9 @@ func Xsqlite3_initialize(tls *crt.TLS) int32 { /* sqlite3.c:160537:16: */
rc = Xsqlite3OsInit(tls)
}
if rc == 0 {
+ rc = Xsqlite3MemdbInit(tls)
+ }
+ if rc == 0 {
Xsqlite3PCacheBufferSetup(tls, Xsqlite3Config.FpPage,
Xsqlite3Config.FszPage, Xsqlite3Config.FnPage)
@@ -132523,8 +134306,8 @@ func Xsqlite3_config(tls *crt.TLS, op int32, va uintptr) int32 { /* sqlite3.c:16
// silently truncated if necessary so that it does not exceed the
// compile-time maximum mmap size set by the SQLITE_MAX_MMAP_SIZE
// compile-time option.
- if (mxMmap < int64(0)) || (mxMmap > int64(0x7fff0000)) {
- mxMmap = int64(0x7fff0000)
+ if (mxMmap < int64(0)) || (mxMmap > 8589934592) {
+ mxMmap = 8589934592
}
if szMmap < int64(0) {
szMmap = int64(0)
@@ -132549,6 +134332,12 @@ func Xsqlite3_config(tls *crt.TLS, op int32, va uintptr) int32 { /* sqlite3.c:16
break
}
+ case 29:
+ {
+ Xsqlite3Config.FmxMemdbSize = Sqlite3_int64(crt.VaInt64(&ap))
+ break
+ }
+
default:
{
rc = 1
@@ -132932,7 +134721,7 @@ func disconnectAllVtab(tls *crt.TLS, db uintptr) { /* sqlite3.c:161483:13: */
}
}
}
- for p = (*Hash)(unsafe.Pointer((db + 488 /* &.aModule */))).Ffirst; p != 0; p = (*HashElem)(unsafe.Pointer(p)).Fnext {
+ for p = (*Hash)(unsafe.Pointer((db + 504 /* &.aModule */))).Ffirst; p != 0; p = (*HashElem)(unsafe.Pointer(p)).Fnext {
var pMod uintptr = (*HashElem)(unsafe.Pointer(p)).Fdata
if (*Module)(unsafe.Pointer(pMod)).FpEpoTab != 0 {
Xsqlite3VtabDisconnect(tls, db, (*Module)(unsafe.Pointer(pMod)).FpEpoTab)
@@ -132989,7 +134778,7 @@ func sqlite3Close(tls *crt.TLS, db uintptr, forceZombie int32) int32 { /* sqlite
// SQLITE_BUSY if the connection can not be closed immediately.
if !(forceZombie != 0) && (connectionIsBusy(tls, db) != 0) {
Xsqlite3ErrorWithMsg(tls, db, 5,
- ts+20532 /* "unable to close ..." */, 0)
+ ts+21004 /* "unable to close ..." */, 0)
Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
return 5
}
@@ -133070,7 +134859,7 @@ func Xsqlite3LeaveMutexAndCloseZombie(tls *crt.TLS, db uintptr) { /* sqlite3.c:1
// locks and does not require any further unlock-notify callbacks.
Xsqlite3ConnectionClosed(tls, db)
- for i = (*Hash)(unsafe.Pointer((db + 536 /* &.aFunc */))).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ for i = (*Hash)(unsafe.Pointer((db + 552 /* &.aFunc */))).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
var pNext uintptr
var p uintptr
p = (*HashElem)(unsafe.Pointer(i)).Fdata
@@ -133081,8 +134870,8 @@ func Xsqlite3LeaveMutexAndCloseZombie(tls *crt.TLS, db uintptr) { /* sqlite3.c:1
p = pNext
}
}
- Xsqlite3HashClear(tls, (db + 536 /* &.aFunc */))
- for i = (*Hash)(unsafe.Pointer((db + 560 /* &.aCollSeq */))).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ Xsqlite3HashClear(tls, (db + 552 /* &.aFunc */))
+ for i = (*Hash)(unsafe.Pointer((db + 576 /* &.aCollSeq */))).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
var pColl uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
// Invoke any destructors registered for collation sequence user data.
for j = 0; j < 3; j++ {
@@ -133092,13 +134881,13 @@ func Xsqlite3LeaveMutexAndCloseZombie(tls *crt.TLS, db uintptr) { /* sqlite3.c:1
}
Xsqlite3DbFree(tls, db, pColl)
}
- Xsqlite3HashClear(tls, (db + 560 /* &.aCollSeq */))
- for i = (*Hash)(unsafe.Pointer((db + 488 /* &.aModule */))).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ Xsqlite3HashClear(tls, (db + 576 /* &.aCollSeq */))
+ for i = (*Hash)(unsafe.Pointer((db + 504 /* &.aModule */))).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
var pMod uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
Xsqlite3VtabEponymousTableClear(tls, db, pMod)
Xsqlite3VtabModuleUnref(tls, db, pMod)
}
- Xsqlite3HashClear(tls, (db + 488 /* &.aModule */))
+ Xsqlite3HashClear(tls, (db + 504 /* &.aModule */))
Xsqlite3Error(tls, db, 0) // Deallocates any cached error strings.
Xsqlite3ValueFree(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
@@ -133189,259 +134978,259 @@ __1:
{
switch rc {
case 0:
- zName = ts + 20600 /* "SQLITE_OK" */
+ zName = ts + 21072 /* "SQLITE_OK" */
break
case 1:
- zName = ts + 20610 /* "SQLITE_ERROR" */
+ zName = ts + 21082 /* "SQLITE_ERROR" */
break
case (1 | (int32(3) << 8)):
- zName = ts + 20623 /* "SQLITE_ERROR_SNA..." */
+ zName = ts + 21095 /* "SQLITE_ERROR_SNA..." */
break
case 2:
- zName = ts + 20645 /* "SQLITE_INTERNAL" */
+ zName = ts + 21117 /* "SQLITE_INTERNAL" */
break
case 3:
- zName = ts + 20661 /* "SQLITE_PERM" */
+ zName = ts + 21133 /* "SQLITE_PERM" */
break
case 4:
- zName = ts + 20673 /* "SQLITE_ABORT" */
+ zName = ts + 21145 /* "SQLITE_ABORT" */
break
case (4 | (int32(2) << 8)):
- zName = ts + 20686 /* "SQLITE_ABORT_ROL..." */
+ zName = ts + 21158 /* "SQLITE_ABORT_ROL..." */
break
case 5:
- zName = ts + 20708 /* "SQLITE_BUSY" */
+ zName = ts + 21180 /* "SQLITE_BUSY" */
break
case (5 | (int32(1) << 8)):
- zName = ts + 20720 /* "SQLITE_BUSY_RECO..." */
+ zName = ts + 21192 /* "SQLITE_BUSY_RECO..." */
break
case (5 | (int32(2) << 8)):
- zName = ts + 20741 /* "SQLITE_BUSY_SNAP..." */
+ zName = ts + 21213 /* "SQLITE_BUSY_SNAP..." */
break
case 6:
- zName = ts + 20762 /* "SQLITE_LOCKED" */
+ zName = ts + 21234 /* "SQLITE_LOCKED" */
break
case (6 | (int32(1) << 8)):
- zName = ts + 20776 /* "SQLITE_LOCKED_SH..." */
+ zName = ts + 21248 /* "SQLITE_LOCKED_SH..." */
break
case 7:
- zName = ts + 20802 /* "SQLITE_NOMEM" */
+ zName = ts + 21274 /* "SQLITE_NOMEM" */
break
case 8:
- zName = ts + 20815 /* "SQLITE_READONLY" */
+ zName = ts + 21287 /* "SQLITE_READONLY" */
break
case (8 | (int32(1) << 8)):
- zName = ts + 20831 /* "SQLITE_READONLY_..." */
+ zName = ts + 21303 /* "SQLITE_READONLY_..." */
break
case (8 | (int32(5) << 8)):
- zName = ts + 20856 /* "SQLITE_READONLY_..." */
+ zName = ts + 21328 /* "SQLITE_READONLY_..." */
break
case (8 | (int32(3) << 8)):
- zName = ts + 20881 /* "SQLITE_READONLY_..." */
+ zName = ts + 21353 /* "SQLITE_READONLY_..." */
break
case (8 | (int32(4) << 8)):
- zName = ts + 20906 /* "SQLITE_READONLY_..." */
+ zName = ts + 21378 /* "SQLITE_READONLY_..." */
break
case (8 | (int32(6) << 8)):
- zName = ts + 20930 /* "SQLITE_READONLY_..." */
+ zName = ts + 21402 /* "SQLITE_READONLY_..." */
break
case 9:
- zName = ts + 20956 /* "SQLITE_INTERRUPT" */
+ zName = ts + 21428 /* "SQLITE_INTERRUPT" */
break
case 10:
- zName = ts + 20973 /* "SQLITE_IOERR" */
+ zName = ts + 21445 /* "SQLITE_IOERR" */
break
case (10 | (int32(1) << 8)):
- zName = ts + 20986 /* "SQLITE_IOERR_REA..." */
+ zName = ts + 21458 /* "SQLITE_IOERR_REA..." */
break
case (10 | (int32(2) << 8)):
- zName = ts + 21004 /* "SQLITE_IOERR_SHO..." */
+ zName = ts + 21476 /* "SQLITE_IOERR_SHO..." */
break
case (10 | (int32(3) << 8)):
- zName = ts + 21028 /* "SQLITE_IOERR_WRI..." */
+ zName = ts + 21500 /* "SQLITE_IOERR_WRI..." */
break
case (10 | (int32(4) << 8)):
- zName = ts + 21047 /* "SQLITE_IOERR_FSY..." */
+ zName = ts + 21519 /* "SQLITE_IOERR_FSY..." */
break
case (10 | (int32(5) << 8)):
- zName = ts + 21066 /* "SQLITE_IOERR_DIR..." */
+ zName = ts + 21538 /* "SQLITE_IOERR_DIR..." */
break
case (10 | (int32(6) << 8)):
- zName = ts + 21089 /* "SQLITE_IOERR_TRU..." */
+ zName = ts + 21561 /* "SQLITE_IOERR_TRU..." */
break
case (10 | (int32(7) << 8)):
- zName = ts + 21111 /* "SQLITE_IOERR_FST..." */
+ zName = ts + 21583 /* "SQLITE_IOERR_FST..." */
break
case (10 | (int32(8) << 8)):
- zName = ts + 21130 /* "SQLITE_IOERR_UNL..." */
+ zName = ts + 21602 /* "SQLITE_IOERR_UNL..." */
break
case (10 | (int32(9) << 8)):
- zName = ts + 21150 /* "SQLITE_IOERR_RDL..." */
+ zName = ts + 21622 /* "SQLITE_IOERR_RDL..." */
break
case (10 | (int32(10) << 8)):
- zName = ts + 21170 /* "SQLITE_IOERR_DEL..." */
+ zName = ts + 21642 /* "SQLITE_IOERR_DEL..." */
break
case (10 | (int32(12) << 8)):
- zName = ts + 21190 /* "SQLITE_IOERR_NOM..." */
+ zName = ts + 21662 /* "SQLITE_IOERR_NOM..." */
break
case (10 | (int32(13) << 8)):
- zName = ts + 21209 /* "SQLITE_IOERR_ACC..." */
+ zName = ts + 21681 /* "SQLITE_IOERR_ACC..." */
break
case (10 | (int32(14) << 8)):
- zName = ts + 21229 /* "SQLITE_IOERR_CHE..." */
+ zName = ts + 21701 /* "SQLITE_IOERR_CHE..." */
break
case (10 | (int32(15) << 8)):
- zName = ts + 21260 /* "SQLITE_IOERR_LOC..." */
+ zName = ts + 21732 /* "SQLITE_IOERR_LOC..." */
break
case (10 | (int32(16) << 8)):
- zName = ts + 21278 /* "SQLITE_IOERR_CLO..." */
+ zName = ts + 21750 /* "SQLITE_IOERR_CLO..." */
break
case (10 | (int32(17) << 8)):
- zName = ts + 21297 /* "SQLITE_IOERR_DIR..." */
+ zName = ts + 21769 /* "SQLITE_IOERR_DIR..." */
break
case (10 | (int32(18) << 8)):
- zName = ts + 21320 /* "SQLITE_IOERR_SHM..." */
+ zName = ts + 21792 /* "SQLITE_IOERR_SHM..." */
break
case (10 | (int32(19) << 8)):
- zName = ts + 21341 /* "SQLITE_IOERR_SHM..." */
+ zName = ts + 21813 /* "SQLITE_IOERR_SHM..." */
break
case (10 | (int32(20) << 8)):
- zName = ts + 21362 /* "SQLITE_IOERR_SHM..." */
+ zName = ts + 21834 /* "SQLITE_IOERR_SHM..." */
break
case (10 | (int32(21) << 8)):
- zName = ts + 21383 /* "SQLITE_IOERR_SHM..." */
+ zName = ts + 21855 /* "SQLITE_IOERR_SHM..." */
break
case (10 | (int32(22) << 8)):
- zName = ts + 21403 /* "SQLITE_IOERR_SEE..." */
+ zName = ts + 21875 /* "SQLITE_IOERR_SEE..." */
break
case (10 | (int32(23) << 8)):
- zName = ts + 21421 /* "SQLITE_IOERR_DEL..." */
+ zName = ts + 21893 /* "SQLITE_IOERR_DEL..." */
break
case (10 | (int32(24) << 8)):
- zName = ts + 21447 /* "SQLITE_IOERR_MMA..." */
+ zName = ts + 21919 /* "SQLITE_IOERR_MMA..." */
break
case (10 | (int32(25) << 8)):
- zName = ts + 21465 /* "SQLITE_IOERR_GET..." */
+ zName = ts + 21937 /* "SQLITE_IOERR_GET..." */
break
case (10 | (int32(26) << 8)):
- zName = ts + 21490 /* "SQLITE_IOERR_CON..." */
+ zName = ts + 21962 /* "SQLITE_IOERR_CON..." */
break
case 11:
- zName = ts + 21512 /* "SQLITE_CORRUPT" */
+ zName = ts + 21984 /* "SQLITE_CORRUPT" */
break
case (11 | (int32(1) << 8)):
- zName = ts + 21527 /* "SQLITE_CORRUPT_V..." */
+ zName = ts + 21999 /* "SQLITE_CORRUPT_V..." */
break
case 12:
- zName = ts + 21547 /* "SQLITE_NOTFOUND" */
+ zName = ts + 22019 /* "SQLITE_NOTFOUND" */
break
case 13:
- zName = ts + 21563 /* "SQLITE_FULL" */
+ zName = ts + 22035 /* "SQLITE_FULL" */
break
case 14:
- zName = ts + 21575 /* "SQLITE_CANTOPEN" */
+ zName = ts + 22047 /* "SQLITE_CANTOPEN" */
break
case (14 | (int32(1) << 8)):
- zName = ts + 21591 /* "SQLITE_CANTOPEN_..." */
+ zName = ts + 22063 /* "SQLITE_CANTOPEN_..." */
break
case (14 | (int32(2) << 8)):
- zName = ts + 21617 /* "SQLITE_CANTOPEN_..." */
+ zName = ts + 22089 /* "SQLITE_CANTOPEN_..." */
break
case (14 | (int32(3) << 8)):
- zName = ts + 21639 /* "SQLITE_CANTOPEN_..." */
+ zName = ts + 22111 /* "SQLITE_CANTOPEN_..." */
break
case (14 | (int32(4) << 8)):
- zName = ts + 21664 /* "SQLITE_CANTOPEN_..." */
+ zName = ts + 22136 /* "SQLITE_CANTOPEN_..." */
break
case (14 | (int32(6) << 8)):
- zName = ts + 21689 /* "SQLITE_CANTOPEN_..." */
+ zName = ts + 22161 /* "SQLITE_CANTOPEN_..." */
break
case 15:
- zName = ts + 21713 /* "SQLITE_PROTOCOL" */
+ zName = ts + 22185 /* "SQLITE_PROTOCOL" */
break
case 16:
- zName = ts + 21729 /* "SQLITE_EMPTY" */
+ zName = ts + 22201 /* "SQLITE_EMPTY" */
break
case 17:
- zName = ts + 21742 /* "SQLITE_SCHEMA" */
+ zName = ts + 22214 /* "SQLITE_SCHEMA" */
break
case 18:
- zName = ts + 21756 /* "SQLITE_TOOBIG" */
+ zName = ts + 22228 /* "SQLITE_TOOBIG" */
break
case 19:
- zName = ts + 21770 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22242 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(8) << 8)):
- zName = ts + 21788 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22260 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(7) << 8)):
- zName = ts + 21813 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22285 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(3) << 8)):
- zName = ts + 21839 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22311 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(1) << 8)):
- zName = ts + 21868 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22340 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(6) << 8)):
- zName = ts + 21892 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22364 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(5) << 8)):
- zName = ts + 21921 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22393 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(2) << 8)):
- zName = ts + 21947 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22419 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(9) << 8)):
- zName = ts + 21976 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22448 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(4) << 8)):
- zName = ts + 21999 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22471 /* "SQLITE_CONSTRAIN..." */
break
case (19 | (int32(10) << 8)):
- zName = ts + 22026 /* "SQLITE_CONSTRAIN..." */
+ zName = ts + 22498 /* "SQLITE_CONSTRAIN..." */
break
case 20:
- zName = ts + 22050 /* "SQLITE_MISMATCH" */
+ zName = ts + 22522 /* "SQLITE_MISMATCH" */
break
case 21:
- zName = ts + 22066 /* "SQLITE_MISUSE" */
+ zName = ts + 22538 /* "SQLITE_MISUSE" */
break
case 22:
- zName = ts + 22080 /* "SQLITE_NOLFS" */
+ zName = ts + 22552 /* "SQLITE_NOLFS" */
break
case 23:
- zName = ts + 22093 /* "SQLITE_AUTH" */
+ zName = ts + 22565 /* "SQLITE_AUTH" */
break
case 24:
- zName = ts + 22105 /* "SQLITE_FORMAT" */
+ zName = ts + 22577 /* "SQLITE_FORMAT" */
break
case 25:
- zName = ts + 22119 /* "SQLITE_RANGE" */
+ zName = ts + 22591 /* "SQLITE_RANGE" */
break
case 26:
- zName = ts + 22132 /* "SQLITE_NOTADB" */
+ zName = ts + 22604 /* "SQLITE_NOTADB" */
break
case 100:
- zName = ts + 22146 /* "SQLITE_ROW" */
+ zName = ts + 22618 /* "SQLITE_ROW" */
break
case 27:
- zName = ts + 22157 /* "SQLITE_NOTICE" */
+ zName = ts + 22629 /* "SQLITE_NOTICE" */
break
case (27 | (int32(1) << 8)):
- zName = ts + 22171 /* "SQLITE_NOTICE_RE..." */
+ zName = ts + 22643 /* "SQLITE_NOTICE_RE..." */
break
case (27 | (int32(2) << 8)):
- zName = ts + 22197 /* "SQLITE_NOTICE_RE..." */
+ zName = ts + 22669 /* "SQLITE_NOTICE_RE..." */
break
case 28:
- zName = ts + 22228 /* "SQLITE_WARNING" */
+ zName = ts + 22700 /* "SQLITE_WARNING" */
break
case (28 | (int32(1) << 8)):
- zName = ts + 22243 /* "SQLITE_WARNING_A..." */
+ zName = ts + 22715 /* "SQLITE_WARNING_A..." */
break
case 101:
- zName = ts + 22268 /* "SQLITE_DONE" */
+ zName = ts + 22740 /* "SQLITE_DONE" */
break
}
}
@@ -133454,7 +135243,7 @@ __2:
__3:
;
if zName == uintptr(0) {
- Xsqlite3_snprintf(tls, int32(unsafe.Sizeof(zBuf)), uintptr(unsafe.Pointer(&zBuf)), ts+22280 /* "SQLITE_UNKNOWN(%..." */, crt.VaList(bp, origRc))
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof(zBuf)), uintptr(unsafe.Pointer(&zBuf)), ts+22752 /* "SQLITE_UNKNOWN(%..." */, crt.VaList(bp, origRc))
zName = uintptr(unsafe.Pointer(&zBuf))
}
return zName
@@ -133465,21 +135254,21 @@ var zBuf [50]int8 /* sqlite3.c:161868:17: */
// Return a static string that describes the kind of error specified in the
// argument.
func Xsqlite3ErrStr(tls *crt.TLS, rc int32) uintptr { /* sqlite3.c:161880:27: */
- var zErr uintptr = ts + 22299 /* "unknown error" */
+ var zErr uintptr = ts + 22771 /* "unknown error" */
switch rc {
case (4 | (int32(2) << 8)):
{
- zErr = ts + 22313 /* "abort due to ROL..." */
+ zErr = ts + 22785 /* "abort due to ROL..." */
break
}
case 100:
{
- zErr = ts + 22335 /* "another row avai..." */
+ zErr = ts + 22807 /* "another row avai..." */
break
}
case 101:
{
- zErr = ts + 22357 /* "no more rows ava..." */
+ zErr = ts + 22829 /* "no more rows ava..." */
break
}
default:
@@ -133495,35 +135284,35 @@ func Xsqlite3ErrStr(tls *crt.TLS, rc int32) uintptr { /* sqlite3.c:161880:27: */
}
var aMsg = [29]uintptr{
- /* SQLITE_OK */ ts + 22380, /* "not an error" */
- /* SQLITE_ERROR */ ts + 22393, /* "SQL logic error" */
+ /* SQLITE_OK */ ts + 22852, /* "not an error" */
+ /* SQLITE_ERROR */ ts + 22865, /* "SQL logic error" */
/* SQLITE_INTERNAL */ uintptr(0),
- /* SQLITE_PERM */ ts + 22409, /* "access permissio..." */
- /* SQLITE_ABORT */ ts + 22434, /* "query aborted" */
- /* SQLITE_BUSY */ ts + 22448, /* "database is lock..." */
- /* SQLITE_LOCKED */ ts + 22467, /* "database table i..." */
- /* SQLITE_NOMEM */ ts + 5441, /* "out of memory" */
- /* SQLITE_READONLY */ ts + 22492, /* "attempt to write..." */
- /* SQLITE_INTERRUPT */ ts + 22529, /* "interrupted" */
- /* SQLITE_IOERR */ ts + 22541, /* "disk I/O error" */
- /* SQLITE_CORRUPT */ ts + 22556, /* "database disk im..." */
- /* SQLITE_NOTFOUND */ ts + 22589, /* "unknown operatio..." */
- /* SQLITE_FULL */ ts + 22607, /* "database or disk..." */
- /* SQLITE_CANTOPEN */ ts + 22632, /* "unable to open d..." */
- /* SQLITE_PROTOCOL */ ts + 22661, /* "locking protocol" */
+ /* SQLITE_PERM */ ts + 22881, /* "access permissio..." */
+ /* SQLITE_ABORT */ ts + 22906, /* "query aborted" */
+ /* SQLITE_BUSY */ ts + 22920, /* "database is lock..." */
+ /* SQLITE_LOCKED */ ts + 22939, /* "database table i..." */
+ /* SQLITE_NOMEM */ ts + 5549, /* "out of memory" */
+ /* SQLITE_READONLY */ ts + 22964, /* "attempt to write..." */
+ /* SQLITE_INTERRUPT */ ts + 23001, /* "interrupted" */
+ /* SQLITE_IOERR */ ts + 23013, /* "disk I/O error" */
+ /* SQLITE_CORRUPT */ ts + 23028, /* "database disk im..." */
+ /* SQLITE_NOTFOUND */ ts + 23061, /* "unknown operatio..." */
+ /* SQLITE_FULL */ ts + 23079, /* "database or disk..." */
+ /* SQLITE_CANTOPEN */ ts + 23104, /* "unable to open d..." */
+ /* SQLITE_PROTOCOL */ ts + 23133, /* "locking protocol" */
/* SQLITE_EMPTY */ uintptr(0),
- /* SQLITE_SCHEMA */ ts + 5188, /* "database schema ..." */
- /* SQLITE_TOOBIG */ ts + 4725, /* "string or blob t..." */
- /* SQLITE_CONSTRAINT */ ts + 22678, /* "constraint faile..." */
- /* SQLITE_MISMATCH */ ts + 22696, /* "datatype mismatc..." */
- /* SQLITE_MISUSE */ ts + 22714, /* "bad parameter or..." */
+ /* SQLITE_SCHEMA */ ts + 5296, /* "database schema ..." */
+ /* SQLITE_TOOBIG */ ts + 4833, /* "string or blob t..." */
+ /* SQLITE_CONSTRAINT */ ts + 23150, /* "constraint faile..." */
+ /* SQLITE_MISMATCH */ ts + 23168, /* "datatype mismatc..." */
+ /* SQLITE_MISUSE */ ts + 23186, /* "bad parameter or..." */
/* SQLITE_NOLFS */ uintptr(0),
- /* SQLITE_AUTH */ ts + 22748, /* "authorization de..." */
+ /* SQLITE_AUTH */ ts + 23220, /* "authorization de..." */
/* SQLITE_FORMAT */ uintptr(0),
- /* SQLITE_RANGE */ ts + 22769, /* "column index out..." */
- /* SQLITE_NOTADB */ ts + 22795, /* "file is not a da..." */
- /* SQLITE_NOTICE */ ts + 22818, /* "notification mes..." */
- /* SQLITE_WARNING */ ts + 22839, /* "warning message" */
+ /* SQLITE_RANGE */ ts + 23241, /* "column index out..." */
+ /* SQLITE_NOTADB */ ts + 23267, /* "file is not a da..." */
+ /* SQLITE_NOTICE */ ts + 23290, /* "notification mes..." */
+ /* SQLITE_WARNING */ ts + 23311, /* "warning message" */
} /* sqlite3.c:161881:20 */
// This routine implements a busy callback that sleeps and tries
@@ -133592,6 +135381,23 @@ func Xsqlite3_busy_handler(tls *crt.TLS, db uintptr, xBusy uintptr, pArg uintptr
return 0
}
+// This routine sets the progress callback for an Sqlite database to the
+// given callback function with the given argument. The progress callback will
+// be invoked every nOps opcodes.
+func Xsqlite3_progress_handler(tls *crt.TLS, db uintptr, nOps int32, xProgress uintptr, pArg uintptr) { /* sqlite3.c:162041:17: */
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if nOps > 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FxProgress = xProgress
+ (*Sqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(nOps)
+ (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FxProgress = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg = uintptr(0)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+}
+
// This routine installs a default busy handler that waits for the
// specified number of milliseconds before returning 0.
func Xsqlite3_busy_timeout(tls *crt.TLS, db uintptr, ms int32) int32 { /* sqlite3.c:162072:16: */
@@ -133639,7 +135445,29 @@ func Xsqlite3CreateFunc(tls *crt.TLS, db uintptr, zFunctionName uintptr, nArg in
extraFlags = extraFlags ^ (0x00200000)
- enc = 1
+ // If SQLITE_UTF16 is specified as the encoding type, transform this
+ // to one of SQLITE_UTF16LE or SQLITE_UTF16BE using the
+ // SQLITE_UTF16NATIVE macro. SQLITE_UTF16 is not used internally.
+ //
+ // If SQLITE_ANY is specified, add three versions of the function
+ // to the hash table.
+ if enc == 4 {
+ enc = 2
+ } else if enc == 5 {
+ var rc int32
+ rc = Xsqlite3CreateFunc(tls, db, zFunctionName, nArg,
+ ((1 | extraFlags) ^ 0x00200000),
+ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor)
+ if rc == 0 {
+ rc = Xsqlite3CreateFunc(tls, db, zFunctionName, nArg,
+ ((2 | extraFlags) ^ 0x00200000),
+ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor)
+ }
+ if rc != 0 {
+ return rc
+ }
+ enc = 3
+ }
// Check if an existing function is being overridden or deleted. If so,
// and there are active VMs, then return SQLITE_BUSY. If a function
@@ -133649,7 +135477,7 @@ func Xsqlite3CreateFunc(tls *crt.TLS, db uintptr, zFunctionName uintptr, nArg in
if ((p != 0) && (((*FuncDef)(unsafe.Pointer(p)).FfuncFlags & U32(0x0003)) == U32(enc))) && (int32((*FuncDef)(unsafe.Pointer(p)).FnArg) == nArg) {
if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 {
Xsqlite3ErrorWithMsg(tls, db, 5,
- ts+22855 /* "unable to delete..." */, 0)
+ ts+23327 /* "unable to delete..." */, 0)
return 5
} else {
@@ -133747,6 +135575,20 @@ func Xsqlite3_create_window_function(tls *crt.TLS, db uintptr, zFunc uintptr, nA
xFinal, xValue, xInverse, xDestroy)
}
+func Xsqlite3_create_function16(tls *crt.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) int32 { /* sqlite3.c:162321:16: */
+ var rc int32
+ var zFunc8 uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ zFunc8 = Xsqlite3Utf16to8(tls, db, zFunctionName, -1, uint8(2))
+ rc = Xsqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3DbFree(tls, db, zFunc8)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
// The following is the implementation of an SQL function that always
// fails with an error message stating that the function is used in the
// wrong context. The sqlite3_overload_function() API might construct
@@ -133762,7 +135604,7 @@ func sqlite3InvalidFunction(tls *crt.TLS, context uintptr, NotUsed int32, NotUse
_ = NotUsed
_ = NotUsed2
zErr = Xsqlite3_mprintf(tls,
- ts+22918 /* "unable to use fu..." */, crt.VaList(bp, zName))
+ ts+23390 /* "unable to use fu..." */, crt.VaList(bp, zName))
Xsqlite3_result_error(tls, context, zErr, -1)
Xsqlite3_free(tls, zErr)
}
@@ -133972,7 +135814,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *crt.TLS, db uintptr, zDb uintptr, eMode int
}
if iDb < 0 {
rc = 1
- Xsqlite3ErrorWithMsg(tls, db, 1, ts+22969 /* "unknown database..." */, crt.VaList(bp, zDb))
+ Xsqlite3ErrorWithMsg(tls, db, 1, ts+23441 /* "unknown database..." */, crt.VaList(bp, zDb))
} else {
(*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
rc = Xsqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt)
@@ -134090,6 +135932,44 @@ func Xsqlite3_errmsg(tls *crt.TLS, db uintptr) uintptr { /* sqlite3.c:162824:23:
return z
}
+// Return UTF-16 encoded English language explanation of the most recent
+// error.
+func Xsqlite3_errmsg16(tls *crt.TLS, db uintptr) uintptr { /* sqlite3.c:162852:23: */
+ var z uintptr
+ if !(db != 0) {
+ return uintptr(uintptr(unsafe.Pointer(&outOfMem)))
+ }
+ if !(Xsqlite3SafetyCheckSickOrOk(tls, db) != 0) {
+ return uintptr(uintptr(unsafe.Pointer(&misuse)))
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ z = uintptr(uintptr(unsafe.Pointer(&outOfMem)))
+ } else {
+ z = Xsqlite3_value_text16(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ if z == uintptr(0) {
+ Xsqlite3ErrorWithMsg(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FerrCode, Xsqlite3ErrStr(tls, (*Sqlite3)(unsafe.Pointer(db)).FerrCode), 0)
+ z = Xsqlite3_value_text16(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ }
+ // A malloc() may have failed within the call to sqlite3_value_text16()
+ // above. If this is the case, then the db->mallocFailed flag needs to
+ // be cleared before returning. Do this directly, instead of via
+ // sqlite3ApiExit(), to avoid setting the database handle error message.
+ Xsqlite3OomClear(tls, db)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return z
+}
+
+var outOfMem = [14]U16{
+ U16('o'), U16('u'), U16('t'), U16(' '), U16('o'), U16('f'), U16(' '), U16('m'), U16('e'), U16('m'), U16('o'), U16('r'), U16('y'), U16(0),
+} /* sqlite3.c:162853:20 */
+var misuse = [34]U16{
+ U16('b'), U16('a'), U16('d'), U16(' '), U16('p'), U16('a'), U16('r'), U16('a'), U16('m'), U16('e'), U16('t'), U16('e'), U16('r'), U16(' '),
+ U16('o'), U16('r'), U16(' '), U16('o'), U16('t'), U16('h'), U16('e'), U16('r'), U16(' '), U16('A'), U16('P'), U16('I'), U16(' '),
+ U16('m'), U16('i'), U16('s'), U16('u'), U16('s'), U16('e'), U16(0),
+} /* sqlite3.c:162856:20 */
+
// Return the most recent error code generated by an SQLite routine. If NULL is
// passed to this function, we assume a malloc() failed during sqlite3_open().
func Xsqlite3_errcode(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:162894:16: */
@@ -134149,7 +136029,7 @@ func createCollation(tls *crt.TLS, db uintptr, zName uintptr, enc U8, pCtx uintp
if (pColl != 0) && ((*CollSeq)(unsafe.Pointer(pColl)).FxCmp != 0) {
if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 {
Xsqlite3ErrorWithMsg(tls, db, 5,
- ts+22990 /* "unable to delete..." */, 0)
+ ts+23462 /* "unable to delete..." */, 0)
return 5
}
Xsqlite3ExpirePreparedStatements(tls, db, 0)
@@ -134161,7 +136041,7 @@ func createCollation(tls *crt.TLS, db uintptr, zName uintptr, enc U8, pCtx uintp
** to be called.
*/
if (int32((*CollSeq)(unsafe.Pointer(pColl)).Fenc) & ^int32(crt.Int32FromInt32(8))) == enc2 {
- var aColl uintptr = Xsqlite3HashFind(tls, (db + 560 /* &.aCollSeq */), zName)
+ var aColl uintptr = Xsqlite3HashFind(tls, (db + 576 /* &.aCollSeq */), zName)
var j int32
for j = 0; j < 3; j++ {
var p uintptr = (aColl + uintptr(j)*40)
@@ -134293,7 +136173,7 @@ func Xsqlite3ParseUri(tls *crt.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags ui
if !(((((flags & uint32(0x00000040)) != 0) || // IMP: R-48725-32206
(Xsqlite3Config.FbOpenUri != 0)) && // IMP: R-51689-46548
- (nUri >= 5)) && (crt.Xmemcmp(tls, zUri, ts+23058 /* "file:" */, uint64(5)) == 0)) {
+ (nUri >= 5)) && (crt.Xmemcmp(tls, zUri, ts+23530 /* "file:" */, uint64(5)) == 0)) {
goto __1
} // Input character index
iOut = 0 // Output character index
@@ -134341,10 +136221,10 @@ __8:
goto __8
__9:
;
- if !((iIn != 7) && ((iIn != 16) || (crt.Xmemcmp(tls, ts+23064 /* "localhost" */, (zUri+uintptr(7)), uint64(9)) != 0))) {
+ if !((iIn != 7) && ((iIn != 16) || (crt.Xmemcmp(tls, ts+23536 /* "localhost" */, (zUri+uintptr(7)), uint64(9)) != 0))) {
goto __10
}
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23074, /* "invalid uri auth..." */
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23546, /* "invalid uri auth..." */
crt.VaList(bp, (iIn-7), (zUri+uintptr(7))))
rc = 1
goto parse_uri_out
@@ -134466,7 +136346,7 @@ __27:
zVal = (zOpt + uintptr((nOpt + 1)))
nVal = Xsqlite3Strlen30(tls, zVal)
- if !((nOpt == 3) && (crt.Xmemcmp(tls, ts+23102 /* "vfs" */, zOpt, uint64(3)) == 0)) {
+ if !((nOpt == 3) && (crt.Xmemcmp(tls, ts+23574 /* "vfs" */, zOpt, uint64(3)) == 0)) {
goto __29
}
zVfs = zVal
@@ -134477,17 +136357,17 @@ __29:
mask = 0
limit = 0
- if !((nOpt == 5) && (crt.Xmemcmp(tls, ts+23106 /* "cache" */, zOpt, uint64(5)) == 0)) {
+ if !((nOpt == 5) && (crt.Xmemcmp(tls, ts+23578 /* "cache" */, zOpt, uint64(5)) == 0)) {
goto __31
}
mask = (0x00020000 | 0x00040000)
aMode = uintptr(unsafe.Pointer(&aCacheMode))
limit = mask
- zModeType = ts + 23106 /* "cache" */
+ zModeType = ts + 23578 /* "cache" */
__31:
;
- if !((nOpt == 4) && (crt.Xmemcmp(tls, ts+23112 /* "mode" */, zOpt, uint64(4)) == 0)) {
+ if !((nOpt == 4) && (crt.Xmemcmp(tls, ts+23584 /* "mode" */, zOpt, uint64(4)) == 0)) {
goto __32
}
@@ -134495,7 +136375,7 @@ __31:
0x00000004) | 0x00000080)
aMode = uintptr(unsafe.Pointer(&aOpenMode))
limit = (int32(uint32(mask) & flags))
- zModeType = ts + 2222 /* "access" */
+ zModeType = ts + 2271 /* "access" */
__32:
;
@@ -134526,7 +136406,7 @@ __36:
if !(mode == 0) {
goto __38
}
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23117 /* "no such %s mode:..." */, crt.VaList(bp+16, zModeType, zVal))
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23589 /* "no such %s mode:..." */, crt.VaList(bp+16, zModeType, zVal))
rc = 1
goto parse_uri_out
__38:
@@ -134534,7 +136414,7 @@ __38:
if !((mode & ^int32(crt.Int32FromInt32(0x00000080))) > limit) {
goto __39
}
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23137, /* "%s mode not allo..." */
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23609, /* "%s mode not allo..." */
crt.VaList(bp+32, zModeType, zVal))
rc = 3
goto parse_uri_out
@@ -134576,7 +136456,7 @@ __2:
if !(*(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0)) {
goto __42
}
- *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23161 /* "no such vfs: %s" */, crt.VaList(bp+48, zVfs))
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+23633 /* "no such vfs: %s" */, crt.VaList(bp+48, zVfs))
rc = 1
__42:
;
@@ -134600,15 +136480,15 @@ type OpenMode = struct {
}
var aCacheMode = [3]OpenMode{
- {Fz: ts + 15533 /* "shared" */, Fmode: 0x00020000},
- {Fz: ts + 23177 /* "private" */, Fmode: 0x00040000},
+ {Fz: ts + 16005 /* "shared" */, Fmode: 0x00020000},
+ {Fz: ts + 23649 /* "private" */, Fmode: 0x00040000},
{Fz: uintptr(0), Fmode: 0},
} /* sqlite3.c:163290:34 */
var aOpenMode = [5]OpenMode{
- {Fz: ts + 23185 /* "ro" */, Fmode: 0x00000001},
- {Fz: ts + 23188 /* "rw" */, Fmode: 0x00000002},
- {Fz: ts + 23191 /* "rwc" */, Fmode: (0x00000002 | 0x00000004)},
- {Fz: ts + 14999 /* "memory" */, Fmode: 0x00000080},
+ {Fz: ts + 23657 /* "ro" */, Fmode: 0x00000001},
+ {Fz: ts + 23660 /* "rw" */, Fmode: 0x00000002},
+ {Fz: ts + 23663 /* "rwc" */, Fmode: (0x00000002 | 0x00000004)},
+ {Fz: ts + 15388 /* "memory" */, Fmode: 0x00000080},
{Fz: uintptr(0), Fmode: 0},
} /* sqlite3.c:163302:34 */
@@ -134737,7 +136617,7 @@ __12:
(*Sqlite3)(unsafe.Pointer(db)).FerrMask = 0xff
(*Sqlite3)(unsafe.Pointer(db)).FnDb = 2
(*Sqlite3)(unsafe.Pointer(db)).Fmagic = 0xf03b7906
- (*Sqlite3)(unsafe.Pointer(db)).FaDb = db + 608 /* &.aDbStatic */
+ (*Sqlite3)(unsafe.Pointer(db)).FaDb = db + 624 /* &.aDbStatic */
(*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable = U32(1)
(*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
@@ -134769,8 +136649,8 @@ __12:
// -DSQLITE_DQS=0 (best) or -DSQLITE_DQS=1 (second choice) if possible.
uint32(0x00008000)))
- Xsqlite3HashInit(tls, (db + 560 /* &.aCollSeq */))
- Xsqlite3HashInit(tls, (db + 488 /* &.aModule */))
+ Xsqlite3HashInit(tls, (db + 576 /* &.aCollSeq */))
+ Xsqlite3HashInit(tls, (db + 504 /* &.aModule */))
// Add the default collation sequence BINARY. BINARY works for both UTF-8
// and UTF-16, so add a version for each to avoid any unnecessary
@@ -134787,10 +136667,10 @@ __12:
createCollation(tls, db, uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)), uint8(2), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
f func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32
}{binCollFunc})), uintptr(0))
- createCollation(tls, db, ts+19097 /* "NOCASE" */, uint8(1), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ createCollation(tls, db, ts+19569 /* "NOCASE" */, uint8(1), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
f func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32
}{nocaseCollatingFunc})), uintptr(0))
- createCollation(tls, db, ts+23195 /* "RTRIM" */, uint8(1), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ createCollation(tls, db, ts+23667 /* "RTRIM" */, uint8(1), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
f func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32
}{rtrimCollFunc})), uintptr(0))
if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
@@ -134836,7 +136716,7 @@ __19:
;
Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
if *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */)) != 0 {
- return ts + 647 /* "%s" */
+ return ts + 696 /* "%s" */
}
return uintptr(0)
}(), crt.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */))))
@@ -134874,9 +136754,9 @@ __22:
// The default safety_level for the main database is FULL; for the temp
// database it is OFF. This matches the pager layer defaults.
- (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(0)*32)).FzDbSName = ts + 5718 /* "main" */
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(0)*32)).FzDbSName = ts + 6116 /* "main" */
(*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(0)*32)).Fsafety_level = (U8(2 + 1))
- (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(1)*32)).FzDbSName = ts + 20505 /* "temp" */
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(1)*32)).FzDbSName = ts + 20977 /* "temp" */
(*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(1)*32)).Fsafety_level = U8(0x01)
(*Sqlite3)(unsafe.Pointer(db)).Fmagic = 0xa029a697
@@ -134981,6 +136861,38 @@ func Xsqlite3_open_v2(tls *crt.TLS, filename uintptr, ppDb uintptr, flags int32,
return openDatabase(tls, filename, ppDb, uint32(flags), zVfs)
}
+// Open a new database handle.
+func Xsqlite3_open16(tls *crt.TLS, zFilename uintptr, ppDb uintptr) int32 { /* sqlite3.c:163741:16: */
+ var zFilename8 uintptr // zFilename encoded in UTF-8 instead of UTF-16
+ var pVal uintptr
+ var rc int32
+
+ *(*uintptr)(unsafe.Pointer(ppDb)) = uintptr(0)
+ rc = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ }
+ if zFilename == uintptr(0) {
+ zFilename = ts + 23673 /* "\x00\x00" */
+ }
+ pVal = Xsqlite3ValueNew(tls, uintptr(0))
+ Xsqlite3ValueSetStr(tls, pVal, -1, zFilename, uint8(2), uintptr(0))
+ zFilename8 = Xsqlite3ValueText(tls, pVal, uint8(1))
+ if zFilename8 != 0 {
+ rc = openDatabase(tls, zFilename8, ppDb,
+ (uint32(0x00000002 | 0x00000004)), uintptr(0))
+
+ if (rc == 0) && !((int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(ppDb))))).FaDb+uintptr(0)*32)).FpSchema)).FschemaFlags) & (0x0001)) == (0x0001)) {
+ ((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(ppDb))))).FaDb + uintptr(0)*32)).FpSchema)).Fenc) = crt.AssignPtrUint8(*(*uintptr)(unsafe.Pointer(ppDb))+94 /* &.enc */, U8(2))
+ }
+ } else {
+ rc = 7
+ }
+ Xsqlite3ValueFree(tls, pVal)
+
+ return (rc & 0xff)
+}
+
// Register a new collation sequence with the database handle db.
func Xsqlite3_create_collation(tls *crt.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) int32 { /* sqlite3.c:163780:16: */
return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0))
@@ -134998,6 +136910,23 @@ func Xsqlite3_create_collation_v2(tls *crt.TLS, db uintptr, zName uintptr, enc i
return rc
}
+// Register a new collation sequence with the database handle db.
+func Xsqlite3_create_collation16(tls *crt.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) int32 { /* sqlite3.c:163818:16: */
+ var rc int32 = 0
+ var zName8 uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ zName8 = Xsqlite3Utf16to8(tls, db, zName, -1, uint8(2))
+ if zName8 != 0 {
+ rc = createCollation(tls, db, zName8, U8(enc), pCtx, xCompare, uintptr(0))
+ Xsqlite3DbFree(tls, db, zName8)
+ }
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
// Register a collation sequence factory callback with the database handle
// db. Replace any previously installed collation sequence factory.
func Xsqlite3_collation_needed(tls *crt.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) int32 { /* sqlite3.c:163848:16: */
@@ -135009,6 +136938,17 @@ func Xsqlite3_collation_needed(tls *crt.TLS, db uintptr, pCollNeededArg uintptr,
return 0
}
+// Register a collation sequence factory callback with the database handle
+// db. Replace any previously installed collation sequence factory.
+func Xsqlite3_collation_needed16(tls *crt.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) int32 { /* sqlite3.c:163869:16: */
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16
+ (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return 0
+}
+
// This function is now an anachronism. It used to be used to recover from a
// malloc() failure, but SQLite now does this automatically.
func Xsqlite3_global_recover(tls *crt.TLS) int32 { /* sqlite3.c:163891:16: */
@@ -135036,21 +136976,21 @@ func Xsqlite3ReportError(tls *crt.TLS, iErr int32, lineno int32, zType uintptr)
bp := tls.Alloc(24)
defer tls.Free(24)
- Xsqlite3_log(tls, iErr, ts+23201, /* "%s at line %d of..." */
+ Xsqlite3_log(tls, iErr, ts+23676, /* "%s at line %d of..." */
crt.VaList(bp, zType, lineno, (uintptr(20)+Xsqlite3_sourceid(tls))))
return iErr
}
func Xsqlite3CorruptError(tls *crt.TLS, lineno int32) int32 { /* sqlite3.c:163928:20: */
- return Xsqlite3ReportError(tls, 11, lineno, ts+23226 /* "database corrupt..." */)
+ return Xsqlite3ReportError(tls, 11, lineno, ts+23701 /* "database corrupt..." */)
}
func Xsqlite3MisuseError(tls *crt.TLS, lineno int32) int32 { /* sqlite3.c:163932:20: */
- return Xsqlite3ReportError(tls, 21, lineno, ts+23246 /* "misuse" */)
+ return Xsqlite3ReportError(tls, 21, lineno, ts+23721 /* "misuse" */)
}
func Xsqlite3CantopenError(tls *crt.TLS, lineno int32) int32 { /* sqlite3.c:163936:20: */
- return Xsqlite3ReportError(tls, 14, lineno, ts+23253 /* "cannot open file" */)
+ return Xsqlite3ReportError(tls, 14, lineno, ts+23728 /* "cannot open file" */)
}
// This is a convenience routine that makes sure that all thread-specific
@@ -135177,7 +137117,7 @@ __4:
autoinc = (crt.Bool32((int32((*Table)(unsafe.Pointer(pTab)).FiPKey) == iCol) && (((*Table)(unsafe.Pointer(pTab)).FtabFlags & U32(0x0008)) != U32(0))))
goto __13
__12:
- zDataType = ts + 10627 /* "INTEGER" */
+ zDataType = ts + 11013 /* "INTEGER" */
primarykey = 1
__13:
;
@@ -135229,14 +137169,14 @@ __19:
goto __20
}
Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */)))
- *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */)) = Xsqlite3MPrintf(tls, db, ts+23270 /* "no such table co..." */, crt.VaList(bp, zTableName,
+ *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */)) = Xsqlite3MPrintf(tls, db, ts+23745 /* "no such table co..." */, crt.VaList(bp, zTableName,
zColumnName))
rc = 1
__20:
;
Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
if *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */)) != 0 {
- return ts + 647 /* "%s" */
+ return ts + 696 /* "%s" */
}
return uintptr(0)
}(), crt.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp + 24 /* zErrMsg */))))
@@ -135862,7 +137802,7 @@ func Xsqlite3_compileoption_used(tls *crt.TLS, zOptName uintptr) int32 { /* sqli
azCompileOpt = Xsqlite3CompileOptions(tls, bp /* &nOpt */)
- if Xsqlite3_strnicmp(tls, zOptName, ts+23298 /* "SQLITE_" */, 7) == 0 {
+ if Xsqlite3_strnicmp(tls, zOptName, ts+23773 /* "SQLITE_" */, 7) == 0 {
zOptName += uintptr(7)
}
n = Xsqlite3Strlen30(tls, zOptName)
@@ -135932,7 +137872,7 @@ var sqlite3BlockedList uintptr = uintptr(0) /* sqlite3.c:164973:16 */
func removeFromBlockedList(tls *crt.TLS, db uintptr) { /* sqlite3.c:165016:13: */
var pp uintptr
- for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = (*(*uintptr)(unsafe.Pointer(pp)) + 752 /* &.pNextBlocked */) {
+ for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = (*(*uintptr)(unsafe.Pointer(pp)) + 768 /* &.pNextBlocked */) {
if *(*uintptr)(unsafe.Pointer(pp)) == db {
*(*uintptr)(unsafe.Pointer(pp)) = (*Sqlite3)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNextBlocked
break
@@ -135945,7 +137885,7 @@ func removeFromBlockedList(tls *crt.TLS, db uintptr) { /* sqlite3.c:165016:13: *
func addToBlockedList(tls *crt.TLS, db uintptr) { /* sqlite3.c:165031:13: */
var pp uintptr
- for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); (*(*uintptr)(unsafe.Pointer(pp)) != 0) && ((*Sqlite3)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(pp))))).FxUnlockNotify != (*Sqlite3)(unsafe.Pointer(db)).FxUnlockNotify); pp = (*(*uintptr)(unsafe.Pointer(pp)) + 752 /* &.pNextBlocked */) {
+ for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); (*(*uintptr)(unsafe.Pointer(pp)) != 0) && ((*Sqlite3)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(pp))))).FxUnlockNotify != (*Sqlite3)(unsafe.Pointer(db)).FxUnlockNotify); pp = (*(*uintptr)(unsafe.Pointer(pp)) + 768 /* &.pNextBlocked */) {
}
(*Sqlite3)(unsafe.Pointer(db)).FpNextBlocked = *(*uintptr)(unsafe.Pointer(pp))
*(*uintptr)(unsafe.Pointer(pp)) = db
@@ -136023,7 +137963,7 @@ func Xsqlite3_unlock_notify(tls *crt.TLS, db uintptr, xNotify uintptr, pArg uint
Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
if rc != 0 {
- return ts + 23306 /* "database is dead..." */
+ return ts + 23781 /* "database is dead..." */
}
return uintptr(0)
}(), 0)
@@ -136146,7 +138086,7 @@ func Xsqlite3ConnectionUnlocked(tls *crt.TLS, db uintptr) { /* sqlite3.c:165159:
*(*uintptr)(unsafe.Pointer(pp)) = (*Sqlite3)(unsafe.Pointer(p)).FpNextBlocked
(*Sqlite3)(unsafe.Pointer(p)).FpNextBlocked = uintptr(0)
} else {
- pp = (p + 752 /* &.pNextBlocked */)
+ pp = (p + 768 /* &.pNextBlocked */)
}
}
@@ -136983,7 +138923,7 @@ func Xsqlite3ConnectionClosed(tls *crt.TLS, db uintptr) { /* sqlite3.c:165258:21
// sort-order than its child page:
//
// '/1c2/000/' // Left-most child of 451st child of root
-var zDbstatSchema = *(*[258]int8)(unsafe.Pointer(ts + 23329 /* "CREATE TABLE x( ..." */)) /* sqlite3.c:200497:19 */
+var zDbstatSchema = *(*[258]int8)(unsafe.Pointer(ts + 23804 /* "CREATE TABLE x( ..." */)) /* sqlite3.c:200497:19 */
// Forward reference to data structured used in this module
type StatTable1 = struct {
@@ -137057,7 +138997,7 @@ func statConnect(tls *crt.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt
Xsqlite3TokenInit(tls, bp+8 /* &nm */, *(*uintptr)(unsafe.Pointer(argv + uintptr(3)*8)))
iDb = Xsqlite3FindDb(tls, db, bp+8 /* &nm */)
if iDb < 0 {
- *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+9922 /* "no such database..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(argv + uintptr(3)*8))))
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+10308 /* "no such database..." */, crt.VaList(bp, *(*uintptr)(unsafe.Pointer(argv + uintptr(3)*8))))
return 1
}
} else {
@@ -137576,7 +139516,7 @@ __5:
if !(!(int32((*StatCursor)(unsafe.Pointer(pCsr)).FisAgg) != 0)) {
goto __6
}
- (*StatPage)(unsafe.Pointer((pCsr + 24 /* &.aPage */) + uintptr(0)*64)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls, ts+23587 /* "/" */, 0))
+ (*StatPage)(unsafe.Pointer((pCsr + 24 /* &.aPage */) + uintptr(0)*64)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls, ts+24062 /* "/" */, 0))
if !(z == uintptr(0)) {
goto __7
}
@@ -137634,9 +139574,9 @@ __14:
}
(*StatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*StatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0)
(*StatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*U32)(unsafe.Pointer((*StatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4))
- (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 23589 /* "overflow" */
+ (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 24064 /* "overflow" */
(*StatCursor)(unsafe.Pointer(pCsr)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls,
- ts+23598 /* "%s%.3x+%.6x" */, crt.VaList(bp, (*StatPage)(unsafe.Pointer(p)).FzPath, (*StatPage)(unsafe.Pointer(p)).FiCell, iOvfl)))
+ ts+24073 /* "%s%.3x+%.6x" */, crt.VaList(bp, (*StatPage)(unsafe.Pointer(p)).FzPath, (*StatPage)(unsafe.Pointer(p)).FiCell, iOvfl)))
if z == uintptr(0) {
return 7
}
@@ -137704,7 +139644,7 @@ __23:
if !(!(int32((*StatCursor)(unsafe.Pointer(pCsr)).FisAgg) != 0)) {
goto __24
}
- (*StatPage)(unsafe.Pointer(p + uintptr(1)*64)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls, ts+23610 /* "%s%.3x/" */, crt.VaList(bp+24, (*StatPage)(unsafe.Pointer(p)).FzPath, (*StatPage)(unsafe.Pointer(p)).FiCell)))
+ (*StatPage)(unsafe.Pointer(p + uintptr(1)*64)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls, ts+24085 /* "%s%.3x/" */, crt.VaList(bp+24, (*StatPage)(unsafe.Pointer(p)).FzPath, (*StatPage)(unsafe.Pointer(p)).FiCell)))
if !(z == uintptr(0)) {
goto __25
}
@@ -137747,14 +139687,14 @@ __2:
goto __28
__29: // table internal
__30: // index internal
- (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 23618 /* "internal" */
+ (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 24093 /* "internal" */
goto __28
__31: // table leaf
__32: // index leaf
- (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 23627 /* "leaf" */
+ (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 24102 /* "leaf" */
goto __28
__33:
- (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 23632 /* "corrupted" */
+ (*StatCursor)(unsafe.Pointer(pCsr)).FzPagetype = ts + 24107 /* "corrupted" */
goto __28
__28:
;
@@ -137769,7 +139709,7 @@ __34:
if !(!(int32((*StatCursor)(unsafe.Pointer(pCsr)).FisAgg) != 0)) {
goto __35
}
- (*StatCursor)(unsafe.Pointer(pCsr)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp+40, (*StatPage)(unsafe.Pointer(p1)).FzPath)))
+ (*StatCursor)(unsafe.Pointer(pCsr)).FzPath = crt.AssignUintptr(&z, Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp+40, (*StatPage)(unsafe.Pointer(p1)).FzPath)))
if !(z == uintptr(0)) {
goto __36
}
@@ -137858,13 +139798,13 @@ func statFilter(tls *crt.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, arg
pSql = Xsqlite3_str_new(tls, (*StatTable)(unsafe.Pointer(pTab)).Fdb)
Xsqlite3_str_appendf(tls, pSql,
- ts+23642, /* "SELECT * FROM (S..." */
+ ts+24117, /* "SELECT * FROM (S..." */
crt.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*StatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb+uintptr((*StatCursor)(unsafe.Pointer(pCsr)).FiDb)*32)).FzDbSName))
if zName != 0 {
- Xsqlite3_str_appendf(tls, pSql, ts+23797 /* "WHERE name=%Q" */, crt.VaList(bp+8, zName))
+ Xsqlite3_str_appendf(tls, pSql, ts+24272 /* "WHERE name=%Q" */, crt.VaList(bp+8, zName))
}
if (idxNum & 0x08) != 0 {
- Xsqlite3_str_appendf(tls, pSql, ts+23811 /* " ORDER BY name" */, 0)
+ Xsqlite3_str_appendf(tls, pSql, ts+24286 /* " ORDER BY name" */, 0)
}
zSql = Xsqlite3_str_finish(tls, pSql)
if zSql == uintptr(0) {
@@ -137947,7 +139887,7 @@ func statRowid(tls *crt.TLS, pCursor uintptr, pRowid uintptr) int32 { /* sqlite3
// Invoke this routine to register the "dbstat" virtual table module
func Xsqlite3DbstatRegister(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:201260:20: */
- return Xsqlite3_create_module(tls, db, ts+23826 /* "dbstat" */, uintptr(unsafe.Pointer(&dbstat_module)), uintptr(0))
+ return Xsqlite3_create_module(tls, db, ts+24301 /* "dbstat" */, uintptr(unsafe.Pointer(&dbstat_module)), uintptr(0))
}
var dbstat_module = Sqlite3_module{FiVersion: 0, FxCreate: // iVersion
@@ -138073,7 +140013,7 @@ func dbpageConnect(tls *crt.TLS, db uintptr, pAux uintptr, argc int32, argv uint
Xsqlite3_vtab_config(tls, db, 3, 0)
rc = Xsqlite3_declare_vtab(tls, db,
- ts+23833 /* "CREATE TABLE x(p..." */)
+ ts+24308 /* "CREATE TABLE x(p..." */)
if rc == 0 {
pTab = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(DbpageTable{})))
if pTab == uintptr(0) {
@@ -138317,14 +140257,14 @@ func dbpageUpdate(tls *crt.TLS, pVtab uintptr, argc int32, argv uintptr, pRowid
if !(((*Sqlite3)(unsafe.Pointer((*DbpageTable)(unsafe.Pointer(pTab)).Fdb)).Fflags & uint64(0x10000000)) != 0) {
goto __1
}
- zErr = ts + 23900 /* "read-only" */
+ zErr = ts + 24375 /* "read-only" */
goto update_fail
__1:
;
if !(argc == 1) {
goto __2
}
- zErr = ts + 23910 /* "cannot delete" */
+ zErr = ts + 24385 /* "cannot delete" */
goto update_fail
__2:
;
@@ -138332,7 +140272,7 @@ __2:
if !(Pgno(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*8)))) != pgno) {
goto __3
}
- zErr = ts + 23924 /* "cannot insert" */
+ zErr = ts + 24399 /* "cannot insert" */
goto update_fail
__3:
;
@@ -138345,7 +140285,7 @@ __3:
if !(iDb < 0) {
goto __4
}
- zErr = ts + 23938 /* "no such schema" */
+ zErr = ts + 24413 /* "no such schema" */
goto update_fail
__4:
;
@@ -138353,7 +140293,7 @@ __4:
if !(((pgno < Pgno(1)) || (pBt == uintptr(0))) || (pgno > Pgno(int32(Xsqlite3BtreeLastPage(tls, pBt))))) {
goto __5
}
- zErr = ts + 23953 /* "bad page number" */
+ zErr = ts + 24428 /* "bad page number" */
goto update_fail
__5:
;
@@ -138362,7 +140302,7 @@ __5:
(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(3)*8))) != szPage)) {
goto __6
}
- zErr = ts + 23969 /* "bad page value" */
+ zErr = ts + 24444 /* "bad page value" */
goto update_fail
__6:
;
@@ -138387,7 +140327,7 @@ __7:
update_fail:
Xsqlite3_free(tls, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)
- (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, ts+647 /* "%s" */, crt.VaList(bp, zErr))
+ (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, ts+696 /* "%s" */, crt.VaList(bp, zErr))
return 1
}
@@ -138409,7 +140349,7 @@ func dbpageBegin(tls *crt.TLS, pVtab uintptr) int32 { /* sqlite3.c:201664:12: */
// Invoke this routine to register the "dbpage" virtual table module
func Xsqlite3DbpageRegister(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:201679:20: */
- return Xsqlite3_create_module(tls, db, ts+23984 /* "sqlite_dbpage" */, uintptr(unsafe.Pointer(&dbpage_module)), uintptr(0))
+ return Xsqlite3_create_module(tls, db, ts+24459 /* "sqlite_dbpage" */, uintptr(unsafe.Pointer(&dbpage_module)), uintptr(0))
}
var dbpage_module = Sqlite3_module{FiVersion: 0, FxCreate: // iVersion
@@ -138467,10 +140407,258 @@ uintptr(0), // xShadowName
// .header on
// SELECT * FROM stmt;
+// #include <assert.h>
+// #include <string.h>
+
+// stmt_vtab is a subclass of sqlite3_vtab which will
+// serve as the underlying representation of a stmt virtual table
+type stmt_vtab = struct {
+ Fbase Sqlite3_vtab
+ Fdb uintptr
+}
+
+//************* End of dbpage.c *********************************************
+//************* Begin file sqlite3session.c *********************************
+
+//************* End of sqlite3session.c *************************************
+//************* Begin file fts5.c *******************************************
+
+//************* End of fts5.c ***********************************************
+//************* Begin file stmt.c *******************************************
+// 2017-05-31
+//
+// The author disclaims copyright to this source code. In place of
+// a legal notice, here is a blessing:
+//
+// May you do good and not evil.
+// May you find forgiveness for yourself and forgive others.
+// May you share freely, never taking more than you give.
+//
+//
+//
+// This file demonstrates an eponymous virtual table that returns information
+// about all prepared statements for the database connection.
+//
+// Usage example:
+//
+// .load ./stmt
+// .mode line
+// .header on
+// SELECT * FROM stmt;
+
+// #include <assert.h>
+// #include <string.h>
+
+// stmt_vtab is a subclass of sqlite3_vtab which will
+// serve as the underlying representation of a stmt virtual table
+type Stmt_vtab = stmt_vtab /* sqlite3.c:229514:26 */
+
+// stmt_cursor is a subclass of sqlite3_vtab_cursor which will
+// serve as the underlying representation of a cursor that scans
+// over rows of the result
+type stmt_cursor = struct {
+ Fbase Sqlite3_vtab_cursor
+ Fdb uintptr
+ FpStmt uintptr
+ FiRowid Sqlite3_int64
+}
+
+// stmt_cursor is a subclass of sqlite3_vtab_cursor which will
+// serve as the underlying representation of a cursor that scans
+// over rows of the result
+type Stmt_cursor = stmt_cursor /* sqlite3.c:229524:28 */
+
+// The stmtConnect() method is invoked to create a new
+// stmt_vtab that describes the stmt virtual table.
+//
+// Think of this routine as the constructor for stmt_vtab objects.
+//
+// All this routine needs to do is:
+//
+// (1) Allocate the stmt_vtab object and initialize all fields.
+//
+// (2) Tell SQLite (via the sqlite3_declare_vtab() interface) what the
+// result set of queries against stmt will look like.
+func stmtConnect(tls *crt.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 { /* sqlite3.c:229545:12: */
+ var pNew uintptr
+ var rc int32
+
+ // Column numbers
+
+ rc = Xsqlite3_declare_vtab(tls, db,
+
+ ts+24473 /* "CREATE TABLE x(s..." */)
+ if rc == 0 {
+ pNew = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Stmt_vtab{})))
+ *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew
+ if pNew == uintptr(0) {
+ return 7
+ }
+ crt.Xmemset(tls, pNew, 0, uint64(unsafe.Sizeof(Stmt_vtab{})))
+ (*Stmt_vtab)(unsafe.Pointer(pNew)).Fdb = db
+ }
+ return rc
+}
+
+// This method is the destructor for stmt_cursor objects.
+func stmtDisconnect(tls *crt.TLS, pVtab uintptr) int32 { /* sqlite3.c:229585:12: */
+ Xsqlite3_free(tls, pVtab)
+ return 0
+}
+
+// Constructor for a new stmt_cursor object.
+func stmtOpen(tls *crt.TLS, p uintptr, ppCursor uintptr) int32 { /* sqlite3.c:229593:12: */
+ var pCur uintptr
+ pCur = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Stmt_cursor{})))
+ if pCur == uintptr(0) {
+ return 7
+ }
+ crt.Xmemset(tls, pCur, 0, uint64(unsafe.Sizeof(Stmt_cursor{})))
+ (*Stmt_cursor)(unsafe.Pointer(pCur)).Fdb = (*Stmt_vtab)(unsafe.Pointer(p)).Fdb
+ *(*uintptr)(unsafe.Pointer(ppCursor)) = (pCur /* &.base */)
+ return 0
+}
+
+// Destructor for a stmt_cursor.
+func stmtClose(tls *crt.TLS, cur uintptr) int32 { /* sqlite3.c:229606:12: */
+ Xsqlite3_free(tls, cur)
+ return 0
+}
+
+// Advance a stmt_cursor to its next row of output.
+func stmtNext(tls *crt.TLS, cur uintptr) int32 { /* sqlite3.c:229615:12: */
+ var pCur uintptr = cur
+ (*Stmt_cursor)(unsafe.Pointer(pCur)).FiRowid++
+ (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt = Xsqlite3_next_stmt(tls, (*Stmt_cursor)(unsafe.Pointer(pCur)).Fdb, (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt)
+ return 0
+}
+
+// Return values of columns for the row at which the stmt_cursor
+// is currently pointing.
+func stmtColumn(tls *crt.TLS, cur uintptr, ctx uintptr, i int32) int32 { /* sqlite3.c:229626:12: */
+ var pCur uintptr = cur
+ switch i {
+ case 0:
+ {
+ Xsqlite3_result_text(tls, ctx, Xsqlite3_sql(tls, (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt), -1, crt.UintptrFromInt32(-1))
+ break
+ }
+ case 1:
+ {
+ Xsqlite3_result_int(tls, ctx, Xsqlite3_column_count(tls, (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt))
+ break
+ }
+ case 2:
+ {
+ Xsqlite3_result_int(tls, ctx, Xsqlite3_stmt_readonly(tls, (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt))
+ break
+ }
+ case 3:
+ {
+ Xsqlite3_result_int(tls, ctx, Xsqlite3_stmt_busy(tls, (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt))
+ break
+ }
+ default:
+ {
+
+ i = ((99 + 4) - 1)
+ // Fall thru
+ }
+ fallthrough
+ case 4:
+ fallthrough
+ case 5:
+ fallthrough
+ case 6:
+ fallthrough
+ case 7:
+ fallthrough
+ case 8:
+ fallthrough
+ case 9:
+ {
+ Xsqlite3_result_int(tls, ctx, Xsqlite3_stmt_status(tls, (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt,
+ ((i-4)+1), 0))
+ break
+ }
+ }
+ return 0
+}
+
+// Return the rowid for the current row. In this implementation, the
+// rowid is the same as the output value.
+func stmtRowid(tls *crt.TLS, cur uintptr, pRowid uintptr) int32 { /* sqlite3.c:229673:12: */
+ var pCur uintptr = cur
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = (*Stmt_cursor)(unsafe.Pointer(pCur)).FiRowid
+ return 0
+}
+
+// Return TRUE if the cursor has been moved off of the last
+// row of output.
+func stmtEof(tls *crt.TLS, cur uintptr) int32 { /* sqlite3.c:229683:12: */
+ var pCur uintptr = cur
+ return (crt.Bool32((*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt == uintptr(0)))
+}
+
+// This method is called to "rewind" the stmt_cursor object back
+// to the first row of output. This method is always called at least
+// once prior to any call to stmtColumn() or stmtRowid() or
+// stmtEof().
+func stmtFilter(tls *crt.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) int32 { /* sqlite3.c:229694:12: */
+ var pCur uintptr = pVtabCursor
+ (*Stmt_cursor)(unsafe.Pointer(pCur)).FpStmt = uintptr(0)
+ (*Stmt_cursor)(unsafe.Pointer(pCur)).FiRowid = int64(0)
+ return stmtNext(tls, pVtabCursor)
+}
+
+// SQLite will invoke this method one or more times while planning a query
+// that uses the stmt virtual table. This routine needs to create
+// a query plan for each invocation and compute an estimated cost for that
+// plan.
+func stmtBestIndex(tls *crt.TLS, tab uintptr, pIdxInfo uintptr) int32 { /* sqlite3.c:229711:12: */
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(500)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(500)
+ return 0
+}
+
+// This following structure defines all the methods for the
+// stmt virtual table.
+var stmtModule = Sqlite3_module{FiVersion: 0, FxCreate: // iVersion
+uintptr(0), FxConnect:// xCreate
+0, FxBestIndex:// xConnect
+0, FxDisconnect:// xBestIndex
+0, FxDestroy:// xDisconnect
+uintptr(0), FxOpen:// xDestroy
+0, FxClose:// xOpen - open a cursor
+0, FxFilter:// xClose - close a cursor
+0, FxNext:// xFilter - configure scan constraints
+0, FxEof:// xNext - advance a cursor
+0, FxColumn:// xEof - check for end of scan
+0, FxRowid:// xColumn - read data
+0, FxUpdate:// xRowid - read data
+uintptr(0), FxBegin:// xUpdate
+uintptr(0), FxSync:// xBegin
+uintptr(0), FxCommit:// xSync
+uintptr(0), FxRollback:// xCommit
+uintptr(0), FxFindFunction:// xRollback
+uintptr(0), FxRename:// xFindMethod
+uintptr(0), FxSavepoint:// xRename
+uintptr(0), FxRelease:// xSavepoint
+uintptr(0), FxRollbackTo:// xRelease
+uintptr(0), FxShadowName:// xRollbackTo
+uintptr(0), // xShadowName
+} /* sqlite3.c:229724:23 */
+
+func Xsqlite3StmtVtabInit(tls *crt.TLS, db uintptr) int32 { /* sqlite3.c:229753:20: */
+ var rc int32 = 0
+ rc = Xsqlite3_create_module(tls, db, ts+24545 /* "sqlite_stmt" */, uintptr(unsafe.Pointer(&stmtModule)), uintptr(0))
+ return rc
+}
+
//************* End of stmt.c ***********************************************
// Return the source-id for this library
func Xsqlite3_sourceid(tls *crt.TLS) uintptr { /* sqlite3.c:229786:23: */
- return ts + 23998 /* "2020-06-18 14:00..." */
+ return ts + 24557 /* "2020-06-18 14:00..." */
}
//************************* End of sqlite3.c *****************************
@@ -138779,6 +140967,16 @@ func init() {
*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1056 /* .xInverse */)) = noopStepFunc // sqlite3.c:151154:5:
*(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1064 /* .zName */)) = uintptr(unsafe.Pointer(&lagName)) // sqlite3.c:151154:5:
*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&attach_func)) + 24 /* .xSFunc */)) = attachFunc // sqlite3.c:109670:5:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 16 /* .xConnect */)) = bytecodevtabConnect // sqlite3.c:96823:21:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 24 /* .xBestIndex */)) = bytecodevtabBestIndex // sqlite3.c:96824:21:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 32 /* .xDisconnect */)) = bytecodevtabDisconnect // sqlite3.c:96825:21:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 48 /* .xOpen */)) = bytecodevtabOpen // sqlite3.c:96827:21:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 56 /* .xClose */)) = bytecodevtabClose // sqlite3.c:96828:21:
+ *(*func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 64 /* .xFilter */)) = bytecodevtabFilter // sqlite3.c:96829:21:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 72 /* .xNext */)) = bytecodevtabNext // sqlite3.c:96830:21:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 80 /* .xEof */)) = bytecodevtabEof // sqlite3.c:96831:21:
+ *(*func(*crt.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 88 /* .xColumn */)) = bytecodevtabColumn // sqlite3.c:96832:21:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&bytecodevtabModule)) + 96 /* .xRowid */)) = bytecodevtabRowid // sqlite3.c:96833:21:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dbpage_module)) + 8 /* .xCreate */)) = dbpageConnect // sqlite3.c:201682:5:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dbpage_module)) + 16 /* .xConnect */)) = dbpageConnect // sqlite3.c:201683:5:
*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dbpage_module)) + 24 /* .xBestIndex */)) = dbpageBestIndex // sqlite3.c:201684:5:
@@ -138842,6 +141040,29 @@ func init() {
*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 128 /* .xShmUnmap */)) = unixShmUnmap // sqlite3.c:38782:1:
*(*func(*crt.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 136 /* .xFetch */)) = unixFetch // sqlite3.c:38782:1:
*(*func(*crt.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 144 /* .xUnfetch */)) = unixUnfetch // sqlite3.c:38782:1:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 8 /* .xClose */)) = memdbClose // sqlite3.c:47853:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 16 /* .xRead */)) = memdbRead // sqlite3.c:47854:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 24 /* .xWrite */)) = memdbWrite // sqlite3.c:47855:3:
+ *(*func(*crt.TLS, uintptr, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 32 /* .xTruncate */)) = memdbTruncate // sqlite3.c:47856:3:
+ *(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 40 /* .xSync */)) = memdbSync // sqlite3.c:47857:3:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 48 /* .xFileSize */)) = memdbFileSize // sqlite3.c:47858:3:
+ *(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 56 /* .xLock */)) = memdbLock // sqlite3.c:47859:3:
+ *(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 64 /* .xUnlock */)) = memdbLock // sqlite3.c:47860:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 80 /* .xFileControl */)) = memdbFileControl // sqlite3.c:47862:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 96 /* .xDeviceCharacteristics */)) = memdbDeviceCharacteristics // sqlite3.c:47864:3:
+ *(*func(*crt.TLS, uintptr, Sqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 136 /* .xFetch */)) = memdbFetch // sqlite3.c:47869:3:
+ *(*func(*crt.TLS, uintptr, Sqlite3_int64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 144 /* .xUnfetch */)) = memdbUnfetch // sqlite3.c:47870:3:
+ *(*func(*crt.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 40 /* .xOpen */)) = memdbOpen // sqlite3.c:47836:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 56 /* .xAccess */)) = memdbAccess // sqlite3.c:47838:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 64 /* .xFullPathname */)) = memdbFullPathname // sqlite3.c:47839:3:
+ *(*func(*crt.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 72 /* .xDlOpen */)) = memdbDlOpen // sqlite3.c:47840:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 80 /* .xDlError */)) = memdbDlError // sqlite3.c:47841:3:
+ *(*func(*crt.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 88 /* .xDlSym */)) = memdbDlSym // sqlite3.c:47842:3:
+ *(*func(*crt.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 96 /* .xDlClose */)) = memdbDlClose // sqlite3.c:47843:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 104 /* .xRandomness */)) = memdbRandomness // sqlite3.c:47844:3:
+ *(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 112 /* .xSleep */)) = memdbSleep // sqlite3.c:47845:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 128 /* .xGetLastError */)) = memdbGetLastError // sqlite3.c:47847:3:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 136 /* .xCurrentTimeInt64 */)) = memdbCurrentTimeInt64 // sqlite3.c:47848:3:
*(*func(*crt.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoFinder)) + 0)) = nolockIoFinderImpl // sqlite3.c:38772:1:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 8 /* .xClose */)) = nolockClose // sqlite3.c:38772:1:
*(*func(*crt.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 16 /* .xRead */)) = unixRead // sqlite3.c:38772:1:
@@ -138913,28 +141134,36 @@ func init() {
*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 64 /* .bind_parameter_index */)) = Xsqlite3_bind_parameter_index // sqlite3.c:124084:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 72 /* .bind_parameter_name */)) = Xsqlite3_bind_parameter_name // sqlite3.c:124085:3:
*(*func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 80 /* .bind_text */)) = Xsqlite3_bind_text // sqlite3.c:124086:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 88 /* .bind_text16 */)) = Xsqlite3_bind_text16 // sqlite3.c:124087:3:
*(*func(*crt.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 96 /* .bind_value */)) = Xsqlite3_bind_value // sqlite3.c:124088:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 104 /* .busy_handler */)) = Xsqlite3_busy_handler // sqlite3.c:124089:3:
*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 112 /* .busy_timeout */)) = Xsqlite3_busy_timeout // sqlite3.c:124090:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 120 /* .changes */)) = Xsqlite3_changes // sqlite3.c:124091:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 128 /* .close */)) = Xsqlite3_close // sqlite3.c:124092:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 136 /* .collation_needed */)) = Xsqlite3_collation_needed // sqlite3.c:124093:3:
+ *(*func(*crt.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 144 /* .collation_needed16 */)) = Xsqlite3_collation_needed16 // sqlite3.c:124094:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 152 /* .column_blob */)) = Xsqlite3_column_blob // sqlite3.c:124095:3:
*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 160 /* .column_bytes */)) = Xsqlite3_column_bytes // sqlite3.c:124096:3:
*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 168 /* .column_bytes16 */)) = Xsqlite3_column_bytes16 // sqlite3.c:124097:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 176 /* .column_count */)) = Xsqlite3_column_count // sqlite3.c:124098:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 200 /* .column_decltype */)) = Xsqlite3_column_decltype // sqlite3.c:124101:3:
+ *(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 208 /* .column_decltype16 */)) = Xsqlite3_column_decltype16 // sqlite3.c:124102:3:
*(*func(*crt.TLS, uintptr, int32) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 216 /* .column_double */)) = Xsqlite3_column_double // sqlite3.c:124103:3:
*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 224 /* .column_int */)) = Xsqlite3_column_int // sqlite3.c:124104:3:
*(*func(*crt.TLS, uintptr, int32) Sqlite_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 232 /* .column_int64 */)) = Xsqlite3_column_int64 // sqlite3.c:124105:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 240 /* .column_name */)) = Xsqlite3_column_name // sqlite3.c:124106:3:
+ *(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 248 /* .column_name16 */)) = Xsqlite3_column_name16 // sqlite3.c:124107:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 288 /* .column_text */)) = Xsqlite3_column_text // sqlite3.c:124112:3:
+ *(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 296 /* .column_text16 */)) = Xsqlite3_column_text16 // sqlite3.c:124113:3:
*(*func(*crt.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 304 /* .column_type */)) = Xsqlite3_column_type // sqlite3.c:124114:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 312 /* .column_value */)) = Xsqlite3_column_value // sqlite3.c:124115:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 320 /* .commit_hook */)) = Xsqlite3_commit_hook // sqlite3.c:124116:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 328 /* .complete */)) = Xsqlite3_complete // sqlite3.c:124117:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 336 /* .complete16 */)) = Xsqlite3_complete16 // sqlite3.c:124118:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 344 /* .create_collation */)) = Xsqlite3_create_collation // sqlite3.c:124119:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 352 /* .create_collation16 */)) = Xsqlite3_create_collation16 // sqlite3.c:124120:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 360 /* .create_function */)) = Xsqlite3_create_function // sqlite3.c:124121:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 368 /* .create_function16 */)) = Xsqlite3_create_function16 // sqlite3.c:124122:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 376 /* .create_module */)) = Xsqlite3_create_module // sqlite3.c:124123:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 384 /* .data_count */)) = Xsqlite3_data_count // sqlite3.c:124124:3:
*(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 392 /* .db_handle */)) = Xsqlite3_db_handle // sqlite3.c:124125:3:
@@ -138942,6 +141171,7 @@ func init() {
*(*func(*crt.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 408 /* .enable_shared_cache */)) = Xsqlite3_enable_shared_cache // sqlite3.c:124127:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 416 /* .errcode */)) = Xsqlite3_errcode // sqlite3.c:124128:3:
*(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 424 /* .errmsg */)) = Xsqlite3_errmsg // sqlite3.c:124129:3:
+ *(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 432 /* .errmsg16 */)) = Xsqlite3_errmsg16 // sqlite3.c:124130:3:
*(*func(*crt.TLS, uintptr, uintptr, Sqlite3_callback, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 440 /* .exec */)) = Xsqlite3_exec // sqlite3.c:124131:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 448 /* .expired */)) = Xsqlite3_expired // sqlite3.c:124133:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 456 /* .finalize */)) = Xsqlite3_finalize // sqlite3.c:124137:3:
@@ -138957,17 +141187,24 @@ func init() {
*(*func(*crt.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 544 /* .malloc */)) = Xsqlite3_malloc // sqlite3.c:124148:3:
*(*func(*crt.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 552 /* .mprintf */)) = Xsqlite3_mprintf // sqlite3.c:124149:3:
*(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 560 /* .open64 */)) = Xsqlite3_open // sqlite3.c:124150:3:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 568 /* .open16 */)) = Xsqlite3_open16 // sqlite3.c:124151:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 576 /* .prepare */)) = Xsqlite3_prepare // sqlite3.c:124152:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 584 /* .prepare16 */)) = Xsqlite3_prepare16 // sqlite3.c:124153:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 592 /* .profile */)) = Xsqlite3_profile // sqlite3.c:124154:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 600 /* .progress_handler */)) = Xsqlite3_progress_handler // sqlite3.c:124155:3:
*(*func(*crt.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 608 /* .realloc */)) = Xsqlite3_realloc // sqlite3.c:124156:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 616 /* .reset */)) = Xsqlite3_reset // sqlite3.c:124157:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 624 /* .result_blob */)) = Xsqlite3_result_blob // sqlite3.c:124158:3:
*(*func(*crt.TLS, uintptr, float64))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 632 /* .result_double */)) = Xsqlite3_result_double // sqlite3.c:124159:3:
*(*func(*crt.TLS, uintptr, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 640 /* .result_error */)) = Xsqlite3_result_error // sqlite3.c:124160:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 648 /* .result_error16 */)) = Xsqlite3_result_error16 // sqlite3.c:124161:3:
*(*func(*crt.TLS, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 656 /* .result_int */)) = Xsqlite3_result_int // sqlite3.c:124162:3:
*(*func(*crt.TLS, uintptr, I64))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 664 /* .result_int64 */)) = Xsqlite3_result_int64 // sqlite3.c:124163:3:
*(*func(*crt.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 672 /* .result_null */)) = Xsqlite3_result_null // sqlite3.c:124164:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 680 /* .result_text */)) = Xsqlite3_result_text // sqlite3.c:124165:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 688 /* .result_text16 */)) = Xsqlite3_result_text16 // sqlite3.c:124166:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 696 /* .result_text16be */)) = Xsqlite3_result_text16be // sqlite3.c:124167:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 704 /* .result_text16le */)) = Xsqlite3_result_text16le // sqlite3.c:124168:3:
*(*func(*crt.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 712 /* .result_value */)) = Xsqlite3_result_value // sqlite3.c:124169:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 720 /* .rollback_hook */)) = Xsqlite3_rollback_hook // sqlite3.c:124170:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 728 /* .set_authorizer */)) = Xsqlite3_set_authorizer // sqlite3.c:124171:3:
@@ -138989,10 +141226,14 @@ func init() {
*(*func(*crt.TLS, uintptr) Sqlite_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 856 /* .value_int64 */)) = Xsqlite3_value_int64 // sqlite3.c:124195:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 864 /* .value_numeric_type */)) = Xsqlite3_value_numeric_type // sqlite3.c:124196:3:
*(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 872 /* .value_text */)) = Xsqlite3_value_text // sqlite3.c:124197:3:
+ *(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 880 /* .value_text16 */)) = Xsqlite3_value_text16 // sqlite3.c:124198:3:
+ *(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 888 /* .value_text16be */)) = Xsqlite3_value_text16be // sqlite3.c:124199:3:
+ *(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 896 /* .value_text16le */)) = Xsqlite3_value_text16le // sqlite3.c:124200:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 904 /* .value_type */)) = Xsqlite3_value_type // sqlite3.c:124201:3:
*(*func(*crt.TLS, uintptr, Va_list) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 912 /* .vmprintf */)) = Xsqlite3_vmprintf // sqlite3.c:124202:3:
*(*func(*crt.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 920 /* .overload_function */)) = Xsqlite3_overload_function // sqlite3.c:124211:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 928 /* .prepare_v2 */)) = Xsqlite3_prepare_v2 // sqlite3.c:124216:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 936 /* .prepare16_v2 */)) = Xsqlite3_prepare16_v2 // sqlite3.c:124217:3:
*(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 944 /* .clear_bindings */)) = Xsqlite3_clear_bindings // sqlite3.c:124218:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 952 /* .create_module_v2 */)) = Xsqlite3_create_module_v2 // sqlite3.c:124223:3:
*(*func(*crt.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 960 /* .bind_zeroblob */)) = Xsqlite3_bind_zeroblob // sqlite3.c:124228:3:
@@ -139095,6 +141336,7 @@ func init() {
*(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1720 /* .expanded_sql */)) = Xsqlite3_expanded_sql // sqlite3.c:124364:3:
*(*func(*crt.TLS, uintptr, Sqlite3_int64))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1728 /* .set_last_insert_rowid */)) = Xsqlite3_set_last_insert_rowid // sqlite3.c:124366:3:
*(*func(*crt.TLS, uintptr, uintptr, int32, uint32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1736 /* .prepare_v3 */)) = Xsqlite3_prepare_v3 // sqlite3.c:124368:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uint32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1744 /* .prepare16_v3 */)) = Xsqlite3_prepare16_v3 // sqlite3.c:124369:3:
*(*func(*crt.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1752 /* .bind_pointer */)) = Xsqlite3_bind_pointer // sqlite3.c:124370:3:
*(*func(*crt.TLS, uintptr, uintptr, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1760 /* .result_pointer */)) = Xsqlite3_result_pointer // sqlite3.c:124371:3:
*(*func(*crt.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1768 /* .value_pointer */)) = Xsqlite3_value_pointer // sqlite3.c:124372:3:
@@ -139127,11 +141369,24 @@ func init() {
*(*func(*crt.TLS, uintptr, uintptr, uintptr, int32, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1992 /* .create_filename */)) = Xsqlite3_create_filename // sqlite3.c:124416:3:
*(*func(*crt.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2000 /* .free_filename */)) = Xsqlite3_free_filename // sqlite3.c:124417:3:
*(*func(*crt.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2008 /* .database_file_object */)) = Xsqlite3_database_file_object // sqlite3.c:124418:3:
- *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 0)) = sqlite3TestExtInit // sqlite3.c:160423:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 0)) = Xsqlite3DbpageRegister // sqlite3.c:160418:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 8)) = sqlite3TestExtInit // sqlite3.c:160423:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 16)) = Xsqlite3StmtVtabInit // sqlite3.c:160428:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 24)) = Xsqlite3VdbeBytecodeVtabInit // sqlite3.c:160431:3:
*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&statGetFuncdef)) + 24 /* .xSFunc */)) = statGet // sqlite3.c:108259:3:
*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&statInitFuncdef)) + 24 /* .xSFunc */)) = statInit // sqlite3.c:107817:3:
*(*func(*crt.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&statPushFuncdef)) + 24 /* .xSFunc */)) = statPush // sqlite3.c:108107:3:
-}
-
-var ts1 = "DEFAULT_PAGE_SIZE=1024\x00DEFAULT_WAL_SYNCHRONOUS=1\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MAX_EXPR_DEPTH=0\x00MUTEX_NOOP\x00OMIT_PROGRESS_CALLBACK\x00OMIT_UTF16\x00TEST\x00THREADSAFE=2\x003.32.3\x00BINARY\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00local time unavailable\x00second\x00minute\x00hour\x00day\x00month\x00year\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00%04d-%02d-%02d %02d:%02d:%02d\x00%02d:%02d:%02d\x00%04d-%02d-%02d\x00%02d\x00%06.3f\x00%03d\x00%.16g\x00%lld\x00%04d\x00julianday\x00date\x00time\x00datetime\x00strftime\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x000123456789ABCDEF0123456789abcdef\x00-x0\x00X0\x00%\x00NaN\x00Inf\x00\x00NULL\x00(NULL)\x00.\x00thstndrd\x00%s\x00922337203685477580\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00SorterNext\x00Prev\x00Next\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00Not\x00IfNot\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00IdxLE\x00IdxGT\x00IdxLT\x00IdxGE\x00RowSetRead\x00Or\x00And\x00RowSetTest\x00Program\x00FkIfZero\x00IfPos\x00IfNotZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseNotEq\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Init\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00Offset\x00Column\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00OpenRead\x00OpenWrite\x00OpenDup\x00OpenAutoindex\x00OpenEphemeral\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00SorterOpen\x00BitNot\x00SequenceTest\x00OpenPseudo\x00String8\x00Close\x00ColumnsUsed\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00Real\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00NONE\x00SHARED\x00RESERVED\x00PENDING\x00EXCLUSIVE\x00ERROR\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00TEST WR-LOCK %d %d %d (unix)\n\x00LOCK %d %s was %s(%s,%d) pid=%d (unix)\n\x00LOCK %d %s ok (already held) (unix)\n\x00LOCK %d %s %s (unix)\n\x00ok\x00failed\x00UNLOCK %d %d was %d(%d,%d) pid=%d (unix)\n\x00CLOSE %-3d\n\x00TEST WR-LOCK %d %d %d (dotlock)\n\x00UNLOCK %d %d was %d pid=%d (dotlock)\n\x00READ %-3d %5d %7lld %llu\n\x00WRITE %-3d %5d %7lld %llu\n\x00OPENDIR %-3d %s\n\x00SYNC %-3d\n\x00full_fsync\x00DIRSYNC %s (have_fullfsync=%d fullsync=%d)\n\x00%s-shm\x00readonly_shm\x00SHM-LOCK shmid-%d, pid-%d got %03x,%03x\n\x00OPEN %-3d %s\n\x00psow\x00unix-excl\x00%s.lock\x00SQLITE_TMPDIR\x00TMPDIR\x00/var/tmp\x00/usr/tmp\x00/tmp\x00%s/etilqs_%llx%c\x00modeof\x00OPENX %-3d %s 0%o\n\x00fsync\x00unix\x00unix-none\x00unix-dotfile\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00SQLite format 3\x00:memory:\x00@ \x00\n\x00invalid page number %d\x002nd reference to page %d\x00Failed to read ptrmap key=%d\x00Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)\x00failed to get page %d\x00freelist leaf count too big on page %d\x00%s is %d but should be %d\x00size\x00overflow list length\x00Page %d: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00On tree page %d cell %d: \x00On page %d at right child: \x00Offset %d out of range %d..%d\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %d\x00Fragmentation of %d bytes reported as %d on page %d\x00Main freelist: \x00max rootpage (%d) disagrees with header (%d)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %d is never used\x00Pointer map page %d is referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00B\x00,%s%s%s\x00N.\x00)\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%d\x00]\x00program\x00?\x008\x0016LE\x0016BE\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00cannot change %s wal mode from within a transaction\x00into\x00out of\x00database table is locked: %s\x00-- %s\x00statement aborts at %d: [%s] %s\x00out of memory\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00cannot open value of type %s\x00null\x00real\x00integer\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00main\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to likelihood() must be a constant between 0.0 and 1.0\x00not authorized to use function: %s\x00non-deterministic functions\x00%.*s() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %.*s()\x00no such function: %.*s\x00wrong number of arguments to function %.*s()\x00FILTER may not be used with non-aggregate %.*s()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00a GROUP BY clause is required before HAVING\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x000\x00too many arguments on function %T\x00unsafe use of %s()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00%sLIST SUBQUERY %d\x00CORRELATED \x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%s\x00generated column loop on \"%s\"\x00misuse of aggregate: %s()\x00unknown function: %s()\x00RAISE() may only be used within a trigger-program\x00B\x00C\x00D\x00E\x00sqlite_\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".%s WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d)=NULL \x00SELECT 1 FROM temp.%s WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1)=NULL \x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".%s SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.%s SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".%s SET sql = substr(sql,1,%d) || ', ' || %Q || substr(sql,%d) WHERE type = 'table' AND name = %Q\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00cannot rename columns of %s \"%s\"\x00UPDATE \"%w\".%s SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q) AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.%s SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00error in %s %s%s: %s\x00 after rename\x00\"%w\"\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00sqlite_stat3\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00memdb\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s %T cannot reference objects in database %s\x00%s cannot use variables\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00sqlite_temp_master\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00table %T already exists\x00there is already an index named %s\x00too many columns on %s\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00INTEGER\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.%s SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.%s SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.%s WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00unsupported use of NULLS %s\x00FIRST\x00LAST\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00CREATE%s INDEX %.*s\x00 UNIQUE\x00INSERT INTO %Q.%s VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.%s WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00a JOIN clause is required before %s\x00ON\x00USING\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00text\x00blob\x00integer overflow\x00%.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!.20e\x00 \x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00length\x00instr\x00printf\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00sum\x00total\x00avg\x00count\x00group_concat\x00glob\x00coalesce\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00sqlite3_extension_init\x00unable to open shared library [%s]\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00so\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00log\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_status\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00onoffalseyestruextrafull\x00exclusive\x00normal\x00none\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00w\x00a\x00s\x00sissii\x00utf8\x00utf16le\x00utf16be\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00issisii\x00issisi\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00siX\x00*** in database %s ***\n\x00NULL value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00non-unique entry in index \x00wrong # of entries in index \x00restart\x00ANALYZE \"%w\".\"%w\"\x00unknown\x00closed\x00ss\x00unlocked\x00shared\x00reserved\x00pending\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00malformed database schema (%s)\x00%z - %s\x00create \x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown or unsupported join type: %T %T%s%T\x00RIGHT and FULL OUTER JOINs are not currently supported\x00naturaleftouterightfullinnercross\x00a NATURAL join may not have an ON or USING clause\x00cannot have both ON and USING clauses in the same join\x00cannot join using column %s - column not present in both tables\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00column%d\x00%.*z:%u\x00cannot use window functions in recursive queries\x00SETUP\x00recursive aggregate queries not supported\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00S\x00%s clause should come after %s not before\x00ORDER BY\x00LIMIT\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00subquery_%u\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00unsafe use of virtual table \"%s\"\x00*\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00SCAN TABLE %s%s%s\x00 USING COVERING INDEX \x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %u\x00MATERIALIZE %u\x00DISTINCT\x00GROUP BY\x00RIGHT PART OF ORDER BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00trigger %T already exists\x00cannot create trigger on system table\x00cannot create %s trigger on view: %S\x00BEFORE\x00AFTER\x00cannot create INSTEAD OF trigger on table: %S\x00INSERT INTO %Q.%s VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.%s WHERE name=%Q AND type='trigger'\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_master WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_master WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_master WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_master SELECT*FROM \"%w\".sqlite_master WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.%s SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00<expr>\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00 SUBQUERY %u\x00 TABLE %s\x00 AS %s\x00PRIMARY KEY\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00=\x00>? AND rowid<\x00 USING INTEGER PRIMARY KEY (rowid%s?)\x00 VIRTUAL TABLE INDEX %d:%s\x00MULTI-INDEX OR\x00INDEX %d\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00row_number\x00dense_rank\x00rank\x00percent_rank\x00cume_dist\x00ntile\x00last_value\x00nth_value\x00first_value\x00lead\x00lag\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%.*s\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00SQLITE_OK\x00SQLITE_ERROR\x00SQLITE_ERROR_SNAPSHOT\x00SQLITE_INTERNAL\x00SQLITE_PERM\x00SQLITE_ABORT\x00SQLITE_ABORT_ROLLBACK\x00SQLITE_BUSY\x00SQLITE_BUSY_RECOVERY\x00SQLITE_BUSY_SNAPSHOT\x00SQLITE_LOCKED\x00SQLITE_LOCKED_SHAREDCACHE\x00SQLITE_NOMEM\x00SQLITE_READONLY\x00SQLITE_READONLY_RECOVERY\x00SQLITE_READONLY_CANTINIT\x00SQLITE_READONLY_ROLLBACK\x00SQLITE_READONLY_DBMOVED\x00SQLITE_READONLY_DIRECTORY\x00SQLITE_INTERRUPT\x00SQLITE_IOERR\x00SQLITE_IOERR_READ\x00SQLITE_IOERR_SHORT_READ\x00SQLITE_IOERR_WRITE\x00SQLITE_IOERR_FSYNC\x00SQLITE_IOERR_DIR_FSYNC\x00SQLITE_IOERR_TRUNCATE\x00SQLITE_IOERR_FSTAT\x00SQLITE_IOERR_UNLOCK\x00SQLITE_IOERR_RDLOCK\x00SQLITE_IOERR_DELETE\x00SQLITE_IOERR_NOMEM\x00SQLITE_IOERR_ACCESS\x00SQLITE_IOERR_CHECKRESERVEDLOCK\x00SQLITE_IOERR_LOCK\x00SQLITE_IOERR_CLOSE\x00SQLITE_IOERR_DIR_CLOSE\x00SQLITE_IOERR_SHMOPEN\x00SQLITE_IOERR_SHMSIZE\x00SQLITE_IOERR_SHMLOCK\x00SQLITE_IOERR_SHMMAP\x00SQLITE_IOERR_SEEK\x00SQLITE_IOERR_DELETE_NOENT\x00SQLITE_IOERR_MMAP\x00SQLITE_IOERR_GETTEMPPATH\x00SQLITE_IOERR_CONVPATH\x00SQLITE_CORRUPT\x00SQLITE_CORRUPT_VTAB\x00SQLITE_NOTFOUND\x00SQLITE_FULL\x00SQLITE_CANTOPEN\x00SQLITE_CANTOPEN_NOTEMPDIR\x00SQLITE_CANTOPEN_ISDIR\x00SQLITE_CANTOPEN_FULLPATH\x00SQLITE_CANTOPEN_CONVPATH\x00SQLITE_CANTOPEN_SYMLINK\x00SQLITE_PROTOCOL\x00SQLITE_EMPTY\x00SQLITE_SCHEMA\x00SQLITE_TOOBIG\x00SQLITE_CONSTRAINT\x00SQLITE_CONSTRAINT_UNIQUE\x00SQLITE_CONSTRAINT_TRIGGER\x00SQLITE_CONSTRAINT_FOREIGNKEY\x00SQLITE_CONSTRAINT_CHECK\x00SQLITE_CONSTRAINT_PRIMARYKEY\x00SQLITE_CONSTRAINT_NOTNULL\x00SQLITE_CONSTRAINT_COMMITHOOK\x00SQLITE_CONSTRAINT_VTAB\x00SQLITE_CONSTRAINT_FUNCTION\x00SQLITE_CONSTRAINT_ROWID\x00SQLITE_MISMATCH\x00SQLITE_MISUSE\x00SQLITE_NOLFS\x00SQLITE_AUTH\x00SQLITE_FORMAT\x00SQLITE_RANGE\x00SQLITE_NOTADB\x00SQLITE_ROW\x00SQLITE_NOTICE\x00SQLITE_NOTICE_RECOVER_WAL\x00SQLITE_NOTICE_RECOVER_ROLLBACK\x00SQLITE_WARNING\x00SQLITE_WARNING_AUTOINDEX\x00SQLITE_DONE\x00SQLITE_UNKNOWN(%d)\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00mode\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00private\x00ro\x00rw\x00rwc\x00RTRIM\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00CREATE TABLE x( name TEXT, path TEXT, pageno INTEGER, pagetype TEXT, ncell INTEGER, payload INTEGER, unused INTEGER, mx_payload INTEGER, pgoffset INTEGER, pgsize INTEGER, schema TEXT HIDDEN, aggregate BOOLEAN HIDDEN)\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_master' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_master WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00CREATE TABLE x(pgno INTEGER PRIMARY KEY, data BLOB, schema HIDDEN)\x00read-only\x00cannot delete\x00cannot insert\x00no such schema\x00bad page number\x00bad page value\x00sqlite_dbpage\x002020-06-18 14:00:33 7ebdfa80be8e8e73324b8d66b3460222eb74c7e9dfd655b48d6ca7e1933cc8fd\x00"
+ *(*func(*crt.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 16 /* .xConnect */)) = stmtConnect // sqlite3.c:229727:3:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 24 /* .xBestIndex */)) = stmtBestIndex // sqlite3.c:229728:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 32 /* .xDisconnect */)) = stmtDisconnect // sqlite3.c:229729:3:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 48 /* .xOpen */)) = stmtOpen // sqlite3.c:229731:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 56 /* .xClose */)) = stmtClose // sqlite3.c:229732:3:
+ *(*func(*crt.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 64 /* .xFilter */)) = stmtFilter // sqlite3.c:229733:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 72 /* .xNext */)) = stmtNext // sqlite3.c:229734:3:
+ *(*func(*crt.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 80 /* .xEof */)) = stmtEof // sqlite3.c:229735:3:
+ *(*func(*crt.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 88 /* .xColumn */)) = stmtColumn // sqlite3.c:229736:3:
+ *(*func(*crt.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&stmtModule)) + 96 /* .xRowid */)) = stmtRowid // sqlite3.c:229737:3:
+}
+
+var ts1 = "DEFAULT_PAGE_SIZE=1024\x00DEFAULT_WAL_SYNCHRONOUS=1\x00ENABLE_BYTECODE_VTAB\x00ENABLE_STMTVTAB\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MAX_EXPR_DEPTH=0\x00MAX_MMAP_SIZE=8589934592\x00MUTEX_NOOP\x00NO_SYNC\x00TEMP_STORE=1\x00TEST\x00THREADSAFE=1\x003.32.3\x00BINARY\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00local time unavailable\x00second\x00minute\x00hour\x00day\x00month\x00year\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00%04d-%02d-%02d %02d:%02d:%02d\x00%02d:%02d:%02d\x00%04d-%02d-%02d\x00%02d\x00%06.3f\x00%03d\x00%.16g\x00%lld\x00%04d\x00julianday\x00date\x00time\x00datetime\x00strftime\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x000123456789ABCDEF0123456789abcdef\x00-x0\x00X0\x00%\x00NaN\x00Inf\x00\x00NULL\x00(NULL)\x00.\x00thstndrd\x00%s\x00922337203685477580\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00SorterNext\x00Prev\x00Next\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00Not\x00IfNot\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00IdxLE\x00IdxGT\x00IdxLT\x00IdxGE\x00RowSetRead\x00Or\x00And\x00RowSetTest\x00Program\x00FkIfZero\x00IfPos\x00IfNotZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseNotEq\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Init\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00Offset\x00Column\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00OpenRead\x00OpenWrite\x00OpenDup\x00OpenAutoindex\x00OpenEphemeral\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00SorterOpen\x00BitNot\x00SequenceTest\x00OpenPseudo\x00String8\x00Close\x00ColumnsUsed\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00Real\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00NONE\x00SHARED\x00RESERVED\x00PENDING\x00EXCLUSIVE\x00ERROR\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00TEST WR-LOCK %d %d %d (unix)\n\x00LOCK %d %s was %s(%s,%d) pid=%d (unix)\n\x00LOCK %d %s ok (already held) (unix)\n\x00LOCK %d %s %s (unix)\n\x00ok\x00failed\x00UNLOCK %d %d was %d(%d,%d) pid=%d (unix)\n\x00CLOSE %-3d\n\x00TEST WR-LOCK %d %d %d (dotlock)\n\x00UNLOCK %d %d was %d pid=%d (dotlock)\n\x00READ %-3d %5d %7lld %llu\n\x00WRITE %-3d %5d %7lld %llu\n\x00OPENDIR %-3d %s\n\x00SYNC %-3d\n\x00full_fsync\x00DIRSYNC %s (have_fullfsync=%d fullsync=%d)\n\x00%s-shm\x00readonly_shm\x00SHM-LOCK shmid-%d, pid-%d got %03x,%03x\n\x00OPEN %-3d %s\n\x00psow\x00unix-excl\x00%s.lock\x00SQLITE_TMPDIR\x00TMPDIR\x00/var/tmp\x00/usr/tmp\x00/tmp\x00%s/etilqs_%llx%c\x00modeof\x00OPENX %-3d %s 0%o\n\x00fsync\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00SQLite format 3\x00:memory:\x00@ \x00\n\x00invalid page number %d\x002nd reference to page %d\x00Failed to read ptrmap key=%d\x00Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)\x00failed to get page %d\x00freelist leaf count too big on page %d\x00%s is %d but should be %d\x00size\x00overflow list length\x00Page %d: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00On tree page %d cell %d: \x00On page %d at right child: \x00Offset %d out of range %d..%d\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %d\x00Fragmentation of %d bytes reported as %d on page %d\x00Main freelist: \x00max rootpage (%d) disagrees with header (%d)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %d is never used\x00Pointer map page %d is referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00B\x00,%s%s%s\x00N.\x00)\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%d\x00]\x00program\x00?\x008\x0016LE\x0016BE\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00cannot change %s wal mode from within a transaction\x00into\x00out of\x00database table is locked: %s\x00-- %s\x00statement aborts at %d: [%s] %s\x00out of memory\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00cannot open value of type %s\x00null\x00real\x00integer\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00CREATE TABLE x(addr INT,opcode TEXT,p1 INT,p2 INT,p3 INT,p4 TEXT,p5 INT,comment TEXT,subprog TEXT,stmt HIDDEN);\x00CREATE TABLE x(type TEXT,schema TEXT,name TEXT,wr INT,subprog TEXT,stmt HIDDEN);\x00table\x00index\x00(FK)\x00stmt-pointer\x00argument to %s() is not a valid SQL statement\x00tables_used\x00bytecode\x00main\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to likelihood() must be a constant between 0.0 and 1.0\x00not authorized to use function: %s\x00non-deterministic functions\x00%.*s() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %.*s()\x00no such function: %.*s\x00wrong number of arguments to function %.*s()\x00FILTER may not be used with non-aggregate %.*s()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00a GROUP BY clause is required before HAVING\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x000\x00too many arguments on function %T\x00unsafe use of %s()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00%sLIST SUBQUERY %d\x00CORRELATED \x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%s\x00generated column loop on \"%s\"\x00misuse of aggregate: %s()\x00unknown function: %s()\x00RAISE() may only be used within a trigger-program\x00B\x00C\x00D\x00E\x00sqlite_\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".%s WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d)=NULL \x00SELECT 1 FROM temp.%s WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1)=NULL \x00there is already another table or index with this name: %s\x00view %s may not be altered\x00UPDATE \"%w\".%s SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.%s SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".%s SET sql = substr(sql,1,%d) || ', ' || %Q || substr(sql,%d) WHERE type = 'table' AND name = %Q\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00cannot rename columns of %s \"%s\"\x00UPDATE \"%w\".%s SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q) AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.%s SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00error in %s %s%s: %s\x00 after rename\x00\"%w\"\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00sqlite_stat3\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s %T cannot reference objects in database %s\x00%s cannot use variables\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00sqlite_temp_master\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00table %T already exists\x00there is already an index named %s\x00too many columns on %s\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00INTEGER\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.%s SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.%s SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.%s WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00unsupported use of NULLS %s\x00FIRST\x00LAST\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00CREATE%s INDEX %.*s\x00 UNIQUE\x00INSERT INTO %Q.%s VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.%s WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00a JOIN clause is required before %s\x00ON\x00USING\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00text\x00blob\x00integer overflow\x00%.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!.20e\x00 \x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00length\x00instr\x00printf\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00sum\x00total\x00avg\x00count\x00group_concat\x00glob\x00coalesce\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00sqlite3_extension_init\x00unable to open shared library [%s]\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00so\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00log\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_status\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00onoffalseyestruextrafull\x00exclusive\x00normal\x00none\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00w\x00a\x00s\x00sissii\x00utf8\x00utf16le\x00utf16be\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00issisii\x00issisi\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00siX\x00*** in database %s ***\n\x00NULL value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00non-unique entry in index \x00wrong # of entries in index \x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00unknown\x00closed\x00ss\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unlocked\x00shared\x00reserved\x00pending\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00malformed database schema (%s)\x00%z - %s\x00create \x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown or unsupported join type: %T %T%s%T\x00RIGHT and FULL OUTER JOINs are not currently supported\x00naturaleftouterightfullinnercross\x00a NATURAL join may not have an ON or USING clause\x00cannot have both ON and USING clauses in the same join\x00cannot join using column %s - column not present in both tables\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00column%d\x00%.*z:%u\x00cannot use window functions in recursive queries\x00SETUP\x00recursive aggregate queries not supported\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00S\x00%s clause should come after %s not before\x00ORDER BY\x00LIMIT\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00subquery_%u\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00unsafe use of virtual table \"%s\"\x00*\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00SCAN TABLE %s%s%s\x00 USING COVERING INDEX \x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %u\x00MATERIALIZE %u\x00DISTINCT\x00GROUP BY\x00RIGHT PART OF ORDER BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00trigger %T already exists\x00cannot create trigger on system table\x00cannot create %s trigger on view: %S\x00BEFORE\x00AFTER\x00cannot create INSTEAD OF trigger on table: %S\x00INSERT INTO %Q.%s VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.%s WHERE name=%Q AND type='trigger'\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_master WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_master WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_master WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_master SELECT*FROM \"%w\".sqlite_master WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.%s SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00<expr>\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00 SUBQUERY %u\x00 TABLE %s\x00 AS %s\x00PRIMARY KEY\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00=\x00>? AND rowid<\x00 USING INTEGER PRIMARY KEY (rowid%s?)\x00 VIRTUAL TABLE INDEX %d:%s\x00MULTI-INDEX OR\x00INDEX %d\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00row_number\x00dense_rank\x00rank\x00percent_rank\x00cume_dist\x00ntile\x00last_value\x00nth_value\x00first_value\x00lead\x00lag\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%.*s\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00SQLITE_OK\x00SQLITE_ERROR\x00SQLITE_ERROR_SNAPSHOT\x00SQLITE_INTERNAL\x00SQLITE_PERM\x00SQLITE_ABORT\x00SQLITE_ABORT_ROLLBACK\x00SQLITE_BUSY\x00SQLITE_BUSY_RECOVERY\x00SQLITE_BUSY_SNAPSHOT\x00SQLITE_LOCKED\x00SQLITE_LOCKED_SHAREDCACHE\x00SQLITE_NOMEM\x00SQLITE_READONLY\x00SQLITE_READONLY_RECOVERY\x00SQLITE_READONLY_CANTINIT\x00SQLITE_READONLY_ROLLBACK\x00SQLITE_READONLY_DBMOVED\x00SQLITE_READONLY_DIRECTORY\x00SQLITE_INTERRUPT\x00SQLITE_IOERR\x00SQLITE_IOERR_READ\x00SQLITE_IOERR_SHORT_READ\x00SQLITE_IOERR_WRITE\x00SQLITE_IOERR_FSYNC\x00SQLITE_IOERR_DIR_FSYNC\x00SQLITE_IOERR_TRUNCATE\x00SQLITE_IOERR_FSTAT\x00SQLITE_IOERR_UNLOCK\x00SQLITE_IOERR_RDLOCK\x00SQLITE_IOERR_DELETE\x00SQLITE_IOERR_NOMEM\x00SQLITE_IOERR_ACCESS\x00SQLITE_IOERR_CHECKRESERVEDLOCK\x00SQLITE_IOERR_LOCK\x00SQLITE_IOERR_CLOSE\x00SQLITE_IOERR_DIR_CLOSE\x00SQLITE_IOERR_SHMOPEN\x00SQLITE_IOERR_SHMSIZE\x00SQLITE_IOERR_SHMLOCK\x00SQLITE_IOERR_SHMMAP\x00SQLITE_IOERR_SEEK\x00SQLITE_IOERR_DELETE_NOENT\x00SQLITE_IOERR_MMAP\x00SQLITE_IOERR_GETTEMPPATH\x00SQLITE_IOERR_CONVPATH\x00SQLITE_CORRUPT\x00SQLITE_CORRUPT_VTAB\x00SQLITE_NOTFOUND\x00SQLITE_FULL\x00SQLITE_CANTOPEN\x00SQLITE_CANTOPEN_NOTEMPDIR\x00SQLITE_CANTOPEN_ISDIR\x00SQLITE_CANTOPEN_FULLPATH\x00SQLITE_CANTOPEN_CONVPATH\x00SQLITE_CANTOPEN_SYMLINK\x00SQLITE_PROTOCOL\x00SQLITE_EMPTY\x00SQLITE_SCHEMA\x00SQLITE_TOOBIG\x00SQLITE_CONSTRAINT\x00SQLITE_CONSTRAINT_UNIQUE\x00SQLITE_CONSTRAINT_TRIGGER\x00SQLITE_CONSTRAINT_FOREIGNKEY\x00SQLITE_CONSTRAINT_CHECK\x00SQLITE_CONSTRAINT_PRIMARYKEY\x00SQLITE_CONSTRAINT_NOTNULL\x00SQLITE_CONSTRAINT_COMMITHOOK\x00SQLITE_CONSTRAINT_VTAB\x00SQLITE_CONSTRAINT_FUNCTION\x00SQLITE_CONSTRAINT_ROWID\x00SQLITE_MISMATCH\x00SQLITE_MISUSE\x00SQLITE_NOLFS\x00SQLITE_AUTH\x00SQLITE_FORMAT\x00SQLITE_RANGE\x00SQLITE_NOTADB\x00SQLITE_ROW\x00SQLITE_NOTICE\x00SQLITE_NOTICE_RECOVER_WAL\x00SQLITE_NOTICE_RECOVER_ROLLBACK\x00SQLITE_WARNING\x00SQLITE_WARNING_AUTOINDEX\x00SQLITE_DONE\x00SQLITE_UNKNOWN(%d)\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00mode\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00private\x00ro\x00rw\x00rwc\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00CREATE TABLE x( name TEXT, path TEXT, pageno INTEGER, pagetype TEXT, ncell INTEGER, payload INTEGER, unused INTEGER, mx_payload INTEGER, pgoffset INTEGER, pgsize INTEGER, schema TEXT HIDDEN, aggregate BOOLEAN HIDDEN)\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_master' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_master WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00CREATE TABLE x(pgno INTEGER PRIMARY KEY, data BLOB, schema HIDDEN)\x00read-only\x00cannot delete\x00cannot insert\x00no such schema\x00bad page number\x00bad page value\x00sqlite_dbpage\x00CREATE TABLE x(sql,ncol,ro,busy,nscan,nsort,naidx,nstep,reprep,run,mem)\x00sqlite_stmt\x002020-06-18 14:00:33 7ebdfa80be8e8e73324b8d66b3460222eb74c7e9dfd655b48d6ca7e1933cc8fd\x00"
var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data