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