gitlab.com/danp128/sqlite@v1.0.0/internal/threadtest3/threadtest3_linux_amd64.go (about) 1 // Code generated by ccgo. DO NOT EDIT. 2 3 // threadtest3 4 // /* 5 // ** 2010-07-22 6 // ** 7 // ** The author disclaims copyright to this source code. In place of 8 // ** a legal notice, here is a blessing: 9 // ** 10 // ** May you do good and not evil. 11 // ** May you find forgiveness for yourself and forgive others. 12 // ** May you share freely, never taking more than you give. 13 // ** 14 // ************************************************************************* 15 // ** 16 // ** The code in this file runs a few multi-threaded test cases using the 17 // ** SQLite library. It can be compiled to an executable on unix using the 18 // ** following command: 19 // ** 20 // ** gcc -O2 threadtest3.c sqlite3.c -ldl -lpthread -lm 21 // ** 22 // ** Even though threadtest3.c is the only C source code file mentioned on 23 // ** the compiler command-line, #include macros are used to pull in additional 24 // ** C code files named "tt3_*.c". 25 // ** 26 // ** After compiling, run this program with an optional argument telling 27 // ** which test to run. All tests are run if no argument is given. The 28 // ** argument can be a glob pattern to match multiple tests. Examples: 29 // ** 30 // ** ./a.out -- Run all tests 31 // ** ./a.out walthread3 -- Run the "walthread3" test 32 // ** ./a.out 'wal*' -- Run all of the wal* tests 33 // ** ./a.out --help -- List all available tests 34 // ** 35 // ** The exit status is non-zero if any test fails. 36 // */ 37 38 // /* 39 // ** The "Set Error Line" macro. 40 // */ 41 package main 42 43 import ( 44 "math" 45 "os" 46 "unsafe" 47 48 "modernc.org/ccgo/crt" 49 "modernc.org/sqlite/internal/bin" 50 ) 51 52 var argv []*int8 53 54 func main() { 55 for _, v := range os.Args { 56 argv = append(argv, (*int8)(crt.CString(v))) 57 } 58 argv = append(argv, nil) 59 X_start(crt.NewTLS(), int32(len(os.Args)), &argv[0]) 60 } 61 62 func X_start(tls *crt.TLS, _argc int32, _argv **int8) { 63 crt.X__register_stdfiles(tls, Xstdin, Xstdout, Xstderr) 64 crt.X__builtin_exit(tls, Xmain(tls, _argc, _argv)) 65 } 66 67 var Xstdin unsafe.Pointer 68 69 func init() { 70 Xstdin = unsafe.Pointer(&X__stdfiles) 71 } 72 73 var X__stdfiles [3]unsafe.Pointer 74 75 var Xstdout unsafe.Pointer 76 77 func init() { 78 Xstdout = unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdfiles)) + 8) 79 } 80 81 var Xstderr unsafe.Pointer 82 83 func init() { 84 Xstderr = unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdfiles)) + 16) 85 } 86 87 func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) { 88 var _i, _iArg, _nTestfound, _4_rc int32 89 var _2_zArg, _9_z *int8 90 var _aTest [14]TThreadTest 91 r0 = int32(0) 92 _aTest = [14]TThreadTest{} 93 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), 0).XxTest = _walthread1 94 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), 0).XzTest = str(0) 95 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), 0).XnMs = int32(20000) 96 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(1)).XxTest = _walthread2 97 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(1)).XzTest = str(11) 98 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(1)).XnMs = int32(20000) 99 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(2)).XxTest = _walthread3 100 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(2)).XzTest = str(22) 101 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(2)).XnMs = int32(20000) 102 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(3)).XxTest = _walthread4 103 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(3)).XzTest = str(33) 104 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(3)).XnMs = int32(20000) 105 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(4)).XxTest = _walthread5 106 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(4)).XzTest = str(44) 107 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(4)).XnMs = int32(1000) 108 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(5)).XxTest = _cgt_pager_1 109 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(5)).XzTest = str(55) 110 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(5)).XnMs = int32(0) 111 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(6)).XxTest = _dynamic_triggers 112 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(6)).XzTest = str(67) 113 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(6)).XnMs = int32(20000) 114 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(7)).XxTest = _checkpoint_starvation_1 115 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(7)).XzTest = str(84) 116 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(7)).XnMs = int32(10000) 117 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(8)).XxTest = _checkpoint_starvation_2 118 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(8)).XzTest = str(108) 119 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(8)).XnMs = int32(10000) 120 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(9)).XxTest = _create_drop_index_1 121 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(9)).XzTest = str(132) 122 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(9)).XnMs = int32(10000) 123 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(10)).XxTest = _lookaside1 124 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(10)).XzTest = str(152) 125 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(10)).XnMs = int32(10000) 126 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(11)).XxTest = _vacuum1 127 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(11)).XzTest = str(163) 128 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(11)).XnMs = int32(10000) 129 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(12)).XxTest = _stress1 130 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(12)).XzTest = str(171) 131 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(12)).XnMs = int32(10000) 132 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(13)).XxTest = _stress2 133 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(13)).XzTest = str(179) 134 elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(13)).XnMs = int32(60000) 135 _nTestfound = int32(0) 136 bin.Xsqlite3_config(tls, int32(2)) 137 if _argc < int32(2) { 138 _argc = int32(2) 139 _argv = (**int8)(unsafe.Pointer(&_mainĂ00substArgvĂ001)) 140 } 141 _iArg = int32(1) 142 _1: 143 if _iArg >= _argc { 144 goto _4 145 } 146 _2_zArg = *elem1(_argv, uintptr(_iArg)) 147 if int32(*elem2(_2_zArg, 0)) != int32(45) { 148 goto _5 149 } 150 if bin.Xsqlite3_stricmp(tls, _2_zArg, str(187)) != int32(0) { 151 goto _6 152 } 153 _4_rc = Xsqlite3_multiplex_initialize(tls, nil, int32(1)) 154 if _4_rc != int32(0) { 155 crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(200), _4_rc) 156 return int32(253) 157 } 158 goto _8 159 _6: 160 goto _usage 161 _8: 162 goto _2 163 _5: 164 _i = int32(0) 165 _9: 166 if uint64(_i) >= uint64(14) { 167 goto _12 168 } 169 if bin.Xsqlite3_strglob(tls, _2_zArg, elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(_i)).XzTest) == int32(0) { 170 goto _12 171 } 172 _i += 1 173 goto _9 174 _12: 175 if uint64(_i) >= uint64(14) { 176 goto _usage 177 } 178 _2: 179 _iArg += 1 180 goto _1 181 _4: 182 _iArg = int32(1) 183 _15: 184 if _iArg >= _argc { 185 goto _18 186 } 187 if int32(*elem2(*elem1(_argv, uintptr(_iArg)), 0)) == int32(45) { 188 goto _16 189 } 190 _i = int32(0) 191 _20: 192 if uint64(_i) >= uint64(14) { 193 goto _23 194 } 195 _9_z = elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(_i)).XzTest 196 if bin.Xsqlite3_strglob(tls, *elem1(_argv, uintptr(_iArg)), _9_z) == int32(0) { 197 crt.Xprintf(tls, str(240), unsafe.Pointer(_9_z), (elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(_i)).XnMs)/int32(1000)) 198 crt.Xfflush(tls, (*crt.XFILE)(Xstdout)) 199 (elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(_i)).XxTest)(tls, elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(_i)).XnMs) 200 _nTestfound += 1 201 } 202 _i += 1 203 goto _20 204 _23: 205 _16: 206 _iArg += 1 207 goto _15 208 _18: 209 if _nTestfound == int32(0) { 210 goto _usage 211 } 212 crt.Xprintf(tls, str(270), _nGlobalErr, _nTestfound) 213 return func() int32 { 214 if _nGlobalErr > int32(0) { 215 return int32(255) 216 } 217 return int32(0) 218 }() 219 220 _usage: 221 crt.Xprintf(tls, str(297), unsafe.Pointer(*elem1(_argv, 0))) 222 crt.Xprintf(tls, str(349)) 223 _i = int32(0) 224 _28: 225 if uint64(_i) >= uint64(14) { 226 goto _31 227 } 228 crt.Xprintf(tls, str(371), unsafe.Pointer(elem0((*TThreadTest)(unsafe.Pointer(&_aTest)), uintptr(_i)).XzTest)) 229 _i += 1 230 goto _28 231 _31: 232 return int32(254) 233 234 _ = _aTest 235 panic(0) 236 } 237 238 func _walthread1(tls *crt.TLS, _nMs int32) { 239 var _i int32 240 var _err XError 241 var _db XSqlite 242 var _threads XThreadset 243 _err = XError{} 244 _db = XSqlite{} 245 _threads = XThreadset{} 246 _opendb_x(tls, func() *XError { 247 _err.XiLine = func() int32 { 248 if _err.Xrc != 0 { 249 return _err.XiLine 250 } 251 return int32(987) 252 }() 253 return &_err 254 }(), &_db, str(378), int32(1)) 255 _sql_script_x(tls, func() *XError { 256 _err.XiLine = func() int32 { 257 if _err.Xrc != 0 { 258 return _err.XiLine 259 } 260 return int32(988) 261 }() 262 return &_err 263 }(), &_db, str(386)) 264 _closedb_x(tls, func() *XError { 265 _err.XiLine = func() int32 { 266 if _err.Xrc != 0 { 267 return _err.XiLine 268 } 269 return int32(995) 270 }() 271 return &_err 272 }(), &_db) 273 _setstoptime_x(tls, func() *XError { 274 _err.XiLine = func() int32 { 275 if _err.Xrc != 0 { 276 return _err.XiLine 277 } 278 return int32(997) 279 }() 280 return &_err 281 }(), _nMs) 282 _i = int32(0) 283 _8: 284 if _i >= int32(10) { 285 goto _11 286 } 287 _launch_thread_x(tls, func() *XError { 288 _err.XiLine = func() int32 { 289 if _err.Xrc != 0 { 290 return _err.XiLine 291 } 292 return int32(999) 293 }() 294 return &_err 295 }(), &_threads, _walthread1_thread, nil) 296 _i += 1 297 goto _8 298 _11: 299 _launch_thread_x(tls, func() *XError { 300 _err.XiLine = func() int32 { 301 if _err.Xrc != 0 { 302 return _err.XiLine 303 } 304 return int32(1001) 305 }() 306 return &_err 307 }(), &_threads, _walthread1_ckpt_thread, nil) 308 _join_all_threads_x(tls, func() *XError { 309 _err.XiLine = func() int32 { 310 if _err.Xrc != 0 { 311 return _err.XiLine 312 } 313 return int32(1002) 314 }() 315 return &_err 316 }(), &_threads) 317 _print_and_free_err(tls, &_err) 318 } 319 320 func _opendb_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _zFile *int8, _bDelete int32) { 321 var _1_rc, _1_flags int32 322 if _pErr.Xrc != int32(0) { 323 goto _0 324 } 325 _1_flags = int32(70) 326 if _bDelete != 0 { 327 crt.Xunlink(tls, _zFile) 328 } 329 _1_rc = bin.Xsqlite3_open_v2(tls, _zFile, (**bin.Xsqlite3)(unsafe.Pointer(&_pDb.Xdb)), _1_flags, nil) 330 if _1_rc != 0 { 331 _sqlite_error(tls, _pErr, _pDb, str(562)) 332 bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_pDb.Xdb)) 333 _pDb.Xdb = nil 334 goto _3 335 } 336 bin.Xsqlite3_create_function(tls, (*bin.Xsqlite3)(_pDb.Xdb), str(567), int32(-1), int32(1), nil, nil, func() func(*crt.TLS, *bin.Xsqlite3_context, int32, **bin.XMem) { 337 v := _md5step 338 return *(*func(*crt.TLS, *bin.Xsqlite3_context, int32, **bin.XMem))(unsafe.Pointer(&v)) 339 }(), func() func(*crt.TLS, *bin.Xsqlite3_context) { 340 v := _md5finalize 341 return *(*func(*crt.TLS, *bin.Xsqlite3_context))(unsafe.Pointer(&v)) 342 }()) 343 bin.Xsqlite3_busy_handler(tls, (*bin.Xsqlite3)(_pDb.Xdb), _busyhandler, nil) 344 bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_pDb.Xdb), str(574), nil, nil, nil) 345 _3: 346 _0: 347 } 348 349 func _sqlite_error(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _zFunc *int8) { 350 _pErr.Xrc = bin.Xsqlite3_errcode(tls, (*bin.Xsqlite3)(_pDb.Xdb)) 351 _pErr.XzErr = bin.Xsqlite3_mprintf(tls, str(597), unsafe.Pointer(_zFunc), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_pDb.Xdb))), bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_pDb.Xdb))) 352 } 353 354 // C comment 355 // /* 356 // ** During testing, the special md5sum() aggregate function is available. 357 // ** inside SQLite. The following routines implement that function. 358 // */ 359 func _md5step(tls *crt.TLS, _context unsafe.Pointer, _argc int32, _argv *unsafe.Pointer) { 360 var _i int32 361 var _2_zData *int8 362 var _p *XMD5Context 363 if _argc < int32(1) { 364 return 365 } 366 _p = (*XMD5Context)(bin.Xsqlite3_aggregate_context(tls, (*bin.Xsqlite3_context)(_context), int32(92))) 367 if _p == nil { 368 return 369 } 370 if _p.XisInit == 0 { 371 _MD5Init(tls, _p) 372 } 373 _i = int32(0) 374 _3: 375 if _i >= _argc { 376 goto _6 377 } 378 _2_zData = (*int8)(unsafe.Pointer(bin.Xsqlite3_value_text(tls, (*bin.XMem)(*elem3(_argv, uintptr(_i)))))) 379 if _2_zData != nil { 380 _MD5Update(tls, _p, (*uint8)(unsafe.Pointer(_2_zData)), uint32(crt.Xstrlen(tls, _2_zData))) 381 } 382 _i += 1 383 goto _3 384 _6: 385 } 386 387 // C comment 388 // /* 389 // * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious 390 // * initialization constants. 391 // */ 392 func _MD5Init(tls *crt.TLS, _ctx *XMD5Context) { 393 _ctx.XisInit = int32(1) 394 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbuf)), 0) = uint32(1732584193) 395 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbuf)), uintptr(1)) = uint32(4023233417) 396 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbuf)), uintptr(2)) = uint32(2562383102) 397 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbuf)), uintptr(3)) = uint32(271733878) 398 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), 0) = 0 399 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), uintptr(1)) = 0 400 } 401 402 // C comment 403 // /* 404 // * Update context to reflect the concatenation of another buffer full 405 // * of bytes. 406 // */ 407 func _MD5Update(tls *crt.TLS, _ctx *XMD5Context, _buf *uint8, _len uint32) { 408 var _t uint32 409 var _1_p *uint8 410 _t = *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), 0) 411 if store5(elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), 0), _t+(_len<<3)) < _t { 412 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), uintptr(1)) += 1 413 } 414 *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), uintptr(1)) += _len >> 29 415 _t = (_t >> 3) & uint32(63) 416 if _t == 0 { 417 goto _1 418 } 419 _1_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu)))) + uintptr(_t))) 420 _t = uint32(64) - _t 421 if _len < _t { 422 crt.Xmemcpy(tls, unsafe.Pointer(_1_p), unsafe.Pointer(_buf), uint64(_len)) 423 return 424 } 425 crt.Xmemcpy(tls, unsafe.Pointer(_1_p), unsafe.Pointer(_buf), uint64(_t)) 426 _byteReverse(tls, (*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu)))), uint32(16)) 427 _MD5Transform(tls, (*[4]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer(&_ctx.Xbuf)))), (*[16]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))))))))) 428 *(*uintptr)(unsafe.Pointer(&_buf)) += uintptr(_t) 429 _len -= _t 430 _1: 431 if _len >= uint32(64) { 432 crt.Xmemcpy(tls, unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))), unsafe.Pointer(_buf), uint64(64)) 433 _byteReverse(tls, (*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu)))), uint32(16)) 434 _MD5Transform(tls, (*[4]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer(&_ctx.Xbuf)))), (*[16]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))))))))) 435 *(*uintptr)(unsafe.Pointer(&_buf)) += uintptr(int32(64)) 436 _len -= uint32(64) 437 goto _1 438 } 439 crt.Xmemcpy(tls, unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))), unsafe.Pointer(_buf), uint64(_len)) 440 } 441 442 // C comment 443 // /* 444 // * Note: this code is harmless on little-endian machines. 445 // */ 446 func _byteReverse(tls *crt.TLS, _buf *uint8, _longs uint32) { 447 var _t uint32 448 _0: 449 _t = (((uint32(*elem6(_buf, uintptr(3))) << 8) | uint32(*elem6(_buf, uintptr(2)))) << 16) | ((uint32(*elem6(_buf, uintptr(1))) << 8) | uint32(*elem6(_buf, 0))) 450 *(*uint32)(unsafe.Pointer(_buf)) = _t 451 *(*uintptr)(unsafe.Pointer(&_buf)) += uintptr(int32(4)) 452 if preInc5(&_longs, uint32(4294967295)) != 0 { 453 goto _0 454 } 455 } 456 457 // C comment 458 // /* 459 // * The core of the MD5 algorithm, this alters an existing MD5 hash to 460 // * reflect the addition of 16 longwords of new data. MD5Update blocks 461 // * the data and converts bytes into longwords for this routine. 462 // */ 463 func _MD5Transform(tls *crt.TLS, _buf *[4]uint32, _in *[16]uint32) { 464 var _a, _b, _c, _d uint32 465 _a = *elem4((*uint32)(unsafe.Pointer(_buf)), 0) 466 _b = *elem4((*uint32)(unsafe.Pointer(_buf)), uintptr(1)) 467 _c = *elem4((*uint32)(unsafe.Pointer(_buf)), uintptr(2)) 468 _d = *elem4((*uint32)(unsafe.Pointer(_buf)), uintptr(3)) 469 *func() *uint32 { 470 *func() *uint32 { 471 _a += ((_d ^ (_b & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), 0))) + uint32(3614090360) 472 return &_a 473 }() = (_a << 7) | (_a >> 25) 474 return &_a 475 }() += _b 476 *func() *uint32 { 477 *func() *uint32 { 478 _d += ((_c ^ (_a & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(1)))) + uint32(3905402710) 479 return &_d 480 }() = (_d << 12) | (_d >> 20) 481 return &_d 482 }() += _a 483 *func() *uint32 { 484 *func() *uint32 { 485 _c += ((_b ^ (_d & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(2)))) + uint32(606105819) 486 return &_c 487 }() = (_c << 17) | (_c >> 15) 488 return &_c 489 }() += _d 490 *func() *uint32 { 491 *func() *uint32 { 492 _b += ((_a ^ (_c & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(3)))) + uint32(3250441966) 493 return &_b 494 }() = (_b << 22) | (_b >> 10) 495 return &_b 496 }() += _c 497 *func() *uint32 { 498 *func() *uint32 { 499 _a += ((_d ^ (_b & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(4)))) + uint32(4118548399) 500 return &_a 501 }() = (_a << 7) | (_a >> 25) 502 return &_a 503 }() += _b 504 *func() *uint32 { 505 *func() *uint32 { 506 _d += ((_c ^ (_a & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(5)))) + uint32(1200080426) 507 return &_d 508 }() = (_d << 12) | (_d >> 20) 509 return &_d 510 }() += _a 511 *func() *uint32 { 512 *func() *uint32 { 513 _c += ((_b ^ (_d & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(6)))) + uint32(2821735955) 514 return &_c 515 }() = (_c << 17) | (_c >> 15) 516 return &_c 517 }() += _d 518 *func() *uint32 { 519 *func() *uint32 { 520 _b += ((_a ^ (_c & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(7)))) + uint32(4249261313) 521 return &_b 522 }() = (_b << 22) | (_b >> 10) 523 return &_b 524 }() += _c 525 *func() *uint32 { 526 *func() *uint32 { 527 _a += ((_d ^ (_b & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(8)))) + uint32(1770035416) 528 return &_a 529 }() = (_a << 7) | (_a >> 25) 530 return &_a 531 }() += _b 532 *func() *uint32 { 533 *func() *uint32 { 534 _d += ((_c ^ (_a & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(9)))) + uint32(2336552879) 535 return &_d 536 }() = (_d << 12) | (_d >> 20) 537 return &_d 538 }() += _a 539 *func() *uint32 { 540 *func() *uint32 { 541 _c += ((_b ^ (_d & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(10)))) + uint32(4294925233) 542 return &_c 543 }() = (_c << 17) | (_c >> 15) 544 return &_c 545 }() += _d 546 *func() *uint32 { 547 *func() *uint32 { 548 _b += ((_a ^ (_c & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(11)))) + uint32(2304563134) 549 return &_b 550 }() = (_b << 22) | (_b >> 10) 551 return &_b 552 }() += _c 553 *func() *uint32 { 554 *func() *uint32 { 555 _a += ((_d ^ (_b & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(12)))) + uint32(1804603682) 556 return &_a 557 }() = (_a << 7) | (_a >> 25) 558 return &_a 559 }() += _b 560 *func() *uint32 { 561 *func() *uint32 { 562 _d += ((_c ^ (_a & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(13)))) + uint32(4254626195) 563 return &_d 564 }() = (_d << 12) | (_d >> 20) 565 return &_d 566 }() += _a 567 *func() *uint32 { 568 *func() *uint32 { 569 _c += ((_b ^ (_d & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(14)))) + uint32(2792965006) 570 return &_c 571 }() = (_c << 17) | (_c >> 15) 572 return &_c 573 }() += _d 574 *func() *uint32 { 575 *func() *uint32 { 576 _b += ((_a ^ (_c & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(15)))) + uint32(1236535329) 577 return &_b 578 }() = (_b << 22) | (_b >> 10) 579 return &_b 580 }() += _c 581 *func() *uint32 { 582 *func() *uint32 { 583 _a += ((_c ^ (_d & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(1)))) + uint32(4129170786) 584 return &_a 585 }() = (_a << 5) | (_a >> 27) 586 return &_a 587 }() += _b 588 *func() *uint32 { 589 *func() *uint32 { 590 _d += ((_b ^ (_c & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(6)))) + uint32(3225465664) 591 return &_d 592 }() = (_d << 9) | (_d >> 23) 593 return &_d 594 }() += _a 595 *func() *uint32 { 596 *func() *uint32 { 597 _c += ((_a ^ (_b & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(11)))) + uint32(643717713) 598 return &_c 599 }() = (_c << 14) | (_c >> 18) 600 return &_c 601 }() += _d 602 *func() *uint32 { 603 *func() *uint32 { 604 _b += ((_d ^ (_a & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), 0))) + uint32(3921069994) 605 return &_b 606 }() = (_b << 20) | (_b >> 12) 607 return &_b 608 }() += _c 609 *func() *uint32 { 610 *func() *uint32 { 611 _a += ((_c ^ (_d & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(5)))) + uint32(3593408605) 612 return &_a 613 }() = (_a << 5) | (_a >> 27) 614 return &_a 615 }() += _b 616 *func() *uint32 { 617 *func() *uint32 { 618 _d += ((_b ^ (_c & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(10)))) + uint32(38016083) 619 return &_d 620 }() = (_d << 9) | (_d >> 23) 621 return &_d 622 }() += _a 623 *func() *uint32 { 624 *func() *uint32 { 625 _c += ((_a ^ (_b & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(15)))) + uint32(3634488961) 626 return &_c 627 }() = (_c << 14) | (_c >> 18) 628 return &_c 629 }() += _d 630 *func() *uint32 { 631 *func() *uint32 { 632 _b += ((_d ^ (_a & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(4)))) + uint32(3889429448) 633 return &_b 634 }() = (_b << 20) | (_b >> 12) 635 return &_b 636 }() += _c 637 *func() *uint32 { 638 *func() *uint32 { 639 _a += ((_c ^ (_d & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(9)))) + uint32(568446438) 640 return &_a 641 }() = (_a << 5) | (_a >> 27) 642 return &_a 643 }() += _b 644 *func() *uint32 { 645 *func() *uint32 { 646 _d += ((_b ^ (_c & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(14)))) + uint32(3275163606) 647 return &_d 648 }() = (_d << 9) | (_d >> 23) 649 return &_d 650 }() += _a 651 *func() *uint32 { 652 *func() *uint32 { 653 _c += ((_a ^ (_b & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(3)))) + uint32(4107603335) 654 return &_c 655 }() = (_c << 14) | (_c >> 18) 656 return &_c 657 }() += _d 658 *func() *uint32 { 659 *func() *uint32 { 660 _b += ((_d ^ (_a & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(8)))) + uint32(1163531501) 661 return &_b 662 }() = (_b << 20) | (_b >> 12) 663 return &_b 664 }() += _c 665 *func() *uint32 { 666 *func() *uint32 { 667 _a += ((_c ^ (_d & (_b ^ _c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(13)))) + uint32(2850285829) 668 return &_a 669 }() = (_a << 5) | (_a >> 27) 670 return &_a 671 }() += _b 672 *func() *uint32 { 673 *func() *uint32 { 674 _d += ((_b ^ (_c & (_a ^ _b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(2)))) + uint32(4243563512) 675 return &_d 676 }() = (_d << 9) | (_d >> 23) 677 return &_d 678 }() += _a 679 *func() *uint32 { 680 *func() *uint32 { 681 _c += ((_a ^ (_b & (_d ^ _a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(7)))) + uint32(1735328473) 682 return &_c 683 }() = (_c << 14) | (_c >> 18) 684 return &_c 685 }() += _d 686 *func() *uint32 { 687 *func() *uint32 { 688 _b += ((_d ^ (_a & (_c ^ _d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(12)))) + uint32(2368359562) 689 return &_b 690 }() = (_b << 20) | (_b >> 12) 691 return &_b 692 }() += _c 693 *func() *uint32 { 694 *func() *uint32 { 695 _a += (((_b ^ _c) ^ _d) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(5)))) + uint32(4294588738) 696 return &_a 697 }() = (_a << 4) | (_a >> 28) 698 return &_a 699 }() += _b 700 *func() *uint32 { 701 *func() *uint32 { 702 _d += (((_a ^ _b) ^ _c) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(8)))) + uint32(2272392833) 703 return &_d 704 }() = (_d << 11) | (_d >> 21) 705 return &_d 706 }() += _a 707 *func() *uint32 { 708 *func() *uint32 { 709 _c += (((_d ^ _a) ^ _b) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(11)))) + uint32(1839030562) 710 return &_c 711 }() = (_c << 16) | (_c >> 16) 712 return &_c 713 }() += _d 714 *func() *uint32 { 715 *func() *uint32 { 716 _b += (((_c ^ _d) ^ _a) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(14)))) + uint32(4259657740) 717 return &_b 718 }() = (_b << 23) | (_b >> 9) 719 return &_b 720 }() += _c 721 *func() *uint32 { 722 *func() *uint32 { 723 _a += (((_b ^ _c) ^ _d) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(1)))) + uint32(2763975236) 724 return &_a 725 }() = (_a << 4) | (_a >> 28) 726 return &_a 727 }() += _b 728 *func() *uint32 { 729 *func() *uint32 { 730 _d += (((_a ^ _b) ^ _c) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(4)))) + uint32(1272893353) 731 return &_d 732 }() = (_d << 11) | (_d >> 21) 733 return &_d 734 }() += _a 735 *func() *uint32 { 736 *func() *uint32 { 737 _c += (((_d ^ _a) ^ _b) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(7)))) + uint32(4139469664) 738 return &_c 739 }() = (_c << 16) | (_c >> 16) 740 return &_c 741 }() += _d 742 *func() *uint32 { 743 *func() *uint32 { 744 _b += (((_c ^ _d) ^ _a) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(10)))) + uint32(3200236656) 745 return &_b 746 }() = (_b << 23) | (_b >> 9) 747 return &_b 748 }() += _c 749 *func() *uint32 { 750 *func() *uint32 { 751 _a += (((_b ^ _c) ^ _d) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(13)))) + uint32(681279174) 752 return &_a 753 }() = (_a << 4) | (_a >> 28) 754 return &_a 755 }() += _b 756 *func() *uint32 { 757 *func() *uint32 { 758 _d += (((_a ^ _b) ^ _c) + (*elem4((*uint32)(unsafe.Pointer(_in)), 0))) + uint32(3936430074) 759 return &_d 760 }() = (_d << 11) | (_d >> 21) 761 return &_d 762 }() += _a 763 *func() *uint32 { 764 *func() *uint32 { 765 _c += (((_d ^ _a) ^ _b) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(3)))) + uint32(3572445317) 766 return &_c 767 }() = (_c << 16) | (_c >> 16) 768 return &_c 769 }() += _d 770 *func() *uint32 { 771 *func() *uint32 { 772 _b += (((_c ^ _d) ^ _a) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(6)))) + uint32(76029189) 773 return &_b 774 }() = (_b << 23) | (_b >> 9) 775 return &_b 776 }() += _c 777 *func() *uint32 { 778 *func() *uint32 { 779 _a += (((_b ^ _c) ^ _d) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(9)))) + uint32(3654602809) 780 return &_a 781 }() = (_a << 4) | (_a >> 28) 782 return &_a 783 }() += _b 784 *func() *uint32 { 785 *func() *uint32 { 786 _d += (((_a ^ _b) ^ _c) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(12)))) + uint32(3873151461) 787 return &_d 788 }() = (_d << 11) | (_d >> 21) 789 return &_d 790 }() += _a 791 *func() *uint32 { 792 *func() *uint32 { 793 _c += (((_d ^ _a) ^ _b) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(15)))) + uint32(530742520) 794 return &_c 795 }() = (_c << 16) | (_c >> 16) 796 return &_c 797 }() += _d 798 *func() *uint32 { 799 *func() *uint32 { 800 _b += (((_c ^ _d) ^ _a) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(2)))) + uint32(3299628645) 801 return &_b 802 }() = (_b << 23) | (_b >> 9) 803 return &_b 804 }() += _c 805 *func() *uint32 { 806 *func() *uint32 { 807 _a += ((_c ^ (_b | (^_d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), 0))) + uint32(4096336452) 808 return &_a 809 }() = (_a << 6) | (_a >> 26) 810 return &_a 811 }() += _b 812 *func() *uint32 { 813 *func() *uint32 { 814 _d += ((_b ^ (_a | (^_c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(7)))) + uint32(1126891415) 815 return &_d 816 }() = (_d << 10) | (_d >> 22) 817 return &_d 818 }() += _a 819 *func() *uint32 { 820 *func() *uint32 { 821 _c += ((_a ^ (_d | (^_b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(14)))) + uint32(2878612391) 822 return &_c 823 }() = (_c << 15) | (_c >> 17) 824 return &_c 825 }() += _d 826 *func() *uint32 { 827 *func() *uint32 { 828 _b += ((_d ^ (_c | (^_a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(5)))) + uint32(4237533241) 829 return &_b 830 }() = (_b << 21) | (_b >> 11) 831 return &_b 832 }() += _c 833 *func() *uint32 { 834 *func() *uint32 { 835 _a += ((_c ^ (_b | (^_d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(12)))) + uint32(1700485571) 836 return &_a 837 }() = (_a << 6) | (_a >> 26) 838 return &_a 839 }() += _b 840 *func() *uint32 { 841 *func() *uint32 { 842 _d += ((_b ^ (_a | (^_c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(3)))) + uint32(2399980690) 843 return &_d 844 }() = (_d << 10) | (_d >> 22) 845 return &_d 846 }() += _a 847 *func() *uint32 { 848 *func() *uint32 { 849 _c += ((_a ^ (_d | (^_b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(10)))) + uint32(4293915773) 850 return &_c 851 }() = (_c << 15) | (_c >> 17) 852 return &_c 853 }() += _d 854 *func() *uint32 { 855 *func() *uint32 { 856 _b += ((_d ^ (_c | (^_a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(1)))) + uint32(2240044497) 857 return &_b 858 }() = (_b << 21) | (_b >> 11) 859 return &_b 860 }() += _c 861 *func() *uint32 { 862 *func() *uint32 { 863 _a += ((_c ^ (_b | (^_d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(8)))) + uint32(1873313359) 864 return &_a 865 }() = (_a << 6) | (_a >> 26) 866 return &_a 867 }() += _b 868 *func() *uint32 { 869 *func() *uint32 { 870 _d += ((_b ^ (_a | (^_c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(15)))) + uint32(4264355552) 871 return &_d 872 }() = (_d << 10) | (_d >> 22) 873 return &_d 874 }() += _a 875 *func() *uint32 { 876 *func() *uint32 { 877 _c += ((_a ^ (_d | (^_b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(6)))) + uint32(2734768916) 878 return &_c 879 }() = (_c << 15) | (_c >> 17) 880 return &_c 881 }() += _d 882 *func() *uint32 { 883 *func() *uint32 { 884 _b += ((_d ^ (_c | (^_a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(13)))) + uint32(1309151649) 885 return &_b 886 }() = (_b << 21) | (_b >> 11) 887 return &_b 888 }() += _c 889 *func() *uint32 { 890 *func() *uint32 { 891 _a += ((_c ^ (_b | (^_d))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(4)))) + uint32(4149444226) 892 return &_a 893 }() = (_a << 6) | (_a >> 26) 894 return &_a 895 }() += _b 896 *func() *uint32 { 897 *func() *uint32 { 898 _d += ((_b ^ (_a | (^_c))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(11)))) + uint32(3174756917) 899 return &_d 900 }() = (_d << 10) | (_d >> 22) 901 return &_d 902 }() += _a 903 *func() *uint32 { 904 *func() *uint32 { 905 _c += ((_a ^ (_d | (^_b))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(2)))) + uint32(718787259) 906 return &_c 907 }() = (_c << 15) | (_c >> 17) 908 return &_c 909 }() += _d 910 *func() *uint32 { 911 *func() *uint32 { 912 _b += ((_d ^ (_c | (^_a))) + (*elem4((*uint32)(unsafe.Pointer(_in)), uintptr(9)))) + uint32(3951481745) 913 return &_b 914 }() = (_b << 21) | (_b >> 11) 915 return &_b 916 }() += _c 917 *elem4((*uint32)(unsafe.Pointer(_buf)), 0) += _a 918 *elem4((*uint32)(unsafe.Pointer(_buf)), uintptr(1)) += _b 919 *elem4((*uint32)(unsafe.Pointer(_buf)), uintptr(2)) += _c 920 *elem4((*uint32)(unsafe.Pointer(_buf)), uintptr(3)) += _d 921 } 922 923 func _md5finalize(tls *crt.TLS, _context unsafe.Pointer) { 924 var _zBuf [33]int8 925 var _digest [16]uint8 926 var _p *XMD5Context 927 _p = (*XMD5Context)(bin.Xsqlite3_aggregate_context(tls, (*bin.Xsqlite3_context)(_context), int32(92))) 928 _MD5Final(tls, (*[16]uint8)(unsafe.Pointer((*uint8)(unsafe.Pointer(&_digest)))), _p) 929 _MD5DigestToBase16(tls, (*uint8)(unsafe.Pointer(&_digest)), (*int8)(unsafe.Pointer(&_zBuf))) 930 bin.Xsqlite3_result_text(tls, (*bin.Xsqlite3_context)(_context), (*int8)(unsafe.Pointer(&_zBuf)), int32(-1), func() func(*crt.TLS, unsafe.Pointer) { 931 v := uint64(18446744073709551615) 932 return *(*func(*crt.TLS, unsafe.Pointer))(unsafe.Pointer(&v)) 933 }()) 934 _ = _digest 935 _ = _zBuf 936 } 937 938 // C comment 939 // /* 940 // * Final wrapup - pad to 64-byte boundary with the bit pattern 941 // * 1 0* (64-bit count of bits processed, MSB-first) 942 // */ 943 func _MD5Final(tls *crt.TLS, _digest *[16]uint8, _ctx *XMD5Context) { 944 var _count uint32 945 var _p *uint8 946 _count = ((*elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), 0)) >> 3) & uint32(63) 947 _p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu)))) + uintptr(_count))) 948 *postInc6(&_p, 1) = uint8(128) 949 _count = uint32(63) - _count 950 if _count < uint32(8) { 951 crt.Xmemset(tls, unsafe.Pointer(_p), int32(0), uint64(_count)) 952 _byteReverse(tls, (*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu)))), uint32(16)) 953 _MD5Transform(tls, (*[4]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer(&_ctx.Xbuf)))), (*[16]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))))))))) 954 crt.Xmemset(tls, unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))), int32(0), uint64(56)) 955 goto _1 956 } 957 crt.Xmemset(tls, unsafe.Pointer(_p), int32(0), uint64(_count-uint32(8))) 958 _1: 959 _byteReverse(tls, (*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu)))), uint32(14)) 960 *elem4((*uint32)(unsafe.Pointer((*[16]uint32)(unsafe.Pointer(&_ctx.Xu)))), uintptr(14)) = *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), 0) 961 *elem4((*uint32)(unsafe.Pointer((*[16]uint32)(unsafe.Pointer(&_ctx.Xu)))), uintptr(15)) = *elem4((*uint32)(unsafe.Pointer(&_ctx.Xbits)), uintptr(1)) 962 _MD5Transform(tls, (*[4]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer(&_ctx.Xbuf)))), (*[16]uint32)(unsafe.Pointer((*uint32)(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer(&_ctx.Xu))))))))) 963 _byteReverse(tls, (*uint8)(unsafe.Pointer((*uint32)(unsafe.Pointer(&_ctx.Xbuf)))), uint32(4)) 964 crt.Xmemcpy(tls, unsafe.Pointer(_digest), unsafe.Pointer(&_ctx.Xbuf), uint64(16)) 965 crt.Xmemset(tls, unsafe.Pointer(_ctx), int32(0), uint64(92)) 966 } 967 968 // C comment 969 // /* 970 // ** Convert a 128-bit MD5 digest into a 32-digit base-16 number. 971 // */ 972 func _MD5DigestToBase16(tls *crt.TLS, _digest *uint8, _zBuf *int8) { 973 var _i, _j, _1_a int32 974 _j = store7(&_i, int32(0)) 975 _0: 976 if _i >= int32(16) { 977 goto _3 978 } 979 _1_a = int32(*elem6(_digest, uintptr(_i))) 980 *elem2(_zBuf, uintptr(postInc7(&_j, 1))) = *elem2((*int8)(unsafe.Pointer(&_MD5DigestToBase16Ă00zEncodeĂ001)), uintptr((_1_a>>4)&int32(15))) 981 *elem2(_zBuf, uintptr(postInc7(&_j, 1))) = *elem2((*int8)(unsafe.Pointer(&_MD5DigestToBase16Ă00zEncodeĂ001)), uintptr(_1_a&int32(15))) 982 _i += 1 983 goto _0 984 _3: 985 *elem2(_zBuf, uintptr(_j)) = 0 986 } 987 988 var _MD5DigestToBase16Ă00zEncodeĂ001 [17]int8 989 990 func init() { 991 crt.Xstrncpy(nil, &_MD5DigestToBase16Ă00zEncodeĂ001[0], str(620), 17) 992 } 993 994 func _busyhandler(tls *crt.TLS, _pArg unsafe.Pointer, _n int32) (r0 int32) { 995 crt.Xusleep(tls, uint32(10000)) 996 return int32(1) 997 } 998 999 func _sql_script_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _zSql *int8) { 1000 if _pErr.Xrc == int32(0) { 1001 _pErr.Xrc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_pDb.Xdb), _zSql, nil, nil, &_pErr.XzErr) 1002 } 1003 } 1004 1005 func _closedb_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite) { 1006 var _rc, _i int32 1007 var _pIter, _pNext *XStatement 1008 _pIter = (*XStatement)(_pDb.XpCache) 1009 _0: 1010 if _pIter == nil { 1011 goto _3 1012 } 1013 _pNext = (*XStatement)(_pIter.XpNext) 1014 bin.Xsqlite3_finalize(tls, _pIter.XpStmt) 1015 bin.Xsqlite3_free(tls, unsafe.Pointer(_pIter)) 1016 _pIter = _pNext 1017 goto _0 1018 _3: 1019 _i = int32(0) 1020 _4: 1021 if _i >= _pDb.XnText { 1022 goto _7 1023 } 1024 bin.Xsqlite3_free(tls, unsafe.Pointer(*elem1(_pDb.XaText, uintptr(_i)))) 1025 _i += 1 1026 goto _4 1027 _7: 1028 bin.Xsqlite3_free(tls, unsafe.Pointer(_pDb.XaText)) 1029 _rc = bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_pDb.Xdb)) 1030 if _rc != 0 && (_pErr.Xrc == int32(0)) { 1031 _pErr.XzErr = bin.Xsqlite3_mprintf(tls, str(637), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_pDb.Xdb)))) 1032 } 1033 crt.Xmemset(tls, unsafe.Pointer(_pDb), int32(0), uint64(32)) 1034 } 1035 1036 func _setstoptime_x(tls *crt.TLS, _pErr *XError, _nMs int32) { 1037 var _1_t float64 1038 if _pErr.Xrc == int32(0) { 1039 _1_t = _currentTime(tls) 1040 _timelimit = _1_t + (float64(_nMs) / (8.64e+07)) 1041 bug20530(_timelimit) 1042 } 1043 } 1044 1045 func _currentTime(tls *crt.TLS) (r0 float64) { 1046 var _1_tm int64 1047 var _t float64 1048 if _currentTimeĂ00pTimelimitVfsĂ001 == nil { 1049 _currentTimeĂ00pTimelimitVfsĂ001 = bin.Xsqlite3_vfs_find(tls, nil) 1050 bug20530(_currentTimeĂ00pTimelimitVfsĂ001) 1051 } 1052 if (_currentTimeĂ00pTimelimitVfsĂ001.XiVersion >= int32(2)) && (func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32 { 1053 v := _currentTimeĂ00pTimelimitVfsĂ001.XxCurrentTimeInt64 1054 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32)(unsafe.Pointer(&v)) 1055 }() != nil) { 1056 func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32 { 1057 v := _currentTimeĂ00pTimelimitVfsĂ001.XxCurrentTimeInt64 1058 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32)(unsafe.Pointer(&v)) 1059 }()(tls, _currentTimeĂ00pTimelimitVfsĂ001, &_1_tm) 1060 _t = float64(_1_tm) / (8.64e+07) 1061 goto _3 1062 } 1063 func() func(*crt.TLS, *bin.Xsqlite3_vfs, *float64) int32 { 1064 v := _currentTimeĂ00pTimelimitVfsĂ001.XxCurrentTime 1065 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *float64) int32)(unsafe.Pointer(&v)) 1066 }()(tls, _currentTimeĂ00pTimelimitVfsĂ001, &_t) 1067 _3: 1068 return _t 1069 } 1070 1071 var _currentTimeĂ00pTimelimitVfsĂ001 *bin.Xsqlite3_vfs 1072 1073 // C comment 1074 // /* 1075 // ** Used by setstoptime() and timetostop(). 1076 // */ 1077 var _timelimit float64 1078 1079 func _launch_thread_x(tls *crt.TLS, _pErr *XError, _pThreads *XThreadset, _xProc func(*crt.TLS, int32, unsafe.Pointer) *int8, _pArg unsafe.Pointer) { 1080 var _1_iTid, _1_rc int32 1081 var _1_p *XThread 1082 if _pErr.Xrc != int32(0) { 1083 goto _0 1084 } 1085 _1_iTid = preInc7(&_pThreads.XiMaxTid, 1) 1086 _1_p = (*XThread)(bin.Xsqlite3_malloc(tls, int32(40))) 1087 crt.Xmemset(tls, unsafe.Pointer(_1_p), int32(0), uint64(40)) 1088 _1_p.XiTid = _1_iTid 1089 _1_p.XpArg = _pArg 1090 _1_p.XxProc = _xProc 1091 _1_rc = crt.Xpthread_create(tls, &_1_p.Xtid, nil, _launch_thread_main, unsafe.Pointer(_1_p)) 1092 if _1_rc != int32(0) { 1093 _system_error(tls, _pErr, _1_rc) 1094 bin.Xsqlite3_free(tls, unsafe.Pointer(_1_p)) 1095 goto _2 1096 } 1097 *(**XThread)(unsafe.Pointer(&_1_p.XpNext)) = (*XThread)(_pThreads.XpThread) 1098 *(**XThread)(unsafe.Pointer(&_pThreads.XpThread)) = _1_p 1099 _2: 1100 _0: 1101 } 1102 1103 func _launch_thread_main(tls *crt.TLS, _pArg unsafe.Pointer) (r0 unsafe.Pointer) { 1104 var _p *XThread 1105 _p = (*XThread)(_pArg) 1106 return unsafe.Pointer(_p.XxProc(tls, _p.XiTid, _p.XpArg)) 1107 } 1108 1109 func _system_error(tls *crt.TLS, _pErr *XError, _iSys int32) { 1110 _pErr.Xrc = _iSys 1111 _pErr.XzErr = (*int8)(bin.Xsqlite3_malloc(tls, int32(512))) 1112 crt.Xstrerror_r(tls, _iSys, _pErr.XzErr, uint64(512)) 1113 *elem2(_pErr.XzErr, uintptr(511)) = 0 1114 } 1115 1116 func _walthread1_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 1117 var _nIter int32 1118 var _1_z1, _1_z2, _1_z3 *int8 1119 var _1_azSql [2]*int8 1120 var _err XError 1121 var _db XSqlite 1122 _err = XError{} 1123 _db = XSqlite{} 1124 _nIter = int32(0) 1125 _opendb_x(tls, func() *XError { 1126 _err.XiLine = func() int32 { 1127 if _err.Xrc != 0 { 1128 return _err.XiLine 1129 } 1130 return int32(929) 1131 }() 1132 return &_err 1133 }(), &_db, str(378), int32(0)) 1134 _2: 1135 if _timetostop_x(tls, func() *XError { 1136 _err.XiLine = func() int32 { 1137 if _err.Xrc != 0 { 1138 return _err.XiLine 1139 } 1140 return int32(930) 1141 }() 1142 return &_err 1143 }()) != 0 { 1144 goto _3 1145 } 1146 _1_azSql = [2]*int8{} 1147 *elem1((**int8)(unsafe.Pointer(&_1_azSql)), 0) = str(640) 1148 *elem1((**int8)(unsafe.Pointer(&_1_azSql)), uintptr(1)) = str(708) 1149 _execsql_i64_x(tls, func() *XError { 1150 _err.XiLine = func() int32 { 1151 if _err.Xrc != 0 { 1152 return _err.XiLine 1153 } 1154 return int32(937) 1155 }() 1156 return &_err 1157 }(), &_db, unsafe.Pointer(str(767))) 1158 _integrity_check_x(tls, func() *XError { 1159 _err.XiLine = func() int32 { 1160 if _err.Xrc != 0 { 1161 return _err.XiLine 1162 } 1163 return int32(938) 1164 }() 1165 return &_err 1166 }(), &_db) 1167 _1_z1 = _execsql_text_x(tls, func() *XError { 1168 _err.XiLine = func() int32 { 1169 if _err.Xrc != 0 { 1170 return _err.XiLine 1171 } 1172 return int32(939) 1173 }() 1174 return &_err 1175 }(), &_db, int32(1), unsafe.Pointer(*elem1((**int8)(unsafe.Pointer(&_1_azSql)), 0))) 1176 _1_z2 = _execsql_text_x(tls, func() *XError { 1177 _err.XiLine = func() int32 { 1178 if _err.Xrc != 0 { 1179 return _err.XiLine 1180 } 1181 return int32(940) 1182 }() 1183 return &_err 1184 }(), &_db, int32(2), unsafe.Pointer(*elem1((**int8)(unsafe.Pointer(&_1_azSql)), uintptr(1)))) 1185 _1_z3 = _execsql_text_x(tls, func() *XError { 1186 _err.XiLine = func() int32 { 1187 if _err.Xrc != 0 { 1188 return _err.XiLine 1189 } 1190 return int32(941) 1191 }() 1192 return &_err 1193 }(), &_db, int32(3), unsafe.Pointer(*elem1((**int8)(unsafe.Pointer(&_1_azSql)), 0))) 1194 _execsql_i64_x(tls, func() *XError { 1195 _err.XiLine = func() int32 { 1196 if _err.Xrc != 0 { 1197 return _err.XiLine 1198 } 1199 return int32(942) 1200 }() 1201 return &_err 1202 }(), &_db, unsafe.Pointer(str(773))) 1203 if crt.Xstrcmp(tls, _1_z1, _1_z2) != 0 || crt.Xstrcmp(tls, _1_z1, _1_z3) != 0 { 1204 _test_error_x(tls, &_err, bin.Xsqlite3_mprintf(tls, str(780), unsafe.Pointer(_1_z1), unsafe.Pointer(_1_z2), unsafe.Pointer(_1_z3))) 1205 } 1206 _sql_script_x(tls, func() *XError { 1207 _err.XiLine = func() int32 { 1208 if _err.Xrc != 0 { 1209 return _err.XiLine 1210 } 1211 return int32(948) 1212 }() 1213 return &_err 1214 }(), &_db, str(802)) 1215 _nIter += 1 1216 goto _2 1217 _3: 1218 _closedb_x(tls, func() *XError { 1219 _err.XiLine = func() int32 { 1220 if _err.Xrc != 0 { 1221 return _err.XiLine 1222 } 1223 return int32(957) 1224 }() 1225 return &_err 1226 }(), &_db) 1227 _print_and_free_err(tls, &_err) 1228 return bin.Xsqlite3_mprintf(tls, str(934), _nIter) 1229 1230 _ = _1_azSql 1231 panic(0) 1232 } 1233 1234 func _timetostop_x(tls *crt.TLS, _pErr *XError) (r0 int32) { 1235 var _ret int32 1236 var _1_t float64 1237 _ret = int32(1) 1238 if _pErr.Xrc == int32(0) { 1239 _1_t = _currentTime(tls) 1240 _ret = bool2int(_1_t >= _timelimit) 1241 } 1242 return _ret 1243 } 1244 1245 func _execsql_i64_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, args ...interface{}) (r0 int64) { 1246 var _2_first int32 1247 var _iRet int64 1248 var _1_pStmt unsafe.Pointer 1249 var _1_ap []interface{} 1250 _iRet = int64(0) 1251 if _pErr.Xrc != int32(0) { 1252 goto _0 1253 } 1254 _1_ap = args 1255 _1_pStmt = _getAndBindSqlStatement(tls, _pErr, _pDb, _1_ap) 1256 if _1_pStmt == nil { 1257 goto _1 1258 } 1259 _2_first = int32(1) 1260 _2: 1261 if int32(100) != bin.Xsqlite3_step(tls, _1_pStmt) { 1262 goto _3 1263 } 1264 if _2_first != 0 && (bin.Xsqlite3_column_count(tls, _1_pStmt) > int32(0)) { 1265 _iRet = bin.Xsqlite3_column_int64(tls, _1_pStmt, int32(0)) 1266 } 1267 _2_first = int32(0) 1268 goto _2 1269 _3: 1270 if int32(0) != bin.Xsqlite3_reset(tls, _1_pStmt) { 1271 _sqlite_error(tls, _pErr, _pDb, str(948)) 1272 } 1273 _1: 1274 _1_ap = nil 1275 _0: 1276 return _iRet 1277 } 1278 1279 func _getAndBindSqlStatement(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _ap []interface{}) (r0 unsafe.Pointer) { 1280 var _i int32 1281 var _1_zName *int8 1282 var _pStmt, _1_pArg unsafe.Pointer 1283 var _pStatement *XStatement 1284 _pStatement = _getSqlStatement(tls, _pErr, _pDb, (*int8)(crt.VAPointer(&_ap))) 1285 if _pStatement == nil { 1286 return nil 1287 } 1288 _pStmt = _pStatement.XpStmt 1289 _i = int32(1) 1290 _1: 1291 if _i > bin.Xsqlite3_bind_parameter_count(tls, _pStmt) { 1292 goto _4 1293 } 1294 _1_zName = bin.Xsqlite3_bind_parameter_name(tls, _pStmt, _i) 1295 _1_pArg = crt.VAPointer(&_ap) 1296 switch int32(*elem2(_1_zName, uintptr(1))) { 1297 case int32(105): 1298 goto _6 1299 default: 1300 goto _7 1301 } 1302 1303 _6: 1304 bin.Xsqlite3_bind_int64(tls, _pStmt, _i, *(*int64)(_1_pArg)) 1305 goto _8 1306 _7: 1307 _pErr.Xrc = int32(1) 1308 _pErr.XzErr = bin.Xsqlite3_mprintf(tls, str(954), unsafe.Pointer(_1_zName)) 1309 _pStmt = nil 1310 goto _8 1311 _8: 1312 _i += 1 1313 goto _1 1314 _4: 1315 return _pStmt 1316 } 1317 1318 func _getSqlStatement(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _zSql *int8) (r0 *XStatement) { 1319 var _rc int32 1320 var _pRet *XStatement 1321 _pRet = (*XStatement)(_pDb.XpCache) 1322 _0: 1323 if _pRet == nil { 1324 goto _3 1325 } 1326 if int32(0) == crt.Xstrcmp(tls, bin.Xsqlite3_sql(tls, _pRet.XpStmt), _zSql) { 1327 return _pRet 1328 } 1329 _pRet = (*XStatement)(_pRet.XpNext) 1330 goto _0 1331 _3: 1332 _pRet = (*XStatement)(bin.Xsqlite3_malloc(tls, int32(16))) 1333 _rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_pDb.Xdb), _zSql, int32(-1), &_pRet.XpStmt, nil) 1334 if _rc != int32(0) { 1335 _sqlite_error(tls, _pErr, _pDb, str(980)) 1336 return nil 1337 } 1338 func() { 1339 if int32(0) != crt.Xstrcmp(tls, bin.Xsqlite3_sql(tls, _pRet.XpStmt), _zSql) { 1340 crt.X__builtin_fprintf(tls, Xstderr, str(991), unsafe.Pointer(str(1027)), int32(614), unsafe.Pointer(&_getSqlStatementĂ00__func__Ă000), unsafe.Pointer(str(1085))) 1341 crt.X__builtin_abort(tls) 1342 } 1343 }() 1344 *(**XStatement)(unsafe.Pointer(&_pRet.XpNext)) = (*XStatement)(_pDb.XpCache) 1345 *(**XStatement)(unsafe.Pointer(&_pDb.XpCache)) = _pRet 1346 return _pRet 1347 } 1348 1349 var _getSqlStatementĂ00__func__Ă000 [16]int8 1350 1351 func init() { 1352 crt.Xstrncpy(nil, &_getSqlStatementĂ00__func__Ă000[0], str(1127), 16) 1353 } 1354 1355 func _integrity_check_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite) { 1356 var _1_zErr, _3_z *int8 1357 var _2_pStmt unsafe.Pointer 1358 var _1_pStatement *XStatement 1359 if _pErr.Xrc != int32(0) { 1360 goto _0 1361 } 1362 _1_zErr = nil 1363 _1_pStatement = _getSqlStatement(tls, _pErr, _pDb, str(1143)) 1364 if _1_pStatement == nil { 1365 goto _1 1366 } 1367 _2_pStmt = _1_pStatement.XpStmt 1368 _2: 1369 if int32(100) != bin.Xsqlite3_step(tls, _2_pStmt) { 1370 goto _3 1371 } 1372 _3_z = (*int8)(unsafe.Pointer(bin.Xsqlite3_column_text(tls, _2_pStmt, int32(0)))) 1373 if crt.Xstrcmp(tls, _3_z, str(1166)) == 0 { 1374 goto _4 1375 } 1376 if _1_zErr == nil { 1377 _1_zErr = bin.Xsqlite3_mprintf(tls, str(637), unsafe.Pointer(_3_z)) 1378 goto _6 1379 } 1380 _1_zErr = bin.Xsqlite3_mprintf(tls, str(1169), unsafe.Pointer(_1_zErr), unsafe.Pointer(_3_z)) 1381 _6: 1382 _4: 1383 goto _2 1384 _3: 1385 bin.Xsqlite3_reset(tls, _2_pStmt) 1386 if _1_zErr != nil { 1387 _pErr.XzErr = _1_zErr 1388 _pErr.Xrc = int32(1) 1389 } 1390 _1: 1391 _0: 1392 } 1393 1394 func _execsql_text_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _iSlot int32, args ...interface{}) (r0 *int8) { 1395 var _1_nByte, _3_first int32 1396 var _zRet *int8 1397 var _2_pStmt unsafe.Pointer 1398 var _2_ap []interface{} 1399 _zRet = nil 1400 if _iSlot >= _pDb.XnText { 1401 _1_nByte = int32(uint64(8) * uint64(_iSlot+int32(1))) 1402 _pDb.XaText = (**int8)(bin.Xsqlite3_realloc(tls, unsafe.Pointer(_pDb.XaText), _1_nByte)) 1403 crt.Xmemset(tls, unsafe.Pointer(elem1(_pDb.XaText, uintptr(_pDb.XnText))), int32(0), uint64(8)*uint64((_iSlot+int32(1))-_pDb.XnText)) 1404 _pDb.XnText = _iSlot + int32(1) 1405 } 1406 if _pErr.Xrc != int32(0) { 1407 goto _1 1408 } 1409 _2_ap = args 1410 _2_pStmt = _getAndBindSqlStatement(tls, _pErr, _pDb, _2_ap) 1411 if _2_pStmt == nil { 1412 goto _2 1413 } 1414 _3_first = int32(1) 1415 _3: 1416 if int32(100) != bin.Xsqlite3_step(tls, _2_pStmt) { 1417 goto _4 1418 } 1419 if _3_first != 0 && (bin.Xsqlite3_column_count(tls, _2_pStmt) > int32(0)) { 1420 _zRet = bin.Xsqlite3_mprintf(tls, str(637), unsafe.Pointer(bin.Xsqlite3_column_text(tls, _2_pStmt, int32(0)))) 1421 bin.Xsqlite3_free(tls, unsafe.Pointer(*elem1(_pDb.XaText, uintptr(_iSlot)))) 1422 *elem1(_pDb.XaText, uintptr(_iSlot)) = _zRet 1423 } 1424 _3_first = int32(0) 1425 goto _3 1426 _4: 1427 if int32(0) != bin.Xsqlite3_reset(tls, _2_pStmt) { 1428 _sqlite_error(tls, _pErr, _pDb, str(948)) 1429 } 1430 _2: 1431 _2_ap = nil 1432 _1: 1433 return _zRet 1434 } 1435 1436 func _test_error_x(tls *crt.TLS, _pErr *XError, _zErr *int8) { 1437 if _pErr.Xrc == int32(0) { 1438 _pErr.Xrc = int32(1) 1439 _pErr.XzErr = _zErr 1440 goto _1 1441 } 1442 bin.Xsqlite3_free(tls, unsafe.Pointer(_zErr)) 1443 _1: 1444 } 1445 1446 func _print_and_free_err(tls *crt.TLS, _p *XError) { 1447 _print_err(tls, _p) 1448 _free_err(tls, _p) 1449 } 1450 1451 func _print_err(tls *crt.TLS, _p *XError) { 1452 var _1_isWarn int32 1453 if _p.Xrc == int32(0) { 1454 goto _0 1455 } 1456 _1_isWarn = int32(0) 1457 if _p.Xrc == int32(17) { 1458 _1_isWarn = int32(1) 1459 } 1460 if bin.Xsqlite3_strglob(tls, str(1175), _p.XzErr) == int32(0) { 1461 _1_isWarn = int32(1) 1462 } 1463 crt.Xprintf(tls, str(1196), unsafe.Pointer(func() *int8 { 1464 if _1_isWarn != 0 { 1465 return str(1222) 1466 } 1467 return str(1230) 1468 }()), _p.Xrc, unsafe.Pointer(_p.XzErr), _p.XiLine) 1469 if _1_isWarn == 0 { 1470 _nGlobalErr += 1 1471 } 1472 crt.Xfflush(tls, (*crt.XFILE)(Xstdout)) 1473 _0: 1474 } 1475 1476 // C comment 1477 // /* Total number of errors in this process so far. */ 1478 var _nGlobalErr int32 1479 1480 func _free_err(tls *crt.TLS, _p *XError) { 1481 bin.Xsqlite3_free(tls, unsafe.Pointer(_p.XzErr)) 1482 _p.XzErr = nil 1483 _p.Xrc = int32(0) 1484 } 1485 1486 func _walthread1_ckpt_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 1487 var _nCkpt int32 1488 var _err XError 1489 var _db XSqlite 1490 _err = XError{} 1491 _db = XSqlite{} 1492 _nCkpt = int32(0) 1493 _opendb_x(tls, func() *XError { 1494 _err.XiLine = func() int32 { 1495 if _err.Xrc != 0 { 1496 return _err.XiLine 1497 } 1498 return int32(968) 1499 }() 1500 return &_err 1501 }(), &_db, str(378), int32(0)) 1502 _2: 1503 if _timetostop_x(tls, func() *XError { 1504 _err.XiLine = func() int32 { 1505 if _err.Xrc != 0 { 1506 return _err.XiLine 1507 } 1508 return int32(969) 1509 }() 1510 return &_err 1511 }()) != 0 { 1512 goto _3 1513 } 1514 crt.Xusleep(tls, uint32(500000)) 1515 _execsql_i64_x(tls, func() *XError { 1516 _err.XiLine = func() int32 { 1517 if _err.Xrc != 0 { 1518 return _err.XiLine 1519 } 1520 return int32(971) 1521 }() 1522 return &_err 1523 }(), &_db, unsafe.Pointer(str(1236))) 1524 if _err.Xrc == int32(0) { 1525 _nCkpt += 1 1526 } 1527 _clear_error_x(tls, &_err, int32(5)) 1528 goto _2 1529 _3: 1530 _closedb_x(tls, func() *XError { 1531 _err.XiLine = func() int32 { 1532 if _err.Xrc != 0 { 1533 return _err.XiLine 1534 } 1535 return int32(975) 1536 }() 1537 return &_err 1538 }(), &_db) 1539 _print_and_free_err(tls, &_err) 1540 return bin.Xsqlite3_mprintf(tls, str(1258), _nCkpt) 1541 } 1542 1543 func _clear_error_x(tls *crt.TLS, _pErr *XError, _rc int32) { 1544 if _pErr.Xrc == _rc { 1545 _pErr.Xrc = int32(0) 1546 bin.Xsqlite3_free(tls, unsafe.Pointer(_pErr.XzErr)) 1547 _pErr.XzErr = nil 1548 } 1549 } 1550 1551 func _join_all_threads_x(tls *crt.TLS, _pErr *XError, _pThreads *XThreadset) { 1552 var _1_rc int32 1553 var _1_ret unsafe.Pointer 1554 var _p, _pNext *XThread 1555 _p = (*XThread)(_pThreads.XpThread) 1556 _0: 1557 if _p == nil { 1558 goto _3 1559 } 1560 _pNext = (*XThread)(_p.XpNext) 1561 _1_rc = crt.Xpthread_join(tls, _p.Xtid, &_1_ret) 1562 if _1_rc == int32(0) { 1563 goto _4 1564 } 1565 if _pErr.Xrc == int32(0) { 1566 _system_error(tls, _pErr, _1_rc) 1567 } 1568 goto _6 1569 _4: 1570 crt.Xprintf(tls, str(1273), _p.XiTid, unsafe.Pointer(func() *int8 { 1571 if _1_ret == nil { 1572 return str(1293) 1573 } 1574 return (*int8)(_1_ret) 1575 }())) 1576 crt.Xfflush(tls, (*crt.XFILE)(Xstdout)) 1577 _6: 1578 bin.Xsqlite3_free(tls, unsafe.Pointer(_p)) 1579 _p = _pNext 1580 goto _0 1581 _3: 1582 *(**XThread)(unsafe.Pointer(&_pThreads.XpThread)) = nil 1583 } 1584 1585 func _walthread2(tls *crt.TLS, _nMs int32) { 1586 var _err XError 1587 var _db XSqlite 1588 var _threads XThreadset 1589 _err = XError{} 1590 _db = XSqlite{} 1591 _threads = XThreadset{} 1592 _opendb_x(tls, func() *XError { 1593 _err.XiLine = func() int32 { 1594 if _err.Xrc != 0 { 1595 return _err.XiLine 1596 } 1597 return int32(1050) 1598 }() 1599 return &_err 1600 }(), &_db, str(378), int32(1)) 1601 _sql_script_x(tls, func() *XError { 1602 _err.XiLine = func() int32 { 1603 if _err.Xrc != 0 { 1604 return _err.XiLine 1605 } 1606 return int32(1051) 1607 }() 1608 return &_err 1609 }(), &_db, str(1297)) 1610 _closedb_x(tls, func() *XError { 1611 _err.XiLine = func() int32 { 1612 if _err.Xrc != 0 { 1613 return _err.XiLine 1614 } 1615 return int32(1052) 1616 }() 1617 return &_err 1618 }(), &_db) 1619 _setstoptime_x(tls, func() *XError { 1620 _err.XiLine = func() int32 { 1621 if _err.Xrc != 0 { 1622 return _err.XiLine 1623 } 1624 return int32(1054) 1625 }() 1626 return &_err 1627 }(), _nMs) 1628 _launch_thread_x(tls, func() *XError { 1629 _err.XiLine = func() int32 { 1630 if _err.Xrc != 0 { 1631 return _err.XiLine 1632 } 1633 return int32(1055) 1634 }() 1635 return &_err 1636 }(), &_threads, _walthread2_thread, nil) 1637 _launch_thread_x(tls, func() *XError { 1638 _err.XiLine = func() int32 { 1639 if _err.Xrc != 0 { 1640 return _err.XiLine 1641 } 1642 return int32(1056) 1643 }() 1644 return &_err 1645 }(), &_threads, _walthread2_thread, nil) 1646 _launch_thread_x(tls, func() *XError { 1647 _err.XiLine = func() int32 { 1648 if _err.Xrc != 0 { 1649 return _err.XiLine 1650 } 1651 return int32(1057) 1652 }() 1653 return &_err 1654 }(), &_threads, _walthread2_thread, crt.U2P(uintptr(uint32(1)))) 1655 _launch_thread_x(tls, func() *XError { 1656 _err.XiLine = func() int32 { 1657 if _err.Xrc != 0 { 1658 return _err.XiLine 1659 } 1660 return int32(1058) 1661 }() 1662 return &_err 1663 }(), &_threads, _walthread2_thread, crt.U2P(uintptr(uint32(1)))) 1664 _join_all_threads_x(tls, func() *XError { 1665 _err.XiLine = func() int32 { 1666 if _err.Xrc != 0 { 1667 return _err.XiLine 1668 } 1669 return int32(1059) 1670 }() 1671 return &_err 1672 }(), &_threads) 1673 _print_and_free_err(tls, &_err) 1674 } 1675 1676 func _walthread2_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 1677 var _iArg, _2_journal_exists, _2_wal_exists int32 1678 var _zJournal *int8 1679 var _anTrans [2]int32 1680 var _err XError 1681 var _db XSqlite 1682 _err = XError{} 1683 _db = XSqlite{} 1684 _anTrans = [2]int32{} 1685 _iArg = int32(int64(crt.P2U(_pArg))) 1686 _zJournal = str(1346) 1687 if _iArg != 0 { 1688 _zJournal = str(1372) 1689 } 1690 _0: 1691 if _timetostop_x(tls, func() *XError { 1692 _err.XiLine = func() int32 { 1693 if _err.Xrc != 0 { 1694 return _err.XiLine 1695 } 1696 return int32(1016) 1697 }() 1698 return &_err 1699 }()) != 0 { 1700 goto _2 1701 } 1702 _2_journal_exists = int32(0) 1703 _2_wal_exists = int32(0) 1704 _opendb_x(tls, func() *XError { 1705 _err.XiLine = func() int32 { 1706 if _err.Xrc != 0 { 1707 return _err.XiLine 1708 } 1709 return int32(1020) 1710 }() 1711 return &_err 1712 }(), &_db, str(378), int32(0)) 1713 _sql_script_x(tls, func() *XError { 1714 _err.XiLine = func() int32 { 1715 if _err.Xrc != 0 { 1716 return _err.XiLine 1717 } 1718 return int32(1022) 1719 }() 1720 return &_err 1721 }(), &_db, _zJournal) 1722 _clear_error_x(tls, &_err, int32(5)) 1723 _sql_script_x(tls, func() *XError { 1724 _err.XiLine = func() int32 { 1725 if _err.Xrc != 0 { 1726 return _err.XiLine 1727 } 1728 return int32(1024) 1729 }() 1730 return &_err 1731 }(), &_db, str(767)) 1732 _sql_script_x(tls, func() *XError { 1733 _err.XiLine = func() int32 { 1734 if _err.Xrc != 0 { 1735 return _err.XiLine 1736 } 1737 return int32(1025) 1738 }() 1739 return &_err 1740 }(), &_db, str(1401)) 1741 _2_journal_exists = bool2int(_filesize_x(tls, func() *XError { 1742 _err.XiLine = func() int32 { 1743 if _err.Xrc != 0 { 1744 return _err.XiLine 1745 } 1746 return int32(1027) 1747 }() 1748 return &_err 1749 }(), str(1446)) >= (0)) 1750 _2_wal_exists = bool2int(_filesize_x(tls, func() *XError { 1751 _err.XiLine = func() int32 { 1752 if _err.Xrc != 0 { 1753 return _err.XiLine 1754 } 1755 return int32(1028) 1756 }() 1757 return &_err 1758 }(), str(1462)) >= (0)) 1759 if (_2_journal_exists + _2_wal_exists) != int32(1) { 1760 _test_error_x(tls, &_err, bin.Xsqlite3_mprintf(tls, str(1474), _2_journal_exists, _2_wal_exists)) 1761 } 1762 *elem8((*int32)(unsafe.Pointer(&_anTrans)), uintptr(_2_journal_exists)) += 1 1763 _sql_script_x(tls, func() *XError { 1764 _err.XiLine = func() int32 { 1765 if _err.Xrc != 0 { 1766 return _err.XiLine 1767 } 1768 return int32(1036) 1769 }() 1770 return &_err 1771 }(), &_db, str(773)) 1772 _integrity_check_x(tls, func() *XError { 1773 _err.XiLine = func() int32 { 1774 if _err.Xrc != 0 { 1775 return _err.XiLine 1776 } 1777 return int32(1037) 1778 }() 1779 return &_err 1780 }(), &_db) 1781 _closedb_x(tls, func() *XError { 1782 _err.XiLine = func() int32 { 1783 if _err.Xrc != 0 { 1784 return _err.XiLine 1785 } 1786 return int32(1038) 1787 }() 1788 return &_err 1789 }(), &_db) 1790 goto _0 1791 _2: 1792 _print_and_free_err(tls, &_err) 1793 return bin.Xsqlite3_mprintf(tls, str(1511), *elem8((*int32)(unsafe.Pointer(&_anTrans)), 0), *elem8((*int32)(unsafe.Pointer(&_anTrans)), uintptr(1))) 1794 1795 _ = _anTrans 1796 panic(0) 1797 } 1798 1799 func _filesize_x(tls *crt.TLS, _pErr *XError, _zFile *int8) (r0 int64) { 1800 var _iRet int64 1801 var _1_sStat crt.Xstruct_stat64 1802 _iRet = int64(0) 1803 if _pErr.Xrc != int32(0) { 1804 goto _0 1805 } 1806 if crt.Xstat64(tls, _zFile, &_1_sStat) != 0 { 1807 _iRet = int64(-1) 1808 goto _2 1809 } 1810 _iRet = _1_sStat.Xst_size 1811 _2: 1812 _0: 1813 return _iRet 1814 } 1815 1816 func _walthread3(tls *crt.TLS, _nMs int32) { 1817 var _i int32 1818 var _err XError 1819 var _db XSqlite 1820 var _threads XThreadset 1821 _err = XError{} 1822 _db = XSqlite{} 1823 _threads = XThreadset{} 1824 _opendb_x(tls, func() *XError { 1825 _err.XiLine = func() int32 { 1826 if _err.Xrc != 0 { 1827 return _err.XiLine 1828 } 1829 return int32(1107) 1830 }() 1831 return &_err 1832 }(), &_db, str(378), int32(1)) 1833 _sql_script_x(tls, func() *XError { 1834 _err.XiLine = func() int32 { 1835 if _err.Xrc != 0 { 1836 return _err.XiLine 1837 } 1838 return int32(1108) 1839 }() 1840 return &_err 1841 }(), &_db, str(1521)) 1842 _closedb_x(tls, func() *XError { 1843 _err.XiLine = func() int32 { 1844 if _err.Xrc != 0 { 1845 return _err.XiLine 1846 } 1847 return int32(1115) 1848 }() 1849 return &_err 1850 }(), &_db) 1851 _setstoptime_x(tls, func() *XError { 1852 _err.XiLine = func() int32 { 1853 if _err.Xrc != 0 { 1854 return _err.XiLine 1855 } 1856 return int32(1117) 1857 }() 1858 return &_err 1859 }(), _nMs) 1860 _i = int32(0) 1861 _8: 1862 if _i >= int32(6) { 1863 goto _11 1864 } 1865 _launch_thread_x(tls, func() *XError { 1866 _err.XiLine = func() int32 { 1867 if _err.Xrc != 0 { 1868 return _err.XiLine 1869 } 1870 return int32(1119) 1871 }() 1872 return &_err 1873 }(), &_threads, _walthread3_thread, crt.U2P(uintptr(int64(_i)))) 1874 _i += 1 1875 goto _8 1876 _11: 1877 _join_all_threads_x(tls, func() *XError { 1878 _err.XiLine = func() int32 { 1879 if _err.Xrc != 0 { 1880 return _err.XiLine 1881 } 1882 return int32(1121) 1883 }() 1884 return &_err 1885 }(), &_threads) 1886 _print_and_free_err(tls, &_err) 1887 } 1888 1889 func _walthread3_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 1890 var _iArg, _1_stop int32 1891 var _iNextWrite, _1_sum1, _1_sum2, _2_iMax int64 1892 var _err XError 1893 var _db XSqlite 1894 _err = XError{} 1895 _db = XSqlite{} 1896 _iArg = int32(int64(crt.P2U(_pArg))) 1897 _opendb_x(tls, func() *XError { 1898 _err.XiLine = func() int32 { 1899 if _err.Xrc != 0 { 1900 return _err.XiLine 1901 } 1902 return int32(1070) 1903 }() 1904 return &_err 1905 }(), &_db, str(378), int32(0)) 1906 _sql_script_x(tls, func() *XError { 1907 _err.XiLine = func() int32 { 1908 if _err.Xrc != 0 { 1909 return _err.XiLine 1910 } 1911 return int32(1071) 1912 }() 1913 return &_err 1914 }(), &_db, str(1680)) 1915 _iNextWrite = int64(_iArg + int32(1)) 1916 _4: 1917 _1_stop = int32(0) 1918 _6: 1919 if int32(0) != store7(&_1_stop, _timetostop_x(tls, func() *XError { 1920 _err.XiLine = func() int32 { 1921 if _err.Xrc != 0 { 1922 return _err.XiLine 1923 } 1924 return int32(1079) 1925 }() 1926 return &_err 1927 }())) { 1928 goto _7 1929 } 1930 _2_iMax = _execsql_i64_x(tls, func() *XError { 1931 _err.XiLine = func() int32 { 1932 if _err.Xrc != 0 { 1933 return _err.XiLine 1934 } 1935 return int32(1080) 1936 }() 1937 return &_err 1938 }(), &_db, unsafe.Pointer(str(1711))) 1939 if (_2_iMax + int64(1)) == _iNextWrite { 1940 goto _7 1941 } 1942 goto _6 1943 _7: 1944 if _1_stop != 0 { 1945 goto _5 1946 } 1947 _1_sum1 = _execsql_i64_x(tls, func() *XError { 1948 _err.XiLine = func() int32 { 1949 if _err.Xrc != 0 { 1950 return _err.XiLine 1951 } 1952 return int32(1085) 1953 }() 1954 return &_err 1955 }(), &_db, unsafe.Pointer(str(1735))) 1956 _1_sum2 = _execsql_i64_x(tls, func() *XError { 1957 _err.XiLine = func() int32 { 1958 if _err.Xrc != 0 { 1959 return _err.XiLine 1960 } 1961 return int32(1086) 1962 }() 1963 return &_err 1964 }(), &_db, unsafe.Pointer(str(1759))) 1965 _execsql_i64_x(tls, func() *XError { 1966 _err.XiLine = func() int32 { 1967 if _err.Xrc != 0 { 1968 return _err.XiLine 1969 } 1970 return int32(1087) 1971 }() 1972 return &_err 1973 }(), &_db, unsafe.Pointer(str(1784)), unsafe.Pointer(&_iNextWrite), unsafe.Pointer(&_1_sum1), unsafe.Pointer(&_1_sum2)) 1974 _integrity_check_x(tls, func() *XError { 1975 _err.XiLine = func() int32 { 1976 if _err.Xrc != 0 { 1977 return _err.XiLine 1978 } 1979 return int32(1091) 1980 }() 1981 return &_err 1982 }(), &_db) 1983 _iNextWrite += int64(6) 1984 goto _4 1985 _5: 1986 _closedb_x(tls, func() *XError { 1987 _err.XiLine = func() int32 { 1988 if _err.Xrc != 0 { 1989 return _err.XiLine 1990 } 1991 return int32(1096) 1992 }() 1993 return &_err 1994 }(), &_db) 1995 _print_and_free_err(tls, &_err) 1996 return nil 1997 } 1998 1999 func _walthread4(tls *crt.TLS, _nMs int32) { 2000 var _err XError 2001 var _db XSqlite 2002 var _threads XThreadset 2003 _err = XError{} 2004 _db = XSqlite{} 2005 _threads = XThreadset{} 2006 _opendb_x(tls, func() *XError { 2007 _err.XiLine = func() int32 { 2008 if _err.Xrc != 0 { 2009 return _err.XiLine 2010 } 2011 return int32(1165) 2012 }() 2013 return &_err 2014 }(), &_db, str(378), int32(1)) 2015 _sql_script_x(tls, func() *XError { 2016 _err.XiLine = func() int32 { 2017 if _err.Xrc != 0 { 2018 return _err.XiLine 2019 } 2020 return int32(1166) 2021 }() 2022 return &_err 2023 }(), &_db, str(1835)) 2024 _closedb_x(tls, func() *XError { 2025 _err.XiLine = func() int32 { 2026 if _err.Xrc != 0 { 2027 return _err.XiLine 2028 } 2029 return int32(1170) 2030 }() 2031 return &_err 2032 }(), &_db) 2033 _setstoptime_x(tls, func() *XError { 2034 _err.XiLine = func() int32 { 2035 if _err.Xrc != 0 { 2036 return _err.XiLine 2037 } 2038 return int32(1172) 2039 }() 2040 return &_err 2041 }(), _nMs) 2042 _launch_thread_x(tls, func() *XError { 2043 _err.XiLine = func() int32 { 2044 if _err.Xrc != 0 { 2045 return _err.XiLine 2046 } 2047 return int32(1173) 2048 }() 2049 return &_err 2050 }(), &_threads, _walthread4_reader_thread, nil) 2051 _launch_thread_x(tls, func() *XError { 2052 _err.XiLine = func() int32 { 2053 if _err.Xrc != 0 { 2054 return _err.XiLine 2055 } 2056 return int32(1174) 2057 }() 2058 return &_err 2059 }(), &_threads, _walthread4_writer_thread, nil) 2060 _join_all_threads_x(tls, func() *XError { 2061 _err.XiLine = func() int32 { 2062 if _err.Xrc != 0 { 2063 return _err.XiLine 2064 } 2065 return int32(1175) 2066 }() 2067 return &_err 2068 }(), &_threads) 2069 _print_and_free_err(tls, &_err) 2070 } 2071 2072 func _walthread4_reader_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 2073 var _err XError 2074 var _db XSqlite 2075 _err = XError{} 2076 _db = XSqlite{} 2077 _opendb_x(tls, func() *XError { 2078 _err.XiLine = func() int32 { 2079 if _err.Xrc != 0 { 2080 return _err.XiLine 2081 } 2082 return int32(1130) 2083 }() 2084 return &_err 2085 }(), &_db, str(378), int32(0)) 2086 _2: 2087 if _timetostop_x(tls, func() *XError { 2088 _err.XiLine = func() int32 { 2089 if _err.Xrc != 0 { 2090 return _err.XiLine 2091 } 2092 return int32(1131) 2093 }() 2094 return &_err 2095 }()) == 0 { 2096 _integrity_check_x(tls, func() *XError { 2097 _err.XiLine = func() int32 { 2098 if _err.Xrc != 0 { 2099 return _err.XiLine 2100 } 2101 return int32(1132) 2102 }() 2103 return &_err 2104 }(), &_db) 2105 goto _2 2106 } 2107 _closedb_x(tls, func() *XError { 2108 _err.XiLine = func() int32 { 2109 if _err.Xrc != 0 { 2110 return _err.XiLine 2111 } 2112 return int32(1134) 2113 }() 2114 return &_err 2115 }(), &_db) 2116 _print_and_free_err(tls, &_err) 2117 return nil 2118 } 2119 2120 func _walthread4_writer_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 2121 var _iRow int64 2122 var _err XError 2123 var _db XSqlite 2124 _err = XError{} 2125 _db = XSqlite{} 2126 _iRow = int64(1) 2127 _opendb_x(tls, func() *XError { 2128 _err.XiLine = func() int32 { 2129 if _err.Xrc != 0 { 2130 return _err.XiLine 2131 } 2132 return int32(1145) 2133 }() 2134 return &_err 2135 }(), &_db, str(378), int32(0)) 2136 _sql_script_x(tls, func() *XError { 2137 _err.XiLine = func() int32 { 2138 if _err.Xrc != 0 { 2139 return _err.XiLine 2140 } 2141 return int32(1146) 2142 }() 2143 return &_err 2144 }(), &_db, str(1911)) 2145 _4: 2146 if _timetostop_x(tls, func() *XError { 2147 _err.XiLine = func() int32 { 2148 if _err.Xrc != 0 { 2149 return _err.XiLine 2150 } 2151 return int32(1147) 2152 }() 2153 return &_err 2154 }()) != 0 { 2155 goto _5 2156 } 2157 _execsql_i64_x(tls, func() *XError { 2158 _err.XiLine = func() int32 { 2159 if _err.Xrc != 0 { 2160 return _err.XiLine 2161 } 2162 return int32(1148) 2163 }() 2164 return &_err 2165 }(), &_db, unsafe.Pointer(str(1943)), unsafe.Pointer(&_iRow)) 2166 _iRow += 1 2167 if _iRow == int64(10) { 2168 _iRow = 0 2169 } 2170 goto _4 2171 _5: 2172 _closedb_x(tls, func() *XError { 2173 _err.XiLine = func() int32 { 2174 if _err.Xrc != 0 { 2175 return _err.XiLine 2176 } 2177 return int32(1154) 2178 }() 2179 return &_err 2180 }(), &_db) 2181 _print_and_free_err(tls, &_err) 2182 return nil 2183 } 2184 2185 func _walthread5(tls *crt.TLS, _nMs int32) { 2186 var _err XError 2187 var _db XSqlite 2188 var _threads XThreadset 2189 _err = XError{} 2190 _db = XSqlite{} 2191 _threads = XThreadset{} 2192 _opendb_x(tls, func() *XError { 2193 _err.XiLine = func() int32 { 2194 if _err.Xrc != 0 { 2195 return _err.XiLine 2196 } 2197 return int32(1198) 2198 }() 2199 return &_err 2200 }(), &_db, str(378), int32(1)) 2201 _sql_script_x(tls, func() *XError { 2202 _err.XiLine = func() int32 { 2203 if _err.Xrc != 0 { 2204 return _err.XiLine 2205 } 2206 return int32(1199) 2207 }() 2208 return &_err 2209 }(), &_db, str(1990)) 2210 _filecopy_x(tls, func() *XError { 2211 _err.XiLine = func() int32 { 2212 if _err.Xrc != 0 { 2213 return _err.XiLine 2214 } 2215 return int32(1224) 2216 }() 2217 return &_err 2218 }(), str(378), str(3150)) 2219 _filecopy_x(tls, func() *XError { 2220 _err.XiLine = func() int32 { 2221 if _err.Xrc != 0 { 2222 return _err.XiLine 2223 } 2224 return int32(1225) 2225 }() 2226 return &_err 2227 }(), str(1462), str(3161)) 2228 _closedb_x(tls, func() *XError { 2229 _err.XiLine = func() int32 { 2230 if _err.Xrc != 0 { 2231 return _err.XiLine 2232 } 2233 return int32(1226) 2234 }() 2235 return &_err 2236 }(), &_db) 2237 _filecopy_x(tls, func() *XError { 2238 _err.XiLine = func() int32 { 2239 if _err.Xrc != 0 { 2240 return _err.XiLine 2241 } 2242 return int32(1228) 2243 }() 2244 return &_err 2245 }(), str(3150), str(378)) 2246 _filecopy_x(tls, func() *XError { 2247 _err.XiLine = func() int32 { 2248 if _err.Xrc != 0 { 2249 return _err.XiLine 2250 } 2251 return int32(1229) 2252 }() 2253 return &_err 2254 }(), str(3161), str(1462)) 2255 if _err.Xrc == int32(0) { 2256 crt.Xprintf(tls, str(3176), int32(_filesize_x(tls, func() *XError { 2257 _err.XiLine = func() int32 { 2258 if _err.Xrc != 0 { 2259 return _err.XiLine 2260 } 2261 return int32(1232) 2262 }() 2263 return &_err 2264 }(), str(1462)))) 2265 crt.Xprintf(tls, str(3200), int32(_filesize_x(tls, func() *XError { 2266 _err.XiLine = func() int32 { 2267 if _err.Xrc != 0 { 2268 return _err.XiLine 2269 } 2270 return int32(1233) 2271 }() 2272 return &_err 2273 }(), str(378)))) 2274 } 2275 _setstoptime_x(tls, func() *XError { 2276 _err.XiLine = func() int32 { 2277 if _err.Xrc != 0 { 2278 return _err.XiLine 2279 } 2280 return int32(1236) 2281 }() 2282 return &_err 2283 }(), _nMs) 2284 _launch_thread_x(tls, func() *XError { 2285 _err.XiLine = func() int32 { 2286 if _err.Xrc != 0 { 2287 return _err.XiLine 2288 } 2289 return int32(1237) 2290 }() 2291 return &_err 2292 }(), &_threads, _walthread5_thread, nil) 2293 _launch_thread_x(tls, func() *XError { 2294 _err.XiLine = func() int32 { 2295 if _err.Xrc != 0 { 2296 return _err.XiLine 2297 } 2298 return int32(1238) 2299 }() 2300 return &_err 2301 }(), &_threads, _walthread5_thread, nil) 2302 _launch_thread_x(tls, func() *XError { 2303 _err.XiLine = func() int32 { 2304 if _err.Xrc != 0 { 2305 return _err.XiLine 2306 } 2307 return int32(1239) 2308 }() 2309 return &_err 2310 }(), &_threads, _walthread5_thread, nil) 2311 _launch_thread_x(tls, func() *XError { 2312 _err.XiLine = func() int32 { 2313 if _err.Xrc != 0 { 2314 return _err.XiLine 2315 } 2316 return int32(1240) 2317 }() 2318 return &_err 2319 }(), &_threads, _walthread5_thread, nil) 2320 _launch_thread_x(tls, func() *XError { 2321 _err.XiLine = func() int32 { 2322 if _err.Xrc != 0 { 2323 return _err.XiLine 2324 } 2325 return int32(1241) 2326 }() 2327 return &_err 2328 }(), &_threads, _walthread5_thread, nil) 2329 _join_all_threads_x(tls, func() *XError { 2330 _err.XiLine = func() int32 { 2331 if _err.Xrc != 0 { 2332 return _err.XiLine 2333 } 2334 return int32(1242) 2335 }() 2336 return &_err 2337 }(), &_threads) 2338 if _err.Xrc == int32(0) { 2339 crt.Xprintf(tls, str(3176), int32(_filesize_x(tls, func() *XError { 2340 _err.XiLine = func() int32 { 2341 if _err.Xrc != 0 { 2342 return _err.XiLine 2343 } 2344 return int32(1245) 2345 }() 2346 return &_err 2347 }(), str(1462)))) 2348 crt.Xprintf(tls, str(3200), int32(_filesize_x(tls, func() *XError { 2349 _err.XiLine = func() int32 { 2350 if _err.Xrc != 0 { 2351 return _err.XiLine 2352 } 2353 return int32(1246) 2354 }() 2355 return &_err 2356 }(), str(378)))) 2357 } 2358 _print_and_free_err(tls, &_err) 2359 } 2360 2361 func _filecopy_x(tls *crt.TLS, _pErr *XError, _zFrom *int8, _zTo *int8) { 2362 var _3_fd1, _3_fd2, _6_nCopy int32 2363 var _1_nByte, _3_iOff int64 2364 var _3_aBuf [1024]int8 2365 if _pErr.Xrc != int32(0) { 2366 goto _0 2367 } 2368 _1_nByte = _filesize_x(tls, _pErr, _zFrom) 2369 if _1_nByte < (0) { 2370 _test_error_x(tls, _pErr, bin.Xsqlite3_mprintf(tls, str(3217), unsafe.Pointer(_zFrom))) 2371 goto _2 2372 } 2373 crt.Xunlink(tls, _zTo) 2374 _3_fd1 = crt.Xopen64(tls, _zFrom, int32(0)) 2375 if _3_fd1 < int32(0) { 2376 _system_error(tls, _pErr, *crt.X__errno_location(tls)) 2377 return 2378 } 2379 _3_fd2 = crt.Xopen64(tls, _zTo, int32(194), int32(420)) 2380 if _3_fd2 < int32(0) { 2381 _system_error(tls, _pErr, *crt.X__errno_location(tls)) 2382 crt.Xclose(tls, _3_fd1) 2383 return 2384 } 2385 _3_iOff = 0 2386 _5: 2387 if _3_iOff >= _1_nByte { 2388 goto _6 2389 } 2390 _6_nCopy = int32(1024) 2391 if (int64(_6_nCopy) + _3_iOff) > _1_nByte { 2392 _6_nCopy = int32(_1_nByte - _3_iOff) 2393 } 2394 if int64(_6_nCopy) != crt.Xread(tls, _3_fd1, unsafe.Pointer(&_3_aBuf), uint64(_6_nCopy)) { 2395 _system_error(tls, _pErr, *crt.X__errno_location(tls)) 2396 goto _6 2397 } 2398 if int64(_6_nCopy) != crt.Xwrite(tls, _3_fd2, unsafe.Pointer(&_3_aBuf), uint64(_6_nCopy)) { 2399 _system_error(tls, _pErr, *crt.X__errno_location(tls)) 2400 goto _6 2401 } 2402 _3_iOff += int64(_6_nCopy) 2403 goto _5 2404 _6: 2405 crt.Xclose(tls, _3_fd1) 2406 crt.Xclose(tls, _3_fd2) 2407 _2: 2408 _0: 2409 _ = _3_aBuf 2410 } 2411 2412 func _walthread5_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 2413 var _nRow int64 2414 var _err XError 2415 var _db XSqlite 2416 _err = XError{} 2417 _db = XSqlite{} 2418 _opendb_x(tls, func() *XError { 2419 _err.XiLine = func() int32 { 2420 if _err.Xrc != 0 { 2421 return _err.XiLine 2422 } 2423 return int32(1185) 2424 }() 2425 return &_err 2426 }(), &_db, str(378), int32(0)) 2427 _nRow = _execsql_i64_x(tls, func() *XError { 2428 _err.XiLine = func() int32 { 2429 if _err.Xrc != 0 { 2430 return _err.XiLine 2431 } 2432 return int32(1186) 2433 }() 2434 return &_err 2435 }(), &_db, unsafe.Pointer(str(3234))) 2436 _closedb_x(tls, func() *XError { 2437 _err.XiLine = func() int32 { 2438 if _err.Xrc != 0 { 2439 return _err.XiLine 2440 } 2441 return int32(1187) 2442 }() 2443 return &_err 2444 }(), &_db) 2445 if _nRow != int64(65536) { 2446 _test_error_x(tls, &_err, bin.Xsqlite3_mprintf(tls, str(3258), int32(_nRow))) 2447 } 2448 _print_and_free_err(tls, &_err) 2449 return nil 2450 } 2451 2452 func _cgt_pager_1(tls *crt.TLS, _nMs int32) { 2453 var _err XError 2454 var _db XSqlite 2455 var _xSub func(*crt.TLS, *XError, *XSqlite) 2456 _err = XError{} 2457 _db = XSqlite{} 2458 _opendb_x(tls, func() *XError { 2459 _err.XiLine = func() int32 { 2460 if _err.Xrc != 0 { 2461 return _err.XiLine 2462 } 2463 return int32(1289) 2464 }() 2465 return &_err 2466 }(), &_db, str(378), int32(1)) 2467 _sql_script_x(tls, func() *XError { 2468 _err.XiLine = func() int32 { 2469 if _err.Xrc != 0 { 2470 return _err.XiLine 2471 } 2472 return int32(1290) 2473 }() 2474 return &_err 2475 }(), &_db, str(3276)) 2476 _xSub = _cgt_pager_1_populate 2477 _xSub(tls, &_err, &_db) 2478 _xSub = _cgt_pager_1_update 2479 _xSub(tls, &_err, &_db) 2480 _xSub = _cgt_pager_1_read 2481 _xSub(tls, &_err, &_db) 2482 _closedb_x(tls, func() *XError { 2483 _err.XiLine = func() int32 { 2484 if _err.Xrc != 0 { 2485 return _err.XiLine 2486 } 2487 return int32(1300) 2488 }() 2489 return &_err 2490 }(), &_db) 2491 _print_and_free_err(tls, &_err) 2492 } 2493 2494 func _cgt_pager_1_populate(tls *crt.TLS, _pErr *XError, _pDb *XSqlite) { 2495 var _iRow, _1_iBlob int64 2496 var _zInsert *int8 2497 _zInsert = str(3373) 2498 _sql_script_x(tls, func() *XError { 2499 _pErr.XiLine = func() int32 { 2500 if _pErr.Xrc != 0 { 2501 return _pErr.XiLine 2502 } 2503 return int32(1259) 2504 }() 2505 return _pErr 2506 }(), _pDb, str(767)) 2507 _iRow = int64(1) 2508 _2: 2509 if _iRow > int64(10000) { 2510 goto _5 2511 } 2512 _1_iBlob = int64(600) + (_iRow % int64(300)) 2513 _execsql_i64_x(tls, func() *XError { 2514 _pErr.XiLine = func() int32 { 2515 if _pErr.Xrc != 0 { 2516 return _pErr.XiLine 2517 } 2518 return int32(1262) 2519 }() 2520 return _pErr 2521 }(), _pDb, unsafe.Pointer(_zInsert), unsafe.Pointer(&_iRow), unsafe.Pointer(&_1_iBlob)) 2522 _iRow += 1 2523 goto _2 2524 _5: 2525 _sql_script_x(tls, func() *XError { 2526 _pErr.XiLine = func() int32 { 2527 if _pErr.Xrc != 0 { 2528 return _pErr.XiLine 2529 } 2530 return int32(1264) 2531 }() 2532 return _pErr 2533 }(), _pDb, str(773)) 2534 } 2535 2536 func _cgt_pager_1_update(tls *crt.TLS, _pErr *XError, _pDb *XSqlite) { 2537 var _iRow, _1_iBlob int64 2538 var _zUpdate *int8 2539 _zUpdate = str(3420) 2540 _sql_script_x(tls, func() *XError { 2541 _pErr.XiLine = func() int32 { 2542 if _pErr.Xrc != 0 { 2543 return _pErr.XiLine 2544 } 2545 return int32(1269) 2546 }() 2547 return _pErr 2548 }(), _pDb, str(767)) 2549 _iRow = int64(1) 2550 _2: 2551 if _iRow > int64(10000) { 2552 goto _5 2553 } 2554 _1_iBlob = int64(600) + ((_iRow + int64(100)) % int64(300)) 2555 _execsql_i64_x(tls, func() *XError { 2556 _pErr.XiLine = func() int32 { 2557 if _pErr.Xrc != 0 { 2558 return _pErr.XiLine 2559 } 2560 return int32(1272) 2561 }() 2562 return _pErr 2563 }(), _pDb, unsafe.Pointer(_zUpdate), unsafe.Pointer(&_1_iBlob), unsafe.Pointer(&_iRow)) 2564 _iRow += 1 2565 goto _2 2566 _5: 2567 _sql_script_x(tls, func() *XError { 2568 _pErr.XiLine = func() int32 { 2569 if _pErr.Xrc != 0 { 2570 return _pErr.XiLine 2571 } 2572 return int32(1274) 2573 }() 2574 return _pErr 2575 }(), _pDb, str(773)) 2576 } 2577 2578 func _cgt_pager_1_read(tls *crt.TLS, _pErr *XError, _pDb *XSqlite) { 2579 var _iRow int64 2580 _sql_script_x(tls, func() *XError { 2581 _pErr.XiLine = func() int32 { 2582 if _pErr.Xrc != 0 { 2583 return _pErr.XiLine 2584 } 2585 return int32(1278) 2586 }() 2587 return _pErr 2588 }(), _pDb, str(767)) 2589 _iRow = int64(1) 2590 _2: 2591 if _iRow > int64(10000) { 2592 goto _5 2593 } 2594 _execsql_i64_x(tls, func() *XError { 2595 _pErr.XiLine = func() int32 { 2596 if _pErr.Xrc != 0 { 2597 return _pErr.XiLine 2598 } 2599 return int32(1280) 2600 }() 2601 return _pErr 2602 }(), _pDb, unsafe.Pointer(str(3471)), unsafe.Pointer(&_iRow)) 2603 _iRow += 1 2604 goto _2 2605 _5: 2606 _sql_script_x(tls, func() *XError { 2607 _pErr.XiLine = func() int32 { 2608 if _pErr.Xrc != 0 { 2609 return _pErr.XiLine 2610 } 2611 return int32(1282) 2612 }() 2613 return _pErr 2614 }(), _pDb, str(773)) 2615 } 2616 2617 func _dynamic_triggers(tls *crt.TLS, _nMs int32) { 2618 var _err XError 2619 var _db XSqlite 2620 var _threads XThreadset 2621 _err = XError{} 2622 _db = XSqlite{} 2623 _threads = XThreadset{} 2624 _opendb_x(tls, func() *XError { 2625 _err.XiLine = func() int32 { 2626 if _err.Xrc != 0 { 2627 return _err.XiLine 2628 } 2629 return int32(1396) 2630 }() 2631 return &_err 2632 }(), &_db, str(378), int32(1)) 2633 _sql_script_x(tls, func() *XError { 2634 _err.XiLine = func() int32 { 2635 if _err.Xrc != 0 { 2636 return _err.XiLine 2637 } 2638 return int32(1397) 2639 }() 2640 return &_err 2641 }(), &_db, str(3504)) 2642 _closedb_x(tls, func() *XError { 2643 _err.XiLine = func() int32 { 2644 if _err.Xrc != 0 { 2645 return _err.XiLine 2646 } 2647 return int32(1410) 2648 }() 2649 return &_err 2650 }(), &_db) 2651 _setstoptime_x(tls, func() *XError { 2652 _err.XiLine = func() int32 { 2653 if _err.Xrc != 0 { 2654 return _err.XiLine 2655 } 2656 return int32(1412) 2657 }() 2658 return &_err 2659 }(), _nMs) 2660 bin.Xsqlite3_enable_shared_cache(tls, int32(1)) 2661 _launch_thread_x(tls, func() *XError { 2662 _err.XiLine = func() int32 { 2663 if _err.Xrc != 0 { 2664 return _err.XiLine 2665 } 2666 return int32(1415) 2667 }() 2668 return &_err 2669 }(), &_threads, _dynamic_triggers_2, nil) 2670 _launch_thread_x(tls, func() *XError { 2671 _err.XiLine = func() int32 { 2672 if _err.Xrc != 0 { 2673 return _err.XiLine 2674 } 2675 return int32(1416) 2676 }() 2677 return &_err 2678 }(), &_threads, _dynamic_triggers_2, nil) 2679 crt.Xsleep(tls, uint32(2)) 2680 bin.Xsqlite3_enable_shared_cache(tls, int32(0)) 2681 _launch_thread_x(tls, func() *XError { 2682 _err.XiLine = func() int32 { 2683 if _err.Xrc != 0 { 2684 return _err.XiLine 2685 } 2686 return int32(1421) 2687 }() 2688 return &_err 2689 }(), &_threads, _dynamic_triggers_2, nil) 2690 _launch_thread_x(tls, func() *XError { 2691 _err.XiLine = func() int32 { 2692 if _err.Xrc != 0 { 2693 return _err.XiLine 2694 } 2695 return int32(1422) 2696 }() 2697 return &_err 2698 }(), &_threads, _dynamic_triggers_1, nil) 2699 _join_all_threads_x(tls, func() *XError { 2700 _err.XiLine = func() int32 { 2701 if _err.Xrc != 0 { 2702 return _err.XiLine 2703 } 2704 return int32(1424) 2705 }() 2706 return &_err 2707 }(), &_threads) 2708 _print_and_free_err(tls, &_err) 2709 } 2710 2711 func _dynamic_triggers_2(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 2712 var _nInsert, _nDelete int32 2713 var _iVal int64 2714 var _err XError 2715 var _db XSqlite 2716 _err = XError{} 2717 _db = XSqlite{} 2718 _iVal = int64(0) 2719 _nInsert = int32(0) 2720 _nDelete = int32(0) 2721 _opendb_x(tls, func() *XError { 2722 _err.XiLine = func() int32 { 2723 if _err.Xrc != 0 { 2724 return _err.XiLine 2725 } 2726 return int32(1371) 2727 }() 2728 return &_err 2729 }(), &_db, str(378), int32(0)) 2730 _2: 2731 if _timetostop_x(tls, func() *XError { 2732 _err.XiLine = func() int32 { 2733 if _err.Xrc != 0 { 2734 return _err.XiLine 2735 } 2736 return int32(1372) 2737 }() 2738 return &_err 2739 }()) != 0 { 2740 goto _3 2741 } 2742 _6: 2743 _iVal = (_iVal + int64(1)) % int64(100) 2744 _execsql_i64_x(tls, func() *XError { 2745 _err.XiLine = func() int32 { 2746 if _err.Xrc != 0 { 2747 return _err.XiLine 2748 } 2749 return int32(1375) 2750 }() 2751 return &_err 2752 }(), &_db, unsafe.Pointer(str(3753)), unsafe.Pointer(&_iVal), unsafe.Pointer(&_iVal)) 2753 _nInsert += 1 2754 if _iVal != 0 { 2755 goto _6 2756 } 2757 _9: 2758 _iVal = (_iVal + int64(1)) % int64(100) 2759 _execsql_i64_x(tls, func() *XError { 2760 _err.XiLine = func() int32 { 2761 if _err.Xrc != 0 { 2762 return _err.XiLine 2763 } 2764 return int32(1381) 2765 }() 2766 return &_err 2767 }(), &_db, unsafe.Pointer(str(3787)), unsafe.Pointer(&_iVal)) 2768 _nDelete += 1 2769 if _iVal != 0 { 2770 goto _9 2771 } 2772 goto _2 2773 _3: 2774 _closedb_x(tls, func() *XError { 2775 _err.XiLine = func() int32 { 2776 if _err.Xrc != 0 { 2777 return _err.XiLine 2778 } 2779 return int32(1385) 2780 }() 2781 return &_err 2782 }(), &_db) 2783 _print_and_free_err(tls, &_err) 2784 return bin.Xsqlite3_mprintf(tls, str(3816), _nInsert, _nDelete) 2785 } 2786 2787 func _dynamic_triggers_1(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 2788 var _nDrop, _nCreate, _1_i int32 2789 var _2_zSql, _3_zSql, _4_zSql, _5_zSql *int8 2790 var _err XError 2791 var _db XSqlite 2792 _err = XError{} 2793 _db = XSqlite{} 2794 _nDrop = int32(0) 2795 _nCreate = int32(0) 2796 _opendb_x(tls, func() *XError { 2797 _err.XiLine = func() int32 { 2798 if _err.Xrc != 0 { 2799 return _err.XiLine 2800 } 2801 return int32(1318) 2802 }() 2803 return &_err 2804 }(), &_db, str(378), int32(0)) 2805 _2: 2806 if _timetostop_x(tls, func() *XError { 2807 _err.XiLine = func() int32 { 2808 if _err.Xrc != 0 { 2809 return _err.XiLine 2810 } 2811 return int32(1319) 2812 }() 2813 return &_err 2814 }()) != 0 { 2815 goto _3 2816 } 2817 _1_i = int32(1) 2818 _6: 2819 if _1_i >= int32(9) { 2820 goto _9 2821 } 2822 _2_zSql = bin.Xsqlite3_mprintf(tls, str(3839), _1_i, _1_i, _1_i+int32(1)) 2823 _execsql_i64_x(tls, func() *XError { 2824 _err.XiLine = func() int32 { 2825 if _err.Xrc != 0 { 2826 return _err.XiLine 2827 } 2828 return int32(1328) 2829 }() 2830 return &_err 2831 }(), &_db, unsafe.Pointer(_2_zSql)) 2832 bin.Xsqlite3_free(tls, unsafe.Pointer(_2_zSql)) 2833 _nCreate += 1 2834 _1_i += 1 2835 goto _6 2836 _9: 2837 _1_i = int32(1) 2838 _12: 2839 if _1_i >= int32(9) { 2840 goto _15 2841 } 2842 _3_zSql = bin.Xsqlite3_mprintf(tls, str(3929), _1_i, _1_i, _1_i+int32(1)) 2843 _execsql_i64_x(tls, func() *XError { 2844 _err.XiLine = func() int32 { 2845 if _err.Xrc != 0 { 2846 return _err.XiLine 2847 } 2848 return int32(1339) 2849 }() 2850 return &_err 2851 }(), &_db, unsafe.Pointer(_3_zSql)) 2852 bin.Xsqlite3_free(tls, unsafe.Pointer(_3_zSql)) 2853 _nCreate += 1 2854 _1_i += 1 2855 goto _12 2856 _15: 2857 _1_i = int32(1) 2858 _18: 2859 if _1_i >= int32(9) { 2860 goto _21 2861 } 2862 _4_zSql = bin.Xsqlite3_mprintf(tls, str(4015), _1_i) 2863 _execsql_i64_x(tls, func() *XError { 2864 _err.XiLine = func() int32 { 2865 if _err.Xrc != 0 { 2866 return _err.XiLine 2867 } 2868 return int32(1346) 2869 }() 2870 return &_err 2871 }(), &_db, unsafe.Pointer(_4_zSql)) 2872 bin.Xsqlite3_free(tls, unsafe.Pointer(_4_zSql)) 2873 _nDrop += 1 2874 _1_i += 1 2875 goto _18 2876 _21: 2877 _1_i = int32(1) 2878 _24: 2879 if _1_i >= int32(9) { 2880 goto _27 2881 } 2882 _5_zSql = bin.Xsqlite3_mprintf(tls, str(4034), _1_i) 2883 _execsql_i64_x(tls, func() *XError { 2884 _err.XiLine = func() int32 { 2885 if _err.Xrc != 0 { 2886 return _err.XiLine 2887 } 2888 return int32(1353) 2889 }() 2890 return &_err 2891 }(), &_db, unsafe.Pointer(_5_zSql)) 2892 bin.Xsqlite3_free(tls, unsafe.Pointer(_5_zSql)) 2893 _nDrop += 1 2894 _1_i += 1 2895 goto _24 2896 _27: 2897 goto _2 2898 _3: 2899 _closedb_x(tls, func() *XError { 2900 _err.XiLine = func() int32 { 2901 if _err.Xrc != 0 { 2902 return _err.XiLine 2903 } 2904 return int32(1358) 2905 }() 2906 return &_err 2907 }(), &_db) 2908 _print_and_free_err(tls, &_err) 2909 return bin.Xsqlite3_mprintf(tls, str(4053), _nCreate, _nDrop) 2910 } 2911 2912 func _checkpoint_starvation_1(tls *crt.TLS, _nMs int32) { 2913 var _err XError 2914 var _ctx XCheckpointStarvationCtx 2915 _err = XError{} 2916 _ctx = XCheckpointStarvationCtx{} 2917 _checkpoint_starvation_main(tls, _nMs, &_ctx) 2918 if _ctx.XnMaxFrame < int32(500) { 2919 _test_error_x(tls, &_err, bin.Xsqlite3_mprintf(tls, str(4076), _ctx.XnMaxFrame)) 2920 } 2921 _print_and_free_err(tls, &_err) 2922 } 2923 2924 func _checkpoint_starvation_main(tls *crt.TLS, _nMs int32, _p *XCheckpointStarvationCtx) { 2925 var _nInsert, _i int32 2926 var _err XError 2927 var _db XSqlite 2928 var _threads XThreadset 2929 _err = XError{} 2930 _db = XSqlite{} 2931 _threads = XThreadset{} 2932 _nInsert = int32(0) 2933 _opendb_x(tls, func() *XError { 2934 _err.XiLine = func() int32 { 2935 if _err.Xrc != 0 { 2936 return _err.XiLine 2937 } 2938 return int32(99) 2939 }() 2940 return &_err 2941 }(), &_db, str(378), int32(1)) 2942 _sql_script_x(tls, func() *XError { 2943 _err.XiLine = func() int32 { 2944 if _err.Xrc != 0 { 2945 return _err.XiLine 2946 } 2947 return int32(100) 2948 }() 2949 return &_err 2950 }(), &_db, str(4107)) 2951 _setstoptime_x(tls, func() *XError { 2952 _err.XiLine = func() int32 { 2953 if _err.Xrc != 0 { 2954 return _err.XiLine 2955 } 2956 return int32(106) 2957 }() 2958 return &_err 2959 }(), _nMs) 2960 _i = int32(0) 2961 _6: 2962 if _i >= int32(4) { 2963 goto _9 2964 } 2965 _launch_thread_x(tls, func() *XError { 2966 _err.XiLine = func() int32 { 2967 if _err.Xrc != 0 { 2968 return _err.XiLine 2969 } 2970 return int32(109) 2971 }() 2972 return &_err 2973 }(), &_threads, _checkpoint_starvation_reader, nil) 2974 crt.Xusleep(tls, uint32(25000)) 2975 _i += 1 2976 goto _6 2977 _9: 2978 bin.Xsqlite3_wal_hook(tls, (*bin.Xsqlite3)(_db.Xdb), func() func(*crt.TLS, unsafe.Pointer, *bin.Xsqlite3, *int8, int32) int32 { 2979 v := _checkpoint_starvation_walhook 2980 return *(*func(*crt.TLS, unsafe.Pointer, *bin.Xsqlite3, *int8, int32) int32)(unsafe.Pointer(&v)) 2981 }(), unsafe.Pointer(_p)) 2982 _12: 2983 if _timetostop_x(tls, func() *XError { 2984 _err.XiLine = func() int32 { 2985 if _err.Xrc != 0 { 2986 return _err.XiLine 2987 } 2988 return int32(114) 2989 }() 2990 return &_err 2991 }()) == 0 { 2992 _sql_script_x(tls, func() *XError { 2993 _err.XiLine = func() int32 { 2994 if _err.Xrc != 0 { 2995 return _err.XiLine 2996 } 2997 return int32(115) 2998 }() 2999 return &_err 3000 }(), &_db, str(4177)) 3001 _nInsert += 1 3002 goto _12 3003 } 3004 crt.Xprintf(tls, str(4217), unsafe.Pointer(func() *int8 { 3005 if _p.XeMode == int32(0) { 3006 return str(4241) 3007 } 3008 return str(4249) 3009 }())) 3010 crt.Xprintf(tls, str(4257), _p.XnMaxFrame) 3011 crt.Xprintf(tls, str(4288), _nInsert) 3012 _join_all_threads_x(tls, func() *XError { 3013 _err.XiLine = func() int32 { 3014 if _err.Xrc != 0 { 3015 return _err.XiLine 3016 } 3017 return int32(125) 3018 }() 3019 return &_err 3020 }(), &_threads) 3021 _closedb_x(tls, func() *XError { 3022 _err.XiLine = func() int32 { 3023 if _err.Xrc != 0 { 3024 return _err.XiLine 3025 } 3026 return int32(126) 3027 }() 3028 return &_err 3029 }(), &_db) 3030 _print_and_free_err(tls, &_err) 3031 } 3032 3033 func _checkpoint_starvation_reader(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3034 var _1_iCount1, _1_iCount2 int64 3035 var _err XError 3036 var _db XSqlite 3037 _err = XError{} 3038 _db = XSqlite{} 3039 _opendb_x(tls, func() *XError { 3040 _err.XiLine = func() int32 { 3041 if _err.Xrc != 0 { 3042 return _err.XiLine 3043 } 3044 return int32(73) 3045 }() 3046 return &_err 3047 }(), &_db, str(378), int32(0)) 3048 _2: 3049 if _timetostop_x(tls, func() *XError { 3050 _err.XiLine = func() int32 { 3051 if _err.Xrc != 0 { 3052 return _err.XiLine 3053 } 3054 return int32(74) 3055 }() 3056 return &_err 3057 }()) != 0 { 3058 goto _3 3059 } 3060 _sql_script_x(tls, func() *XError { 3061 _err.XiLine = func() int32 { 3062 if _err.Xrc != 0 { 3063 return _err.XiLine 3064 } 3065 return int32(76) 3066 }() 3067 return &_err 3068 }(), &_db, str(767)) 3069 _1_iCount1 = _execsql_i64_x(tls, func() *XError { 3070 _err.XiLine = func() int32 { 3071 if _err.Xrc != 0 { 3072 return _err.XiLine 3073 } 3074 return int32(77) 3075 }() 3076 return &_err 3077 }(), &_db, unsafe.Pointer(str(4325))) 3078 crt.Xusleep(tls, uint32(100000)) 3079 _1_iCount2 = _execsql_i64_x(tls, func() *XError { 3080 _err.XiLine = func() int32 { 3081 if _err.Xrc != 0 { 3082 return _err.XiLine 3083 } 3084 return int32(79) 3085 }() 3086 return &_err 3087 }(), &_db, unsafe.Pointer(str(4325))) 3088 _sql_script_x(tls, func() *XError { 3089 _err.XiLine = func() int32 { 3090 if _err.Xrc != 0 { 3091 return _err.XiLine 3092 } 3093 return int32(80) 3094 }() 3095 return &_err 3096 }(), &_db, str(773)) 3097 if _1_iCount1 != _1_iCount2 { 3098 _test_error_x(tls, &_err, bin.Xsqlite3_mprintf(tls, str(4349), _1_iCount1, _1_iCount2)) 3099 } 3100 goto _2 3101 _3: 3102 _closedb_x(tls, func() *XError { 3103 _err.XiLine = func() int32 { 3104 if _err.Xrc != 0 { 3105 return _err.XiLine 3106 } 3107 return int32(86) 3108 }() 3109 return &_err 3110 }(), &_db) 3111 _print_and_free_err(tls, &_err) 3112 return nil 3113 } 3114 3115 func _checkpoint_starvation_walhook(tls *crt.TLS, _pCtx unsafe.Pointer, _db unsafe.Pointer, _zDb *int8, _nFrame int32) (r0 int32) { 3116 var _p *XCheckpointStarvationCtx 3117 _p = (*XCheckpointStarvationCtx)(_pCtx) 3118 if _nFrame > _p.XnMaxFrame { 3119 _p.XnMaxFrame = _nFrame 3120 } 3121 if _nFrame >= int32(50) { 3122 bin.Xsqlite3_wal_checkpoint_v2(tls, (*bin.Xsqlite3)(_db), _zDb, _p.XeMode, nil, nil) 3123 } 3124 return int32(0) 3125 } 3126 3127 func _checkpoint_starvation_2(tls *crt.TLS, _nMs int32) { 3128 var _err XError 3129 var _ctx XCheckpointStarvationCtx 3130 _err = XError{} 3131 _ctx = XCheckpointStarvationCtx{XeMode: int32(2)} 3132 _checkpoint_starvation_main(tls, _nMs, &_ctx) 3133 if _ctx.XnMaxFrame > int32(60) { 3134 _test_error_x(tls, &_err, bin.Xsqlite3_mprintf(tls, str(4379), _ctx.XnMaxFrame)) 3135 } 3136 _print_and_free_err(tls, &_err) 3137 } 3138 3139 func _create_drop_index_1(tls *crt.TLS, _nMs int32) { 3140 var _err XError 3141 var _db XSqlite 3142 var _threads XThreadset 3143 _err = XError{} 3144 _db = XSqlite{} 3145 _threads = XThreadset{} 3146 _opendb_x(tls, func() *XError { 3147 _err.XiLine = func() int32 { 3148 if _err.Xrc != 0 { 3149 return _err.XiLine 3150 } 3151 return int32(54) 3152 }() 3153 return &_err 3154 }(), &_db, str(378), int32(1)) 3155 _sql_script_x(tls, func() *XError { 3156 _err.XiLine = func() int32 { 3157 if _err.Xrc != 0 { 3158 return _err.XiLine 3159 } 3160 return int32(55) 3161 }() 3162 return &_err 3163 }(), &_db, str(4410)) 3164 _closedb_x(tls, func() *XError { 3165 _err.XiLine = func() int32 { 3166 if _err.Xrc != 0 { 3167 return _err.XiLine 3168 } 3169 return int32(60) 3170 }() 3171 return &_err 3172 }(), &_db) 3173 _setstoptime_x(tls, func() *XError { 3174 _err.XiLine = func() int32 { 3175 if _err.Xrc != 0 { 3176 return _err.XiLine 3177 } 3178 return int32(62) 3179 }() 3180 return &_err 3181 }(), _nMs) 3182 bin.Xsqlite3_enable_shared_cache(tls, int32(1)) 3183 _launch_thread_x(tls, func() *XError { 3184 _err.XiLine = func() int32 { 3185 if _err.Xrc != 0 { 3186 return _err.XiLine 3187 } 3188 return int32(65) 3189 }() 3190 return &_err 3191 }(), &_threads, _create_drop_index_thread, nil) 3192 _launch_thread_x(tls, func() *XError { 3193 _err.XiLine = func() int32 { 3194 if _err.Xrc != 0 { 3195 return _err.XiLine 3196 } 3197 return int32(66) 3198 }() 3199 return &_err 3200 }(), &_threads, _create_drop_index_thread, nil) 3201 _launch_thread_x(tls, func() *XError { 3202 _err.XiLine = func() int32 { 3203 if _err.Xrc != 0 { 3204 return _err.XiLine 3205 } 3206 return int32(67) 3207 }() 3208 return &_err 3209 }(), &_threads, _create_drop_index_thread, nil) 3210 _launch_thread_x(tls, func() *XError { 3211 _err.XiLine = func() int32 { 3212 if _err.Xrc != 0 { 3213 return _err.XiLine 3214 } 3215 return int32(68) 3216 }() 3217 return &_err 3218 }(), &_threads, _create_drop_index_thread, nil) 3219 _launch_thread_x(tls, func() *XError { 3220 _err.XiLine = func() int32 { 3221 if _err.Xrc != 0 { 3222 return _err.XiLine 3223 } 3224 return int32(69) 3225 }() 3226 return &_err 3227 }(), &_threads, _create_drop_index_thread, nil) 3228 _join_all_threads_x(tls, func() *XError { 3229 _err.XiLine = func() int32 { 3230 if _err.Xrc != 0 { 3231 return _err.XiLine 3232 } 3233 return int32(71) 3234 }() 3235 return &_err 3236 }(), &_threads) 3237 bin.Xsqlite3_enable_shared_cache(tls, int32(0)) 3238 _print_and_free_err(tls, &_err) 3239 } 3240 3241 func _create_drop_index_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3242 var _err XError 3243 var _db XSqlite 3244 _err = XError{} 3245 _db = XSqlite{} 3246 _0: 3247 if _timetostop_x(tls, func() *XError { 3248 _err.XiLine = func() int32 { 3249 if _err.Xrc != 0 { 3250 return _err.XiLine 3251 } 3252 return int32(21) 3253 }() 3254 return &_err 3255 }()) == 0 { 3256 _opendb_x(tls, func() *XError { 3257 _err.XiLine = func() int32 { 3258 if _err.Xrc != 0 { 3259 return _err.XiLine 3260 } 3261 return int32(22) 3262 }() 3263 return &_err 3264 }(), &_db, str(378), int32(0)) 3265 _sql_script_x(tls, func() *XError { 3266 _err.XiLine = func() int32 { 3267 if _err.Xrc != 0 { 3268 return _err.XiLine 3269 } 3270 return int32(24) 3271 }() 3272 return &_err 3273 }(), &_db, str(4551)) 3274 _clear_error_x(tls, &_err, int32(6)) 3275 _closedb_x(tls, func() *XError { 3276 _err.XiLine = func() int32 { 3277 if _err.Xrc != 0 { 3278 return _err.XiLine 3279 } 3280 return int32(42) 3281 }() 3282 return &_err 3283 }(), &_db) 3284 goto _0 3285 } 3286 _print_and_free_err(tls, &_err) 3287 return bin.Xsqlite3_mprintf(tls, str(1166)) 3288 } 3289 3290 func _lookaside1(tls *crt.TLS, _nMs int32) { 3291 var _err XError 3292 var _db XSqlite 3293 var _threads XThreadset 3294 _err = XError{} 3295 _db = XSqlite{} 3296 _threads = XThreadset{} 3297 _opendb_x(tls, func() *XError { 3298 _err.XiLine = func() int32 { 3299 if _err.Xrc != 0 { 3300 return _err.XiLine 3301 } 3302 return int32(71) 3303 }() 3304 return &_err 3305 }(), &_db, str(378), int32(1)) 3306 _sql_script_x(tls, func() *XError { 3307 _err.XiLine = func() int32 { 3308 if _err.Xrc != 0 { 3309 return _err.XiLine 3310 } 3311 return int32(72) 3312 }() 3313 return &_err 3314 }(), &_db, str(4924)) 3315 _closedb_x(tls, func() *XError { 3316 _err.XiLine = func() int32 { 3317 if _err.Xrc != 0 { 3318 return _err.XiLine 3319 } 3320 return int32(85) 3321 }() 3322 return &_err 3323 }(), &_db) 3324 _setstoptime_x(tls, func() *XError { 3325 _err.XiLine = func() int32 { 3326 if _err.Xrc != 0 { 3327 return _err.XiLine 3328 } 3329 return int32(87) 3330 }() 3331 return &_err 3332 }(), _nMs) 3333 bin.Xsqlite3_enable_shared_cache(tls, int32(1)) 3334 _launch_thread_x(tls, func() *XError { 3335 _err.XiLine = func() int32 { 3336 if _err.Xrc != 0 { 3337 return _err.XiLine 3338 } 3339 return int32(90) 3340 }() 3341 return &_err 3342 }(), &_threads, _lookaside1_thread_reader, nil) 3343 _launch_thread_x(tls, func() *XError { 3344 _err.XiLine = func() int32 { 3345 if _err.Xrc != 0 { 3346 return _err.XiLine 3347 } 3348 return int32(91) 3349 }() 3350 return &_err 3351 }(), &_threads, _lookaside1_thread_reader, nil) 3352 _launch_thread_x(tls, func() *XError { 3353 _err.XiLine = func() int32 { 3354 if _err.Xrc != 0 { 3355 return _err.XiLine 3356 } 3357 return int32(92) 3358 }() 3359 return &_err 3360 }(), &_threads, _lookaside1_thread_reader, nil) 3361 _launch_thread_x(tls, func() *XError { 3362 _err.XiLine = func() int32 { 3363 if _err.Xrc != 0 { 3364 return _err.XiLine 3365 } 3366 return int32(93) 3367 }() 3368 return &_err 3369 }(), &_threads, _lookaside1_thread_reader, nil) 3370 _launch_thread_x(tls, func() *XError { 3371 _err.XiLine = func() int32 { 3372 if _err.Xrc != 0 { 3373 return _err.XiLine 3374 } 3375 return int32(94) 3376 }() 3377 return &_err 3378 }(), &_threads, _lookaside1_thread_reader, nil) 3379 _launch_thread_x(tls, func() *XError { 3380 _err.XiLine = func() int32 { 3381 if _err.Xrc != 0 { 3382 return _err.XiLine 3383 } 3384 return int32(95) 3385 }() 3386 return &_err 3387 }(), &_threads, _lookaside1_thread_writer, nil) 3388 _join_all_threads_x(tls, func() *XError { 3389 _err.XiLine = func() int32 { 3390 if _err.Xrc != 0 { 3391 return _err.XiLine 3392 } 3393 return int32(96) 3394 }() 3395 return &_err 3396 }(), &_threads) 3397 bin.Xsqlite3_enable_shared_cache(tls, int32(0)) 3398 _print_and_free_err(tls, &_err) 3399 } 3400 3401 func _lookaside1_thread_reader(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3402 var _1_rc int32 3403 var _1_pStmt unsafe.Pointer 3404 var _err XError 3405 var _db XSqlite 3406 _err = XError{} 3407 _db = XSqlite{} 3408 _opendb_x(tls, func() *XError { 3409 _err.XiLine = func() int32 { 3410 if _err.Xrc != 0 { 3411 return _err.XiLine 3412 } 3413 return int32(25) 3414 }() 3415 return &_err 3416 }(), &_db, str(378), int32(0)) 3417 _2: 3418 if _timetostop_x(tls, func() *XError { 3419 _err.XiLine = func() int32 { 3420 if _err.Xrc != 0 { 3421 return _err.XiLine 3422 } 3423 return int32(27) 3424 }() 3425 return &_err 3426 }()) != 0 { 3427 goto _3 3428 } 3429 _1_pStmt = nil 3430 bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_db.Xdb), str(5276), int32(-1), &_1_pStmt, nil) 3431 _6: 3432 if bin.Xsqlite3_step(tls, _1_pStmt) == int32(100) { 3433 _execsql_i64_x(tls, func() *XError { 3434 _err.XiLine = func() int32 { 3435 if _err.Xrc != 0 { 3436 return _err.XiLine 3437 } 3438 return int32(33) 3439 }() 3440 return &_err 3441 }(), &_db, unsafe.Pointer(str(5293))) 3442 goto _6 3443 } 3444 _1_rc = bin.Xsqlite3_finalize(tls, _1_pStmt) 3445 if (_err.Xrc == int32(0)) && (_1_rc != int32(0)) { 3446 _sqlite_error(tls, &_err, &_db, str(5324)) 3447 } 3448 goto _2 3449 _3: 3450 _closedb_x(tls, func() *XError { 3451 _err.XiLine = func() int32 { 3452 if _err.Xrc != 0 { 3453 return _err.XiLine 3454 } 3455 return int32(41) 3456 }() 3457 return &_err 3458 }(), &_db) 3459 _print_and_free_err(tls, &_err) 3460 return bin.Xsqlite3_mprintf(tls, str(1166)) 3461 } 3462 3463 func _lookaside1_thread_writer(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3464 var _err XError 3465 var _db XSqlite 3466 _err = XError{} 3467 _db = XSqlite{} 3468 _opendb_x(tls, func() *XError { 3469 _err.XiLine = func() int32 { 3470 if _err.Xrc != 0 { 3471 return _err.XiLine 3472 } 3473 return int32(50) 3474 }() 3475 return &_err 3476 }(), &_db, str(378), int32(0)) 3477 _2: 3478 _sql_script_x(tls, func() *XError { 3479 _err.XiLine = func() int32 { 3480 if _err.Xrc != 0 { 3481 return _err.XiLine 3482 } 3483 return int32(53) 3484 }() 3485 return &_err 3486 }(), &_db, str(5333)) 3487 if _timetostop_x(tls, func() *XError { 3488 _err.XiLine = func() int32 { 3489 if _err.Xrc != 0 { 3490 return _err.XiLine 3491 } 3492 return int32(58) 3493 }() 3494 return &_err 3495 }()) == 0 { 3496 goto _2 3497 } 3498 _closedb_x(tls, func() *XError { 3499 _err.XiLine = func() int32 { 3500 if _err.Xrc != 0 { 3501 return _err.XiLine 3502 } 3503 return int32(60) 3504 }() 3505 return &_err 3506 }(), &_db) 3507 _print_and_free_err(tls, &_err) 3508 return bin.Xsqlite3_mprintf(tls, str(1166)) 3509 } 3510 3511 func _vacuum1(tls *crt.TLS, _nMs int32) { 3512 var _err XError 3513 var _db XSqlite 3514 var _threads XThreadset 3515 _err = XError{} 3516 _db = XSqlite{} 3517 _threads = XThreadset{} 3518 _opendb_x(tls, func() *XError { 3519 _err.XiLine = func() int32 { 3520 if _err.Xrc != 0 { 3521 return _err.XiLine 3522 } 3523 return int32(72) 3524 }() 3525 return &_err 3526 }(), &_db, str(378), int32(1)) 3527 _sql_script_x(tls, func() *XError { 3528 _err.XiLine = func() int32 { 3529 if _err.Xrc != 0 { 3530 return _err.XiLine 3531 } 3532 return int32(73) 3533 }() 3534 return &_err 3535 }(), &_db, str(5379)) 3536 _closedb_x(tls, func() *XError { 3537 _err.XiLine = func() int32 { 3538 if _err.Xrc != 0 { 3539 return _err.XiLine 3540 } 3541 return int32(77) 3542 }() 3543 return &_err 3544 }(), &_db) 3545 _setstoptime_x(tls, func() *XError { 3546 _err.XiLine = func() int32 { 3547 if _err.Xrc != 0 { 3548 return _err.XiLine 3549 } 3550 return int32(79) 3551 }() 3552 return &_err 3553 }(), _nMs) 3554 bin.Xsqlite3_enable_shared_cache(tls, int32(1)) 3555 _launch_thread_x(tls, func() *XError { 3556 _err.XiLine = func() int32 { 3557 if _err.Xrc != 0 { 3558 return _err.XiLine 3559 } 3560 return int32(82) 3561 }() 3562 return &_err 3563 }(), &_threads, _vacuum1_thread_writer, nil) 3564 _launch_thread_x(tls, func() *XError { 3565 _err.XiLine = func() int32 { 3566 if _err.Xrc != 0 { 3567 return _err.XiLine 3568 } 3569 return int32(83) 3570 }() 3571 return &_err 3572 }(), &_threads, _vacuum1_thread_writer, nil) 3573 _launch_thread_x(tls, func() *XError { 3574 _err.XiLine = func() int32 { 3575 if _err.Xrc != 0 { 3576 return _err.XiLine 3577 } 3578 return int32(84) 3579 }() 3580 return &_err 3581 }(), &_threads, _vacuum1_thread_writer, nil) 3582 _launch_thread_x(tls, func() *XError { 3583 _err.XiLine = func() int32 { 3584 if _err.Xrc != 0 { 3585 return _err.XiLine 3586 } 3587 return int32(85) 3588 }() 3589 return &_err 3590 }(), &_threads, _vacuum1_thread_vacuumer, nil) 3591 _join_all_threads_x(tls, func() *XError { 3592 _err.XiLine = func() int32 { 3593 if _err.Xrc != 0 { 3594 return _err.XiLine 3595 } 3596 return int32(86) 3597 }() 3598 return &_err 3599 }(), &_threads) 3600 bin.Xsqlite3_enable_shared_cache(tls, int32(0)) 3601 _print_and_free_err(tls, &_err) 3602 } 3603 3604 func _vacuum1_thread_writer(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3605 var _i int64 3606 var _err XError 3607 var _db XSqlite 3608 _err = XError{} 3609 _db = XSqlite{} 3610 _opendb_x(tls, func() *XError { 3611 _err.XiLine = func() int32 { 3612 if _err.Xrc != 0 { 3613 return _err.XiLine 3614 } 3615 return int32(26) 3616 }() 3617 return &_err 3618 }(), &_db, str(378), int32(0)) 3619 _i = int64(0) 3620 _2: 3621 if _timetostop_x(tls, func() *XError { 3622 _err.XiLine = func() int32 { 3623 if _err.Xrc != 0 { 3624 return _err.XiLine 3625 } 3626 return int32(29) 3627 }() 3628 return &_err 3629 }()) == 0 { 3630 _i += 1 3631 _execsql_i64_x(tls, func() *XError { 3632 _err.XiLine = func() int32 { 3633 if _err.Xrc != 0 { 3634 return _err.XiLine 3635 } 3636 return int32(33) 3637 }() 3638 return &_err 3639 }(), &_db, unsafe.Pointer(str(5444))) 3640 _execsql_i64_x(tls, func() *XError { 3641 _err.XiLine = func() int32 { 3642 if _err.Xrc != 0 { 3643 return _err.XiLine 3644 } 3645 return int32(39) 3646 }() 3647 return &_err 3648 }(), &_db, unsafe.Pointer(str(5579)), unsafe.Pointer(&_i)) 3649 _clear_error_x(tls, &_err, int32(6)) 3650 _execsql_i64_x(tls, func() *XError { 3651 _err.XiLine = func() int32 { 3652 if _err.Xrc != 0 { 3653 return _err.XiLine 3654 } 3655 return int32(43) 3656 }() 3657 return &_err 3658 }(), &_db, unsafe.Pointer(str(5611))) 3659 _clear_error_x(tls, &_err, int32(6)) 3660 goto _2 3661 } 3662 _closedb_x(tls, func() *XError { 3663 _err.XiLine = func() int32 { 3664 if _err.Xrc != 0 { 3665 return _err.XiLine 3666 } 3667 return int32(47) 3668 }() 3669 return &_err 3670 }(), &_db) 3671 _print_and_free_err(tls, &_err) 3672 return bin.Xsqlite3_mprintf(tls, str(1166)) 3673 } 3674 3675 func _vacuum1_thread_vacuumer(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3676 var _err XError 3677 var _db XSqlite 3678 _err = XError{} 3679 _db = XSqlite{} 3680 _opendb_x(tls, func() *XError { 3681 _err.XiLine = func() int32 { 3682 if _err.Xrc != 0 { 3683 return _err.XiLine 3684 } 3685 return int32(55) 3686 }() 3687 return &_err 3688 }(), &_db, str(378), int32(0)) 3689 _2: 3690 _sql_script_x(tls, func() *XError { 3691 _err.XiLine = func() int32 { 3692 if _err.Xrc != 0 { 3693 return _err.XiLine 3694 } 3695 return int32(58) 3696 }() 3697 return &_err 3698 }(), &_db, str(5639)) 3699 _clear_error_x(tls, &_err, int32(6)) 3700 if _timetostop_x(tls, func() *XError { 3701 _err.XiLine = func() int32 { 3702 if _err.Xrc != 0 { 3703 return _err.XiLine 3704 } 3705 return int32(60) 3706 }() 3707 return &_err 3708 }()) == 0 { 3709 goto _2 3710 } 3711 _closedb_x(tls, func() *XError { 3712 _err.XiLine = func() int32 { 3713 if _err.Xrc != 0 { 3714 return _err.XiLine 3715 } 3716 return int32(62) 3717 }() 3718 return &_err 3719 }(), &_db) 3720 _print_and_free_err(tls, &_err) 3721 return bin.Xsqlite3_mprintf(tls, str(1166)) 3722 } 3723 3724 func _stress1(tls *crt.TLS, _nMs int32) { 3725 var _err XError 3726 var _threads XThreadset 3727 _err = XError{} 3728 _threads = XThreadset{} 3729 _setstoptime_x(tls, func() *XError { 3730 _err.XiLine = func() int32 { 3731 if _err.Xrc != 0 { 3732 return _err.XiLine 3733 } 3734 return int32(138) 3735 }() 3736 return &_err 3737 }(), _nMs) 3738 bin.Xsqlite3_enable_shared_cache(tls, int32(1)) 3739 _launch_thread_x(tls, func() *XError { 3740 _err.XiLine = func() int32 { 3741 if _err.Xrc != 0 { 3742 return _err.XiLine 3743 } 3744 return int32(141) 3745 }() 3746 return &_err 3747 }(), &_threads, _stress_thread_1, nil) 3748 _launch_thread_x(tls, func() *XError { 3749 _err.XiLine = func() int32 { 3750 if _err.Xrc != 0 { 3751 return _err.XiLine 3752 } 3753 return int32(142) 3754 }() 3755 return &_err 3756 }(), &_threads, _stress_thread_1, nil) 3757 _launch_thread_x(tls, func() *XError { 3758 _err.XiLine = func() int32 { 3759 if _err.Xrc != 0 { 3760 return _err.XiLine 3761 } 3762 return int32(144) 3763 }() 3764 return &_err 3765 }(), &_threads, _stress_thread_2, nil) 3766 _launch_thread_x(tls, func() *XError { 3767 _err.XiLine = func() int32 { 3768 if _err.Xrc != 0 { 3769 return _err.XiLine 3770 } 3771 return int32(145) 3772 }() 3773 return &_err 3774 }(), &_threads, _stress_thread_2, nil) 3775 _launch_thread_x(tls, func() *XError { 3776 _err.XiLine = func() int32 { 3777 if _err.Xrc != 0 { 3778 return _err.XiLine 3779 } 3780 return int32(147) 3781 }() 3782 return &_err 3783 }(), &_threads, _stress_thread_3, nil) 3784 _launch_thread_x(tls, func() *XError { 3785 _err.XiLine = func() int32 { 3786 if _err.Xrc != 0 { 3787 return _err.XiLine 3788 } 3789 return int32(148) 3790 }() 3791 return &_err 3792 }(), &_threads, _stress_thread_3, nil) 3793 _launch_thread_x(tls, func() *XError { 3794 _err.XiLine = func() int32 { 3795 if _err.Xrc != 0 { 3796 return _err.XiLine 3797 } 3798 return int32(150) 3799 }() 3800 return &_err 3801 }(), &_threads, _stress_thread_4, nil) 3802 _launch_thread_x(tls, func() *XError { 3803 _err.XiLine = func() int32 { 3804 if _err.Xrc != 0 { 3805 return _err.XiLine 3806 } 3807 return int32(151) 3808 }() 3809 return &_err 3810 }(), &_threads, _stress_thread_4, nil) 3811 _launch_thread_x(tls, func() *XError { 3812 _err.XiLine = func() int32 { 3813 if _err.Xrc != 0 { 3814 return _err.XiLine 3815 } 3816 return int32(153) 3817 }() 3818 return &_err 3819 }(), &_threads, _stress_thread_5, nil) 3820 _launch_thread_x(tls, func() *XError { 3821 _err.XiLine = func() int32 { 3822 if _err.Xrc != 0 { 3823 return _err.XiLine 3824 } 3825 return int32(154) 3826 }() 3827 return &_err 3828 }(), &_threads, _stress_thread_5, crt.U2P(uintptr(uint32(1)))) 3829 _join_all_threads_x(tls, func() *XError { 3830 _err.XiLine = func() int32 { 3831 if _err.Xrc != 0 { 3832 return _err.XiLine 3833 } 3834 return int32(156) 3835 }() 3836 return &_err 3837 }(), &_threads) 3838 bin.Xsqlite3_enable_shared_cache(tls, int32(0)) 3839 _print_and_free_err(tls, &_err) 3840 } 3841 3842 // C comment 3843 // /* 3844 // ** Thread 1. CREATE and DROP a table. 3845 // */ 3846 func _stress_thread_1(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3847 var _err XError 3848 var _db XSqlite 3849 _err = XError{} 3850 _db = XSqlite{} 3851 _opendb_x(tls, func() *XError { 3852 _err.XiLine = func() int32 { 3853 if _err.Xrc != 0 { 3854 return _err.XiLine 3855 } 3856 return int32(24) 3857 }() 3858 return &_err 3859 }(), &_db, str(378), int32(0)) 3860 _2: 3861 if _timetostop_x(tls, func() *XError { 3862 _err.XiLine = func() int32 { 3863 if _err.Xrc != 0 { 3864 return _err.XiLine 3865 } 3866 return int32(25) 3867 }() 3868 return &_err 3869 }()) == 0 { 3870 _sql_script_x(tls, func() *XError { 3871 _err.XiLine = func() int32 { 3872 if _err.Xrc != 0 { 3873 return _err.XiLine 3874 } 3875 return int32(26) 3876 }() 3877 return &_err 3878 }(), &_db, str(5646)) 3879 _clear_error_x(tls, &_err, int32(6)) 3880 _sql_script_x(tls, func() *XError { 3881 _err.XiLine = func() int32 { 3882 if _err.Xrc != 0 { 3883 return _err.XiLine 3884 } 3885 return int32(28) 3886 }() 3887 return &_err 3888 }(), &_db, str(5694)) 3889 _clear_error_x(tls, &_err, int32(6)) 3890 goto _2 3891 } 3892 _closedb_x(tls, func() *XError { 3893 _err.XiLine = func() int32 { 3894 if _err.Xrc != 0 { 3895 return _err.XiLine 3896 } 3897 return int32(31) 3898 }() 3899 return &_err 3900 }(), &_db) 3901 _print_and_free_err(tls, &_err) 3902 return bin.Xsqlite3_mprintf(tls, str(1166)) 3903 } 3904 3905 // C comment 3906 // /* 3907 // ** Thread 2. Open and close database connections. 3908 // */ 3909 func _stress_thread_2(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3910 var _err XError 3911 var _db XSqlite 3912 _err = XError{} 3913 _db = XSqlite{} 3914 _0: 3915 if _timetostop_x(tls, func() *XError { 3916 _err.XiLine = func() int32 { 3917 if _err.Xrc != 0 { 3918 return _err.XiLine 3919 } 3920 return int32(42) 3921 }() 3922 return &_err 3923 }()) == 0 { 3924 _opendb_x(tls, func() *XError { 3925 _err.XiLine = func() int32 { 3926 if _err.Xrc != 0 { 3927 return _err.XiLine 3928 } 3929 return int32(43) 3930 }() 3931 return &_err 3932 }(), &_db, str(378), int32(0)) 3933 _sql_script_x(tls, func() *XError { 3934 _err.XiLine = func() int32 { 3935 if _err.Xrc != 0 { 3936 return _err.XiLine 3937 } 3938 return int32(44) 3939 }() 3940 return &_err 3941 }(), &_db, str(5718)) 3942 _clear_error_x(tls, &_err, int32(6)) 3943 _closedb_x(tls, func() *XError { 3944 _err.XiLine = func() int32 { 3945 if _err.Xrc != 0 { 3946 return _err.XiLine 3947 } 3948 return int32(46) 3949 }() 3950 return &_err 3951 }(), &_db) 3952 goto _0 3953 } 3954 _print_and_free_err(tls, &_err) 3955 return bin.Xsqlite3_mprintf(tls, str(1166)) 3956 } 3957 3958 // C comment 3959 // /* 3960 // ** Thread 3. Attempt many small SELECT statements. 3961 // */ 3962 func _stress_thread_3(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 3963 var _i1, _i2 int32 3964 var _err XError 3965 var _db XSqlite 3966 _err = XError{} 3967 _db = XSqlite{} 3968 _i1 = int32(0) 3969 _i2 = int32(0) 3970 _opendb_x(tls, func() *XError { 3971 _err.XiLine = func() int32 { 3972 if _err.Xrc != 0 { 3973 return _err.XiLine 3974 } 3975 return int32(62) 3976 }() 3977 return &_err 3978 }(), &_db, str(378), int32(0)) 3979 _2: 3980 if _timetostop_x(tls, func() *XError { 3981 _err.XiLine = func() int32 { 3982 if _err.Xrc != 0 { 3983 return _err.XiLine 3984 } 3985 return int32(63) 3986 }() 3987 return &_err 3988 }()) != 0 { 3989 goto _3 3990 } 3991 _sql_script_x(tls, func() *XError { 3992 _err.XiLine = func() int32 { 3993 if _err.Xrc != 0 { 3994 return _err.XiLine 3995 } 3996 return int32(64) 3997 }() 3998 return &_err 3999 }(), &_db, str(5747)) 4000 _i1 += 1 4001 if _err.Xrc != 0 { 4002 _i2 += 1 4003 } 4004 _clear_error_x(tls, &_err, int32(6)) 4005 _clear_error_x(tls, &_err, int32(1)) 4006 goto _2 4007 _3: 4008 _closedb_x(tls, func() *XError { 4009 _err.XiLine = func() int32 { 4010 if _err.Xrc != 0 { 4011 return _err.XiLine 4012 } 4013 return int32(70) 4014 }() 4015 return &_err 4016 }(), &_db) 4017 _print_and_free_err(tls, &_err) 4018 return bin.Xsqlite3_mprintf(tls, str(5776), _i2, _i1) 4019 } 4020 4021 // C comment 4022 // /* 4023 // ** Thread 5. Attempt INSERT statements. 4024 // */ 4025 func _stress_thread_4(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 4026 var _i1, _i2, _iArg int32 4027 var _err XError 4028 var _db XSqlite 4029 _err = XError{} 4030 _db = XSqlite{} 4031 _i1 = int32(0) 4032 _i2 = int32(0) 4033 _iArg = int32(int64(crt.P2U(_pArg))) 4034 _opendb_x(tls, func() *XError { 4035 _err.XiLine = func() int32 { 4036 if _err.Xrc != 0 { 4037 return _err.XiLine 4038 } 4039 return int32(85) 4040 }() 4041 return &_err 4042 }(), &_db, str(378), int32(0)) 4043 _2: 4044 if _timetostop_x(tls, func() *XError { 4045 _err.XiLine = func() int32 { 4046 if _err.Xrc != 0 { 4047 return _err.XiLine 4048 } 4049 return int32(86) 4050 }() 4051 return &_err 4052 }()) != 0 { 4053 goto _3 4054 } 4055 if _iArg != 0 { 4056 _closedb_x(tls, func() *XError { 4057 _err.XiLine = func() int32 { 4058 if _err.Xrc != 0 { 4059 return _err.XiLine 4060 } 4061 return int32(88) 4062 }() 4063 return &_err 4064 }(), &_db) 4065 _opendb_x(tls, func() *XError { 4066 _err.XiLine = func() int32 { 4067 if _err.Xrc != 0 { 4068 return _err.XiLine 4069 } 4070 return int32(89) 4071 }() 4072 return &_err 4073 }(), &_db, str(378), int32(0)) 4074 } 4075 _sql_script_x(tls, func() *XError { 4076 _err.XiLine = func() int32 { 4077 if _err.Xrc != 0 { 4078 return _err.XiLine 4079 } 4080 return int32(91) 4081 }() 4082 return &_err 4083 }(), &_db, str(5799)) 4084 _i1 += 1 4085 if _err.Xrc != 0 { 4086 _i2 += 1 4087 } 4088 _clear_error_x(tls, &_err, int32(6)) 4089 _clear_error_x(tls, &_err, int32(1)) 4090 goto _2 4091 _3: 4092 _closedb_x(tls, func() *XError { 4093 _err.XiLine = func() int32 { 4094 if _err.Xrc != 0 { 4095 return _err.XiLine 4096 } 4097 return int32(100) 4098 }() 4099 return &_err 4100 }(), &_db) 4101 _print_and_free_err(tls, &_err) 4102 return bin.Xsqlite3_mprintf(tls, str(5922), _i2, _i1) 4103 } 4104 4105 // C comment 4106 // /* 4107 // ** Thread 6. Attempt DELETE operations. 4108 // */ 4109 func _stress_thread_5(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 4110 var _iArg, _i1, _i2 int32 4111 var _1_i int64 4112 var _err XError 4113 var _db XSqlite 4114 _err = XError{} 4115 _db = XSqlite{} 4116 _iArg = int32(int64(crt.P2U(_pArg))) 4117 _i1 = int32(0) 4118 _i2 = int32(0) 4119 _opendb_x(tls, func() *XError { 4120 _err.XiLine = func() int32 { 4121 if _err.Xrc != 0 { 4122 return _err.XiLine 4123 } 4124 return int32(116) 4125 }() 4126 return &_err 4127 }(), &_db, str(378), int32(0)) 4128 _2: 4129 if _timetostop_x(tls, func() *XError { 4130 _err.XiLine = func() int32 { 4131 if _err.Xrc != 0 { 4132 return _err.XiLine 4133 } 4134 return int32(117) 4135 }() 4136 return &_err 4137 }()) != 0 { 4138 goto _3 4139 } 4140 _1_i = int64(_i1 % int32(4)) 4141 if _iArg != 0 { 4142 _closedb_x(tls, func() *XError { 4143 _err.XiLine = func() int32 { 4144 if _err.Xrc != 0 { 4145 return _err.XiLine 4146 } 4147 return int32(120) 4148 }() 4149 return &_err 4150 }(), &_db) 4151 _opendb_x(tls, func() *XError { 4152 _err.XiLine = func() int32 { 4153 if _err.Xrc != 0 { 4154 return _err.XiLine 4155 } 4156 return int32(121) 4157 }() 4158 return &_err 4159 }(), &_db, str(378), int32(0)) 4160 } 4161 _execsql_i64_x(tls, func() *XError { 4162 _err.XiLine = func() int32 { 4163 if _err.Xrc != 0 { 4164 return _err.XiLine 4165 } 4166 return int32(123) 4167 }() 4168 return &_err 4169 }(), &_db, unsafe.Pointer(str(5946)), unsafe.Pointer(&_1_i)) 4170 _i1 += 1 4171 if _err.Xrc != 0 { 4172 _i2 += 1 4173 } 4174 _clear_error_x(tls, &_err, int32(6)) 4175 goto _2 4176 _3: 4177 _closedb_x(tls, func() *XError { 4178 _err.XiLine = func() int32 { 4179 if _err.Xrc != 0 { 4180 return _err.XiLine 4181 } 4182 return int32(128) 4183 }() 4184 return &_err 4185 }(), &_db) 4186 _print_and_free_err(tls, &_err) 4187 return bin.Xsqlite3_mprintf(tls, str(5983), _i2, _i1) 4188 } 4189 4190 func _stress2(tls *crt.TLS, _nMs int32) { 4191 var _i int32 4192 var _zDb *int8 4193 var _err XError 4194 var _db XSqlite 4195 var _threads XThreadset 4196 var _aTask [13]TStress2Task 4197 _aTask = [13]TStress2Task{} 4198 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), 0).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4199 v := _stress2_workload1 4200 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4201 }() 4202 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(1)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4203 v := _stress2_workload2 4204 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4205 }() 4206 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(2)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4207 v := _stress2_workload3 4208 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4209 }() 4210 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(3)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4211 v := _stress2_workload4 4212 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4213 }() 4214 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(4)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4215 v := _stress2_workload5 4216 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4217 }() 4218 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(5)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4219 v := _stress2_workload6 4220 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4221 }() 4222 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(6)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4223 v := _stress2_workload7 4224 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4225 }() 4226 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(7)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4227 v := _stress2_workload8 4228 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4229 }() 4230 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(8)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4231 v := _stress2_workload9 4232 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4233 }() 4234 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(9)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4235 v := _stress2_workload10 4236 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4237 }() 4238 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(10)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4239 v := _stress2_workload11 4240 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4241 }() 4242 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(11)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4243 v := _stress2_workload14 4244 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4245 }() 4246 elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(12)).Xx = func() func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) { 4247 v := _stress2_workload17 4248 return *(*func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32))(unsafe.Pointer(&v)) 4249 }() 4250 _zDb = str(378) 4251 _err = XError{} 4252 _db = XSqlite{} 4253 _threads = XThreadset{} 4254 _opendb_x(tls, func() *XError { 4255 _err.XiLine = func() int32 { 4256 if _err.Xrc != 0 { 4257 return _err.XiLine 4258 } 4259 return int32(345) 4260 }() 4261 return &_err 4262 }(), &_db, _zDb, int32(1)) 4263 _sql_script_x(tls, func() *XError { 4264 _err.XiLine = func() int32 { 4265 if _err.Xrc != 0 { 4266 return _err.XiLine 4267 } 4268 return int32(346) 4269 }() 4270 return &_err 4271 }(), &_db, str(6014)) 4272 _closedb_x(tls, func() *XError { 4273 _err.XiLine = func() int32 { 4274 if _err.Xrc != 0 { 4275 return _err.XiLine 4276 } 4277 return int32(350) 4278 }() 4279 return &_err 4280 }(), &_db) 4281 _setstoptime_x(tls, func() *XError { 4282 _err.XiLine = func() int32 { 4283 if _err.Xrc != 0 { 4284 return _err.XiLine 4285 } 4286 return int32(352) 4287 }() 4288 return &_err 4289 }(), _nMs) 4290 bin.Xsqlite3_enable_shared_cache(tls, int32(1)) 4291 _i = int32(0) 4292 _8: 4293 if uint64(_i) >= uint64(13) { 4294 goto _11 4295 } 4296 _stress2_launch_thread_loop(tls, &_err, &_threads, _zDb, func() func(*crt.TLS, *XError, *XSqlite, int32) { 4297 v := elem9((*TStress2Task)(unsafe.Pointer(&_aTask)), uintptr(_i)).Xx 4298 return *(*func(*crt.TLS, *XError, *XSqlite, int32))(unsafe.Pointer(&v)) 4299 }()) 4300 _i += 1 4301 goto _8 4302 _11: 4303 _launch_thread_x(tls, func() *XError { 4304 _err.XiLine = func() int32 { 4305 if _err.Xrc != 0 { 4306 return _err.XiLine 4307 } 4308 return int32(358) 4309 }() 4310 return &_err 4311 }(), &_threads, _stress2_workload19, unsafe.Pointer(_zDb)) 4312 _launch_thread_x(tls, func() *XError { 4313 _err.XiLine = func() int32 { 4314 if _err.Xrc != 0 { 4315 return _err.XiLine 4316 } 4317 return int32(359) 4318 }() 4319 return &_err 4320 }(), &_threads, _stress2_workload19, unsafe.Pointer(_zDb)) 4321 _join_all_threads_x(tls, func() *XError { 4322 _err.XiLine = func() int32 { 4323 if _err.Xrc != 0 { 4324 return _err.XiLine 4325 } 4326 return int32(361) 4327 }() 4328 return &_err 4329 }(), &_threads) 4330 bin.Xsqlite3_enable_shared_cache(tls, int32(0)) 4331 _print_and_free_err(tls, &_err) 4332 _ = _aTask 4333 } 4334 4335 func _stress2_workload1(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4336 var _iTab int32 4337 _iTab = (_i % int32(4)) + int32(1) 4338 _sql_script_printf_x(tls, func() *XError { 4339 _pErr.XiLine = func() int32 { 4340 if _pErr.Xrc != 0 { 4341 return _pErr.XiLine 4342 } 4343 return int32(193) 4344 }() 4345 return _pErr 4346 }(), _pDb, str(6105), _iTab) 4347 } 4348 4349 func _sql_script_printf_x(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _zFormat *int8, args ...interface{}) { 4350 var _1_zSql *int8 4351 var _ap []interface{} 4352 _ap = args 4353 if _pErr.Xrc == int32(0) { 4354 _1_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap) 4355 _pErr.Xrc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_pDb.Xdb), _1_zSql, nil, nil, &_pErr.XzErr) 4356 bin.Xsqlite3_free(tls, unsafe.Pointer(_1_zSql)) 4357 } 4358 _ap = nil 4359 } 4360 4361 func _stress2_workload2(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4362 var _iTab int32 4363 _iTab = (_i % int32(4)) + int32(1) 4364 _sql_script_printf_x(tls, func() *XError { 4365 _pErr.XiLine = func() int32 { 4366 if _pErr.Xrc != 0 { 4367 return _pErr.XiLine 4368 } 4369 return int32(200) 4370 }() 4371 return _pErr 4372 }(), _pDb, str(6158), _iTab) 4373 } 4374 4375 func _stress2_workload3(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4376 _sql_script_x(tls, func() *XError { 4377 _pErr.XiLine = func() int32 { 4378 if _pErr.Xrc != 0 { 4379 return _pErr.XiLine 4380 } 4381 return int32(204) 4382 }() 4383 return _pErr 4384 }(), _pDb, str(6184)) 4385 } 4386 4387 func _stress2_workload4(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4388 _sql_script_x(tls, func() *XError { 4389 _pErr.XiLine = func() int32 { 4390 if _pErr.Xrc != 0 { 4391 return _pErr.XiLine 4392 } 4393 return int32(208) 4394 }() 4395 return _pErr 4396 }(), _pDb, str(6219)) 4397 } 4398 4399 func _stress2_workload5(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4400 _sql_script_x(tls, func() *XError { 4401 _pErr.XiLine = func() int32 { 4402 if _pErr.Xrc != 0 { 4403 return _pErr.XiLine 4404 } 4405 return int32(212) 4406 }() 4407 return _pErr 4408 }(), _pDb, str(6252)) 4409 } 4410 4411 func _stress2_workload6(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4412 _sql_script_x(tls, func() *XError { 4413 _pErr.XiLine = func() int32 { 4414 if _pErr.Xrc != 0 { 4415 return _pErr.XiLine 4416 } 4417 return int32(218) 4418 }() 4419 return _pErr 4420 }(), _pDb, str(6321)) 4421 } 4422 4423 func _stress2_workload7(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4424 _sql_script_printf_x(tls, func() *XError { 4425 _pErr.XiLine = func() int32 { 4426 if _pErr.Xrc != 0 { 4427 return _pErr.XiLine 4428 } 4429 return int32(224) 4430 }() 4431 return _pErr 4432 }(), _pDb, str(6387), _i) 4433 } 4434 4435 func _stress2_workload8(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4436 _sql_script_printf_x(tls, func() *XError { 4437 _pErr.XiLine = func() int32 { 4438 if _pErr.Xrc != 0 { 4439 return _pErr.XiLine 4440 } 4441 return int32(231) 4442 }() 4443 return _pErr 4444 }(), _pDb, str(6469), _i) 4445 } 4446 4447 func _stress2_workload9(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4448 _sql_script_printf_x(tls, func() *XError { 4449 _pErr.XiLine = func() int32 { 4450 if _pErr.Xrc != 0 { 4451 return _pErr.XiLine 4452 } 4453 return int32(239) 4454 }() 4455 return _pErr 4456 }(), _pDb, str(6546), _i) 4457 } 4458 4459 func _stress2_workload10(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4460 _sql_script_printf_x(tls, func() *XError { 4461 _pErr.XiLine = func() int32 { 4462 if _pErr.Xrc != 0 { 4463 return _pErr.XiLine 4464 } 4465 return int32(244) 4466 }() 4467 return _pErr 4468 }(), _pDb, str(6602), _i) 4469 } 4470 4471 func _stress2_workload11(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4472 _sql_script_x(tls, func() *XError { 4473 _pErr.XiLine = func() int32 { 4474 if _pErr.Xrc != 0 { 4475 return _pErr.XiLine 4476 } 4477 return int32(250) 4478 }() 4479 return _pErr 4480 }(), _pDb, str(5639)) 4481 } 4482 4483 func _stress2_workload14(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4484 _sql_script_x(tls, func() *XError { 4485 _pErr.XiLine = func() int32 { 4486 if _pErr.Xrc != 0 { 4487 return _pErr.XiLine 4488 } 4489 return int32(254) 4490 }() 4491 return _pErr 4492 }(), _pDb, str(1143)) 4493 } 4494 4495 func _stress2_workload17(tls *crt.TLS, _pErr *XError, _pDb *XSqlite, _i int32) { 4496 _sql_script_printf_x(tls, func() *XError { 4497 _pErr.XiLine = func() int32 { 4498 if _pErr.Xrc != 0 { 4499 return _pErr.XiLine 4500 } 4501 return int32(258) 4502 }() 4503 return _pErr 4504 }(), _pDb, str(6656), unsafe.Pointer(func() *int8 { 4505 if (_i % int32(2)) != 0 { 4506 return str(6681) 4507 } 4508 return str(6688) 4509 }())) 4510 } 4511 4512 func _stress2_launch_thread_loop(tls *crt.TLS, _pErr *XError, _pThreads *XThreadset, _zDb *int8, _x func(*crt.TLS, *XError, *XSqlite, int32)) { 4513 var _pCtx *XStress2Ctx 4514 _pCtx = (*XStress2Ctx)(bin.Xsqlite3_malloc(tls, int32(16))) 4515 _pCtx.XzDb = _zDb 4516 *(*func(*crt.TLS, *XError, *XSqlite, int32))(unsafe.Pointer(&_pCtx.XxProc)) = _x 4517 _launch_thread_x(tls, func() *XError { 4518 _pErr.XiLine = func() int32 { 4519 if _pErr.Xrc != 0 { 4520 return _pErr.XiLine 4521 } 4522 return int32(316) 4523 }() 4524 return _pErr 4525 }(), _pThreads, _stress2_thread_wrapper, unsafe.Pointer(_pCtx)) 4526 } 4527 4528 func _stress2_thread_wrapper(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 4529 var _i1, _i2, _1_cnt int32 4530 var _err XError 4531 var _db XSqlite 4532 var _pCtx *XStress2Ctx 4533 _pCtx = (*XStress2Ctx)(_pArg) 4534 _err = XError{} 4535 _db = XSqlite{} 4536 _i1 = int32(0) 4537 _i2 = int32(0) 4538 _0: 4539 if _timetostop_x(tls, func() *XError { 4540 _err.XiLine = func() int32 { 4541 if _err.Xrc != 0 { 4542 return _err.XiLine 4543 } 4544 return int32(291) 4545 }() 4546 return &_err 4547 }()) != 0 { 4548 goto _1 4549 } 4550 _opendb_x(tls, func() *XError { 4551 _err.XiLine = func() int32 { 4552 if _err.Xrc != 0 { 4553 return _err.XiLine 4554 } 4555 return int32(293) 4556 }() 4557 return &_err 4558 }(), &_db, _pCtx.XzDb, int32(0)) 4559 _1_cnt = int32(0) 4560 _6: 4561 if _err.Xrc != int32(0) || _1_cnt >= int32(5) { 4562 goto _10 4563 } 4564 func() func(*crt.TLS, *XError, *XSqlite, int32) { 4565 v := _pCtx.XxProc 4566 return *(*func(*crt.TLS, *XError, *XSqlite, int32))(unsafe.Pointer(&v)) 4567 }()(tls, &_err, &_db, _i1) 4568 _i2 += bool2int(_err.Xrc == int32(0)) 4569 _clear_error_x(tls, &_err, int32(6)) 4570 _i1 += 1 4571 _1_cnt += 1 4572 goto _6 4573 _10: 4574 _closedb_x(tls, func() *XError { 4575 _err.XiLine = func() int32 { 4576 if _err.Xrc != 0 { 4577 return _err.XiLine 4578 } 4579 return int32(300) 4580 }() 4581 return &_err 4582 }(), &_db) 4583 goto _0 4584 _1: 4585 _print_and_free_err(tls, &_err) 4586 return bin.Xsqlite3_mprintf(tls, str(6692), _i2, _i1) 4587 } 4588 4589 func _stress2_workload19(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8) { 4590 var _zDb *int8 4591 var _err XError 4592 var _db XSqlite 4593 _err = XError{} 4594 _db = XSqlite{} 4595 _zDb = (*int8)(_pArg) 4596 _0: 4597 if _timetostop_x(tls, func() *XError { 4598 _err.XiLine = func() int32 { 4599 if _err.Xrc != 0 { 4600 return _err.XiLine 4601 } 4602 return int32(267) 4603 }() 4604 return &_err 4605 }()) == 0 { 4606 _opendb_x(tls, func() *XError { 4607 _err.XiLine = func() int32 { 4608 if _err.Xrc != 0 { 4609 return _err.XiLine 4610 } 4611 return int32(268) 4612 }() 4613 return &_err 4614 }(), &_db, _zDb, int32(0)) 4615 _sql_script_x(tls, func() *XError { 4616 _err.XiLine = func() int32 { 4617 if _err.Xrc != 0 { 4618 return _err.XiLine 4619 } 4620 return int32(269) 4621 }() 4622 return &_err 4623 }(), &_db, str(5718)) 4624 _clear_error_x(tls, &_err, int32(6)) 4625 _closedb_x(tls, func() *XError { 4626 _err.XiLine = func() int32 { 4627 if _err.Xrc != 0 { 4628 return _err.XiLine 4629 } 4630 return int32(271) 4631 }() 4632 return &_err 4633 }(), &_db) 4634 goto _0 4635 } 4636 _print_and_free_err(tls, &_err) 4637 return bin.Xsqlite3_mprintf(tls, str(1166)) 4638 } 4639 4640 var _mainĂ00substArgvĂ001 [3]*int8 4641 4642 func init() { 4643 _mainĂ00substArgvĂ001 = [3]*int8{nil, str(6701), nil} 4644 } 4645 4646 // C comment 4647 // /************************** Public Interfaces *****************************/ 4648 // /* 4649 // ** CAPI: Initialize the multiplex VFS shim - sqlite3_multiplex_initialize() 4650 // ** 4651 // ** Use the VFS named zOrigVfsName as the VFS that does the actual work. 4652 // ** Use the default if zOrigVfsName==NULL. 4653 // ** 4654 // ** The multiplex VFS shim is named "multiplex". It will become the default 4655 // ** VFS if makeDefault is non-zero. 4656 // ** 4657 // ** THIS ROUTINE IS NOT THREADSAFE. Call this routine exactly once 4658 // ** during start-up. 4659 // */ 4660 func Xsqlite3_multiplex_initialize(tls *crt.TLS, _zOrigVfsName *int8, _makeDefault int32) (r0 int32) { 4661 var _pOrigVfs *bin.Xsqlite3_vfs 4662 if _gMultiplex.XisInitialized != 0 { 4663 return int32(21) 4664 } 4665 _pOrigVfs = bin.Xsqlite3_vfs_find(tls, _zOrigVfsName) 4666 if _pOrigVfs == nil { 4667 return int32(1) 4668 } 4669 func() { 4670 if _pOrigVfs == &_gMultiplex.XsThisVfs { 4671 crt.X__builtin_fprintf(tls, Xstderr, str(991), unsafe.Pointer(str(6703)), int32(1099), unsafe.Pointer(&_sqlite3_multiplex_initializeĂ00__func__Ă000), unsafe.Pointer(str(6763))) 4672 crt.X__builtin_abort(tls) 4673 } 4674 }() 4675 _gMultiplex.XisInitialized = int32(1) 4676 *(**bin.Xsqlite3_vfs)(unsafe.Pointer(&_gMultiplex.XpOrigVfs)) = _pOrigVfs 4677 _gMultiplex.XsThisVfs = *_pOrigVfs 4678 { 4679 p := &(_gMultiplex.XsThisVfs.XszOsFile) 4680 *p = int32(uint64(*p) + uint64(16)) 4681 } 4682 _gMultiplex.XsThisVfs.XzName = str(6794) 4683 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, *bin.Xsqlite3_file, int32, *int32) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxOpen))) = _multiplexOpen 4684 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxDelete))) = _multiplexDelete 4685 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxAccess))) = _multiplexAccess 4686 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int8) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxFullPathname))) = _multiplexFullPathname 4687 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8) unsafe.Pointer)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxDlOpen))) = _multiplexDlOpen 4688 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8))(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxDlError))) = _multiplexDlError 4689 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, unsafe.Pointer, *int8) func(*crt.TLS))(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxDlSym))) = _multiplexDlSym 4690 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, unsafe.Pointer))(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxDlClose))) = _multiplexDlClose 4691 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxRandomness))) = _multiplexRandomness 4692 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxSleep))) = _multiplexSleep 4693 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *float64) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxCurrentTime))) = _multiplexCurrentTime 4694 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxGetLastError))) = _multiplexGetLastError 4695 *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32)(unsafe.Pointer(&(_gMultiplex.XsThisVfs.XxCurrentTimeInt64))) = _multiplexCurrentTimeInt64 4696 _gMultiplex.XsIoMethodsV1.XiVersion = int32(1) 4697 *(*func(*crt.TLS, *bin.Xsqlite3_file) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxClose))) = _multiplexClose 4698 *(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxRead))) = _multiplexRead 4699 *(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxWrite))) = _multiplexWrite 4700 *(*func(*crt.TLS, *bin.Xsqlite3_file, int64) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxTruncate))) = _multiplexTruncate 4701 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxSync))) = _multiplexSync 4702 *(*func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxFileSize))) = _multiplexFileSize 4703 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxLock))) = _multiplexLock 4704 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxUnlock))) = _multiplexUnlock 4705 *(*func(*crt.TLS, *bin.Xsqlite3_file, *int32) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxCheckReservedLock))) = _multiplexCheckReservedLock 4706 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32, unsafe.Pointer) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxFileControl))) = _multiplexFileControl 4707 *(*func(*crt.TLS, *bin.Xsqlite3_file) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxSectorSize))) = _multiplexSectorSize 4708 *(*func(*crt.TLS, *bin.Xsqlite3_file) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV1.XxDeviceCharacteristics))) = _multiplexDeviceCharacteristics 4709 _gMultiplex.XsIoMethodsV2 = _gMultiplex.XsIoMethodsV1 4710 _gMultiplex.XsIoMethodsV2.XiVersion = int32(2) 4711 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32, int32, int32, *unsafe.Pointer) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV2.XxShmMap))) = _multiplexShmMap 4712 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32, int32, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV2.XxShmLock))) = _multiplexShmLock 4713 *(*func(*crt.TLS, *bin.Xsqlite3_file))(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV2.XxShmBarrier))) = _multiplexShmBarrier 4714 *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&(_gMultiplex.XsIoMethodsV2.XxShmUnmap))) = _multiplexShmUnmap 4715 bin.Xsqlite3_vfs_register(tls, &_gMultiplex.XsThisVfs, _makeDefault) 4716 bin.Xsqlite3_auto_extension(tls, func() func(*crt.TLS) { v := _multiplexFuncInit; return *(*func(*crt.TLS))(unsafe.Pointer(&v)) }()) 4717 return int32(0) 4718 } 4719 4720 // C comment 4721 // /************************* Global Variables **********************************/ 4722 // /* 4723 // ** All global variables used by this file are containing within the following 4724 // ** gMultiplex structure. 4725 // */ 4726 var _gMultiplex t10 4727 4728 var _sqlite3_multiplex_initializeĂ00__func__Ă000 [29]int8 4729 4730 func init() { 4731 crt.Xstrncpy(nil, &_sqlite3_multiplex_initializeĂ00__func__Ă000[0], str(6804), 29) 4732 } 4733 4734 // C comment 4735 // /* 4736 // ** This is the xOpen method used for the "multiplex" VFS. 4737 // ** 4738 // ** Most of the work is done by the underlying original VFS. This method 4739 // ** simply links the new file into the appropriate multiplex group if it is a 4740 // ** file that needs to be tracked. 4741 // */ 4742 func _multiplexOpen(tls *crt.TLS, _pVfs *bin.Xsqlite3_vfs, _zName *int8, _pConn *bin.Xsqlite3_file, _flags int32, _pOutFlags *int32) (r0 int32) { 4743 var _rc, _nName, _sz, _9_bExists, _12_iChunk int32 4744 var _8_sz64 int64 4745 var _zToFree, _3_zUri, _4_p *int8 4746 var _pSubOpen *bin.Xsqlite3_file 4747 var _pOrigVfs *bin.Xsqlite3_vfs 4748 var _pGroup *XmultiplexGroup 4749 var _pMultiplexOpen *XmultiplexConn 4750 _rc = int32(0) 4751 _pGroup = nil 4752 _pSubOpen = nil 4753 _pOrigVfs = (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs) 4754 _nName = int32(0) 4755 _sz = int32(0) 4756 _zToFree = nil 4757 4758 crt.Xmemset(tls, unsafe.Pointer(_pConn), int32(0), uint64(_pVfs.XszOsFile)) 4759 func() { 4760 if _zName == nil && (_flags&int32(8)) == 0 { 4761 crt.X__builtin_fprintf(tls, Xstderr, str(991), unsafe.Pointer(str(6703)), int32(484), unsafe.Pointer(&_multiplexOpenĂ00__func__Ă000), unsafe.Pointer(str(6833))) 4762 crt.X__builtin_abort(tls) 4763 } 4764 }() 4765 _pMultiplexOpen = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 4766 if _rc != int32(0) { 4767 goto _3 4768 } 4769 _nName = func() int32 { 4770 if _zName != nil { 4771 return _multiplexStrlen30(tls, _zName) 4772 } 4773 return int32(0) 4774 }() 4775 _sz = int32((uint64(40) + uint64(_nName)) + uint64(1)) 4776 _pGroup = (*XmultiplexGroup)(bin.Xsqlite3_malloc64(tls, uint64(_sz))) 4777 if _pGroup == nil { 4778 _rc = int32(7) 4779 } 4780 _3: 4781 if _rc != int32(0) { 4782 goto _7 4783 } 4784 _3_zUri = func() *int8 { 4785 if (_flags & int32(64)) != 0 { 4786 return _zName 4787 } 4788 return nil 4789 }() 4790 crt.Xmemset(tls, unsafe.Pointer(_pGroup), int32(0), uint64(_sz)) 4791 *(**XmultiplexGroup)(unsafe.Pointer(&_pMultiplexOpen.XpGroup)) = _pGroup 4792 _pGroup.XbEnabled = uint8(255) 4793 _pGroup.XbTruncate = uint8(bin.Xsqlite3_uri_boolean(tls, _3_zUri, str(6878), bool2int((_flags&int32(256)) == int32(0)))) 4794 _pGroup.XszChunk = uint32(int32(bin.Xsqlite3_uri_int64(tls, _3_zUri, str(6887), int64(2147418112)))) 4795 _pGroup.XszChunk = (_pGroup.XszChunk + uint32(65535)) & uint32(4294901760) 4796 if _zName != nil { 4797 _4_p = (*int8)(unsafe.Pointer(elem11(_pGroup, uintptr(1)))) 4798 _pGroup.XzName = _4_p 4799 crt.Xmemcpy(tls, unsafe.Pointer(_pGroup.XzName), unsafe.Pointer(_zName), uint64(_nName+int32(1))) 4800 _pGroup.XnName = _nName 4801 } 4802 if _pGroup.XbEnabled == 0 { 4803 goto _11 4804 } 4805 _12: 4806 if (uint32(bin.Xsqlite3PendingByte()) % _pGroup.XszChunk) >= (_pGroup.XszChunk - uint32(65536)) { 4807 _pGroup.XszChunk += uint32(65536) 4808 goto _12 4809 } 4810 _11: 4811 _pGroup.Xflags = _flags 4812 _rc = _multiplexSubFilename(tls, _pGroup, int32(1)) 4813 if _rc != int32(0) { 4814 goto _14 4815 } 4816 _pSubOpen = _multiplexSubOpen(tls, _pGroup, int32(0), &_rc, _pOutFlags, int32(0)) 4817 if (_pSubOpen == nil) && (_rc == int32(0)) { 4818 _rc = int32(14) 4819 } 4820 _14: 4821 if _rc != int32(0) { 4822 goto _17 4823 } 4824 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32 { 4825 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxFileSize 4826 return *(*func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32)(unsafe.Pointer(&v)) 4827 }()(tls, _pSubOpen, &_8_sz64) 4828 if _rc != int32(0) || _zName == nil { 4829 goto _19 4830 } 4831 if (_flags & int32(16384)) != 0 { 4832 _pGroup.XbEnabled = 0 4833 goto _29 4834 } 4835 if _8_sz64 != (0) { 4836 goto _22 4837 } 4838 if (_flags & int32(2048)) == 0 { 4839 goto _23 4840 } 4841 _12_iChunk = int32(1) 4842 _24: 4843 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32 { 4844 v := _pOrigVfs.XxAccess 4845 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&v)) 4846 }()(tls, _pOrigVfs, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_12_iChunk)).Xz, int32(0), &_9_bExists) 4847 if _rc != int32(0) || _9_bExists == 0 { 4848 goto _26 4849 } 4850 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32 { 4851 v := _pOrigVfs.XxDelete 4852 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32)(unsafe.Pointer(&v)) 4853 }()(tls, _pOrigVfs, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_12_iChunk)).Xz, int32(0)) 4854 if _rc == int32(0) { 4855 _rc = _multiplexSubFilename(tls, _pGroup, preInc7(&_12_iChunk, 1)) 4856 } 4857 _26: 4858 if (_rc == int32(0)) && _9_bExists != 0 { 4859 goto _24 4860 } 4861 _23: 4862 goto _29 4863 _22: 4864 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32 { 4865 v := _pOrigVfs.XxAccess 4866 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&v)) 4867 }()(tls, _pOrigVfs, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(1)).Xz, int32(0), &_9_bExists) 4868 _9_bExists = bool2int(_multiplexSubSize(tls, _pGroup, int32(1), &_rc) > (0)) 4869 if ((((_rc == int32(0)) && _9_bExists != 0) && (_8_sz64 == (_8_sz64 & int64(4294901760)))) && (_8_sz64 > (0))) && (_8_sz64 != int64(_pGroup.XszChunk)) { 4870 _pGroup.XszChunk = uint32(int32(_8_sz64)) 4871 goto _38 4872 } 4873 if ((_rc == int32(0)) && (_9_bExists == 0)) && (_8_sz64 > int64(_pGroup.XszChunk)) { 4874 _pGroup.XbEnabled = 0 4875 } 4876 _38: 4877 _29: 4878 _19: 4879 _17: 4880 if _rc != int32(0) { 4881 goto _39 4882 } 4883 if ((*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XiVersion) == int32(1) { 4884 *(**bin.Xsqlite3_io_methods)(unsafe.Pointer(&(_pMultiplexOpen.Xbase.XpMethods))) = &_gMultiplex.XsIoMethodsV1 4885 goto _41 4886 } 4887 *(**bin.Xsqlite3_io_methods)(unsafe.Pointer(&(_pMultiplexOpen.Xbase.XpMethods))) = &_gMultiplex.XsIoMethodsV2 4888 _41: 4889 goto _42 4890 _39: 4891 _multiplexFreeComponents(tls, _pGroup) 4892 bin.Xsqlite3_free(tls, unsafe.Pointer(_pGroup)) 4893 _42: 4894 _7: 4895 bin.Xsqlite3_free(tls, unsafe.Pointer(_zToFree)) 4896 return _rc 4897 } 4898 4899 var _multiplexOpenĂ00__func__Ă000 [14]int8 4900 4901 func init() { 4902 crt.Xstrncpy(nil, &_multiplexOpenĂ00__func__Ă000[0], str(6897), 14) 4903 } 4904 4905 // C comment 4906 // /************************* Utility Routines *********************************/ 4907 // /* 4908 // ** Compute a string length that is limited to what can be stored in 4909 // ** lower 30 bits of a 32-bit signed integer. 4910 // ** 4911 // ** The value returned will never be negative. Nor will it ever be greater 4912 // ** than the actual length of the string. For very long strings (greater 4913 // ** than 1GiB) the value returned might be less than the true string length. 4914 // */ 4915 func _multiplexStrlen30(tls *crt.TLS, _z *int8) (r0 int32) { 4916 var _z2 *int8 4917 _z2 = _z 4918 if _z == nil { 4919 return int32(0) 4920 } 4921 _0: 4922 if (*_z2) != 0 { 4923 *(*uintptr)(unsafe.Pointer(&_z2)) += uintptr(1) 4924 goto _0 4925 } 4926 return int32(1073741823) & int32(int64(uintptr(unsafe.Pointer(_z2))-uintptr(unsafe.Pointer(_z)))) 4927 } 4928 4929 // C comment 4930 // /* Compute the filename for the iChunk-th chunk 4931 // */ 4932 func _multiplexSubFilename(tls *crt.TLS, _pGroup *XmultiplexGroup, _iChunk int32) (r0 int32) { 4933 var _3_n int32 4934 var _3_z *int8 4935 var _1_p *TmultiplexReal 4936 if _iChunk < _pGroup.XnReal { 4937 goto _0 4938 } 4939 _1_p = (*TmultiplexReal)(bin.Xsqlite3_realloc64(tls, _pGroup.XaReal, uint64(_iChunk+int32(1))*uint64(16))) 4940 if _1_p == nil { 4941 return int32(7) 4942 } 4943 crt.Xmemset(tls, unsafe.Pointer(elem12(_1_p, uintptr(_pGroup.XnReal))), int32(0), uint64(16)*uint64((_iChunk+int32(1))-_pGroup.XnReal)) 4944 *(**TmultiplexReal)(unsafe.Pointer(&_pGroup.XaReal)) = _1_p 4945 _pGroup.XnReal = _iChunk + int32(1) 4946 _0: 4947 if _pGroup.XzName == nil || (elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz) != nil { 4948 goto _3 4949 } 4950 _3_n = _pGroup.XnName 4951 elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz = store2(&_3_z, (*int8)(bin.Xsqlite3_malloc64(tls, uint64(_3_n+int32(5))))) 4952 if _3_z == nil { 4953 return int32(7) 4954 } 4955 _multiplexFilename(tls, _pGroup.XzName, _pGroup.XnName, _pGroup.Xflags, _iChunk, _3_z) 4956 _3: 4957 return int32(0) 4958 } 4959 4960 // C comment 4961 // /* 4962 // ** Generate the file-name for chunk iChunk of the group with base name 4963 // ** zBase. The file-name is written to buffer zOut before returning. Buffer 4964 // ** zOut must be allocated by the caller so that it is at least (nBase+5) 4965 // ** bytes in size, where nBase is the length of zBase, not including the 4966 // ** nul-terminator. 4967 // ** 4968 // ** If iChunk is 0 (or 400 - the number for the first journal file chunk), 4969 // ** the output is a copy of the input string. Otherwise, if 4970 // ** SQLITE_ENABLE_8_3_NAMES is not defined or the input buffer does not contain 4971 // ** a "." character, then the output is a copy of the input string with the 4972 // ** three-digit zero-padded decimal representation if iChunk appended to it. 4973 // ** For example: 4974 // ** 4975 // ** zBase="test.db", iChunk=4 -> zOut="test.db004" 4976 // ** 4977 // ** Or, if SQLITE_ENABLE_8_3_NAMES is defined and the input buffer contains 4978 // ** a "." character, then everything after the "." is replaced by the 4979 // ** three-digit representation of iChunk. 4980 // ** 4981 // ** zBase="test.db", iChunk=4 -> zOut="test.004" 4982 // ** 4983 // ** The output buffer string is terminated by 2 0x00 bytes. This makes it safe 4984 // ** to pass to sqlite3_uri_parameter() and similar. 4985 // */ 4986 func _multiplexFilename(tls *crt.TLS, _zBase *int8, _nBase int32, _flags int32, _iChunk int32, _zOut *int8) { 4987 var _n int32 4988 _n = _nBase 4989 crt.Xmemcpy(tls, unsafe.Pointer(_zOut), unsafe.Pointer(_zBase), uint64(_n+int32(1))) 4990 if (_iChunk != int32(0)) && (_iChunk <= int32(299)) { 4991 bin.Xsqlite3_snprintf(tls, int32(4), elem2(_zOut, uintptr(_n)), str(6911), _iChunk) 4992 _n += int32(3) 4993 } 4994 func() { 4995 if int32(*elem2(_zOut, uintptr(_n))) != int32(0) { 4996 crt.X__builtin_fprintf(tls, Xstderr, str(991), unsafe.Pointer(str(6703)), int32(250), unsafe.Pointer(&_multiplexFilenameĂ00__func__Ă000), unsafe.Pointer(str(6916))) 4997 crt.X__builtin_abort(tls) 4998 } 4999 }() 5000 *elem2(_zOut, uintptr(_n+int32(1))) = 0 5001 } 5002 5003 var _multiplexFilenameĂ00__func__Ă000 [18]int8 5004 5005 func init() { 5006 crt.Xstrncpy(nil, &_multiplexFilenameĂ00__func__Ă000[0], str(6930), 18) 5007 } 5008 5009 // C comment 5010 // /* Translate an sqlite3_file* that is really a multiplexGroup* into 5011 // ** the sqlite3_file* for the underlying original VFS. 5012 // ** 5013 // ** For chunk 0, the pGroup->flags determines whether or not a new file 5014 // ** is created if it does not already exist. For chunks 1 and higher, the 5015 // ** file is created only if createFlag is 1. 5016 // */ 5017 func _multiplexSubOpen(tls *crt.TLS, _pGroup *XmultiplexGroup, _iChunk int32, _rc *int32, _pOutFlags *int32, _createFlag int32) (r0 *bin.Xsqlite3_file) { 5018 var _1_flags, _1_bExists int32 5019 var _pSubOpen *bin.Xsqlite3_file 5020 var _pOrigVfs *bin.Xsqlite3_vfs 5021 _pSubOpen = nil 5022 _pOrigVfs = (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs) 5023 *_rc = _multiplexSubFilename(tls, _pGroup, _iChunk) 5024 if (*_rc) != int32(0) || store13(&_pSubOpen, (*bin.Xsqlite3_file)(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xp)) != nil { 5025 goto _1 5026 } 5027 _1_flags = _pGroup.Xflags 5028 if _createFlag != 0 { 5029 _1_flags |= int32(4) 5030 goto _7 5031 } 5032 if _iChunk == int32(0) { 5033 goto _7 5034 } 5035 if (elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz) == nil { 5036 return nil 5037 } 5038 *_rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32 { 5039 v := _pOrigVfs.XxAccess 5040 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&v)) 5041 }()(tls, _pOrigVfs, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz, int32(0), &_1_bExists) 5042 if (*_rc) == 0 && _1_bExists != 0 { 5043 goto _9 5044 } 5045 if (*_rc) != 0 { 5046 bin.Xsqlite3_log(tls, *_rc, str(6948), unsafe.Pointer(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz)) 5047 } 5048 return nil 5049 5050 _9: 5051 _1_flags &= int32(-5) 5052 _7: 5053 _pSubOpen = (*bin.Xsqlite3_file)(bin.Xsqlite3_malloc64(tls, uint64(_pOrigVfs.XszOsFile))) 5054 if _pSubOpen == nil { 5055 *_rc = int32(3082) 5056 return nil 5057 } 5058 *(**bin.Xsqlite3_file)(unsafe.Pointer(&(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xp))) = _pSubOpen 5059 *_rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, *bin.Xsqlite3_file, int32, *int32) int32 { 5060 v := _pOrigVfs.XxOpen 5061 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, *bin.Xsqlite3_file, int32, *int32) int32)(unsafe.Pointer(&v)) 5062 }()(tls, _pOrigVfs, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz, _pSubOpen, _1_flags, _pOutFlags) 5063 if (*_rc) != int32(0) { 5064 bin.Xsqlite3_log(tls, *_rc, str(6982), unsafe.Pointer(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz)) 5065 bin.Xsqlite3_free(tls, unsafe.Pointer(_pSubOpen)) 5066 *(**bin.Xsqlite3_file)(unsafe.Pointer(&(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xp))) = nil 5067 return nil 5068 } 5069 _1: 5070 return _pSubOpen 5071 } 5072 5073 // C comment 5074 // /* 5075 // ** Return the size, in bytes, of chunk number iChunk. If that chunk 5076 // ** does not exist, then return 0. This function does not distingish between 5077 // ** non-existant files and zero-length files. 5078 // */ 5079 func _multiplexSubSize(tls *crt.TLS, _pGroup *XmultiplexGroup, _iChunk int32, _rc *int32) (r0 int64) { 5080 var _sz int64 5081 var _pSub *bin.Xsqlite3_file 5082 _sz = int64(0) 5083 if (*_rc) != 0 { 5084 return 0 5085 } 5086 _pSub = _multiplexSubOpen(tls, _pGroup, _iChunk, _rc, nil, int32(0)) 5087 if _pSub == nil { 5088 return 0 5089 } 5090 *_rc = func() func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32 { 5091 v := (*bin.Xsqlite3_io_methods)(_pSub.XpMethods).XxFileSize 5092 return *(*func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32)(unsafe.Pointer(&v)) 5093 }()(tls, _pSub, &_sz) 5094 return _sz 5095 } 5096 5097 // C comment 5098 // /* 5099 // ** Deallocate memory held by a multiplexGroup 5100 // */ 5101 func _multiplexFreeComponents(tls *crt.TLS, _pGroup *XmultiplexGroup) { 5102 var _i int32 5103 _i = int32(0) 5104 _0: 5105 if _i >= _pGroup.XnReal { 5106 goto _3 5107 } 5108 _multiplexSubClose(tls, _pGroup, _i, nil) 5109 _i += 1 5110 goto _0 5111 _3: 5112 bin.Xsqlite3_free(tls, _pGroup.XaReal) 5113 *(**TmultiplexReal)(unsafe.Pointer(&_pGroup.XaReal)) = nil 5114 _pGroup.XnReal = int32(0) 5115 } 5116 5117 // C comment 5118 // /* 5119 // ** Close a single sub-file in the connection group. 5120 // */ 5121 func _multiplexSubClose(tls *crt.TLS, _pGroup *XmultiplexGroup, _iChunk int32, _pOrigVfs *bin.Xsqlite3_vfs) { 5122 var _pSubOpen *bin.Xsqlite3_file 5123 _pSubOpen = (*bin.Xsqlite3_file)(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xp) 5124 if _pSubOpen == nil { 5125 goto _0 5126 } 5127 func() func(*crt.TLS, *bin.Xsqlite3_file) int32 { 5128 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxClose 5129 return *(*func(*crt.TLS, *bin.Xsqlite3_file) int32)(unsafe.Pointer(&v)) 5130 }()(tls, _pSubOpen) 5131 if (_pOrigVfs != nil) && ((elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz) != nil) { 5132 func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32 { 5133 v := _pOrigVfs.XxDelete 5134 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32)(unsafe.Pointer(&v)) 5135 }()(tls, _pOrigVfs, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz, int32(0)) 5136 } 5137 bin.Xsqlite3_free(tls, elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xp) 5138 _0: 5139 bin.Xsqlite3_free(tls, unsafe.Pointer(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk)).Xz)) 5140 crt.Xmemset(tls, unsafe.Pointer(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_iChunk))), int32(0), uint64(16)) 5141 } 5142 5143 // C comment 5144 // /* 5145 // ** This is the xDelete method used for the "multiplex" VFS. 5146 // ** It attempts to delete the filename specified. 5147 // */ 5148 func _multiplexDelete(tls *crt.TLS, _pVfs *bin.Xsqlite3_vfs, _zName *int8, _syncDir int32) (r0 int32) { 5149 var _rc, _1_nName, _3_iChunk, _3_bExists int32 5150 var _1_z *int8 5151 var _pOrigVfs *bin.Xsqlite3_vfs 5152 _pOrigVfs = (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs) 5153 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32 { 5154 v := _pOrigVfs.XxDelete 5155 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32)(unsafe.Pointer(&v)) 5156 }()(tls, _pOrigVfs, _zName, _syncDir) 5157 if _rc != int32(0) { 5158 goto _0 5159 } 5160 _1_nName = int32(crt.Xstrlen(tls, _zName)) 5161 _1_z = (*int8)(bin.Xsqlite3_malloc64(tls, uint64(_1_nName+int32(5)))) 5162 if _1_z == nil { 5163 _rc = int32(3082) 5164 goto _2 5165 } 5166 _3_iChunk = int32(0) 5167 _3: 5168 _multiplexFilename(tls, _zName, _1_nName, int32(2048), preInc7(&_3_iChunk, 1), _1_z) 5169 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32 { 5170 v := _pOrigVfs.XxAccess 5171 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&v)) 5172 }()(tls, _pOrigVfs, _1_z, int32(0), &_3_bExists) 5173 if (_rc == int32(0)) && _3_bExists != 0 { 5174 goto _3 5175 } 5176 _5: 5177 if (_rc == int32(0)) && (_3_iChunk > int32(1)) { 5178 _multiplexFilename(tls, _zName, _1_nName, int32(2048), preInc7(&_3_iChunk, -1), _1_z) 5179 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32 { 5180 v := _pOrigVfs.XxDelete 5181 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32)(unsafe.Pointer(&v)) 5182 }()(tls, _pOrigVfs, _1_z, _syncDir) 5183 goto _5 5184 } 5185 if _rc != int32(0) { 5186 goto _8 5187 } 5188 _3_iChunk = int32(0) 5189 _9: 5190 _multiplexFilename(tls, _zName, _1_nName, int32(524288), preInc7(&_3_iChunk, 1), _1_z) 5191 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32 { 5192 v := _pOrigVfs.XxAccess 5193 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&v)) 5194 }()(tls, _pOrigVfs, _1_z, int32(0), &_3_bExists) 5195 if (_rc == int32(0)) && _3_bExists != 0 { 5196 goto _9 5197 } 5198 _11: 5199 if (_rc == int32(0)) && (_3_iChunk > int32(1)) { 5200 _multiplexFilename(tls, _zName, _1_nName, int32(524288), preInc7(&_3_iChunk, -1), _1_z) 5201 _rc = func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32 { 5202 v := _pOrigVfs.XxDelete 5203 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32) int32)(unsafe.Pointer(&v)) 5204 }()(tls, _pOrigVfs, _1_z, _syncDir) 5205 goto _11 5206 } 5207 _8: 5208 _2: 5209 bin.Xsqlite3_free(tls, unsafe.Pointer(_1_z)) 5210 _0: 5211 return _rc 5212 } 5213 5214 func _multiplexAccess(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b *int8, _c int32, _d *int32) (r0 int32) { 5215 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32 { 5216 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxAccess 5217 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int32) int32)(unsafe.Pointer(&v)) 5218 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b, _c, _d) 5219 } 5220 5221 func _multiplexFullPathname(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b *int8, _c int32, _d *int8) (r0 int32) { 5222 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int8) int32 { 5223 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxFullPathname 5224 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8, int32, *int8) int32)(unsafe.Pointer(&v)) 5225 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b, _c, _d) 5226 } 5227 5228 func _multiplexDlOpen(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b *int8) (r0 unsafe.Pointer) { 5229 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int8) unsafe.Pointer { 5230 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxDlOpen 5231 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int8) unsafe.Pointer)(unsafe.Pointer(&v)) 5232 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b) 5233 } 5234 5235 func _multiplexDlError(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b int32, _c *int8) { 5236 func() func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) { 5237 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxDlError 5238 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8))(unsafe.Pointer(&v)) 5239 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b, _c) 5240 } 5241 5242 func _multiplexDlSym(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b unsafe.Pointer, _c *int8) (r0 func(*crt.TLS)) { 5243 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, unsafe.Pointer, *int8) func(*crt.TLS) { 5244 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxDlSym 5245 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, unsafe.Pointer, *int8) func(*crt.TLS))(unsafe.Pointer(&v)) 5246 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b, _c) 5247 } 5248 5249 func _multiplexDlClose(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b unsafe.Pointer) { 5250 func() func(*crt.TLS, *bin.Xsqlite3_vfs, unsafe.Pointer) { 5251 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxDlClose 5252 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, unsafe.Pointer))(unsafe.Pointer(&v)) 5253 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b) 5254 } 5255 5256 func _multiplexRandomness(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b int32, _c *int8) (r0 int32) { 5257 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) int32 { 5258 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxRandomness 5259 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) int32)(unsafe.Pointer(&v)) 5260 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b, _c) 5261 } 5262 5263 func _multiplexSleep(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b int32) (r0 int32) { 5264 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, int32) int32 { 5265 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxSleep 5266 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32) int32)(unsafe.Pointer(&v)) 5267 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b) 5268 } 5269 5270 func _multiplexCurrentTime(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b *float64) (r0 int32) { 5271 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, *float64) int32 { 5272 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxCurrentTime 5273 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *float64) int32)(unsafe.Pointer(&v)) 5274 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b) 5275 } 5276 5277 func _multiplexGetLastError(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b int32, _c *int8) (r0 int32) { 5278 if ((*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxGetLastError) != nil { 5279 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) int32 { 5280 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxGetLastError 5281 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, int32, *int8) int32)(unsafe.Pointer(&v)) 5282 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b, _c) 5283 } 5284 return int32(0) 5285 } 5286 5287 func _multiplexCurrentTimeInt64(tls *crt.TLS, _a *bin.Xsqlite3_vfs, _b *int64) (r0 int32) { 5288 return func() func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32 { 5289 v := (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs).XxCurrentTimeInt64 5290 return *(*func(*crt.TLS, *bin.Xsqlite3_vfs, *int64) int32)(unsafe.Pointer(&v)) 5291 }()(tls, (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs), _b) 5292 } 5293 5294 // C comment 5295 // /* xClose requests get passed through to the original VFS. 5296 // ** We loop over all open chunk handles and close them. 5297 // ** The group structure for this file is unlinked from 5298 // ** our list of groups and freed. 5299 // */ 5300 func _multiplexClose(tls *crt.TLS, _pConn *bin.Xsqlite3_file) (r0 int32) { 5301 var _rc int32 5302 var _pGroup *XmultiplexGroup 5303 var _p *XmultiplexConn 5304 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5305 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5306 _rc = int32(0) 5307 _multiplexFreeComponents(tls, _pGroup) 5308 bin.Xsqlite3_free(tls, unsafe.Pointer(_pGroup)) 5309 return _rc 5310 } 5311 5312 // C comment 5313 // /* Pass xRead requests thru to the original VFS after 5314 // ** determining the correct chunk to operate on. 5315 // ** Break up reads across chunk boundaries. 5316 // */ 5317 func _multiplexRead(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _pBuf unsafe.Pointer, _iAmt int32, _iOfst int64) (r0 int32) { 5318 var _rc, _5_i, _6_extra int32 5319 var _1_pSubOpen, _5_pSubOpen *bin.Xsqlite3_file 5320 var _pGroup *XmultiplexGroup 5321 var _p *XmultiplexConn 5322 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5323 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5324 _rc = int32(0) 5325 if _pGroup.XbEnabled != 0 { 5326 goto _0 5327 } 5328 _1_pSubOpen = _multiplexSubOpen(tls, _pGroup, int32(0), &_rc, nil, int32(0)) 5329 if _1_pSubOpen == nil { 5330 _rc = int32(266) 5331 goto _2 5332 } 5333 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32 { 5334 v := (*bin.Xsqlite3_io_methods)(_1_pSubOpen.XpMethods).XxRead 5335 return *(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&v)) 5336 }()(tls, _1_pSubOpen, _pBuf, _iAmt, _iOfst) 5337 _2: 5338 goto _3 5339 _0: 5340 _4: 5341 if _iAmt <= int32(0) { 5342 goto _5 5343 } 5344 _5_i = int32(_iOfst / int64(_pGroup.XszChunk)) 5345 _5_pSubOpen = _multiplexSubOpen(tls, _pGroup, _5_i, &_rc, nil, int32(1)) 5346 if _5_pSubOpen == nil { 5347 goto _6 5348 } 5349 _6_extra = int32(uint32(int32(_iOfst%int64(_pGroup.XszChunk))+_iAmt) - _pGroup.XszChunk) 5350 if _6_extra < int32(0) { 5351 _6_extra = int32(0) 5352 } 5353 _iAmt -= _6_extra 5354 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32 { 5355 v := (*bin.Xsqlite3_io_methods)(_5_pSubOpen.XpMethods).XxRead 5356 return *(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&v)) 5357 }()(tls, _5_pSubOpen, _pBuf, _iAmt, _iOfst%int64(_pGroup.XszChunk)) 5358 if _rc != int32(0) { 5359 goto _5 5360 } 5361 _pBuf = unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_pBuf) + uintptr(_iAmt)))) 5362 _iOfst += int64(_iAmt) 5363 _iAmt = _6_extra 5364 goto _9 5365 _6: 5366 _rc = int32(266) 5367 goto _5 5368 _9: 5369 goto _4 5370 _5: 5371 _3: 5372 return _rc 5373 } 5374 5375 // C comment 5376 // /* Pass xWrite requests thru to the original VFS after 5377 // ** determining the correct chunk to operate on. 5378 // ** Break up writes across chunk boundaries. 5379 // */ 5380 func _multiplexWrite(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _pBuf unsafe.Pointer, _iAmt int32, _iOfst int64) (r0 int32) { 5381 var _rc, _5_i, _6_extra int32 5382 var _1_pSubOpen, _5_pSubOpen *bin.Xsqlite3_file 5383 var _pGroup *XmultiplexGroup 5384 var _p *XmultiplexConn 5385 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5386 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5387 _rc = int32(0) 5388 if _pGroup.XbEnabled != 0 { 5389 goto _0 5390 } 5391 _1_pSubOpen = _multiplexSubOpen(tls, _pGroup, int32(0), &_rc, nil, int32(0)) 5392 if _1_pSubOpen == nil { 5393 _rc = int32(778) 5394 goto _2 5395 } 5396 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32 { 5397 v := (*bin.Xsqlite3_io_methods)(_1_pSubOpen.XpMethods).XxWrite 5398 return *(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&v)) 5399 }()(tls, _1_pSubOpen, _pBuf, _iAmt, _iOfst) 5400 _2: 5401 goto _3 5402 _0: 5403 _4: 5404 if _rc != int32(0) || _iAmt <= int32(0) { 5405 goto _5 5406 } 5407 _5_i = int32(_iOfst / int64(_pGroup.XszChunk)) 5408 _5_pSubOpen = _multiplexSubOpen(tls, _pGroup, _5_i, &_rc, nil, int32(1)) 5409 if _5_pSubOpen == nil { 5410 goto _7 5411 } 5412 _6_extra = int32(uint32(int32(_iOfst%int64(_pGroup.XszChunk))+_iAmt) - _pGroup.XszChunk) 5413 if _6_extra < int32(0) { 5414 _6_extra = int32(0) 5415 } 5416 _iAmt -= _6_extra 5417 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32 { 5418 v := (*bin.Xsqlite3_io_methods)(_5_pSubOpen.XpMethods).XxWrite 5419 return *(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&v)) 5420 }()(tls, _5_pSubOpen, _pBuf, _iAmt, _iOfst%int64(_pGroup.XszChunk)) 5421 _pBuf = unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_pBuf) + uintptr(_iAmt)))) 5422 _iOfst += int64(_iAmt) 5423 _iAmt = _6_extra 5424 _7: 5425 goto _4 5426 _5: 5427 _3: 5428 return _rc 5429 } 5430 5431 // C comment 5432 // /* Pass xTruncate requests thru to the original VFS after 5433 // ** determining the correct chunk to operate on. Delete any 5434 // ** chunks above the truncate mark. 5435 // */ 5436 func _multiplexTruncate(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _size int64) (r0 int32) { 5437 var _rc, _4_i, _4_iBaseGroup int32 5438 var _1_pSubOpen, _4_pSubOpen *bin.Xsqlite3_file 5439 var _4_pOrigVfs *bin.Xsqlite3_vfs 5440 var _pGroup *XmultiplexGroup 5441 var _p *XmultiplexConn 5442 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5443 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5444 _rc = int32(0) 5445 if _pGroup.XbEnabled != 0 { 5446 goto _0 5447 } 5448 _1_pSubOpen = _multiplexSubOpen(tls, _pGroup, int32(0), &_rc, nil, int32(0)) 5449 if _1_pSubOpen == nil { 5450 _rc = int32(1546) 5451 goto _2 5452 } 5453 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, int64) int32 { 5454 v := (*bin.Xsqlite3_io_methods)(_1_pSubOpen.XpMethods).XxTruncate 5455 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int64) int32)(unsafe.Pointer(&v)) 5456 }()(tls, _1_pSubOpen, _size) 5457 _2: 5458 goto _3 5459 _0: 5460 _4_iBaseGroup = int32(_size / int64(_pGroup.XszChunk)) 5461 _4_pOrigVfs = (*bin.Xsqlite3_vfs)(_gMultiplex.XpOrigVfs) 5462 _4_i = _pGroup.XnReal - int32(1) 5463 _4: 5464 if _4_i <= _4_iBaseGroup || _rc != int32(0) { 5465 goto _8 5466 } 5467 if _pGroup.XbTruncate != 0 { 5468 _multiplexSubClose(tls, _pGroup, _4_i, _4_pOrigVfs) 5469 goto _10 5470 } 5471 _4_pSubOpen = _multiplexSubOpen(tls, _pGroup, _4_i, &_rc, nil, int32(0)) 5472 if _4_pSubOpen != nil { 5473 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, int64) int32 { 5474 v := (*bin.Xsqlite3_io_methods)(_4_pSubOpen.XpMethods).XxTruncate 5475 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int64) int32)(unsafe.Pointer(&v)) 5476 }()(tls, _4_pSubOpen, 0) 5477 } 5478 _10: 5479 _4_i -= 1 5480 goto _4 5481 _8: 5482 if _rc != int32(0) { 5483 goto _12 5484 } 5485 _4_pSubOpen = _multiplexSubOpen(tls, _pGroup, _4_iBaseGroup, &_rc, nil, int32(0)) 5486 if _4_pSubOpen != nil { 5487 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, int64) int32 { 5488 v := (*bin.Xsqlite3_io_methods)(_4_pSubOpen.XpMethods).XxTruncate 5489 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int64) int32)(unsafe.Pointer(&v)) 5490 }()(tls, _4_pSubOpen, _size%int64(_pGroup.XszChunk)) 5491 } 5492 _12: 5493 if _rc != 0 { 5494 _rc = int32(1546) 5495 } 5496 _3: 5497 return _rc 5498 } 5499 5500 // C comment 5501 // /* Pass xSync requests through to the original VFS without change 5502 // */ 5503 func _multiplexSync(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _flags int32) (r0 int32) { 5504 var _rc, _i, _2_rc2 int32 5505 var _1_pSubOpen *bin.Xsqlite3_file 5506 var _pGroup *XmultiplexGroup 5507 var _p *XmultiplexConn 5508 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5509 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5510 _rc = int32(0) 5511 _i = int32(0) 5512 _0: 5513 if _i >= _pGroup.XnReal { 5514 goto _3 5515 } 5516 _1_pSubOpen = (*bin.Xsqlite3_file)(elem12((*TmultiplexReal)(_pGroup.XaReal), uintptr(_i)).Xp) 5517 if _1_pSubOpen == nil { 5518 goto _4 5519 } 5520 _2_rc2 = func() func(*crt.TLS, *bin.Xsqlite3_file, int32) int32 { 5521 v := (*bin.Xsqlite3_io_methods)(_1_pSubOpen.XpMethods).XxSync 5522 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&v)) 5523 }()(tls, _1_pSubOpen, _flags) 5524 if _2_rc2 != int32(0) { 5525 _rc = _2_rc2 5526 } 5527 _4: 5528 _i += 1 5529 goto _0 5530 _3: 5531 return _rc 5532 } 5533 5534 // C comment 5535 // /* Pass xFileSize requests through to the original VFS. 5536 // ** Aggregate the size of all the chunks before returning. 5537 // */ 5538 func _multiplexFileSize(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _pSize *int64) (r0 int32) { 5539 var _rc, _i int32 5540 var _5_sz int64 5541 var _1_pSubOpen *bin.Xsqlite3_file 5542 var _pGroup *XmultiplexGroup 5543 var _p *XmultiplexConn 5544 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5545 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5546 _rc = int32(0) 5547 if _pGroup.XbEnabled != 0 { 5548 goto _0 5549 } 5550 _1_pSubOpen = _multiplexSubOpen(tls, _pGroup, int32(0), &_rc, nil, int32(0)) 5551 if _1_pSubOpen == nil { 5552 _rc = int32(1802) 5553 goto _2 5554 } 5555 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32 { 5556 v := (*bin.Xsqlite3_io_methods)(_1_pSubOpen.XpMethods).XxFileSize 5557 return *(*func(*crt.TLS, *bin.Xsqlite3_file, *int64) int32)(unsafe.Pointer(&v)) 5558 }()(tls, _1_pSubOpen, _pSize) 5559 _2: 5560 goto _3 5561 _0: 5562 *_pSize = 0 5563 _i = int32(0) 5564 _4: 5565 if _rc != int32(0) { 5566 goto _7 5567 } 5568 _5_sz = _multiplexSubSize(tls, _pGroup, _i, &_rc) 5569 if _5_sz == (0) { 5570 goto _7 5571 } 5572 *_pSize = (int64(_i) * int64(_pGroup.XszChunk)) + _5_sz 5573 _i += 1 5574 goto _4 5575 _7: 5576 _3: 5577 return _rc 5578 } 5579 5580 // C comment 5581 // /* Pass xLock requests through to the original VFS unchanged. 5582 // */ 5583 func _multiplexLock(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _lock int32) (r0 int32) { 5584 var _rc int32 5585 var _pSubOpen *bin.Xsqlite3_file 5586 var _p *XmultiplexConn 5587 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5588 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5589 if _pSubOpen != nil { 5590 return func() func(*crt.TLS, *bin.Xsqlite3_file, int32) int32 { 5591 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxLock 5592 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&v)) 5593 }()(tls, _pSubOpen, _lock) 5594 } 5595 return int32(5) 5596 } 5597 5598 // C comment 5599 // /* Pass xUnlock requests through to the original VFS unchanged. 5600 // */ 5601 func _multiplexUnlock(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _lock int32) (r0 int32) { 5602 var _rc int32 5603 var _pSubOpen *bin.Xsqlite3_file 5604 var _p *XmultiplexConn 5605 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5606 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5607 if _pSubOpen != nil { 5608 return func() func(*crt.TLS, *bin.Xsqlite3_file, int32) int32 { 5609 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxUnlock 5610 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&v)) 5611 }()(tls, _pSubOpen, _lock) 5612 } 5613 return int32(2058) 5614 } 5615 5616 // C comment 5617 // /* Pass xCheckReservedLock requests through to the original VFS unchanged. 5618 // */ 5619 func _multiplexCheckReservedLock(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _pResOut *int32) (r0 int32) { 5620 var _rc int32 5621 var _pSubOpen *bin.Xsqlite3_file 5622 var _p *XmultiplexConn 5623 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5624 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5625 if _pSubOpen != nil { 5626 return func() func(*crt.TLS, *bin.Xsqlite3_file, *int32) int32 { 5627 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxCheckReservedLock 5628 return *(*func(*crt.TLS, *bin.Xsqlite3_file, *int32) int32)(unsafe.Pointer(&v)) 5629 }()(tls, _pSubOpen, _pResOut) 5630 } 5631 return int32(3594) 5632 } 5633 5634 // C comment 5635 // /* Pass xFileControl requests through to the original VFS unchanged, 5636 // ** except for any MULTIPLEX_CTRL_* requests here. 5637 // */ 5638 func _multiplexFileControl(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _op int32, _pArg unsafe.Pointer) (r0 int32) { 5639 var _rc, _2_bEnabled int32 5640 var _3_szChunk uint32 5641 var _6_aFcntl **int8 5642 var _pSubOpen *bin.Xsqlite3_file 5643 var _pGroup *XmultiplexGroup 5644 var _p *XmultiplexConn 5645 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5646 _pGroup = (*XmultiplexGroup)(_p.XpGroup) 5647 _rc = int32(1) 5648 if _gMultiplex.XisInitialized == 0 { 5649 return int32(21) 5650 } 5651 switch _op { 5652 case int32(5): 5653 goto _5 5654 case int32(6): 5655 goto _5 5656 case int32(14): 5657 goto _7 5658 case int32(214014): 5659 goto _2 5660 case int32(214015): 5661 goto _3 5662 case int32(214016): 5663 goto _4 5664 default: 5665 goto _8 5666 } 5667 5668 _2: 5669 if _pArg != nil { 5670 _2_bEnabled = *(*int32)(_pArg) 5671 _pGroup.XbEnabled = uint8(_2_bEnabled) 5672 _rc = int32(0) 5673 } 5674 goto _10 5675 _3: 5676 if _pArg == nil { 5677 goto _11 5678 } 5679 _3_szChunk = *(*uint32)(_pArg) 5680 if _3_szChunk < uint32(1) { 5681 _rc = int32(21) 5682 goto _13 5683 } 5684 _3_szChunk = _3_szChunk + uint32(65535) 5685 _3_szChunk &= uint32(4294901760) 5686 _pGroup.XszChunk = _3_szChunk 5687 _rc = int32(0) 5688 _13: 5689 _11: 5690 goto _10 5691 _4: 5692 _rc = int32(0) 5693 goto _10 5694 _5: 5695 _rc = int32(0) 5696 goto _10 5697 _7: 5698 _6_aFcntl = (**int8)(_pArg) 5699 if (*elem1(_6_aFcntl, uintptr(1))) == nil || bin.Xsqlite3_stricmp(tls, *elem1(_6_aFcntl, uintptr(1)), str(7014)) != int32(0) { 5700 goto _15 5701 } 5702 if (*elem1(_6_aFcntl, uintptr(2))) == nil || (*elem2(*elem1(_6_aFcntl, uintptr(2)), 0)) == 0 { 5703 goto _17 5704 } 5705 if (bin.Xsqlite3_stricmp(tls, *elem1(_6_aFcntl, uintptr(2)), str(7033)) == int32(0)) || (bin.Xsqlite3_stricmp(tls, *elem1(_6_aFcntl, uintptr(2)), str(7036)) == int32(0)) { 5706 _pGroup.XbTruncate = uint8(1) 5707 goto _22 5708 } 5709 if (bin.Xsqlite3_stricmp(tls, *elem1(_6_aFcntl, uintptr(2)), str(7038)) == int32(0)) || (bin.Xsqlite3_stricmp(tls, *elem1(_6_aFcntl, uintptr(2)), str(7042)) == int32(0)) { 5710 _pGroup.XbTruncate = 0 5711 } 5712 _22: 5713 _17: 5714 *elem1(_6_aFcntl, 0) = bin.Xsqlite3_mprintf(tls, func() *int8 { 5715 if _pGroup.XbTruncate != 0 { 5716 return str(7033) 5717 } 5718 return str(7038) 5719 }()) 5720 _rc = int32(0) 5721 goto _10 5722 _15: 5723 _8: 5724 _pSubOpen = _multiplexSubOpen(tls, _pGroup, int32(0), &_rc, nil, int32(0)) 5725 if _pSubOpen == nil { 5726 goto _25 5727 } 5728 _rc = func() func(*crt.TLS, *bin.Xsqlite3_file, int32, unsafe.Pointer) int32 { 5729 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxFileControl 5730 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32, unsafe.Pointer) int32)(unsafe.Pointer(&v)) 5731 }()(tls, _pSubOpen, _op, _pArg) 5732 if (_op == int32(12)) && (_rc == int32(0)) { 5733 *(**int8)(_pArg) = bin.Xsqlite3_mprintf(tls, str(7044), unsafe.Pointer(*(**int8)(_pArg))) 5734 } 5735 _25: 5736 goto _10 5737 _10: 5738 return _rc 5739 } 5740 5741 // C comment 5742 // /* Pass xSectorSize requests through to the original VFS unchanged. 5743 // */ 5744 func _multiplexSectorSize(tls *crt.TLS, _pConn *bin.Xsqlite3_file) (r0 int32) { 5745 var _rc int32 5746 var _pSubOpen *bin.Xsqlite3_file 5747 var _p *XmultiplexConn 5748 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5749 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5750 if (_pSubOpen != nil) && (((*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxSectorSize) != nil) { 5751 return func() func(*crt.TLS, *bin.Xsqlite3_file) int32 { 5752 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxSectorSize 5753 return *(*func(*crt.TLS, *bin.Xsqlite3_file) int32)(unsafe.Pointer(&v)) 5754 }()(tls, _pSubOpen) 5755 } 5756 return int32(4096) 5757 } 5758 5759 // C comment 5760 // /* Pass xDeviceCharacteristics requests through to the original VFS unchanged. 5761 // */ 5762 func _multiplexDeviceCharacteristics(tls *crt.TLS, _pConn *bin.Xsqlite3_file) (r0 int32) { 5763 var _rc int32 5764 var _pSubOpen *bin.Xsqlite3_file 5765 var _p *XmultiplexConn 5766 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5767 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5768 if _pSubOpen != nil { 5769 return func() func(*crt.TLS, *bin.Xsqlite3_file) int32 { 5770 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxDeviceCharacteristics 5771 return *(*func(*crt.TLS, *bin.Xsqlite3_file) int32)(unsafe.Pointer(&v)) 5772 }()(tls, _pSubOpen) 5773 } 5774 return int32(0) 5775 } 5776 5777 // C comment 5778 // /* Pass xShmMap requests through to the original VFS unchanged. 5779 // */ 5780 func _multiplexShmMap(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _iRegion int32, _szRegion int32, _bExtend int32, _pp *unsafe.Pointer) (r0 int32) { 5781 var _rc int32 5782 var _pSubOpen *bin.Xsqlite3_file 5783 var _p *XmultiplexConn 5784 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5785 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5786 if _pSubOpen != nil { 5787 return func() func(*crt.TLS, *bin.Xsqlite3_file, int32, int32, int32, *unsafe.Pointer) int32 { 5788 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxShmMap 5789 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32, int32, int32, *unsafe.Pointer) int32)(unsafe.Pointer(&v)) 5790 }()(tls, _pSubOpen, _iRegion, _szRegion, _bExtend, _pp) 5791 } 5792 return int32(10) 5793 } 5794 5795 // C comment 5796 // /* Pass xShmLock requests through to the original VFS unchanged. 5797 // */ 5798 func _multiplexShmLock(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _ofst int32, _n int32, _flags int32) (r0 int32) { 5799 var _rc int32 5800 var _pSubOpen *bin.Xsqlite3_file 5801 var _p *XmultiplexConn 5802 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5803 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5804 if _pSubOpen != nil { 5805 return func() func(*crt.TLS, *bin.Xsqlite3_file, int32, int32, int32) int32 { 5806 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxShmLock 5807 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32, int32, int32) int32)(unsafe.Pointer(&v)) 5808 }()(tls, _pSubOpen, _ofst, _n, _flags) 5809 } 5810 return int32(5) 5811 } 5812 5813 // C comment 5814 // /* Pass xShmBarrier requests through to the original VFS unchanged. 5815 // */ 5816 func _multiplexShmBarrier(tls *crt.TLS, _pConn *bin.Xsqlite3_file) { 5817 var _rc int32 5818 var _pSubOpen *bin.Xsqlite3_file 5819 var _p *XmultiplexConn 5820 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5821 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5822 if _pSubOpen != nil { 5823 func() func(*crt.TLS, *bin.Xsqlite3_file) { 5824 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxShmBarrier 5825 return *(*func(*crt.TLS, *bin.Xsqlite3_file))(unsafe.Pointer(&v)) 5826 }()(tls, _pSubOpen) 5827 } 5828 } 5829 5830 // C comment 5831 // /* Pass xShmUnmap requests through to the original VFS unchanged. 5832 // */ 5833 func _multiplexShmUnmap(tls *crt.TLS, _pConn *bin.Xsqlite3_file, _deleteFlag int32) (r0 int32) { 5834 var _rc int32 5835 var _pSubOpen *bin.Xsqlite3_file 5836 var _p *XmultiplexConn 5837 _p = (*XmultiplexConn)(unsafe.Pointer(_pConn)) 5838 _pSubOpen = _multiplexSubOpen(tls, (*XmultiplexGroup)(_p.XpGroup), int32(0), &_rc, nil, int32(0)) 5839 if _pSubOpen != nil { 5840 return func() func(*crt.TLS, *bin.Xsqlite3_file, int32) int32 { 5841 v := (*bin.Xsqlite3_io_methods)(_pSubOpen.XpMethods).XxShmUnmap 5842 return *(*func(*crt.TLS, *bin.Xsqlite3_file, int32) int32)(unsafe.Pointer(&v)) 5843 }()(tls, _pSubOpen, _deleteFlag) 5844 } 5845 return int32(0) 5846 } 5847 5848 // C comment 5849 // /* 5850 // ** This is the entry point to register the auto-extension for the 5851 // ** multiplex_control() function. 5852 // */ 5853 func _multiplexFuncInit(tls *crt.TLS, _db unsafe.Pointer, _pzErrMsg **int8, _pApi *t14) (r0 int32) { 5854 var _rc int32 5855 _rc = bin.Xsqlite3_create_function(tls, (*bin.Xsqlite3)(_db), str(7057), int32(2), int32(5), nil, func() func(*crt.TLS, *bin.Xsqlite3_context, int32, **bin.XMem) { 5856 v := _multiplexControlFunc 5857 return *(*func(*crt.TLS, *bin.Xsqlite3_context, int32, **bin.XMem))(unsafe.Pointer(&v)) 5858 }(), nil, nil) 5859 return _rc 5860 } 5861 5862 // C comment 5863 // /* 5864 // ** This is the implementation of the multiplex_control() SQL function. 5865 // */ 5866 func _multiplexControlFunc(tls *crt.TLS, _context unsafe.Pointer, _argc int32, _argv *unsafe.Pointer) { 5867 var _rc, _op, _iVal int32 5868 var _db unsafe.Pointer 5869 _rc = int32(0) 5870 _db = unsafe.Pointer(bin.Xsqlite3_context_db_handle(tls, (*bin.Xsqlite3_context)(_context))) 5871 _op = int32(0) 5872 if (_db == nil) || (_argc != int32(2)) { 5873 _rc = int32(1) 5874 goto _2 5875 } 5876 _op = bin.Xsqlite3_value_int(tls, (*bin.XMem)(*elem3(_argv, 0))) 5877 _iVal = bin.Xsqlite3_value_int(tls, (*bin.XMem)(*elem3(_argv, uintptr(1)))) 5878 switch _op { 5879 case int32(1): 5880 goto _4 5881 case int32(2): 5882 goto _5 5883 case int32(3): 5884 goto _6 5885 default: 5886 goto _7 5887 } 5888 5889 _4: 5890 _op = int32(214014) 5891 goto _8 5892 _5: 5893 _op = int32(214015) 5894 goto _8 5895 _6: 5896 _op = int32(214016) 5897 goto _8 5898 _7: 5899 _rc = int32(12) 5900 goto _8 5901 _8: 5902 _2: 5903 if _rc == int32(0) { 5904 _rc = bin.Xsqlite3_file_control(tls, (*bin.Xsqlite3)(_db), nil, _op, unsafe.Pointer(&_iVal)) 5905 } 5906 bin.Xsqlite3_result_error_code(tls, (*bin.Xsqlite3_context)(_context), _rc) 5907 _ = _iVal 5908 } 5909 5910 func bool2int(b bool) int32 { 5911 if b { 5912 return 1 5913 } 5914 return 0 5915 } 5916 func bug20530(interface{}) {} //TODO remove when https://github.com/golang/go/issues/20530 is fixed. 5917 func init() { nzf32 *= -1; nzf64 *= -1 } 5918 5919 var inf = math.Inf(1) 5920 var nzf32 float32 // -0.0 5921 var nzf64 float64 // -0.0 5922 func elem1(a **int8, index uintptr) **int8 { 5923 return (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 8*index)) 5924 } 5925 func elem3(a *unsafe.Pointer, index uintptr) *unsafe.Pointer { 5926 return (*unsafe.Pointer)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 8*index)) 5927 } 5928 func elem8(a *int32, index uintptr) *int32 { 5929 return (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 4*index)) 5930 } 5931 func elem2(a *int8, index uintptr) *int8 { 5932 return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 1*index)) 5933 } 5934 func elem11(a *XmultiplexGroup, index uintptr) *XmultiplexGroup { 5935 return (*XmultiplexGroup)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 40*index)) 5936 } 5937 func elem12(a *TmultiplexReal, index uintptr) *TmultiplexReal { 5938 return (*TmultiplexReal)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 16*index)) 5939 } 5940 func elem9(a *TStress2Task, index uintptr) *TStress2Task { 5941 return (*TStress2Task)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 8*index)) 5942 } 5943 func elem0(a *TThreadTest, index uintptr) *TThreadTest { 5944 return (*TThreadTest)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 24*index)) 5945 } 5946 func elem4(a *uint32, index uintptr) *uint32 { 5947 return (*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 4*index)) 5948 } 5949 func elem6(a *uint8, index uintptr) *uint8 { 5950 return (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 1*index)) 5951 } 5952 func postInc6(p **uint8, d int) *uint8 { 5953 q := (*uintptr)(unsafe.Pointer(p)) 5954 v := *q 5955 *q += uintptr(d) 5956 return (*uint8)(unsafe.Pointer(v)) 5957 } 5958 func postInc7(p *int32, d int32) int32 { v := *p; *p += d; return v } 5959 func preInc7(p *int32, d int32) int32 { v := *p + d; *p = v; return v } 5960 func preInc5(p *uint32, d uint32) uint32 { v := *p + d; *p = v; return v } 5961 func store2(p **int8, v *int8) *int8 { *p = v; return v } 5962 func store13(p **bin.Xsqlite3_file, v *bin.Xsqlite3_file) *bin.Xsqlite3_file { *p = v; return v } 5963 func store7(p *int32, v int32) int32 { *p = v; return v } 5964 func store5(p *uint32, v uint32) uint32 { *p = v; return v } 5965 5966 type XmultiplexGroup struct { 5967 XaReal unsafe.Pointer 5968 XnReal int32 5969 XzName *int8 5970 XnName int32 5971 Xflags int32 5972 XszChunk uint32 5973 XbEnabled uint8 5974 XbTruncate uint8 5975 } // t15 struct{aReal *struct{},nReal int32,zName *int8,nName int32,flags int32,szChunk uint32,bEnabled uint8,bTruncate uint8} 5976 5977 type TmultiplexReal struct { 5978 Xp unsafe.Pointer 5979 Xz *int8 5980 } // t16 struct{p *struct{},z *int8} 5981 5982 type XmultiplexConn struct { 5983 Xbase bin.Xsqlite3_file 5984 XpGroup unsafe.Pointer 5985 } // t17 struct{base struct{pMethods *struct{}},pGroup *struct{}} 5986 5987 type XMD5Context struct { 5988 XisInit int32 5989 Xbuf [4]uint32 5990 Xbits [2]uint32 5991 Xu t18 5992 } // t19 struct{isInit int32,buf [4]uint32,bits [2]uint32,u union{in [64]uint8,in32 [16]uint32}} 5993 5994 type XError struct { 5995 Xrc int32 5996 XiLine int32 5997 XzErr *int8 5998 } // t20 struct{rc int32,iLine int32,zErr *int8} 5999 6000 type XSqlite struct { 6001 Xdb unsafe.Pointer 6002 XpCache unsafe.Pointer 6003 XnText int32 6004 XaText **int8 6005 } // t21 struct{db *struct{},pCache *struct{},nText int32,aText **int8} 6006 6007 type XStatement struct { 6008 XpStmt unsafe.Pointer 6009 XpNext unsafe.Pointer 6010 } // t22 struct{pStmt *struct{},pNext *struct{}} 6011 6012 type XThread struct { 6013 XiTid int32 6014 XpArg unsafe.Pointer 6015 Xtid uint64 6016 XxProc func(*crt.TLS, int32, unsafe.Pointer) *int8 6017 XpNext unsafe.Pointer 6018 } // t23 struct{iTid int32,pArg *struct{},tid uint64,xProc *func(int32,*struct{})*int8,pNext *struct{}} 6019 6020 type XThreadset struct { 6021 XiMaxTid int32 6022 XpThread unsafe.Pointer 6023 } // t24 struct{iMaxTid int32,pThread *struct{}} 6024 6025 type XCheckpointStarvationCtx struct { 6026 XeMode int32 6027 XnMaxFrame int32 6028 } // t25 struct{eMode int32,nMaxFrame int32} 6029 6030 type XStress2Ctx struct { 6031 XzDb *int8 6032 XxProc func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) 6033 } // t26 struct{zDb *int8,xProc *func(*struct{},*struct{},int32)} 6034 6035 type TStress2Task struct { 6036 Xx func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) 6037 } // t27 struct{x *func(*struct{},*struct{},int32)} 6038 6039 type TThreadTest struct { 6040 XxTest func(*crt.TLS, int32) 6041 XzTest *int8 6042 XnMs int32 6043 } // t28 struct{xTest *func(int32),zTest *int8,nMs int32} 6044 6045 type t10 struct { 6046 XpOrigVfs unsafe.Pointer 6047 XsThisVfs bin.Xsqlite3_vfs 6048 XsIoMethodsV1 bin.Xsqlite3_io_methods 6049 XsIoMethodsV2 bin.Xsqlite3_io_methods 6050 XisInitialized int32 6051 } // struct{pOrigVfs *struct{},sThisVfs struct{iVersion int32,szOsFile int32,mxPathname int32,pNext *struct{},zName *int8,pAppData *struct{},xOpen *func(*struct{},*int8,*struct{},int32,*int32)int32,xDelete *func(*struct{},*int8,int32)int32,xAccess *func(*struct{},*int8,int32,*int32)int32,xFullPathname *func(*struct{},*int8,int32,*int8)int32,xDlOpen *func(*struct{},*int8)*struct{},xDlError *func(*struct{},int32,*int8),xDlSym *func(*struct{},*struct{},*int8)*func(),xDlClose *func(*struct{},*struct{}),xRandomness *func(*struct{},int32,*int8)int32,xSleep *func(*struct{},int32)int32,xCurrentTime *func(*struct{},*float64)int32,xGetLastError *func(*struct{},int32,*int8)int32,xCurrentTimeInt64 *func(*struct{},*int64)int32,xSetSystemCall *func(*struct{},*int8,*func())int32,xGetSystemCall *func(*struct{},*int8)*func(),xNextSystemCall *func(*struct{},*int8)*int8},sIoMethodsV1 struct{iVersion int32,xClose *func(*struct{})int32,xRead *func(*struct{},*struct{},int32,int64)int32,xWrite *func(*struct{},*struct{},int32,int64)int32,xTruncate *func(*struct{},int64)int32,xSync *func(*struct{},int32)int32,xFileSize *func(*struct{},*int64)int32,xLock *func(*struct{},int32)int32,xUnlock *func(*struct{},int32)int32,xCheckReservedLock *func(*struct{},*int32)int32,xFileControl *func(*struct{},int32,*struct{})int32,xSectorSize *func(*struct{})int32,xDeviceCharacteristics *func(*struct{})int32,xShmMap *func(*struct{},int32,int32,int32,**struct{})int32,xShmLock *func(*struct{},int32,int32,int32)int32,xShmBarrier *func(*struct{}),xShmUnmap *func(*struct{},int32)int32,xFetch *func(*struct{},int64,int32,**struct{})int32,xUnfetch *func(*struct{},int64,*struct{})int32},sIoMethodsV2 struct{iVersion int32,xClose *func(*struct{})int32,xRead *func(*struct{},*struct{},int32,int64)int32,xWrite *func(*struct{},*struct{},int32,int64)int32,xTruncate *func(*struct{},int64)int32,xSync *func(*struct{},int32)int32,xFileSize *func(*struct{},*int64)int32,xLock *func(*struct{},int32)int32,xUnlock *func(*struct{},int32)int32,xCheckReservedLock *func(*struct{},*int32)int32,xFileControl *func(*struct{},int32,*struct{})int32,xSectorSize *func(*struct{})int32,xDeviceCharacteristics *func(*struct{})int32,xShmMap *func(*struct{},int32,int32,int32,**struct{})int32,xShmLock *func(*struct{},int32,int32,int32)int32,xShmBarrier *func(*struct{}),xShmUnmap *func(*struct{},int32)int32,xFetch *func(*struct{},int64,int32,**struct{})int32,xUnfetch *func(*struct{},int64,*struct{})int32},isInitialized int32} 6052 6053 type t14 struct { 6054 Xaggregate_context func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6055 Xaggregate_count func(*crt.TLS, unsafe.Pointer) int32 6056 Xbind_blob func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer)) int32 6057 Xbind_double func(*crt.TLS, unsafe.Pointer, int32, float64) int32 6058 Xbind_int func(*crt.TLS, unsafe.Pointer, int32, int32) int32 6059 Xbind_int64 func(*crt.TLS, unsafe.Pointer, int32, int64) int32 6060 Xbind_null func(*crt.TLS, unsafe.Pointer, int32) int32 6061 Xbind_parameter_count func(*crt.TLS, unsafe.Pointer) int32 6062 Xbind_parameter_index func(*crt.TLS, unsafe.Pointer, *int8) int32 6063 Xbind_parameter_name func(*crt.TLS, unsafe.Pointer, int32) *int8 6064 Xbind_text func(*crt.TLS, unsafe.Pointer, int32, *int8, int32, func(*crt.TLS, unsafe.Pointer)) int32 6065 Xbind_text16 func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer)) int32 6066 Xbind_value func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer) int32 6067 Xbusy_handler func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32) int32, unsafe.Pointer) int32 6068 Xbusy_timeout func(*crt.TLS, unsafe.Pointer, int32) int32 6069 Xchanges func(*crt.TLS, unsafe.Pointer) int32 6070 Xclose func(*crt.TLS, unsafe.Pointer) int32 6071 Xcollation_needed func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, *int8)) int32 6072 Xcollation_needed16 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, unsafe.Pointer)) int32 6073 Xcolumn_blob func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6074 Xcolumn_bytes func(*crt.TLS, unsafe.Pointer, int32) int32 6075 Xcolumn_bytes16 func(*crt.TLS, unsafe.Pointer, int32) int32 6076 Xcolumn_count func(*crt.TLS, unsafe.Pointer) int32 6077 Xcolumn_database_name func(*crt.TLS, unsafe.Pointer, int32) *int8 6078 Xcolumn_database_name16 func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6079 Xcolumn_decltype func(*crt.TLS, unsafe.Pointer, int32) *int8 6080 Xcolumn_decltype16 func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6081 Xcolumn_double func(*crt.TLS, unsafe.Pointer, int32) float64 6082 Xcolumn_int func(*crt.TLS, unsafe.Pointer, int32) int32 6083 Xcolumn_int64 func(*crt.TLS, unsafe.Pointer, int32) int64 6084 Xcolumn_name func(*crt.TLS, unsafe.Pointer, int32) *int8 6085 Xcolumn_name16 func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6086 Xcolumn_origin_name func(*crt.TLS, unsafe.Pointer, int32) *int8 6087 Xcolumn_origin_name16 func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6088 Xcolumn_table_name func(*crt.TLS, unsafe.Pointer, int32) *int8 6089 Xcolumn_table_name16 func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6090 Xcolumn_text func(*crt.TLS, unsafe.Pointer, int32) *uint8 6091 Xcolumn_text16 func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6092 Xcolumn_type func(*crt.TLS, unsafe.Pointer, int32) int32 6093 Xcolumn_value func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6094 Xcommit_hook func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer) int32, unsafe.Pointer) unsafe.Pointer 6095 Xcomplete func(*crt.TLS, *int8) int32 6096 Xcomplete16 func(*crt.TLS, unsafe.Pointer) int32 6097 Xcreate_collation func(*crt.TLS, unsafe.Pointer, *int8, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, int32, unsafe.Pointer) int32) int32 6098 Xcreate_collation16 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, int32, unsafe.Pointer) int32) int32 6099 Xcreate_function func(*crt.TLS, unsafe.Pointer, *int8, int32, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer), func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer), func(*crt.TLS, unsafe.Pointer)) int32 6100 Xcreate_function16 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer), func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer), func(*crt.TLS, unsafe.Pointer)) int32 6101 Xcreate_module func(*crt.TLS, unsafe.Pointer, *int8, unsafe.Pointer, unsafe.Pointer) int32 6102 Xdata_count func(*crt.TLS, unsafe.Pointer) int32 6103 Xdb_handle func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6104 Xdeclare_vtab func(*crt.TLS, unsafe.Pointer, *int8) int32 6105 Xenable_shared_cache func(*crt.TLS, int32) int32 6106 Xerrcode func(*crt.TLS, unsafe.Pointer) int32 6107 Xerrmsg func(*crt.TLS, unsafe.Pointer) *int8 6108 Xerrmsg16 func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6109 Xexec func(*crt.TLS, unsafe.Pointer, *int8, func(*crt.TLS, unsafe.Pointer, int32, **int8, **int8) int32, unsafe.Pointer, **int8) int32 6110 Xexpired func(*crt.TLS, unsafe.Pointer) int32 6111 Xfinalize func(*crt.TLS, unsafe.Pointer) int32 6112 Xfree func(*crt.TLS, unsafe.Pointer) 6113 Xfree_table func(*crt.TLS, **int8) 6114 Xget_autocommit func(*crt.TLS, unsafe.Pointer) int32 6115 Xget_auxdata func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6116 Xget_table func(*crt.TLS, unsafe.Pointer, *int8, ***int8, *int32, *int32, **int8) int32 6117 Xglobal_recover func(*crt.TLS) int32 6118 Xinterruptx func(*crt.TLS, unsafe.Pointer) 6119 Xlast_insert_rowid func(*crt.TLS, unsafe.Pointer) int64 6120 Xlibversion func(*crt.TLS) *int8 6121 Xlibversion_number func(*crt.TLS) int32 6122 Xmalloc func(*crt.TLS, int32) unsafe.Pointer 6123 Xmprintf func(*crt.TLS, *int8, ...interface{}) *int8 6124 Xopen func(*crt.TLS, *int8, *unsafe.Pointer) int32 6125 Xopen16 func(*crt.TLS, unsafe.Pointer, *unsafe.Pointer) int32 6126 Xprepare func(*crt.TLS, unsafe.Pointer, *int8, int32, *unsafe.Pointer, **int8) int32 6127 Xprepare16 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, *unsafe.Pointer, *unsafe.Pointer) int32 6128 Xprofile func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, *int8, uint64), unsafe.Pointer) unsafe.Pointer 6129 Xprogress_handler func(*crt.TLS, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer) int32, unsafe.Pointer) 6130 Xrealloc func(*crt.TLS, unsafe.Pointer, int32) unsafe.Pointer 6131 Xreset func(*crt.TLS, unsafe.Pointer) int32 6132 Xresult_blob func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer)) 6133 Xresult_double func(*crt.TLS, unsafe.Pointer, float64) 6134 Xresult_error func(*crt.TLS, unsafe.Pointer, *int8, int32) 6135 Xresult_error16 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32) 6136 Xresult_int func(*crt.TLS, unsafe.Pointer, int32) 6137 Xresult_int64 func(*crt.TLS, unsafe.Pointer, int64) 6138 Xresult_null func(*crt.TLS, unsafe.Pointer) 6139 Xresult_text func(*crt.TLS, unsafe.Pointer, *int8, int32, func(*crt.TLS, unsafe.Pointer)) 6140 Xresult_text16 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer)) 6141 Xresult_text16be func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer)) 6142 Xresult_text16le func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, func(*crt.TLS, unsafe.Pointer)) 6143 Xresult_value func(*crt.TLS, unsafe.Pointer, unsafe.Pointer) 6144 Xrollback_hook func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer), unsafe.Pointer) unsafe.Pointer 6145 Xset_authorizer func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, *int8, *int8, *int8, *int8) int32, unsafe.Pointer) int32 6146 Xset_auxdata func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer)) 6147 Xsnprintf func(*crt.TLS, int32, *int8, *int8, ...interface{}) *int8 6148 Xstep func(*crt.TLS, unsafe.Pointer) int32 6149 Xtable_column_metadata func(*crt.TLS, unsafe.Pointer, *int8, *int8, *int8, **int8, **int8, *int32, *int32, *int32) int32 6150 Xthread_cleanup func(*crt.TLS) 6151 Xtotal_changes func(*crt.TLS, unsafe.Pointer) int32 6152 Xtrace func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, *int8), unsafe.Pointer) unsafe.Pointer 6153 Xtransfer_bindings func(*crt.TLS, unsafe.Pointer, unsafe.Pointer) int32 6154 Xupdate_hook func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, *int8, *int8, int64), unsafe.Pointer) unsafe.Pointer 6155 Xuser_data func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6156 Xvalue_blob func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6157 Xvalue_bytes func(*crt.TLS, unsafe.Pointer) int32 6158 Xvalue_bytes16 func(*crt.TLS, unsafe.Pointer) int32 6159 Xvalue_double func(*crt.TLS, unsafe.Pointer) float64 6160 Xvalue_int func(*crt.TLS, unsafe.Pointer) int32 6161 Xvalue_int64 func(*crt.TLS, unsafe.Pointer) int64 6162 Xvalue_numeric_type func(*crt.TLS, unsafe.Pointer) int32 6163 Xvalue_text func(*crt.TLS, unsafe.Pointer) *uint8 6164 Xvalue_text16 func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6165 Xvalue_text16be func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6166 Xvalue_text16le func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6167 Xvalue_type func(*crt.TLS, unsafe.Pointer) int32 6168 Xvmprintf func(*crt.TLS, *int8, unsafe.Pointer) *int8 6169 Xoverload_function func(*crt.TLS, unsafe.Pointer, *int8, int32) int32 6170 Xprepare_v2 func(*crt.TLS, unsafe.Pointer, *int8, int32, *unsafe.Pointer, **int8) int32 6171 Xprepare16_v2 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, *unsafe.Pointer, *unsafe.Pointer) int32 6172 Xclear_bindings func(*crt.TLS, unsafe.Pointer) int32 6173 Xcreate_module_v2 func(*crt.TLS, unsafe.Pointer, *int8, unsafe.Pointer, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer)) int32 6174 Xbind_zeroblob func(*crt.TLS, unsafe.Pointer, int32, int32) int32 6175 Xblob_bytes func(*crt.TLS, unsafe.Pointer) int32 6176 Xblob_close func(*crt.TLS, unsafe.Pointer) int32 6177 Xblob_open func(*crt.TLS, unsafe.Pointer, *int8, *int8, *int8, int64, int32, *unsafe.Pointer) int32 6178 Xblob_read func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, int32) int32 6179 Xblob_write func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, int32) int32 6180 Xcreate_collation_v2 func(*crt.TLS, unsafe.Pointer, *int8, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, int32, unsafe.Pointer) int32, func(*crt.TLS, unsafe.Pointer)) int32 6181 Xfile_control func(*crt.TLS, unsafe.Pointer, *int8, int32, unsafe.Pointer) int32 6182 Xmemory_highwater func(*crt.TLS, int32) int64 6183 Xmemory_used func(*crt.TLS) int64 6184 Xmutex_alloc func(*crt.TLS, int32) unsafe.Pointer 6185 Xmutex_enter func(*crt.TLS, unsafe.Pointer) 6186 Xmutex_free func(*crt.TLS, unsafe.Pointer) 6187 Xmutex_leave func(*crt.TLS, unsafe.Pointer) 6188 Xmutex_try func(*crt.TLS, unsafe.Pointer) int32 6189 Xopen_v2 func(*crt.TLS, *int8, *unsafe.Pointer, int32, *int8) int32 6190 Xrelease_memory func(*crt.TLS, int32) int32 6191 Xresult_error_nomem func(*crt.TLS, unsafe.Pointer) 6192 Xresult_error_toobig func(*crt.TLS, unsafe.Pointer) 6193 Xsleep func(*crt.TLS, int32) int32 6194 Xsoft_heap_limit func(*crt.TLS, int32) 6195 Xvfs_find func(*crt.TLS, *int8) unsafe.Pointer 6196 Xvfs_register func(*crt.TLS, unsafe.Pointer, int32) int32 6197 Xvfs_unregister func(*crt.TLS, unsafe.Pointer) int32 6198 Xxthreadsafe func(*crt.TLS) int32 6199 Xresult_zeroblob func(*crt.TLS, unsafe.Pointer, int32) 6200 Xresult_error_code func(*crt.TLS, unsafe.Pointer, int32) 6201 Xtest_control func(*crt.TLS, int32, ...interface{}) int32 6202 Xrandomness func(*crt.TLS, int32, unsafe.Pointer) 6203 Xcontext_db_handle func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6204 Xextended_result_codes func(*crt.TLS, unsafe.Pointer, int32) int32 6205 Xlimit func(*crt.TLS, unsafe.Pointer, int32, int32) int32 6206 Xnext_stmt func(*crt.TLS, unsafe.Pointer, unsafe.Pointer) unsafe.Pointer 6207 Xsql func(*crt.TLS, unsafe.Pointer) *int8 6208 Xstatus func(*crt.TLS, int32, *int32, *int32, int32) int32 6209 Xbackup_finish func(*crt.TLS, unsafe.Pointer) int32 6210 Xbackup_init func(*crt.TLS, unsafe.Pointer, *int8, unsafe.Pointer, *int8) unsafe.Pointer 6211 Xbackup_pagecount func(*crt.TLS, unsafe.Pointer) int32 6212 Xbackup_remaining func(*crt.TLS, unsafe.Pointer) int32 6213 Xbackup_step func(*crt.TLS, unsafe.Pointer, int32) int32 6214 Xcompileoption_get func(*crt.TLS, int32) *int8 6215 Xcompileoption_used func(*crt.TLS, *int8) int32 6216 Xcreate_function_v2 func(*crt.TLS, unsafe.Pointer, *int8, int32, int32, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer), func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer), func(*crt.TLS, unsafe.Pointer), func(*crt.TLS, unsafe.Pointer)) int32 6217 Xdb_config func(*crt.TLS, unsafe.Pointer, int32, ...interface{}) int32 6218 Xdb_mutex func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6219 Xdb_status func(*crt.TLS, unsafe.Pointer, int32, *int32, *int32, int32) int32 6220 Xextended_errcode func(*crt.TLS, unsafe.Pointer) int32 6221 Xlog func(*crt.TLS, int32, *int8, ...interface{}) 6222 Xsoft_heap_limit64 func(*crt.TLS, int64) int64 6223 Xsourceid func(*crt.TLS) *int8 6224 Xstmt_status func(*crt.TLS, unsafe.Pointer, int32, int32) int32 6225 Xstrnicmp func(*crt.TLS, *int8, *int8, int32) int32 6226 Xunlock_notify func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, *unsafe.Pointer, int32), unsafe.Pointer) int32 6227 Xwal_autocheckpoint func(*crt.TLS, unsafe.Pointer, int32) int32 6228 Xwal_checkpoint func(*crt.TLS, unsafe.Pointer, *int8) int32 6229 Xwal_hook func(*crt.TLS, unsafe.Pointer, func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, *int8, int32) int32, unsafe.Pointer) unsafe.Pointer 6230 Xblob_reopen func(*crt.TLS, unsafe.Pointer, int64) int32 6231 Xvtab_config func(*crt.TLS, unsafe.Pointer, int32, ...interface{}) int32 6232 Xvtab_on_conflict func(*crt.TLS, unsafe.Pointer) int32 6233 Xclose_v2 func(*crt.TLS, unsafe.Pointer) int32 6234 Xdb_filename func(*crt.TLS, unsafe.Pointer, *int8) *int8 6235 Xdb_readonly func(*crt.TLS, unsafe.Pointer, *int8) int32 6236 Xdb_release_memory func(*crt.TLS, unsafe.Pointer) int32 6237 Xerrstr func(*crt.TLS, int32) *int8 6238 Xstmt_busy func(*crt.TLS, unsafe.Pointer) int32 6239 Xstmt_readonly func(*crt.TLS, unsafe.Pointer) int32 6240 Xstricmp func(*crt.TLS, *int8, *int8) int32 6241 Xuri_boolean func(*crt.TLS, *int8, *int8, int32) int32 6242 Xuri_int64 func(*crt.TLS, *int8, *int8, int64) int64 6243 Xuri_parameter func(*crt.TLS, *int8, *int8) *int8 6244 Xvsnprintf func(*crt.TLS, int32, *int8, *int8, unsafe.Pointer) *int8 6245 Xwal_checkpoint_v2 func(*crt.TLS, unsafe.Pointer, *int8, int32, *int32, *int32) int32 6246 Xauto_extension func(*crt.TLS, func(*crt.TLS)) int32 6247 Xbind_blob64 func(*crt.TLS, unsafe.Pointer, int32, unsafe.Pointer, uint64, func(*crt.TLS, unsafe.Pointer)) int32 6248 Xbind_text64 func(*crt.TLS, unsafe.Pointer, int32, *int8, uint64, func(*crt.TLS, unsafe.Pointer), uint8) int32 6249 Xcancel_auto_extension func(*crt.TLS, func(*crt.TLS)) int32 6250 Xload_extension func(*crt.TLS, unsafe.Pointer, *int8, *int8, **int8) int32 6251 Xmalloc64 func(*crt.TLS, uint64) unsafe.Pointer 6252 Xmsize func(*crt.TLS, unsafe.Pointer) uint64 6253 Xrealloc64 func(*crt.TLS, unsafe.Pointer, uint64) unsafe.Pointer 6254 Xreset_auto_extension func(*crt.TLS) 6255 Xresult_blob64 func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, uint64, func(*crt.TLS, unsafe.Pointer)) 6256 Xresult_text64 func(*crt.TLS, unsafe.Pointer, *int8, uint64, func(*crt.TLS, unsafe.Pointer), uint8) 6257 Xstrglob func(*crt.TLS, *int8, *int8) int32 6258 Xvalue_dup func(*crt.TLS, unsafe.Pointer) unsafe.Pointer 6259 Xvalue_free func(*crt.TLS, unsafe.Pointer) 6260 Xresult_zeroblob64 func(*crt.TLS, unsafe.Pointer, uint64) int32 6261 Xbind_zeroblob64 func(*crt.TLS, unsafe.Pointer, int32, uint64) int32 6262 Xvalue_subtype func(*crt.TLS, unsafe.Pointer) uint32 6263 Xresult_subtype func(*crt.TLS, unsafe.Pointer, uint32) 6264 Xstatus64 func(*crt.TLS, int32, *int64, *int64, int32) int32 6265 Xstrlike func(*crt.TLS, *int8, *int8, uint32) int32 6266 Xdb_cacheflush func(*crt.TLS, unsafe.Pointer) int32 6267 Xsystem_errno func(*crt.TLS, unsafe.Pointer) int32 6268 Xtrace_v2 func(*crt.TLS, unsafe.Pointer, uint32, func(*crt.TLS, uint32, unsafe.Pointer, unsafe.Pointer, unsafe.Pointer) int32, unsafe.Pointer) int32 6269 Xexpanded_sql func(*crt.TLS, unsafe.Pointer) *int8 6270 Xset_last_insert_rowid func(*crt.TLS, unsafe.Pointer, int64) 6271 } // struct{aggregate_context *func(*struct{},int32)*struct{},aggregate_count *func(*struct{})int32,bind_blob *func(*struct{},int32,*struct{},int32,*func(*struct{}))int32,bind_double *func(*struct{},int32,float64)int32,bind_int *func(*struct{},int32,int32)int32,bind_int64 *func(*struct{},int32,int64)int32,bind_null *func(*struct{},int32)int32,bind_parameter_count *func(*struct{})int32,bind_parameter_index *func(*struct{},*int8)int32,bind_parameter_name *func(*struct{},int32)*int8,bind_text *func(*struct{},int32,*int8,int32,*func(*struct{}))int32,bind_text16 *func(*struct{},int32,*struct{},int32,*func(*struct{}))int32,bind_value *func(*struct{},int32,*struct{})int32,busy_handler *func(*struct{},*func(*struct{},int32)int32,*struct{})int32,busy_timeout *func(*struct{},int32)int32,changes *func(*struct{})int32,close *func(*struct{})int32,collation_needed *func(*struct{},*struct{},*func(*struct{},*struct{},int32,*int8))int32,collation_needed16 *func(*struct{},*struct{},*func(*struct{},*struct{},int32,*struct{}))int32,column_blob *func(*struct{},int32)*struct{},column_bytes *func(*struct{},int32)int32,column_bytes16 *func(*struct{},int32)int32,column_count *func(*struct{})int32,column_database_name *func(*struct{},int32)*int8,column_database_name16 *func(*struct{},int32)*struct{},column_decltype *func(*struct{},int32)*int8,column_decltype16 *func(*struct{},int32)*struct{},column_double *func(*struct{},int32)float64,column_int *func(*struct{},int32)int32,column_int64 *func(*struct{},int32)int64,column_name *func(*struct{},int32)*int8,column_name16 *func(*struct{},int32)*struct{},column_origin_name *func(*struct{},int32)*int8,column_origin_name16 *func(*struct{},int32)*struct{},column_table_name *func(*struct{},int32)*int8,column_table_name16 *func(*struct{},int32)*struct{},column_text *func(*struct{},int32)*uint8,column_text16 *func(*struct{},int32)*struct{},column_type *func(*struct{},int32)int32,column_value *func(*struct{},int32)*struct{},commit_hook *func(*struct{},*func(*struct{})int32,*struct{})*struct{},complete *func(*int8)int32,complete16 *func(*struct{})int32,create_collation *func(*struct{},*int8,int32,*struct{},*func(*struct{},int32,*struct{},int32,*struct{})int32)int32,create_collation16 *func(*struct{},*struct{},int32,*struct{},*func(*struct{},int32,*struct{},int32,*struct{})int32)int32,create_function *func(*struct{},*int8,int32,int32,*struct{},*func(*struct{},int32,**struct{}),*func(*struct{},int32,**struct{}),*func(*struct{}))int32,create_function16 *func(*struct{},*struct{},int32,int32,*struct{},*func(*struct{},int32,**struct{}),*func(*struct{},int32,**struct{}),*func(*struct{}))int32,create_module *func(*struct{},*int8,*struct{},*struct{})int32,data_count *func(*struct{})int32,db_handle *func(*struct{})*struct{},declare_vtab *func(*struct{},*int8)int32,enable_shared_cache *func(int32)int32,errcode *func(*struct{})int32,errmsg *func(*struct{})*int8,errmsg16 *func(*struct{})*struct{},exec *func(*struct{},*int8,*func(*struct{},int32,**int8,**int8)int32,*struct{},**int8)int32,expired *func(*struct{})int32,finalize *func(*struct{})int32,free *func(*struct{}),free_table *func(**int8),get_autocommit *func(*struct{})int32,get_auxdata *func(*struct{},int32)*struct{},get_table *func(*struct{},*int8,***int8,*int32,*int32,**int8)int32,global_recover *func()int32,interruptx *func(*struct{}),last_insert_rowid *func(*struct{})int64,libversion *func()*int8,libversion_number *func()int32,malloc *func(int32)*struct{},mprintf *func(*int8...)*int8,open *func(*int8,**struct{})int32,open16 *func(*struct{},**struct{})int32,prepare *func(*struct{},*int8,int32,**struct{},**int8)int32,prepare16 *func(*struct{},*struct{},int32,**struct{},**struct{})int32,profile *func(*struct{},*func(*struct{},*int8,uint64),*struct{})*struct{},progress_handler *func(*struct{},int32,*func(*struct{})int32,*struct{}),realloc *func(*struct{},int32)*struct{},reset *func(*struct{})int32,result_blob *func(*struct{},*struct{},int32,*func(*struct{})),result_double *func(*struct{},float64),result_error *func(*struct{},*int8,int32),result_error16 *func(*struct{},*struct{},int32),result_int *func(*struct{},int32),result_int64 *func(*struct{},int64),result_null *func(*struct{}),result_text *func(*struct{},*int8,int32,*func(*struct{})),result_text16 *func(*struct{},*struct{},int32,*func(*struct{})),result_text16be *func(*struct{},*struct{},int32,*func(*struct{})),result_text16le *func(*struct{},*struct{},int32,*func(*struct{})),result_value *func(*struct{},*struct{}),rollback_hook *func(*struct{},*func(*struct{}),*struct{})*struct{},set_authorizer *func(*struct{},*func(*struct{},int32,*int8,*int8,*int8,*int8)int32,*struct{})int32,set_auxdata *func(*struct{},int32,*struct{},*func(*struct{})),snprintf *func(int32,*int8,*int8...)*int8,step *func(*struct{})int32,table_column_metadata *func(*struct{},*int8,*int8,*int8,**int8,**int8,*int32,*int32,*int32)int32,thread_cleanup *func(),total_changes *func(*struct{})int32,trace *func(*struct{},*func(*struct{},*int8),*struct{})*struct{},transfer_bindings *func(*struct{},*struct{})int32,update_hook *func(*struct{},*func(*struct{},int32,*int8,*int8,int64),*struct{})*struct{},user_data *func(*struct{})*struct{},value_blob *func(*struct{})*struct{},value_bytes *func(*struct{})int32,value_bytes16 *func(*struct{})int32,value_double *func(*struct{})float64,value_int *func(*struct{})int32,value_int64 *func(*struct{})int64,value_numeric_type *func(*struct{})int32,value_text *func(*struct{})*uint8,value_text16 *func(*struct{})*struct{},value_text16be *func(*struct{})*struct{},value_text16le *func(*struct{})*struct{},value_type *func(*struct{})int32,vmprintf *func(*int8,*struct{})*int8,overload_function *func(*struct{},*int8,int32)int32,prepare_v2 *func(*struct{},*int8,int32,**struct{},**int8)int32,prepare16_v2 *func(*struct{},*struct{},int32,**struct{},**struct{})int32,clear_bindings *func(*struct{})int32,create_module_v2 *func(*struct{},*int8,*struct{},*struct{},*func(*struct{}))int32,bind_zeroblob *func(*struct{},int32,int32)int32,blob_bytes *func(*struct{})int32,blob_close *func(*struct{})int32,blob_open *func(*struct{},*int8,*int8,*int8,int64,int32,**struct{})int32,blob_read *func(*struct{},*struct{},int32,int32)int32,blob_write *func(*struct{},*struct{},int32,int32)int32,create_collation_v2 *func(*struct{},*int8,int32,*struct{},*func(*struct{},int32,*struct{},int32,*struct{})int32,*func(*struct{}))int32,file_control *func(*struct{},*int8,int32,*struct{})int32,memory_highwater *func(int32)int64,memory_used *func()int64,mutex_alloc *func(int32)*struct{},mutex_enter *func(*struct{}),mutex_free *func(*struct{}),mutex_leave *func(*struct{}),mutex_try *func(*struct{})int32,open_v2 *func(*int8,**struct{},int32,*int8)int32,release_memory *func(int32)int32,result_error_nomem *func(*struct{}),result_error_toobig *func(*struct{}),sleep *func(int32)int32,soft_heap_limit *func(int32),vfs_find *func(*int8)*struct{},vfs_register *func(*struct{},int32)int32,vfs_unregister *func(*struct{})int32,xthreadsafe *func()int32,result_zeroblob *func(*struct{},int32),result_error_code *func(*struct{},int32),test_control *func(int32...)int32,randomness *func(int32,*struct{}),context_db_handle *func(*struct{})*struct{},extended_result_codes *func(*struct{},int32)int32,limit *func(*struct{},int32,int32)int32,next_stmt *func(*struct{},*struct{})*struct{},sql *func(*struct{})*int8,status *func(int32,*int32,*int32,int32)int32,backup_finish *func(*struct{})int32,backup_init *func(*struct{},*int8,*struct{},*int8)*struct{},backup_pagecount *func(*struct{})int32,backup_remaining *func(*struct{})int32,backup_step *func(*struct{},int32)int32,compileoption_get *func(int32)*int8,compileoption_used *func(*int8)int32,create_function_v2 *func(*struct{},*int8,int32,int32,*struct{},*func(*struct{},int32,**struct{}),*func(*struct{},int32,**struct{}),*func(*struct{}),*func(*struct{}))int32,db_config *func(*struct{},int32...)int32,db_mutex *func(*struct{})*struct{},db_status *func(*struct{},int32,*int32,*int32,int32)int32,extended_errcode *func(*struct{})int32,log *func(int32,*int8...),soft_heap_limit64 *func(int64)int64,sourceid *func()*int8,stmt_status *func(*struct{},int32,int32)int32,strnicmp *func(*int8,*int8,int32)int32,unlock_notify *func(*struct{},*func(**struct{},int32),*struct{})int32,wal_autocheckpoint *func(*struct{},int32)int32,wal_checkpoint *func(*struct{},*int8)int32,wal_hook *func(*struct{},*func(*struct{},*struct{},*int8,int32)int32,*struct{})*struct{},blob_reopen *func(*struct{},int64)int32,vtab_config *func(*struct{},int32...)int32,vtab_on_conflict *func(*struct{})int32,close_v2 *func(*struct{})int32,db_filename *func(*struct{},*int8)*int8,db_readonly *func(*struct{},*int8)int32,db_release_memory *func(*struct{})int32,errstr *func(int32)*int8,stmt_busy *func(*struct{})int32,stmt_readonly *func(*struct{})int32,stricmp *func(*int8,*int8)int32,uri_boolean *func(*int8,*int8,int32)int32,uri_int64 *func(*int8,*int8,int64)int64,uri_parameter *func(*int8,*int8)*int8,vsnprintf *func(int32,*int8,*int8,*struct{})*int8,wal_checkpoint_v2 *func(*struct{},*int8,int32,*int32,*int32)int32,auto_extension *func(*func())int32,bind_blob64 *func(*struct{},int32,*struct{},uint64,*func(*struct{}))int32,bind_text64 *func(*struct{},int32,*int8,uint64,*func(*struct{}),uint8)int32,cancel_auto_extension *func(*func())int32,load_extension *func(*struct{},*int8,*int8,**int8)int32,malloc64 *func(uint64)*struct{},msize *func(*struct{})uint64,realloc64 *func(*struct{},uint64)*struct{},reset_auto_extension *func(),result_blob64 *func(*struct{},*struct{},uint64,*func(*struct{})),result_text64 *func(*struct{},*int8,uint64,*func(*struct{}),uint8),strglob *func(*int8,*int8)int32,value_dup *func(*struct{})*struct{},value_free *func(*struct{}),result_zeroblob64 *func(*struct{},uint64)int32,bind_zeroblob64 *func(*struct{},int32,uint64)int32,value_subtype *func(*struct{})uint32,result_subtype *func(*struct{},uint32),status64 *func(int32,*int64,*int64,int32)int32,strlike *func(*int8,*int8,uint32)int32,db_cacheflush *func(*struct{})int32,system_errno *func(*struct{})int32,trace_v2 *func(*struct{},uint32,*func(uint32,*struct{},*struct{},*struct{})int32,*struct{})int32,expanded_sql *func(*struct{})*int8,set_last_insert_rowid *func(*struct{},int64)} 6272 6273 type t18 struct { 6274 X [0]struct { 6275 Xin [64]uint8 6276 Xin32 [16]uint32 6277 } 6278 U [64]byte 6279 } // union{in [64]uint8,in32 [16]uint32} 6280 func str(n int) *int8 { return (*int8)(unsafe.Pointer(&strTab[n])) } 6281 func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) } 6282 6283 var strTab = []byte("walthread1\x00walthread2\x00walthread3\x00walthread4\x00walthread5\x00cgt_pager_1\x00dynamic_triggers\x00checkpoint_starvation_1\x00checkpoint_starvation_2\x00create_drop_index_1\x00lookaside1\x00vacuum1\x00stress1\x00stress2\x00-multiplexor\x00Failed to install multiplexor VFS (%d)\x0a\x00Running %s for %d seconds...\x0a\x00%d errors out of %d tests\x0a\x00Usage: %s [-multiplexor] [testname|testprefix*]...\x0a\x00Available tests are:\x0a\x00 %s\x0a\x00test.db\x00PRAGMA journal_mode = WAL;CREATE TABLE t1(x PRIMARY KEY);INSERT INTO t1 VALUES(randomblob(100));INSERT INTO t1 VALUES(randomblob(100));INSERT INTO t1 SELECT md5sum(x) FROM t1;\x00open\x00md5sum\x00PRAGMA synchronous=OFF\x00sqlite3_%s() - %s (%d)\x000123456789abcdef\x00%s\x00SELECT md5sum(x) FROM t1 WHERE rowid != (SELECT max(rowid) FROM t1)\x00SELECT x FROM t1 WHERE rowid = (SELECT max(rowid) FROM t1)\x00BEGIN\x00COMMIT\x00Failed read: %s %s %s\x00BEGIN;INSERT INTO t1 VALUES(randomblob(100));INSERT INTO t1 VALUES(randomblob(100));INSERT INTO t1 SELECT md5sum(x) FROM t1;COMMIT;\x00%d iterations\x00reset\x00Cannot discern type: \"%s\"\x00prepare_v2\x00%s:%i: assertion failure in %s: %s\x0a\x00../../../sqlite.org/sqlite-src-3190300/test/threadtest3.c\x000==strcmp(sqlite3_sql(pRet->pStmt), zSql)\x00getSqlStatement\x00PRAGMA integrity_check\x00ok\x00%z\x0a%s\x00* - no such table: *\x00%s: (%d) \"%s\" at line %d\x0a\x00Warning\x00Error\x00PRAGMA wal_checkpoint\x00%d checkpoints\x00Thread %d says: %s\x0a\x00...\x00CREATE TABLE t1(x INTEGER PRIMARY KEY, y UNIQUE)\x00PRAGMA journal_mode = WAL\x00PRAGMA journal_mode = DELETE\x00INSERT INTO t1 VALUES(NULL, randomblob(100))\x00test.db-journal\x00test.db-wal\x00File system looks incorrect (%d, %d)\x00W %d R %d\x00PRAGMA journal_mode = WAL;CREATE TABLE t1(cnt PRIMARY KEY, sum1, sum2);CREATE INDEX i1 ON t1(sum1);CREATE INDEX i2 ON t1(sum2);INSERT INTO t1 VALUES(0, 0, 0);\x00PRAGMA wal_autocheckpoint = 10\x00SELECT max(cnt) FROM t1\x00SELECT sum(cnt) FROM t1\x00SELECT sum(sum1) FROM t1\x00INSERT INTO t1 VALUES(:iNextWrite, :iSum1, :iSum2)\x00PRAGMA journal_mode = WAL;CREATE TABLE t1(a INTEGER PRIMARY KEY, b UNIQUE);\x00PRAGMA wal_autocheckpoint = 15;\x00REPLACE INTO t1 VALUES(:iRow, randomblob(300))\x00PRAGMA wal_autocheckpoint = 0;PRAGMA page_size = 1024;PRAGMA journal_mode = WAL;CREATE TABLE t1(x);BEGIN;INSERT INTO t1 VALUES(randomblob(900));INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 2 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 4 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 8 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 16 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 32 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 64 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 128 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 256 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 512 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 1024 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 2048 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 4096 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 8192 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 16384 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 32768 */INSERT INTO t1 SELECT randomblob(900) FROM t1; /* 65536 */COMMIT;\x00test_sv.db\x00test_sv.db-wal\x00 WAL file is %d bytes,\x00 DB file is %d.\x0a\x00no such file: %s\x00SELECT count(*) FROM t1\x00Bad row count: %d\x00PRAGMA cache_size = 2000;PRAGMA page_size = 1024;CREATE TABLE t1(a INTEGER PRIMARY KEY, b BLOB);\x00INSERT INTO t1 VALUES(:iRow, zeroblob(:iBlob))\x00UPDATE t1 SET b = zeroblob(:iBlob) WHERE a = :iRow\x00SELECT * FROM t1 WHERE a = :iRow\x00PRAGMA page_size = 1024;PRAGMA journal_mode = WAL;CREATE TABLE t1(x, y);CREATE TABLE t2(x, y);CREATE TABLE t3(x, y);CREATE TABLE t4(x, y);CREATE TABLE t5(x, y);CREATE TABLE t6(x, y);CREATE TABLE t7(x, y);CREATE TABLE t8(x, y);CREATE TABLE t9(x, y);\x00INSERT INTO t1 VALUES(:iX, :iY+1)\x00DELETE FROM t1 WHERE x = :iX\x00%d inserts, %d deletes\x00CREATE TRIGGER itr%d BEFORE INSERT ON t%d BEGIN INSERT INTO t%d VALUES(new.x, new.y);END;\x00CREATE TRIGGER dtr%d BEFORE DELETE ON t%d BEGIN DELETE FROM t%d WHERE x = old.x; END;\x00DROP TRIGGER itr%d\x00DROP TRIGGER dtr%d\x00%d created, %d dropped\x00WAL failed to grow - %d frames\x00PRAGMA page_size = 1024;PRAGMA journal_mode = WAL;CREATE TABLE t1(x);\x00INSERT INTO t1 VALUES(randomblob(1200))\x00 Checkpoint mode : %s\x0a\x00PASSIVE\x00RESTART\x00 Peak WAL : %d frames\x0a\x00 Transaction count: %d transactions\x0a\x00SELECT count(x) FROM t1\x00Isolation failure - %lld %lld\x00WAL grew too large - %d frames\x00CREATE TABLE t11(a, b, c, d);WITH data(x) AS (SELECT 1 UNION ALL SELECT x+1 FROM data WHERE x<100) INSERT INTO t11 SELECT x,x,x,x FROM data;\x00DROP INDEX IF EXISTS i1;DROP INDEX IF EXISTS i2;DROP INDEX IF EXISTS i3;DROP INDEX IF EXISTS i4;CREATE INDEX IF NOT EXISTS i1 ON t11(a);CREATE INDEX IF NOT EXISTS i2 ON t11(b);CREATE INDEX IF NOT EXISTS i3 ON t11(c);CREATE INDEX IF NOT EXISTS i4 ON t11(d);SELECT * FROM t11 ORDER BY a;SELECT * FROM t11 ORDER BY b;SELECT * FROM t11 ORDER BY c;SELECT * FROM t11 ORDER BY d;\x00CREATE TABLE t1(x PRIMARY KEY) WITHOUT ROWID;WITH data(x,y) AS ( SELECT 1, quote(randomblob(750)) UNION ALL SELECT x*2, y||y FROM data WHERE x<5) INSERT INTO t1 SELECT y FROM data;CREATE TABLE t3(x PRIMARY KEY,i) WITHOUT ROWID;INSERT INTO t3 VALUES(1, 1);CREATE TABLE t2(x,y,z);INSERT INTO t2 VALUES(randomblob(50), randomblob(50), randomblob(50));\x00SELECT 1 FROM t1\x00SELECT length(x||y||z) FROM t2\x00finalize\x00BEGIN;UPDATE t3 SET i=i+1 WHERE x=1;ROLLBACK;\x00CREATE TABLE t1(x PRIMARY KEY, y BLOB);CREATE INDEX i1 ON t1(y);\x00WITH loop(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM loop WHERE i<100) INSERT INTO t1 SELECT randomblob(50), randomblob(2500) FROM loop\x00DELETE FROM t1 WHERE rowid = :i\x00SELECT * FROM t1 ORDER BY x\x00VACUUM\x00CREATE TABLE IF NOT EXISTS t1(a PRIMARY KEY, b)\x00DROP TABLE IF EXISTS t1\x00SELECT * FROM sqlite_master;\x00SELECT * FROM t1 ORDER BY a;\x00read t1 %d/%d attempts\x00WITH loop(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM loop LIMIT 200) INSERT INTO t1 VALUES(randomblob(60), randomblob(60));\x00wrote t1 %d/%d attempts\x00DELETE FROM t1 WHERE (rowid % 4)==:i\x00deleted from t1 %d/%d attempts\x00CREATE TABLE IF NOT EXISTS t0(x PRIMARY KEY, y, z);CREATE INDEX IF NOT EXISTS i0 ON t0(y);\x00CREATE TABLE IF NOT EXISTS t%d(x PRIMARY KEY, y, z);\x00DROP TABLE IF EXISTS t%d;\x00SELECT * FROM t0 WHERE z = 'small'\x00SELECT * FROM t0 WHERE z = 'big'\x00INSERT INTO t0 VALUES(hex(random()), hex(randomblob(200)), 'small');\x00INSERT INTO t0 VALUES(hex(random()), hex(randomblob(57)), 'big');\x00UPDATE t0 SET y = hex(randomblob(200)) WHERE x LIKE hex((%d %% 5)) AND z='small';\x00UPDATE t0 SET y = hex(randomblob(57)) WHERE x LIKE hex(%d %% 5) AND z='big';\x00DELETE FROM t0 WHERE x LIKE hex(%d %% 5) AND z='small';\x00DELETE FROM t0 WHERE x LIKE hex(%d %% 5) AND z='big';\x00PRAGMA journal_mode = %q\x00delete\x00wal\x00ok %d/%d\x00*\x00../../../sqlite.org/sqlite-src-3190300/src/test_multiplex.c\x00pOrigVfs!=&gMultiplex.sThisVfs\x00multiplex\x00sqlite3_multiplex_initialize\x00zName || (flags & SQLITE_OPEN_DELETEONCLOSE)\x00truncate\x00chunksize\x00multiplexOpen\x00%03d\x00zOut[n]=='\\0'\x00multiplexFilename\x00multiplexor.xAccess failure on %s\x00multiplexor.xOpen failure on %s\x00multiplex_truncate\x00on\x001\x00off\x000\x00multiplex/%z\x00multiplex_control\x00")