gitlab.com/CoiaPrant/sqlite3@v1.19.1/internal/mptest/main_openbsd_amd64.go (about) 1 // Code generated by 'ccgo -export-defines "" -ignore-unsupported-alignment -o internal/mptest/main_openbsd_amd64.go -trace-translation-units testdata/sqlite-src-3390300/mptest/mptest.c -Itestdata/sqlite-amalgamation-3390300 -l gitlab.com/CoiaPrant/sqlite3/lib -full-path-comments -DNDEBUG -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DSQLITE_CORE -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MUTEX_APPDEF=1 -DSQLITE_MUTEX_NOOP -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_OS_UNIX=1', DO NOT EDIT. 2 3 package main 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 11 "modernc.org/libc" 12 "modernc.org/libc/sys/types" 13 "gitlab.com/CoiaPrant/sqlite3/lib" 14 ) 15 16 var _ = math.Pi 17 var _ reflect.Kind 18 var _ atomic.Value 19 var _ unsafe.Pointer 20 var _ *libc.TLS 21 var _ types.Size_t 22 23 func main() { libc.Start(main1) } 24 25 const ( 26 BIG_ENDIAN = 4321 27 BUFSIZ = 1024 28 BYTE_ORDER = 1234 29 DEFAULT_TIMEOUT = 10000 30 E2BIG = 7 31 EACCES = 13 32 EADDRINUSE = 48 33 EADDRNOTAVAIL = 49 34 EAFNOSUPPORT = 47 35 EAGAIN = 35 36 EALREADY = 37 37 EAUTH = 80 38 EBADF = 9 39 EBADMSG = 92 40 EBADRPC = 72 41 EBUSY = 16 42 ECANCELED = 88 43 ECHILD = 10 44 ECONNABORTED = 53 45 ECONNREFUSED = 61 46 ECONNRESET = 54 47 EDEADLK = 11 48 EDESTADDRREQ = 39 49 EDOM = 33 50 EDQUOT = 69 51 EEXIST = 17 52 EFAULT = 14 53 EFBIG = 27 54 EFTYPE = 79 55 EHOSTDOWN = 64 56 EHOSTUNREACH = 65 57 EIDRM = 89 58 EILSEQ = 84 59 EINPROGRESS = 36 60 EINTR = 4 61 EINVAL = 22 62 EIO = 5 63 EIPSEC = 82 64 EISCONN = 56 65 EISDIR = 21 66 ELAST = 95 67 ELOOP = 62 68 EMEDIUMTYPE = 86 69 EMFILE = 24 70 EMLINK = 31 71 EMSGSIZE = 40 72 ENAMETOOLONG = 63 73 ENEEDAUTH = 81 74 ENETDOWN = 50 75 ENETRESET = 52 76 ENETUNREACH = 51 77 ENFILE = 23 78 ENOATTR = 83 79 ENOBUFS = 55 80 ENODEV = 19 81 ENOENT = 2 82 ENOEXEC = 8 83 ENOLCK = 77 84 ENOMEDIUM = 85 85 ENOMEM = 12 86 ENOMSG = 90 87 ENOPROTOOPT = 42 88 ENOSPC = 28 89 ENOSYS = 78 90 ENOTBLK = 15 91 ENOTCONN = 57 92 ENOTDIR = 20 93 ENOTEMPTY = 66 94 ENOTRECOVERABLE = 93 95 ENOTSOCK = 38 96 ENOTSUP = 91 97 ENOTTY = 25 98 ENXIO = 6 99 EOF = -1 100 EOPNOTSUPP = 45 101 EOVERFLOW = 87 102 EOWNERDEAD = 94 103 EPERM = 1 104 EPFNOSUPPORT = 46 105 EPIPE = 32 106 EPROCLIM = 67 107 EPROCUNAVAIL = 76 108 EPROGMISMATCH = 75 109 EPROGUNAVAIL = 74 110 EPROTO = 95 111 EPROTONOSUPPORT = 43 112 EPROTOTYPE = 41 113 ERANGE = 34 114 EREMOTE = 71 115 EROFS = 30 116 ERPCMISMATCH = 73 117 ESHUTDOWN = 58 118 ESOCKTNOSUPPORT = 44 119 ESPIPE = 29 120 ESRCH = 3 121 ESTALE = 70 122 ETIMEDOUT = 60 123 ETOOMANYREFS = 59 124 ETXTBSY = 26 125 EUSERS = 68 126 EWOULDBLOCK = 35 127 EXDEV = 18 128 EXIT_FAILURE = 1 129 EXIT_SUCCESS = 0 130 FILENAME_MAX = 1024 131 FOPEN_MAX = 20 132 FTS5_TOKENIZE_AUX = 0x0008 133 FTS5_TOKENIZE_DOCUMENT = 0x0004 134 FTS5_TOKENIZE_PREFIX = 0x0002 135 FTS5_TOKENIZE_QUERY = 0x0001 136 FTS5_TOKEN_COLOCATED = 0x0001 137 FULLY_WITHIN = 2 138 F_LOCK = 1 139 F_OK = 0 140 F_TEST = 3 141 F_TLOCK = 2 142 F_ULOCK = 0 143 HAVE_USLEEP = 1 144 KBIND_BLOCK_MAX = 2 145 KBIND_DATA_MAX = 24 146 LITTLE_ENDIAN = 1234 147 L_INCR = 1 148 L_SET = 0 149 L_XTND = 2 150 L_ctermid = 1024 151 L_tmpnam = 1024 152 MX_ARG = 2 153 NDEBUG = 1 154 NOT_WITHIN = 0 155 PARTLY_WITHIN = 1 156 PDP_ENDIAN = 3412 157 P_tmpdir = "/tmp/" 158 RAND_MAX = 0x7fffffff 159 R_OK = 0x04 160 SEEK_CUR = 1 161 SEEK_END = 2 162 SEEK_SET = 0 163 SQLITE3_H = 0 164 SQLITE3_TEXT = 3 165 SQLITE_ABORT = 4 166 SQLITE_ABORT_ROLLBACK = 516 167 SQLITE_ACCESS_EXISTS = 0 168 SQLITE_ACCESS_READ = 2 169 SQLITE_ACCESS_READWRITE = 1 170 SQLITE_ALTER_TABLE = 26 171 SQLITE_ANALYZE = 28 172 SQLITE_ANY = 5 173 SQLITE_API = 0 174 SQLITE_APICALL = 0 175 SQLITE_ATTACH = 24 176 SQLITE_AUTH = 23 177 SQLITE_AUTH_USER = 279 178 SQLITE_BLOB = 4 179 SQLITE_BUSY = 5 180 SQLITE_BUSY_RECOVERY = 261 181 SQLITE_BUSY_SNAPSHOT = 517 182 SQLITE_BUSY_TIMEOUT = 773 183 SQLITE_CALLBACK = 0 184 SQLITE_CANTOPEN = 14 185 SQLITE_CANTOPEN_CONVPATH = 1038 186 SQLITE_CANTOPEN_DIRTYWAL = 1294 187 SQLITE_CANTOPEN_FULLPATH = 782 188 SQLITE_CANTOPEN_ISDIR = 526 189 SQLITE_CANTOPEN_NOTEMPDIR = 270 190 SQLITE_CANTOPEN_SYMLINK = 1550 191 SQLITE_CDECL = 0 192 SQLITE_CHANGESETAPPLY_INVERT = 0x0002 193 SQLITE_CHANGESETAPPLY_NOSAVEPOINT = 0x0001 194 SQLITE_CHANGESETSTART_INVERT = 0x0002 195 SQLITE_CHANGESET_ABORT = 2 196 SQLITE_CHANGESET_CONFLICT = 3 197 SQLITE_CHANGESET_CONSTRAINT = 4 198 SQLITE_CHANGESET_DATA = 1 199 SQLITE_CHANGESET_FOREIGN_KEY = 5 200 SQLITE_CHANGESET_NOTFOUND = 2 201 SQLITE_CHANGESET_OMIT = 0 202 SQLITE_CHANGESET_REPLACE = 1 203 SQLITE_CHECKPOINT_FULL = 1 204 SQLITE_CHECKPOINT_PASSIVE = 0 205 SQLITE_CHECKPOINT_RESTART = 2 206 SQLITE_CHECKPOINT_TRUNCATE = 3 207 SQLITE_CONFIG_COVERING_INDEX_SCAN = 20 208 SQLITE_CONFIG_GETMALLOC = 5 209 SQLITE_CONFIG_GETMUTEX = 11 210 SQLITE_CONFIG_GETPCACHE = 15 211 SQLITE_CONFIG_GETPCACHE2 = 19 212 SQLITE_CONFIG_HEAP = 8 213 SQLITE_CONFIG_LOG = 16 214 SQLITE_CONFIG_LOOKASIDE = 13 215 SQLITE_CONFIG_MALLOC = 4 216 SQLITE_CONFIG_MEMDB_MAXSIZE = 29 217 SQLITE_CONFIG_MEMSTATUS = 9 218 SQLITE_CONFIG_MMAP_SIZE = 22 219 SQLITE_CONFIG_MULTITHREAD = 2 220 SQLITE_CONFIG_MUTEX = 10 221 SQLITE_CONFIG_PAGECACHE = 7 222 SQLITE_CONFIG_PCACHE = 14 223 SQLITE_CONFIG_PCACHE2 = 18 224 SQLITE_CONFIG_PCACHE_HDRSZ = 24 225 SQLITE_CONFIG_PMASZ = 25 226 SQLITE_CONFIG_SCRATCH = 6 227 SQLITE_CONFIG_SERIALIZED = 3 228 SQLITE_CONFIG_SINGLETHREAD = 1 229 SQLITE_CONFIG_SMALL_MALLOC = 27 230 SQLITE_CONFIG_SORTERREF_SIZE = 28 231 SQLITE_CONFIG_SQLLOG = 21 232 SQLITE_CONFIG_STMTJRNL_SPILL = 26 233 SQLITE_CONFIG_URI = 17 234 SQLITE_CONFIG_WIN32_HEAPSIZE = 23 235 SQLITE_CONSTRAINT = 19 236 SQLITE_CONSTRAINT_CHECK = 275 237 SQLITE_CONSTRAINT_COMMITHOOK = 531 238 SQLITE_CONSTRAINT_DATATYPE = 3091 239 SQLITE_CONSTRAINT_FOREIGNKEY = 787 240 SQLITE_CONSTRAINT_FUNCTION = 1043 241 SQLITE_CONSTRAINT_NOTNULL = 1299 242 SQLITE_CONSTRAINT_PINNED = 2835 243 SQLITE_CONSTRAINT_PRIMARYKEY = 1555 244 SQLITE_CONSTRAINT_ROWID = 2579 245 SQLITE_CONSTRAINT_TRIGGER = 1811 246 SQLITE_CONSTRAINT_UNIQUE = 2067 247 SQLITE_CONSTRAINT_VTAB = 2323 248 SQLITE_COPY = 0 249 SQLITE_CORE = 1 250 SQLITE_CORRUPT = 11 251 SQLITE_CORRUPT_INDEX = 779 252 SQLITE_CORRUPT_SEQUENCE = 523 253 SQLITE_CORRUPT_VTAB = 267 254 SQLITE_CREATE_INDEX = 1 255 SQLITE_CREATE_TABLE = 2 256 SQLITE_CREATE_TEMP_INDEX = 3 257 SQLITE_CREATE_TEMP_TABLE = 4 258 SQLITE_CREATE_TEMP_TRIGGER = 5 259 SQLITE_CREATE_TEMP_VIEW = 6 260 SQLITE_CREATE_TRIGGER = 7 261 SQLITE_CREATE_VIEW = 8 262 SQLITE_CREATE_VTABLE = 29 263 SQLITE_DBCONFIG_DEFENSIVE = 1010 264 SQLITE_DBCONFIG_DQS_DDL = 1014 265 SQLITE_DBCONFIG_DQS_DML = 1013 266 SQLITE_DBCONFIG_ENABLE_FKEY = 1002 267 SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004 268 SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005 269 SQLITE_DBCONFIG_ENABLE_QPSG = 1007 270 SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003 271 SQLITE_DBCONFIG_ENABLE_VIEW = 1015 272 SQLITE_DBCONFIG_LEGACY_ALTER_TABLE = 1012 273 SQLITE_DBCONFIG_LEGACY_FILE_FORMAT = 1016 274 SQLITE_DBCONFIG_LOOKASIDE = 1001 275 SQLITE_DBCONFIG_MAINDBNAME = 1000 276 SQLITE_DBCONFIG_MAX = 1017 277 SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006 278 SQLITE_DBCONFIG_RESET_DATABASE = 1009 279 SQLITE_DBCONFIG_TRIGGER_EQP = 1008 280 SQLITE_DBCONFIG_TRUSTED_SCHEMA = 1017 281 SQLITE_DBCONFIG_WRITABLE_SCHEMA = 1011 282 SQLITE_DBSTATUS_CACHE_HIT = 7 283 SQLITE_DBSTATUS_CACHE_MISS = 8 284 SQLITE_DBSTATUS_CACHE_SPILL = 12 285 SQLITE_DBSTATUS_CACHE_USED = 1 286 SQLITE_DBSTATUS_CACHE_USED_SHARED = 11 287 SQLITE_DBSTATUS_CACHE_WRITE = 9 288 SQLITE_DBSTATUS_DEFERRED_FKS = 10 289 SQLITE_DBSTATUS_LOOKASIDE_HIT = 4 290 SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL = 6 291 SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE = 5 292 SQLITE_DBSTATUS_LOOKASIDE_USED = 0 293 SQLITE_DBSTATUS_MAX = 12 294 SQLITE_DBSTATUS_SCHEMA_USED = 2 295 SQLITE_DBSTATUS_STMT_USED = 3 296 SQLITE_DELETE = 9 297 SQLITE_DENY = 1 298 SQLITE_DEPRECATED = 0 299 SQLITE_DESERIALIZE_FREEONCLOSE = 1 300 SQLITE_DESERIALIZE_READONLY = 4 301 SQLITE_DESERIALIZE_RESIZEABLE = 2 302 SQLITE_DETACH = 25 303 SQLITE_DETERMINISTIC = 0x000000800 304 SQLITE_DIRECTONLY = 0x000080000 305 SQLITE_DONE = 101 306 SQLITE_DROP_INDEX = 10 307 SQLITE_DROP_TABLE = 11 308 SQLITE_DROP_TEMP_INDEX = 12 309 SQLITE_DROP_TEMP_TABLE = 13 310 SQLITE_DROP_TEMP_TRIGGER = 14 311 SQLITE_DROP_TEMP_VIEW = 15 312 SQLITE_DROP_TRIGGER = 16 313 SQLITE_DROP_VIEW = 17 314 SQLITE_DROP_VTABLE = 30 315 SQLITE_EMPTY = 16 316 SQLITE_ENABLE_COLUMN_METADATA = 1 317 SQLITE_ENABLE_FTS5 = 1 318 SQLITE_ENABLE_GEOPOLY = 1 319 SQLITE_ENABLE_MATH_FUNCTIONS = 1 320 SQLITE_ENABLE_MEMORY_MANAGEMENT = 1 321 SQLITE_ENABLE_OFFSET_SQL_FUNC = 1 322 SQLITE_ENABLE_PREUPDATE_HOOK = 1 323 SQLITE_ENABLE_RBU = 1 324 SQLITE_ENABLE_RTREE = 1 325 SQLITE_ENABLE_SESSION = 1 326 SQLITE_ENABLE_SNAPSHOT = 1 327 SQLITE_ENABLE_STAT4 = 1 328 SQLITE_ENABLE_UNLOCK_NOTIFY = 1 329 SQLITE_ERROR = 1 330 SQLITE_ERROR_MISSING_COLLSEQ = 257 331 SQLITE_ERROR_RETRY = 513 332 SQLITE_ERROR_SNAPSHOT = 769 333 SQLITE_EXPERIMENTAL = 0 334 SQLITE_FAIL = 3 335 SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31 336 SQLITE_FCNTL_BUSYHANDLER = 15 337 SQLITE_FCNTL_CHUNK_SIZE = 6 338 SQLITE_FCNTL_CKPT_DONE = 37 339 SQLITE_FCNTL_CKPT_START = 39 340 SQLITE_FCNTL_CKSM_FILE = 41 341 SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32 342 SQLITE_FCNTL_COMMIT_PHASETWO = 22 343 SQLITE_FCNTL_DATA_VERSION = 35 344 SQLITE_FCNTL_EXTERNAL_READER = 40 345 SQLITE_FCNTL_FILE_POINTER = 7 346 SQLITE_FCNTL_GET_LOCKPROXYFILE = 2 347 SQLITE_FCNTL_HAS_MOVED = 20 348 SQLITE_FCNTL_JOURNAL_POINTER = 28 349 SQLITE_FCNTL_LAST_ERRNO = 4 350 SQLITE_FCNTL_LOCKSTATE = 1 351 SQLITE_FCNTL_LOCK_TIMEOUT = 34 352 SQLITE_FCNTL_MMAP_SIZE = 18 353 SQLITE_FCNTL_OVERWRITE = 11 354 SQLITE_FCNTL_PDB = 30 355 SQLITE_FCNTL_PERSIST_WAL = 10 356 SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13 357 SQLITE_FCNTL_PRAGMA = 14 358 SQLITE_FCNTL_RBU = 26 359 SQLITE_FCNTL_RESERVE_BYTES = 38 360 SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33 361 SQLITE_FCNTL_SET_LOCKPROXYFILE = 3 362 SQLITE_FCNTL_SIZE_HINT = 5 363 SQLITE_FCNTL_SIZE_LIMIT = 36 364 SQLITE_FCNTL_SYNC = 21 365 SQLITE_FCNTL_SYNC_OMITTED = 8 366 SQLITE_FCNTL_TEMPFILENAME = 16 367 SQLITE_FCNTL_TRACE = 19 368 SQLITE_FCNTL_VFSNAME = 12 369 SQLITE_FCNTL_VFS_POINTER = 27 370 SQLITE_FCNTL_WAL_BLOCK = 24 371 SQLITE_FCNTL_WIN32_AV_RETRY = 9 372 SQLITE_FCNTL_WIN32_GET_HANDLE = 29 373 SQLITE_FCNTL_WIN32_SET_HANDLE = 23 374 SQLITE_FCNTL_ZIPVFS = 25 375 SQLITE_FLOAT = 2 376 SQLITE_FORMAT = 24 377 SQLITE_FULL = 13 378 SQLITE_FUNCTION = 31 379 SQLITE_GET_LOCKPROXYFILE = 2 380 SQLITE_IGNORE = 2 381 SQLITE_INDEX_CONSTRAINT_EQ = 2 382 SQLITE_INDEX_CONSTRAINT_FUNCTION = 150 383 SQLITE_INDEX_CONSTRAINT_GE = 32 384 SQLITE_INDEX_CONSTRAINT_GLOB = 66 385 SQLITE_INDEX_CONSTRAINT_GT = 4 386 SQLITE_INDEX_CONSTRAINT_IS = 72 387 SQLITE_INDEX_CONSTRAINT_ISNOT = 69 388 SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70 389 SQLITE_INDEX_CONSTRAINT_ISNULL = 71 390 SQLITE_INDEX_CONSTRAINT_LE = 8 391 SQLITE_INDEX_CONSTRAINT_LIKE = 65 392 SQLITE_INDEX_CONSTRAINT_LIMIT = 73 393 SQLITE_INDEX_CONSTRAINT_LT = 16 394 SQLITE_INDEX_CONSTRAINT_MATCH = 64 395 SQLITE_INDEX_CONSTRAINT_NE = 68 396 SQLITE_INDEX_CONSTRAINT_OFFSET = 74 397 SQLITE_INDEX_CONSTRAINT_REGEXP = 67 398 SQLITE_INDEX_SCAN_UNIQUE = 1 399 SQLITE_INNOCUOUS = 0x000200000 400 SQLITE_INSERT = 18 401 SQLITE_INTEGER = 1 402 SQLITE_INTERNAL = 2 403 SQLITE_INTERRUPT = 9 404 SQLITE_IOCAP_ATOMIC = 0x00000001 405 SQLITE_IOCAP_ATOMIC16K = 0x00000040 406 SQLITE_IOCAP_ATOMIC1K = 0x00000004 407 SQLITE_IOCAP_ATOMIC2K = 0x00000008 408 SQLITE_IOCAP_ATOMIC32K = 0x00000080 409 SQLITE_IOCAP_ATOMIC4K = 0x00000010 410 SQLITE_IOCAP_ATOMIC512 = 0x00000002 411 SQLITE_IOCAP_ATOMIC64K = 0x00000100 412 SQLITE_IOCAP_ATOMIC8K = 0x00000020 413 SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000 414 SQLITE_IOCAP_IMMUTABLE = 0x00002000 415 SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000 416 SQLITE_IOCAP_SAFE_APPEND = 0x00000200 417 SQLITE_IOCAP_SEQUENTIAL = 0x00000400 418 SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800 419 SQLITE_IOERR = 10 420 SQLITE_IOERR_ACCESS = 3338 421 SQLITE_IOERR_AUTH = 7178 422 SQLITE_IOERR_BEGIN_ATOMIC = 7434 423 SQLITE_IOERR_BLOCKED = 2826 424 SQLITE_IOERR_CHECKRESERVEDLOCK = 3594 425 SQLITE_IOERR_CLOSE = 4106 426 SQLITE_IOERR_COMMIT_ATOMIC = 7690 427 SQLITE_IOERR_CONVPATH = 6666 428 SQLITE_IOERR_CORRUPTFS = 8458 429 SQLITE_IOERR_DATA = 8202 430 SQLITE_IOERR_DELETE = 2570 431 SQLITE_IOERR_DELETE_NOENT = 5898 432 SQLITE_IOERR_DIR_CLOSE = 4362 433 SQLITE_IOERR_DIR_FSYNC = 1290 434 SQLITE_IOERR_FSTAT = 1802 435 SQLITE_IOERR_FSYNC = 1034 436 SQLITE_IOERR_GETTEMPPATH = 6410 437 SQLITE_IOERR_LOCK = 3850 438 SQLITE_IOERR_MMAP = 6154 439 SQLITE_IOERR_NOMEM = 3082 440 SQLITE_IOERR_RDLOCK = 2314 441 SQLITE_IOERR_READ = 266 442 SQLITE_IOERR_ROLLBACK_ATOMIC = 7946 443 SQLITE_IOERR_SEEK = 5642 444 SQLITE_IOERR_SHMLOCK = 5130 445 SQLITE_IOERR_SHMMAP = 5386 446 SQLITE_IOERR_SHMOPEN = 4618 447 SQLITE_IOERR_SHMSIZE = 4874 448 SQLITE_IOERR_SHORT_READ = 522 449 SQLITE_IOERR_TRUNCATE = 1546 450 SQLITE_IOERR_UNLOCK = 2058 451 SQLITE_IOERR_VNODE = 6922 452 SQLITE_IOERR_WRITE = 778 453 SQLITE_LAST_ERRNO = 4 454 SQLITE_LIKE_DOESNT_MATCH_BLOBS = 1 455 SQLITE_LIMIT_ATTACHED = 7 456 SQLITE_LIMIT_COLUMN = 2 457 SQLITE_LIMIT_COMPOUND_SELECT = 4 458 SQLITE_LIMIT_EXPR_DEPTH = 3 459 SQLITE_LIMIT_FUNCTION_ARG = 6 460 SQLITE_LIMIT_LENGTH = 0 461 SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8 462 SQLITE_LIMIT_SQL_LENGTH = 1 463 SQLITE_LIMIT_TRIGGER_DEPTH = 10 464 SQLITE_LIMIT_VARIABLE_NUMBER = 9 465 SQLITE_LIMIT_VDBE_OP = 5 466 SQLITE_LIMIT_WORKER_THREADS = 11 467 SQLITE_LOCKED = 6 468 SQLITE_LOCKED_SHAREDCACHE = 262 469 SQLITE_LOCKED_VTAB = 518 470 SQLITE_LOCK_EXCLUSIVE = 4 471 SQLITE_LOCK_NONE = 0 472 SQLITE_LOCK_PENDING = 3 473 SQLITE_LOCK_RESERVED = 2 474 SQLITE_LOCK_SHARED = 1 475 SQLITE_MISMATCH = 20 476 SQLITE_MISUSE = 21 477 SQLITE_MUTEX_APPDEF = 1 478 SQLITE_MUTEX_FAST = 0 479 SQLITE_MUTEX_NOOP = 1 480 SQLITE_MUTEX_RECURSIVE = 1 481 SQLITE_MUTEX_STATIC_APP1 = 8 482 SQLITE_MUTEX_STATIC_APP2 = 9 483 SQLITE_MUTEX_STATIC_APP3 = 10 484 SQLITE_MUTEX_STATIC_LRU = 6 485 SQLITE_MUTEX_STATIC_LRU2 = 7 486 SQLITE_MUTEX_STATIC_MAIN = 2 487 SQLITE_MUTEX_STATIC_MASTER = 2 488 SQLITE_MUTEX_STATIC_MEM = 3 489 SQLITE_MUTEX_STATIC_MEM2 = 4 490 SQLITE_MUTEX_STATIC_OPEN = 4 491 SQLITE_MUTEX_STATIC_PMEM = 7 492 SQLITE_MUTEX_STATIC_PRNG = 5 493 SQLITE_MUTEX_STATIC_VFS1 = 11 494 SQLITE_MUTEX_STATIC_VFS2 = 12 495 SQLITE_MUTEX_STATIC_VFS3 = 13 496 SQLITE_NOLFS = 22 497 SQLITE_NOMEM = 7 498 SQLITE_NOTADB = 26 499 SQLITE_NOTFOUND = 12 500 SQLITE_NOTICE = 27 501 SQLITE_NOTICE_RECOVER_ROLLBACK = 539 502 SQLITE_NOTICE_RECOVER_WAL = 283 503 SQLITE_NULL = 5 504 SQLITE_OK = 0 505 SQLITE_OK_LOAD_PERMANENTLY = 256 506 SQLITE_OK_SYMLINK = 512 507 SQLITE_OPEN_AUTOPROXY = 0x00000020 508 SQLITE_OPEN_CREATE = 0x00000004 509 SQLITE_OPEN_DELETEONCLOSE = 0x00000008 510 SQLITE_OPEN_EXCLUSIVE = 0x00000010 511 SQLITE_OPEN_EXRESCODE = 0x02000000 512 SQLITE_OPEN_FULLMUTEX = 0x00010000 513 SQLITE_OPEN_MAIN_DB = 0x00000100 514 SQLITE_OPEN_MAIN_JOURNAL = 0x00000800 515 SQLITE_OPEN_MASTER_JOURNAL = 0x00004000 516 SQLITE_OPEN_MEMORY = 0x00000080 517 SQLITE_OPEN_NOFOLLOW = 0x01000000 518 SQLITE_OPEN_NOMUTEX = 0x00008000 519 SQLITE_OPEN_PRIVATECACHE = 0x00040000 520 SQLITE_OPEN_READONLY = 0x00000001 521 SQLITE_OPEN_READWRITE = 0x00000002 522 SQLITE_OPEN_SHAREDCACHE = 0x00020000 523 SQLITE_OPEN_SUBJOURNAL = 0x00002000 524 SQLITE_OPEN_SUPER_JOURNAL = 0x00004000 525 SQLITE_OPEN_TEMP_DB = 0x00000200 526 SQLITE_OPEN_TEMP_JOURNAL = 0x00001000 527 SQLITE_OPEN_TRANSIENT_DB = 0x00000400 528 SQLITE_OPEN_URI = 0x00000040 529 SQLITE_OPEN_WAL = 0x00080000 530 SQLITE_OS_UNIX = 1 531 SQLITE_PERM = 3 532 SQLITE_PRAGMA = 19 533 SQLITE_PREPARE_NORMALIZE = 0x02 534 SQLITE_PREPARE_NO_VTAB = 0x04 535 SQLITE_PREPARE_PERSISTENT = 0x01 536 SQLITE_PROTOCOL = 15 537 SQLITE_RANGE = 25 538 SQLITE_READ = 20 539 SQLITE_READONLY = 8 540 SQLITE_READONLY_CANTINIT = 1288 541 SQLITE_READONLY_CANTLOCK = 520 542 SQLITE_READONLY_DBMOVED = 1032 543 SQLITE_READONLY_DIRECTORY = 1544 544 SQLITE_READONLY_RECOVERY = 264 545 SQLITE_READONLY_ROLLBACK = 776 546 SQLITE_RECURSIVE = 33 547 SQLITE_REINDEX = 27 548 SQLITE_REPLACE = 5 549 SQLITE_ROLLBACK = 1 550 SQLITE_ROW = 100 551 SQLITE_SAVEPOINT = 32 552 SQLITE_SCANSTAT_EST = 2 553 SQLITE_SCANSTAT_EXPLAIN = 4 554 SQLITE_SCANSTAT_NAME = 3 555 SQLITE_SCANSTAT_NLOOP = 0 556 SQLITE_SCANSTAT_NVISIT = 1 557 SQLITE_SCANSTAT_SELECTID = 5 558 SQLITE_SCHEMA = 17 559 SQLITE_SELECT = 21 560 SQLITE_SERIALIZE_NOCOPY = 0x001 561 SQLITE_SESSION_CONFIG_STRMSIZE = 1 562 SQLITE_SESSION_OBJCONFIG_SIZE = 1 563 SQLITE_SET_LOCKPROXYFILE = 3 564 SQLITE_SHM_EXCLUSIVE = 8 565 SQLITE_SHM_LOCK = 2 566 SQLITE_SHM_NLOCK = 8 567 SQLITE_SHM_SHARED = 4 568 SQLITE_SHM_UNLOCK = 1 569 SQLITE_SOUNDEX = 1 570 SQLITE_SOURCE_ID = "2022-09-05 11:02:23 4635f4a69c8c2a8df242b384a992aea71224e39a2ccab42d8c0b0602f1e826e8" 571 SQLITE_STATUS_MALLOC_COUNT = 9 572 SQLITE_STATUS_MALLOC_SIZE = 5 573 SQLITE_STATUS_MEMORY_USED = 0 574 SQLITE_STATUS_PAGECACHE_OVERFLOW = 2 575 SQLITE_STATUS_PAGECACHE_SIZE = 7 576 SQLITE_STATUS_PAGECACHE_USED = 1 577 SQLITE_STATUS_PARSER_STACK = 6 578 SQLITE_STATUS_SCRATCH_OVERFLOW = 4 579 SQLITE_STATUS_SCRATCH_SIZE = 8 580 SQLITE_STATUS_SCRATCH_USED = 3 581 SQLITE_STDCALL = 0 582 SQLITE_STMTSTATUS_AUTOINDEX = 3 583 SQLITE_STMTSTATUS_FILTER_HIT = 8 584 SQLITE_STMTSTATUS_FILTER_MISS = 7 585 SQLITE_STMTSTATUS_FULLSCAN_STEP = 1 586 SQLITE_STMTSTATUS_MEMUSED = 99 587 SQLITE_STMTSTATUS_REPREPARE = 5 588 SQLITE_STMTSTATUS_RUN = 6 589 SQLITE_STMTSTATUS_SORT = 2 590 SQLITE_STMTSTATUS_VM_STEP = 4 591 SQLITE_SUBTYPE = 0x000100000 592 SQLITE_SYNC_DATAONLY = 0x00010 593 SQLITE_SYNC_FULL = 0x00003 594 SQLITE_SYNC_NORMAL = 0x00002 595 SQLITE_SYSAPI = 0 596 SQLITE_TESTCTRL_ALWAYS = 13 597 SQLITE_TESTCTRL_ASSERT = 12 598 SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS = 10 599 SQLITE_TESTCTRL_BITVEC_TEST = 8 600 SQLITE_TESTCTRL_BYTEORDER = 22 601 SQLITE_TESTCTRL_EXPLAIN_STMT = 19 602 SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS = 29 603 SQLITE_TESTCTRL_FAULT_INSTALL = 9 604 SQLITE_TESTCTRL_FIRST = 5 605 SQLITE_TESTCTRL_IMPOSTER = 25 606 SQLITE_TESTCTRL_INTERNAL_FUNCTIONS = 17 607 SQLITE_TESTCTRL_ISINIT = 23 608 SQLITE_TESTCTRL_ISKEYWORD = 16 609 SQLITE_TESTCTRL_LAST = 33 610 SQLITE_TESTCTRL_LOCALTIME_FAULT = 18 611 SQLITE_TESTCTRL_LOGEST = 33 612 SQLITE_TESTCTRL_NEVER_CORRUPT = 20 613 SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD = 19 614 SQLITE_TESTCTRL_OPTIMIZATIONS = 15 615 SQLITE_TESTCTRL_PARSER_COVERAGE = 26 616 SQLITE_TESTCTRL_PENDING_BYTE = 11 617 SQLITE_TESTCTRL_PRNG_RESET = 7 618 SQLITE_TESTCTRL_PRNG_RESTORE = 6 619 SQLITE_TESTCTRL_PRNG_SAVE = 5 620 SQLITE_TESTCTRL_PRNG_SEED = 28 621 SQLITE_TESTCTRL_RESERVE = 14 622 SQLITE_TESTCTRL_RESULT_INTREAL = 27 623 SQLITE_TESTCTRL_SCRATCHMALLOC = 17 624 SQLITE_TESTCTRL_SEEK_COUNT = 30 625 SQLITE_TESTCTRL_SORTER_MMAP = 24 626 SQLITE_TESTCTRL_TRACEFLAGS = 31 627 SQLITE_TESTCTRL_TUNE = 32 628 SQLITE_TESTCTRL_VDBE_COVERAGE = 21 629 SQLITE_TEXT = 3 630 SQLITE_THREADSAFE = 1 631 SQLITE_TOOBIG = 18 632 SQLITE_TRACE_CLOSE = 0x08 633 SQLITE_TRACE_PROFILE = 0x02 634 SQLITE_TRACE_ROW = 0x04 635 SQLITE_TRACE_STMT = 0x01 636 SQLITE_TRANSACTION = 22 637 SQLITE_TXN_NONE = 0 638 SQLITE_TXN_READ = 1 639 SQLITE_TXN_WRITE = 2 640 SQLITE_UPDATE = 23 641 SQLITE_UTF16 = 4 642 SQLITE_UTF16BE = 3 643 SQLITE_UTF16LE = 2 644 SQLITE_UTF16_ALIGNED = 8 645 SQLITE_UTF8 = 1 646 SQLITE_VERSION = "3.39.3" 647 SQLITE_VERSION_NUMBER = 3039003 648 SQLITE_VTAB_CONSTRAINT_SUPPORT = 1 649 SQLITE_VTAB_DIRECTONLY = 3 650 SQLITE_VTAB_INNOCUOUS = 2 651 SQLITE_WARNING = 28 652 SQLITE_WARNING_AUTOINDEX = 284 653 SQLITE_WIN32_DATA_DIRECTORY_TYPE = 1 654 SQLITE_WIN32_TEMP_DIRECTORY_TYPE = 2 655 STDERR_FILENO = 2 656 STDIN_FILENO = 0 657 STDOUT_FILENO = 1 658 TMP_MAX = 0x7fffffff 659 W_OK = 0x02 660 X_OK = 0x01 661 X_ASSERT_H_ = 0 662 X_B = 0x80 663 X_BIG_ENDIAN = 4321 664 X_BYTE_ORDER = 1234 665 X_C = 0x20 666 X_CLOCKID_T_DEFINED_ = 0 667 X_CLOCK_T_DEFINED_ = 0 668 X_CS_PATH = 1 669 X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2 670 X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3 671 X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4 672 X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5 673 X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6 674 X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7 675 X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8 676 X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9 677 X_CS_POSIX_V6_LP64_OFF64_LIBS = 10 678 X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11 679 X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12 680 X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13 681 X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14 682 X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 16 683 X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 17 684 X_CS_POSIX_V7_ILP32_OFF32_LIBS = 18 685 X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 19 686 X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 20 687 X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 21 688 X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 22 689 X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 23 690 X_CS_POSIX_V7_LP64_OFF64_LIBS = 24 691 X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 25 692 X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 26 693 X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 27 694 X_CS_POSIX_V7_THREADS_CFLAGS = 28 695 X_CS_POSIX_V7_THREADS_LDFLAGS = 29 696 X_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 30 697 X_CS_V6_ENV = 15 698 X_CS_V7_ENV = 31 699 X_CTYPE_H_ = 0 700 X_ERRNO_H_ = 0 701 X_FILE_OFFSET_BITS = 64 702 X_FSTDIO = 0 703 X_FTS5_H = 0 704 X_GETOPT_DEFINED_ = 0 705 X_INT16_T_DEFINED_ = 0 706 X_INT32_T_DEFINED_ = 0 707 X_INT64_T_DEFINED_ = 0 708 X_INT8_T_DEFINED_ = 0 709 X_INTPTR_T_DEFINED_ = 0 710 X_IOFBF = 0 711 X_IOLBF = 1 712 X_IONBF = 2 713 X_L = 0x02 714 X_LITTLE_ENDIAN = 1234 715 X_LOCALE_T_DEFINED_ = 0 716 X_LP64 = 1 717 X_MACHINE_CDEFS_H_ = 0 718 X_MACHINE_ENDIAN_H_ = 0 719 X_MACHINE__TYPES_H_ = 0 720 X_MAX_PAGE_SHIFT = 12 721 X_N = 0x04 722 X_OFF_T_DEFINED_ = 0 723 X_P = 0x10 724 X_PC_2_SYMLINKS = 10 725 X_PC_ALLOC_SIZE_MIN = 11 726 X_PC_ASYNC_IO = 12 727 X_PC_CHOWN_RESTRICTED = 7 728 X_PC_FILESIZEBITS = 13 729 X_PC_LINK_MAX = 1 730 X_PC_MAX_CANON = 2 731 X_PC_MAX_INPUT = 3 732 X_PC_NAME_MAX = 4 733 X_PC_NO_TRUNC = 8 734 X_PC_PATH_MAX = 5 735 X_PC_PIPE_BUF = 6 736 X_PC_PRIO_IO = 14 737 X_PC_REC_INCR_XFER_SIZE = 15 738 X_PC_REC_MAX_XFER_SIZE = 16 739 X_PC_REC_MIN_XFER_SIZE = 17 740 X_PC_REC_XFER_ALIGN = 18 741 X_PC_SYMLINK_MAX = 19 742 X_PC_SYNC_IO = 20 743 X_PC_TIMESTAMP_RESOLUTION = 21 744 X_PC_VDISABLE = 9 745 X_PDP_ENDIAN = 3412 746 X_PID_T_DEFINED_ = 0 747 X_POSIX2_CHAR_TERM = 1 748 X_POSIX2_C_BIND = 200112 749 X_POSIX2_C_DEV = -1 750 X_POSIX2_FORT_DEV = -1 751 X_POSIX2_FORT_RUN = -1 752 X_POSIX2_LOCALEDEF = -1 753 X_POSIX2_PBS = -1 754 X_POSIX2_PBS_ACCOUNTING = -1 755 X_POSIX2_PBS_CHECKPOINT = -1 756 X_POSIX2_PBS_LOCATE = -1 757 X_POSIX2_PBS_MESSAGE = -1 758 X_POSIX2_PBS_TRACK = -1 759 X_POSIX2_SW_DEV = 200112 760 X_POSIX2_UPE = 200112 761 X_POSIX2_VERSION = 200809 762 X_POSIX_ADVISORY_INFO = -1 763 X_POSIX_ASYNCHRONOUS_IO = -1 764 X_POSIX_ASYNC_IO = -1 765 X_POSIX_BARRIERS = 200112 766 X_POSIX_CHOWN_RESTRICTED = 1 767 X_POSIX_CLOCK_SELECTION = -1 768 X_POSIX_CPUTIME = 200809 769 X_POSIX_FSYNC = 200112 770 X_POSIX_IPV6 = 0 771 X_POSIX_JOB_CONTROL = 1 772 X_POSIX_MAPPED_FILES = 200112 773 X_POSIX_MEMLOCK = 200112 774 X_POSIX_MEMLOCK_RANGE = 200112 775 X_POSIX_MEMORY_PROTECTION = 200112 776 X_POSIX_MESSAGE_PASSING = -1 777 X_POSIX_MONOTONIC_CLOCK = 200112 778 X_POSIX_NO_TRUNC = 1 779 X_POSIX_PRIORITIZED_IO = -1 780 X_POSIX_PRIORITY_SCHEDULING = -1 781 X_POSIX_PRIO_IO = -1 782 X_POSIX_RAW_SOCKETS = 200112 783 X_POSIX_READER_WRITER_LOCKS = 200112 784 X_POSIX_REALTIME_SIGNALS = -1 785 X_POSIX_REGEXP = 1 786 X_POSIX_SAVED_IDS = 1 787 X_POSIX_SEMAPHORES = 200112 788 X_POSIX_SHARED_MEMORY_OBJECTS = 200809 789 X_POSIX_SHELL = 1 790 X_POSIX_SPAWN = 200112 791 X_POSIX_SPIN_LOCKS = 200112 792 X_POSIX_SPORADIC_SERVER = -1 793 X_POSIX_SYNCHRONIZED_IO = -1 794 X_POSIX_SYNC_IO = -1 795 X_POSIX_THREADS = 200112 796 X_POSIX_THREAD_ATTR_STACKADDR = 200112 797 X_POSIX_THREAD_ATTR_STACKSIZE = 200112 798 X_POSIX_THREAD_CPUTIME = 200809 799 X_POSIX_THREAD_PRIORITY_SCHEDULING = -1 800 X_POSIX_THREAD_PRIO_INHERIT = -1 801 X_POSIX_THREAD_PRIO_PROTECT = -1 802 X_POSIX_THREAD_PROCESS_SHARED = -1 803 X_POSIX_THREAD_ROBUST_PRIO_INHERIT = -1 804 X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1 805 X_POSIX_THREAD_SAFE_FUNCTIONS = 200112 806 X_POSIX_THREAD_SPORADIC_SERVER = -1 807 X_POSIX_TIMEOUTS = 200112 808 X_POSIX_TIMERS = -1 809 X_POSIX_TRACE = -1 810 X_POSIX_TRACE_EVENT_FILTER = -1 811 X_POSIX_TRACE_INHERIT = -1 812 X_POSIX_TRACE_LOG = -1 813 X_POSIX_TYPED_MEMORY_OBJECTS = -1 814 X_POSIX_V6_ILP32_OFF32 = -1 815 X_POSIX_V6_ILP32_OFFBIG = 0 816 X_POSIX_V6_LP64_OFF64 = 0 817 X_POSIX_V6_LPBIG_OFFBIG = 0 818 X_POSIX_V7_ILP32_OFF32 = -1 819 X_POSIX_V7_ILP32_OFFBIG = 0 820 X_POSIX_V7_LP64_OFF64 = 0 821 X_POSIX_V7_LPBIG_OFFBIG = 0 822 X_POSIX_VDISABLE = 255 823 X_POSIX_VERSION = 200809 824 X_QUAD_HIGHWORD = 1 825 X_QUAD_LOWWORD = 0 826 X_RET_PROTECTOR = 1 827 X_S = 0x08 828 X_SC_2_CHAR_TERM = 20 829 X_SC_2_C_BIND = 18 830 X_SC_2_C_DEV = 19 831 X_SC_2_FORT_DEV = 21 832 X_SC_2_FORT_RUN = 22 833 X_SC_2_LOCALEDEF = 23 834 X_SC_2_PBS = 35 835 X_SC_2_PBS_ACCOUNTING = 36 836 X_SC_2_PBS_CHECKPOINT = 37 837 X_SC_2_PBS_LOCATE = 38 838 X_SC_2_PBS_MESSAGE = 39 839 X_SC_2_PBS_TRACK = 40 840 X_SC_2_SW_DEV = 24 841 X_SC_2_UPE = 25 842 X_SC_2_VERSION = 17 843 X_SC_ADVISORY_INFO = 41 844 X_SC_AIO_LISTIO_MAX = 42 845 X_SC_AIO_MAX = 43 846 X_SC_AIO_PRIO_DELTA_MAX = 44 847 X_SC_ARG_MAX = 1 848 X_SC_ASYNCHRONOUS_IO = 45 849 X_SC_ATEXIT_MAX = 46 850 X_SC_AVPHYS_PAGES = 501 851 X_SC_BARRIERS = 47 852 X_SC_BC_BASE_MAX = 9 853 X_SC_BC_DIM_MAX = 10 854 X_SC_BC_SCALE_MAX = 11 855 X_SC_BC_STRING_MAX = 12 856 X_SC_CHILD_MAX = 2 857 X_SC_CLK_TCK = 3 858 X_SC_CLOCK_SELECTION = 48 859 X_SC_COLL_WEIGHTS_MAX = 13 860 X_SC_CPUTIME = 49 861 X_SC_DELAYTIMER_MAX = 50 862 X_SC_EXPR_NEST_MAX = 14 863 X_SC_FSYNC = 29 864 X_SC_GETGR_R_SIZE_MAX = 100 865 X_SC_GETPW_R_SIZE_MAX = 101 866 X_SC_HOST_NAME_MAX = 33 867 X_SC_IOV_MAX = 51 868 X_SC_IPV6 = 52 869 X_SC_JOB_CONTROL = 6 870 X_SC_LINE_MAX = 15 871 X_SC_LOGIN_NAME_MAX = 102 872 X_SC_MAPPED_FILES = 53 873 X_SC_MEMLOCK = 54 874 X_SC_MEMLOCK_RANGE = 55 875 X_SC_MEMORY_PROTECTION = 56 876 X_SC_MESSAGE_PASSING = 57 877 X_SC_MONOTONIC_CLOCK = 34 878 X_SC_MQ_OPEN_MAX = 58 879 X_SC_MQ_PRIO_MAX = 59 880 X_SC_NGROUPS_MAX = 4 881 X_SC_NPROCESSORS_CONF = 502 882 X_SC_NPROCESSORS_ONLN = 503 883 X_SC_OPEN_MAX = 5 884 X_SC_PAGESIZE = 28 885 X_SC_PAGE_SIZE = 28 886 X_SC_PHYS_PAGES = 500 887 X_SC_PRIORITIZED_IO = 60 888 X_SC_PRIORITY_SCHEDULING = 61 889 X_SC_RAW_SOCKETS = 62 890 X_SC_READER_WRITER_LOCKS = 63 891 X_SC_REALTIME_SIGNALS = 64 892 X_SC_REGEXP = 65 893 X_SC_RE_DUP_MAX = 16 894 X_SC_RTSIG_MAX = 66 895 X_SC_SAVED_IDS = 7 896 X_SC_SEMAPHORES = 67 897 X_SC_SEM_NSEMS_MAX = 31 898 X_SC_SEM_VALUE_MAX = 32 899 X_SC_SHARED_MEMORY_OBJECTS = 68 900 X_SC_SHELL = 69 901 X_SC_SIGQUEUE_MAX = 70 902 X_SC_SPAWN = 71 903 X_SC_SPIN_LOCKS = 72 904 X_SC_SPORADIC_SERVER = 73 905 X_SC_SS_REPL_MAX = 74 906 X_SC_STREAM_MAX = 26 907 X_SC_SYMLOOP_MAX = 76 908 X_SC_SYNCHRONIZED_IO = 75 909 X_SC_THREADS = 91 910 X_SC_THREAD_ATTR_STACKADDR = 77 911 X_SC_THREAD_ATTR_STACKSIZE = 78 912 X_SC_THREAD_CPUTIME = 79 913 X_SC_THREAD_DESTRUCTOR_ITERATIONS = 80 914 X_SC_THREAD_KEYS_MAX = 81 915 X_SC_THREAD_PRIORITY_SCHEDULING = 84 916 X_SC_THREAD_PRIO_INHERIT = 82 917 X_SC_THREAD_PRIO_PROTECT = 83 918 X_SC_THREAD_PROCESS_SHARED = 85 919 X_SC_THREAD_ROBUST_PRIO_INHERIT = 86 920 X_SC_THREAD_ROBUST_PRIO_PROTECT = 87 921 X_SC_THREAD_SAFE_FUNCTIONS = 103 922 X_SC_THREAD_SPORADIC_SERVER = 88 923 X_SC_THREAD_STACK_MIN = 89 924 X_SC_THREAD_THREADS_MAX = 90 925 X_SC_TIMEOUTS = 92 926 X_SC_TIMERS = 94 927 X_SC_TIMER_MAX = 93 928 X_SC_TRACE = 95 929 X_SC_TRACE_EVENT_FILTER = 96 930 X_SC_TRACE_EVENT_NAME_MAX = 97 931 X_SC_TRACE_INHERIT = 98 932 X_SC_TRACE_LOG = 99 933 X_SC_TRACE_NAME_MAX = 104 934 X_SC_TRACE_SYS_MAX = 105 935 X_SC_TRACE_USER_EVENT_MAX = 106 936 X_SC_TTY_NAME_MAX = 107 937 X_SC_TYPED_MEMORY_OBJECTS = 108 938 X_SC_TZNAME_MAX = 27 939 X_SC_V6_ILP32_OFF32 = 109 940 X_SC_V6_ILP32_OFFBIG = 110 941 X_SC_V6_LP64_OFF64 = 111 942 X_SC_V6_LPBIG_OFFBIG = 112 943 X_SC_V7_ILP32_OFF32 = 113 944 X_SC_V7_ILP32_OFFBIG = 114 945 X_SC_V7_LP64_OFF64 = 115 946 X_SC_V7_LPBIG_OFFBIG = 116 947 X_SC_VERSION = 8 948 X_SC_XOPEN_CRYPT = 117 949 X_SC_XOPEN_ENH_I18N = 118 950 X_SC_XOPEN_LEGACY = 119 951 X_SC_XOPEN_REALTIME = 120 952 X_SC_XOPEN_REALTIME_THREADS = 121 953 X_SC_XOPEN_SHM = 30 954 X_SC_XOPEN_STREAMS = 122 955 X_SC_XOPEN_UNIX = 123 956 X_SC_XOPEN_UUCP = 124 957 X_SC_XOPEN_VERSION = 125 958 X_SIZE_T_DEFINED_ = 0 959 X_SQLITE3RTREE_H_ = 0 960 X_SSIZE_T_DEFINED_ = 0 961 X_STACKALIGNBYTES = 15 962 X_STDARG_H_ = 0 963 X_STDIO_H_ = 0 964 X_STDLIB_H_ = 0 965 X_STRINGS_H_ = 0 966 X_STRING_H_ = 0 967 X_SYS_CDEFS_H_ = 0 968 X_SYS_ENDIAN_H_ = 0 969 X_SYS_TYPES_H_ = 0 970 X_SYS_UNISTD_H_ = 0 971 X_SYS__ENDIAN_H_ = 0 972 X_SYS__TYPES_H_ = 0 973 X_TIMER_T_DEFINED_ = 0 974 X_TIME_T_DEFINED_ = 0 975 X_U = 0x01 976 X_UINT16_T_DEFINED_ = 0 977 X_UINT32_T_DEFINED_ = 0 978 X_UINT64_T_DEFINED_ = 0 979 X_UINT8_T_DEFINED_ = 0 980 X_UNISTD_H_ = 0 981 X_WCHAR_T_DEFINED_ = 0 982 X_X = 0x40 983 X_XOPEN_CRYPT = 1 984 X_XOPEN_ENH_I18N = -1 985 X_XOPEN_LEGACY = -1 986 X_XOPEN_REALTIME = -1 987 X_XOPEN_REALTIME_THREADS = -1 988 X_XOPEN_SHM = 1 989 X_XOPEN_STREAMS = -1 990 X_XOPEN_UNIX = -1 991 X_XOPEN_UUCP = -1 992 Unix = 1 993 ) 994 995 type ptrdiff_t = int64 996 997 type size_t = uint64 998 999 type wchar_t = int32 1000 1001 type va_list = uintptr 1002 1003 type sqlite_int64 = int64 1004 type sqlite_uint64 = uint64 1005 type sqlite3_int64 = sqlite_int64 1006 type sqlite3_uint64 = sqlite_uint64 1007 1008 type sqlite3_callback = uintptr 1009 1010 type sqlite3_file1 = struct{ pMethods uintptr } 1011 1012 type sqlite3_file = sqlite3_file1 1013 type sqlite3_io_methods1 = struct { 1014 iVersion int32 1015 _ [4]byte 1016 xClose uintptr 1017 xRead uintptr 1018 xWrite uintptr 1019 xTruncate uintptr 1020 xSync uintptr 1021 xFileSize uintptr 1022 xLock uintptr 1023 xUnlock uintptr 1024 xCheckReservedLock uintptr 1025 xFileControl uintptr 1026 xSectorSize uintptr 1027 xDeviceCharacteristics uintptr 1028 xShmMap uintptr 1029 xShmLock uintptr 1030 xShmBarrier uintptr 1031 xShmUnmap uintptr 1032 xFetch uintptr 1033 xUnfetch uintptr 1034 } 1035 1036 type sqlite3_io_methods = sqlite3_io_methods1 1037 1038 type sqlite3_vfs1 = struct { 1039 iVersion int32 1040 szOsFile int32 1041 mxPathname int32 1042 _ [4]byte 1043 pNext uintptr 1044 zName uintptr 1045 pAppData uintptr 1046 xOpen uintptr 1047 xDelete uintptr 1048 xAccess uintptr 1049 xFullPathname uintptr 1050 xDlOpen uintptr 1051 xDlError uintptr 1052 xDlSym uintptr 1053 xDlClose uintptr 1054 xRandomness uintptr 1055 xSleep uintptr 1056 xCurrentTime uintptr 1057 xGetLastError uintptr 1058 xCurrentTimeInt64 uintptr 1059 xSetSystemCall uintptr 1060 xGetSystemCall uintptr 1061 xNextSystemCall uintptr 1062 } 1063 1064 type sqlite3_vfs = sqlite3_vfs1 1065 type sqlite3_syscall_ptr = uintptr 1066 1067 type sqlite3_mem_methods1 = struct { 1068 xMalloc uintptr 1069 xFree uintptr 1070 xRealloc uintptr 1071 xSize uintptr 1072 xRoundup uintptr 1073 xInit uintptr 1074 xShutdown uintptr 1075 pAppData uintptr 1076 } 1077 1078 type sqlite3_mem_methods = sqlite3_mem_methods1 1079 1080 type sqlite3_destructor_type = uintptr 1081 1082 type sqlite3_vtab1 = struct { 1083 pModule uintptr 1084 nRef int32 1085 _ [4]byte 1086 zErrMsg uintptr 1087 } 1088 1089 type sqlite3_vtab = sqlite3_vtab1 1090 type sqlite3_index_info1 = struct { 1091 nConstraint int32 1092 _ [4]byte 1093 aConstraint uintptr 1094 nOrderBy int32 1095 _ [4]byte 1096 aOrderBy uintptr 1097 aConstraintUsage uintptr 1098 idxNum int32 1099 _ [4]byte 1100 idxStr uintptr 1101 needToFreeIdxStr int32 1102 orderByConsumed int32 1103 estimatedCost float64 1104 estimatedRows sqlite3_int64 1105 idxFlags int32 1106 _ [4]byte 1107 colUsed sqlite3_uint64 1108 } 1109 1110 type sqlite3_index_info = sqlite3_index_info1 1111 type sqlite3_vtab_cursor1 = struct{ pVtab uintptr } 1112 1113 type sqlite3_vtab_cursor = sqlite3_vtab_cursor1 1114 type sqlite3_module1 = struct { 1115 iVersion int32 1116 _ [4]byte 1117 xCreate uintptr 1118 xConnect uintptr 1119 xBestIndex uintptr 1120 xDisconnect uintptr 1121 xDestroy uintptr 1122 xOpen uintptr 1123 xClose uintptr 1124 xFilter uintptr 1125 xNext uintptr 1126 xEof uintptr 1127 xColumn uintptr 1128 xRowid uintptr 1129 xUpdate uintptr 1130 xBegin uintptr 1131 xSync uintptr 1132 xCommit uintptr 1133 xRollback uintptr 1134 xFindFunction uintptr 1135 xRename uintptr 1136 xSavepoint uintptr 1137 xRelease uintptr 1138 xRollbackTo uintptr 1139 xShadowName uintptr 1140 } 1141 1142 type sqlite3_module = sqlite3_module1 1143 1144 type sqlite3_index_constraint = struct { 1145 iColumn int32 1146 op uint8 1147 usable uint8 1148 _ [2]byte 1149 iTermOffset int32 1150 } 1151 1152 type sqlite3_index_orderby = struct { 1153 iColumn int32 1154 desc uint8 1155 _ [3]byte 1156 } 1157 1158 type sqlite3_index_constraint_usage = struct { 1159 argvIndex int32 1160 omit uint8 1161 _ [3]byte 1162 } 1163 1164 type sqlite3_mutex_methods1 = struct { 1165 xMutexInit uintptr 1166 xMutexEnd uintptr 1167 xMutexAlloc uintptr 1168 xMutexFree uintptr 1169 xMutexEnter uintptr 1170 xMutexTry uintptr 1171 xMutexLeave uintptr 1172 xMutexHeld uintptr 1173 xMutexNotheld uintptr 1174 } 1175 1176 type sqlite3_mutex_methods = sqlite3_mutex_methods1 1177 1178 type sqlite3_pcache_page1 = struct { 1179 pBuf uintptr 1180 pExtra uintptr 1181 } 1182 1183 type sqlite3_pcache_page = sqlite3_pcache_page1 1184 1185 type sqlite3_pcache_methods21 = struct { 1186 iVersion int32 1187 _ [4]byte 1188 pArg uintptr 1189 xInit uintptr 1190 xShutdown uintptr 1191 xCreate uintptr 1192 xCachesize uintptr 1193 xPagecount uintptr 1194 xFetch uintptr 1195 xUnpin uintptr 1196 xRekey uintptr 1197 xTruncate uintptr 1198 xDestroy uintptr 1199 xShrink uintptr 1200 } 1201 1202 type sqlite3_pcache_methods2 = sqlite3_pcache_methods21 1203 1204 type sqlite3_pcache_methods1 = struct { 1205 pArg uintptr 1206 xInit uintptr 1207 xShutdown uintptr 1208 xCreate uintptr 1209 xCachesize uintptr 1210 xPagecount uintptr 1211 xFetch uintptr 1212 xUnpin uintptr 1213 xRekey uintptr 1214 xTruncate uintptr 1215 xDestroy uintptr 1216 } 1217 1218 type sqlite3_pcache_methods = sqlite3_pcache_methods1 1219 1220 type sqlite3_snapshot1 = struct{ hidden [48]uint8 } 1221 1222 type sqlite3_snapshot = sqlite3_snapshot1 1223 1224 type sqlite3_rtree_geometry1 = struct { 1225 pContext uintptr 1226 nParam int32 1227 _ [4]byte 1228 aParam uintptr 1229 pUser uintptr 1230 xDelUser uintptr 1231 } 1232 1233 type sqlite3_rtree_geometry = sqlite3_rtree_geometry1 1234 type sqlite3_rtree_query_info1 = struct { 1235 pContext uintptr 1236 nParam int32 1237 _ [4]byte 1238 aParam uintptr 1239 pUser uintptr 1240 xDelUser uintptr 1241 aCoord uintptr 1242 anQueue uintptr 1243 nCoord int32 1244 iLevel int32 1245 mxLevel int32 1246 _ [4]byte 1247 iRowid sqlite3_int64 1248 rParentScore sqlite3_rtree_dbl 1249 eParentWithin int32 1250 eWithin int32 1251 rScore sqlite3_rtree_dbl 1252 apSqlParam uintptr 1253 } 1254 1255 type sqlite3_rtree_query_info = sqlite3_rtree_query_info1 1256 1257 type sqlite3_rtree_dbl = float64 1258 1259 type Fts5ExtensionApi1 = struct { 1260 iVersion int32 1261 _ [4]byte 1262 xUserData uintptr 1263 xColumnCount uintptr 1264 xRowCount uintptr 1265 xColumnTotalSize uintptr 1266 xTokenize uintptr 1267 xPhraseCount uintptr 1268 xPhraseSize uintptr 1269 xInstCount uintptr 1270 xInst uintptr 1271 xRowid uintptr 1272 xColumnText uintptr 1273 xColumnSize uintptr 1274 xQueryPhrase uintptr 1275 xSetAuxdata uintptr 1276 xGetAuxdata uintptr 1277 xPhraseFirst uintptr 1278 xPhraseNext uintptr 1279 xPhraseFirstColumn uintptr 1280 xPhraseNextColumn uintptr 1281 } 1282 1283 type Fts5ExtensionApi = Fts5ExtensionApi1 1284 type Fts5PhraseIter1 = struct { 1285 a uintptr 1286 b uintptr 1287 } 1288 1289 type Fts5PhraseIter = Fts5PhraseIter1 1290 1291 type fts5_extension_function = uintptr 1292 type fts5_tokenizer1 = struct { 1293 xCreate uintptr 1294 xDelete uintptr 1295 xTokenize uintptr 1296 } 1297 1298 type fts5_tokenizer = fts5_tokenizer1 1299 1300 type fts5_api1 = struct { 1301 iVersion int32 1302 _ [4]byte 1303 xCreateTokenizer uintptr 1304 xFindTokenizer uintptr 1305 xCreateFunction uintptr 1306 } 1307 1308 type fts5_api = fts5_api1 1309 1310 type u_char = uint8 1311 type u_short = uint16 1312 type u_int = uint32 1313 type u_long = uint64 1314 1315 type unchar = uint8 1316 type ushort = uint16 1317 type uint = uint32 1318 type ulong = uint64 1319 1320 type cpuid_t = uint64 1321 type register_t = int64 1322 1323 type int8_t = int8 1324 1325 type uint8_t = uint8 1326 1327 type int16_t = int16 1328 1329 type uint16_t = uint16 1330 1331 type int32_t = int32 1332 1333 type uint32_t = uint32 1334 1335 type int64_t = int64 1336 1337 type uint64_t = uint64 1338 1339 type u_int8_t = uint8 1340 type u_int16_t = uint16 1341 type u_int32_t = uint32 1342 type u_int64_t = uint64 1343 1344 type quad_t = int64 1345 type u_quad_t = uint64 1346 1347 type vaddr_t = uint64 1348 type paddr_t = uint64 1349 type vsize_t = uint64 1350 type psize_t = uint64 1351 1352 type blkcnt_t = int64 1353 type blksize_t = int32 1354 type caddr_t = uintptr 1355 type daddr32_t = int32 1356 type daddr_t = int64 1357 type dev_t = int32 1358 type fixpt_t = uint32 1359 type gid_t = uint32 1360 type id_t = uint32 1361 type ino_t = uint64 1362 type key_t = int64 1363 type mode_t = uint32 1364 type nlink_t = uint32 1365 type rlim_t = uint64 1366 type segsz_t = int32 1367 type uid_t = uint32 1368 type useconds_t = uint32 1369 type suseconds_t = int64 1370 type fsblkcnt_t = uint64 1371 type fsfilcnt_t = uint64 1372 1373 type clock_t = int64 1374 1375 type clockid_t = int32 1376 1377 type pid_t = int32 1378 1379 type ssize_t = int64 1380 1381 type time_t = int64 1382 1383 type timer_t = int32 1384 1385 type off_t = int64 1386 1387 type fpos_t = off_t 1388 1389 type __sbuf = struct { 1390 _base uintptr 1391 _size int32 1392 _ [4]byte 1393 } 1394 1395 type __sFILE = struct { 1396 _p uintptr 1397 _r int32 1398 _w int32 1399 _flags int16 1400 _file int16 1401 _ [4]byte 1402 _bf struct { 1403 _base uintptr 1404 _size int32 1405 _ [4]byte 1406 } 1407 _lbfsize int32 1408 _ [4]byte 1409 _cookie uintptr 1410 _close uintptr 1411 _read uintptr 1412 _seek uintptr 1413 _write uintptr 1414 _ext struct { 1415 _base uintptr 1416 _size int32 1417 _ [4]byte 1418 } 1419 _up uintptr 1420 _ur int32 1421 _ubuf [3]uint8 1422 _nbuf [1]uint8 1423 _lb struct { 1424 _base uintptr 1425 _size int32 1426 _ [4]byte 1427 } 1428 _blksize int32 1429 _ [4]byte 1430 _offset fpos_t 1431 } 1432 1433 type FILE = __sFILE 1434 1435 type __tfork = struct { 1436 tf_tcb uintptr 1437 tf_tid uintptr 1438 tf_stack uintptr 1439 } 1440 1441 type __kbind = struct { 1442 kb_addr uintptr 1443 kb_size size_t 1444 } 1445 1446 type intptr_t = int64 1447 1448 type div_t = struct { 1449 quot int32 1450 rem int32 1451 } 1452 1453 type ldiv_t = struct { 1454 quot int64 1455 rem int64 1456 } 1457 1458 type lldiv_t = struct { 1459 quot int64 1460 rem int64 1461 } 1462 1463 type qdiv_t = struct { 1464 quot quad_t 1465 rem quad_t 1466 } 1467 1468 type locale_t = uintptr 1469 1470 type Global = struct { 1471 argv0 uintptr 1472 zVfs uintptr 1473 zDbFile uintptr 1474 db uintptr 1475 zErrLog uintptr 1476 pErrLog uintptr 1477 zLog uintptr 1478 pLog uintptr 1479 zName [32]int8 1480 taskId int32 1481 iTrace int32 1482 bSqlTrace int32 1483 bIgnoreSqlErrors int32 1484 nError int32 1485 nTest int32 1486 iTimeout int32 1487 bSync int32 1488 } 1489 1490 var g Global 1491 1492 func printWithPrefix(tls *libc.TLS, pOut uintptr, zPrefix uintptr, zMsg uintptr) { 1493 bp := tls.Alloc(24) 1494 defer tls.Free(24) 1495 1496 for zMsg != 0 && *(*int8)(unsafe.Pointer(zMsg)) != 0 { 1497 var i int32 1498 for i = 0; *(*int8)(unsafe.Pointer(zMsg + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(zMsg + uintptr(i)))) != '\n' && int32(*(*int8)(unsafe.Pointer(zMsg + uintptr(i)))) != '\r'; i++ { 1499 } 1500 libc.Xfprintf(tls, pOut, ts, libc.VaList(bp, zPrefix, i, zMsg)) 1501 zMsg += uintptr(i) 1502 for int32(*(*int8)(unsafe.Pointer(zMsg))) == '\n' || int32(*(*int8)(unsafe.Pointer(zMsg))) == '\r' { 1503 zMsg++ 1504 } 1505 } 1506 } 1507 1508 func safe_strcmp(tls *libc.TLS, a uintptr, b uintptr) int32 { 1509 if a == b { 1510 return 0 1511 } 1512 if a == uintptr(0) { 1513 return -1 1514 } 1515 if b == uintptr(0) { 1516 return 1 1517 } 1518 return libc.Xstrcmp(tls, a, b) 1519 } 1520 1521 func strglob(tls *libc.TLS, zGlob uintptr, z uintptr) int32 { 1522 var c int32 1523 var c2 int32 1524 var invert int32 1525 var seen int32 1526 1527 for libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))) != 0 { 1528 if c == '*' { 1529 for libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))) == '*' || c == '?' { 1530 if c == '?' && int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) == 0 { 1531 return 0 1532 } 1533 } 1534 if c == 0 { 1535 return 1 1536 } else if c == '[' { 1537 for *(*int8)(unsafe.Pointer(z)) != 0 && strglob(tls, zGlob-uintptr(1), z) != 0 { 1538 z++ 1539 } 1540 return libc.Bool32(int32(*(*int8)(unsafe.Pointer(z))) != 0) 1541 } 1542 for libc.AssignInt32(&c2, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))) != 0 { 1543 for c2 != c { 1544 c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) 1545 if c2 == 0 { 1546 return 0 1547 } 1548 } 1549 if strglob(tls, zGlob, z) != 0 { 1550 return 1 1551 } 1552 } 1553 return 0 1554 } else if c == '?' { 1555 if int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) == 0 { 1556 return 0 1557 } 1558 } else if c == '[' { 1559 var prior_c int32 = 0 1560 seen = 0 1561 invert = 0 1562 c = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) 1563 if c == 0 { 1564 return 0 1565 } 1566 c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))) 1567 if c2 == '^' { 1568 invert = 1 1569 c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))) 1570 } 1571 if c2 == ']' { 1572 if c == ']' { 1573 seen = 1 1574 } 1575 c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))) 1576 } 1577 for c2 != 0 && c2 != ']' { 1578 if c2 == '-' && int32(*(*int8)(unsafe.Pointer(zGlob))) != ']' && int32(*(*int8)(unsafe.Pointer(zGlob))) != 0 && prior_c > 0 { 1579 c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))) 1580 if c >= prior_c && c <= c2 { 1581 seen = 1 1582 } 1583 prior_c = 0 1584 } else { 1585 if c == c2 { 1586 seen = 1 1587 } 1588 prior_c = c2 1589 } 1590 c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))) 1591 } 1592 if c2 == 0 || seen^invert == 0 { 1593 return 0 1594 } 1595 } else if c == '#' { 1596 if (int32(*(*int8)(unsafe.Pointer(z))) == '-' || int32(*(*int8)(unsafe.Pointer(z))) == '+') && libc.Xisdigit(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + 1))))) != 0 { 1597 z++ 1598 } 1599 if !(libc.Xisdigit(tls, int32(uint8(*(*int8)(unsafe.Pointer(z))))) != 0) { 1600 return 0 1601 } 1602 z++ 1603 for libc.Xisdigit(tls, int32(uint8(*(*int8)(unsafe.Pointer(z))))) != 0 { 1604 z++ 1605 } 1606 } else { 1607 if c != int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) { 1608 return 0 1609 } 1610 } 1611 } 1612 return libc.Bool32(int32(*(*int8)(unsafe.Pointer(z))) == 0) 1613 } 1614 1615 func maybeClose(tls *libc.TLS, pOut uintptr) { 1616 if pOut != uintptr(unsafe.Pointer(&libc.X__sF))+1*152 && pOut != uintptr(unsafe.Pointer(&libc.X__sF))+2*152 { 1617 libc.Xfclose(tls, pOut) 1618 } 1619 } 1620 1621 func errorMessage(tls *libc.TLS, zFormat uintptr, va uintptr) { 1622 bp := tls.Alloc(38) 1623 defer tls.Free(38) 1624 1625 var ap va_list 1626 _ = ap 1627 var zMsg uintptr 1628 1629 ap = va 1630 zMsg = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1631 _ = ap 1632 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+8, ts+8, libc.VaList(bp, uintptr(unsafe.Pointer(&g))+64)) 1633 if g.pLog != 0 { 1634 printWithPrefix(tls, g.pLog, bp+8, zMsg) 1635 libc.Xfflush(tls, g.pLog) 1636 } 1637 if g.pErrLog != 0 && safe_strcmp(tls, g.zErrLog, g.zLog) != 0 { 1638 printWithPrefix(tls, g.pErrLog, bp+8, zMsg) 1639 libc.Xfflush(tls, g.pErrLog) 1640 } 1641 sqlite3.Xsqlite3_free(tls, zMsg) 1642 g.nError++ 1643 } 1644 1645 func fatalError(tls *libc.TLS, zFormat uintptr, va uintptr) { 1646 bp := tls.Alloc(38) 1647 defer tls.Free(38) 1648 1649 var ap va_list 1650 _ = ap 1651 var zMsg uintptr 1652 1653 ap = va 1654 zMsg = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1655 _ = ap 1656 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+8, ts+19, libc.VaList(bp, uintptr(unsafe.Pointer(&g))+64)) 1657 if g.pLog != 0 { 1658 printWithPrefix(tls, g.pLog, bp+8, zMsg) 1659 libc.Xfflush(tls, g.pLog) 1660 maybeClose(tls, g.pLog) 1661 } 1662 if g.pErrLog != 0 && safe_strcmp(tls, g.zErrLog, g.zLog) != 0 { 1663 printWithPrefix(tls, g.pErrLog, bp+8, zMsg) 1664 libc.Xfflush(tls, g.pErrLog) 1665 maybeClose(tls, g.pErrLog) 1666 } 1667 sqlite3.Xsqlite3_free(tls, zMsg) 1668 if g.db != 0 { 1669 var nTry int32 = 0 1670 g.iTimeout = 0 1671 for trySql(tls, ts+30, 0) == SQLITE_BUSY && 1672 libc.PostIncInt32(&nTry, 1) < 100 { 1673 sqlite3.Xsqlite3_sleep(tls, 10) 1674 } 1675 } 1676 sqlite3.Xsqlite3_close(tls, g.db) 1677 libc.Xexit(tls, 1) 1678 } 1679 1680 func logMessage(tls *libc.TLS, zFormat uintptr, va uintptr) { 1681 bp := tls.Alloc(38) 1682 defer tls.Free(38) 1683 1684 var ap va_list 1685 _ = ap 1686 var zMsg uintptr 1687 1688 ap = va 1689 zMsg = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1690 _ = ap 1691 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+8, ts+60, libc.VaList(bp, uintptr(unsafe.Pointer(&g))+64)) 1692 if g.pLog != 0 { 1693 printWithPrefix(tls, g.pLog, bp+8, zMsg) 1694 libc.Xfflush(tls, g.pLog) 1695 } 1696 sqlite3.Xsqlite3_free(tls, zMsg) 1697 } 1698 1699 func clipLength(tls *libc.TLS, z uintptr) int32 { 1700 var n int32 = int32(libc.Xstrlen(tls, z)) 1701 for n > 0 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-1)))))) != 0 { 1702 n-- 1703 } 1704 return n 1705 } 1706 1707 func vfsNameFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { 1708 bp := tls.Alloc(8) 1709 defer tls.Free(8) 1710 1711 var db uintptr = sqlite3.Xsqlite3_context_db_handle(tls, context) 1712 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) 1713 _ = argc 1714 _ = argv 1715 sqlite3.Xsqlite3_file_control(tls, db, ts+65, SQLITE_FCNTL_VFSNAME, bp) 1716 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { 1717 sqlite3.Xsqlite3_result_text(tls, context, *(*uintptr)(unsafe.Pointer(bp)), -1, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{sqlite3.Xsqlite3_free}))) 1718 } 1719 } 1720 1721 func busyHandler(tls *libc.TLS, pCD uintptr, count int32) int32 { 1722 bp := tls.Alloc(8) 1723 defer tls.Free(8) 1724 1725 _ = pCD 1726 if count*10 > g.iTimeout { 1727 if g.iTimeout > 0 { 1728 errorMessage(tls, ts+70, libc.VaList(bp, g.iTimeout)) 1729 } 1730 return 0 1731 } 1732 sqlite3.Xsqlite3_sleep(tls, 10) 1733 return 1 1734 } 1735 1736 func sqlTraceCallback(tls *libc.TLS, NotUsed1 uintptr, zSql uintptr) { 1737 bp := tls.Alloc(16) 1738 defer tls.Free(16) 1739 1740 _ = NotUsed1 1741 logMessage(tls, ts+89, libc.VaList(bp, clipLength(tls, zSql), zSql)) 1742 } 1743 1744 func sqlErrorCallback(tls *libc.TLS, pArg uintptr, iErrCode int32, zMsg uintptr) { 1745 bp := tls.Alloc(24) 1746 defer tls.Free(24) 1747 1748 _ = pArg 1749 if iErrCode == SQLITE_ERROR && g.bIgnoreSqlErrors != 0 { 1750 return 1751 } 1752 if iErrCode&0xff == SQLITE_SCHEMA && g.iTrace < 3 { 1753 return 1754 } 1755 if g.iTimeout == 0 && iErrCode&0xff == SQLITE_BUSY && g.iTrace < 3 { 1756 return 1757 } 1758 if iErrCode&0xff == SQLITE_NOTICE { 1759 logMessage(tls, ts+96, libc.VaList(bp, zMsg)) 1760 } else { 1761 errorMessage(tls, ts+106, libc.VaList(bp+8, iErrCode, zMsg)) 1762 } 1763 } 1764 1765 func prepareSql(tls *libc.TLS, zFormat uintptr, va uintptr) uintptr { 1766 bp := tls.Alloc(24) 1767 defer tls.Free(24) 1768 1769 var ap va_list 1770 _ = ap 1771 var zSql uintptr 1772 var rc int32 1773 *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) 1774 ap = va 1775 zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1776 _ = ap 1777 rc = sqlite3.Xsqlite3_prepare_v2(tls, g.db, zSql, -1, bp+16, uintptr(0)) 1778 if rc != SQLITE_OK { 1779 sqlite3.Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) 1780 fatalError(tls, ts+122, libc.VaList(bp, sqlite3.Xsqlite3_errmsg(tls, g.db), zSql)) 1781 } 1782 sqlite3.Xsqlite3_free(tls, zSql) 1783 return *(*uintptr)(unsafe.Pointer(bp + 16)) 1784 } 1785 1786 func runSql(tls *libc.TLS, zFormat uintptr, va uintptr) { 1787 bp := tls.Alloc(16) 1788 defer tls.Free(16) 1789 1790 var ap va_list 1791 _ = ap 1792 var zSql uintptr 1793 var rc int32 1794 ap = va 1795 zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1796 _ = ap 1797 rc = sqlite3.Xsqlite3_exec(tls, g.db, zSql, uintptr(0), uintptr(0), uintptr(0)) 1798 if rc != SQLITE_OK { 1799 fatalError(tls, ts+122, libc.VaList(bp, sqlite3.Xsqlite3_errmsg(tls, g.db), zSql)) 1800 } 1801 sqlite3.Xsqlite3_free(tls, zSql) 1802 } 1803 1804 func trySql(tls *libc.TLS, zFormat uintptr, va uintptr) int32 { 1805 var ap va_list 1806 _ = ap 1807 var zSql uintptr 1808 var rc int32 1809 ap = va 1810 zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1811 _ = ap 1812 rc = sqlite3.Xsqlite3_exec(tls, g.db, zSql, uintptr(0), uintptr(0), uintptr(0)) 1813 sqlite3.Xsqlite3_free(tls, zSql) 1814 return rc 1815 } 1816 1817 type String1 = struct { 1818 z uintptr 1819 n int32 1820 nAlloc int32 1821 } 1822 1823 type String = String1 1824 1825 func stringFree(tls *libc.TLS, p uintptr) { 1826 if (*String)(unsafe.Pointer(p)).z != 0 { 1827 sqlite3.Xsqlite3_free(tls, (*String)(unsafe.Pointer(p)).z) 1828 } 1829 libc.Xmemset(tls, p, 0, uint64(unsafe.Sizeof(String{}))) 1830 } 1831 1832 func stringAppend(tls *libc.TLS, p uintptr, z uintptr, n int32) { 1833 if n < 0 { 1834 n = int32(libc.Xstrlen(tls, z)) 1835 } 1836 if (*String)(unsafe.Pointer(p)).n+n >= (*String)(unsafe.Pointer(p)).nAlloc { 1837 var nAlloc int32 = (*String)(unsafe.Pointer(p)).nAlloc*2 + n + 100 1838 var zNew uintptr = sqlite3.Xsqlite3_realloc(tls, (*String)(unsafe.Pointer(p)).z, nAlloc) 1839 if zNew == uintptr(0) { 1840 fatalError(tls, ts+129, 0) 1841 } 1842 (*String)(unsafe.Pointer(p)).z = zNew 1843 (*String)(unsafe.Pointer(p)).nAlloc = nAlloc 1844 } 1845 libc.Xmemcpy(tls, (*String)(unsafe.Pointer(p)).z+uintptr((*String)(unsafe.Pointer(p)).n), z, uint64(n)) 1846 *(*int32)(unsafe.Pointer(p + 8)) += n 1847 *(*int8)(unsafe.Pointer((*String)(unsafe.Pointer(p)).z + uintptr((*String)(unsafe.Pointer(p)).n))) = int8(0) 1848 } 1849 1850 func stringReset(tls *libc.TLS, p uintptr) { 1851 if (*String)(unsafe.Pointer(p)).z == uintptr(0) { 1852 stringAppend(tls, p, ts+143, 1) 1853 } 1854 (*String)(unsafe.Pointer(p)).n = 0 1855 *(*int8)(unsafe.Pointer((*String)(unsafe.Pointer(p)).z)) = int8(0) 1856 } 1857 1858 func stringAppendTerm(tls *libc.TLS, p uintptr, z uintptr) { 1859 var i int32 1860 if (*String)(unsafe.Pointer(p)).n != 0 { 1861 stringAppend(tls, p, ts+143, 1) 1862 } 1863 if z == uintptr(0) { 1864 stringAppend(tls, p, ts+145, 3) 1865 return 1866 } 1867 for i = 0; *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0 && !(libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i)))))) != 0); i++ { 1868 } 1869 if i > 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == 0 { 1870 stringAppend(tls, p, z, i) 1871 return 1872 } 1873 stringAppend(tls, p, ts+149, 1) 1874 for *(*int8)(unsafe.Pointer(z)) != 0 { 1875 for i = 0; *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) != '\''; i++ { 1876 } 1877 if *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0 { 1878 stringAppend(tls, p, z, i+1) 1879 stringAppend(tls, p, ts+149, 1) 1880 z += uintptr(i + 1) 1881 } else { 1882 stringAppend(tls, p, z, i) 1883 break 1884 } 1885 } 1886 stringAppend(tls, p, ts+149, 1) 1887 } 1888 1889 func evalCallback(tls *libc.TLS, pCData uintptr, argc int32, argv uintptr, azCol uintptr) int32 { 1890 var p uintptr = pCData 1891 var i int32 1892 _ = azCol 1893 for i = 0; i < argc; i++ { 1894 stringAppendTerm(tls, p, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) 1895 } 1896 return 0 1897 } 1898 1899 func evalSql(tls *libc.TLS, p uintptr, zFormat uintptr, va uintptr) int32 { 1900 bp := tls.Alloc(46) 1901 defer tls.Free(46) 1902 1903 var ap va_list 1904 _ = ap 1905 var zSql uintptr 1906 var rc int32 1907 *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) 1908 ap = va 1909 zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap) 1910 _ = ap 1911 1912 rc = sqlite3.Xsqlite3_exec(tls, g.db, zSql, *(*uintptr)(unsafe.Pointer(&struct { 1913 f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 1914 }{evalCallback})), p, bp+8) 1915 sqlite3.Xsqlite3_free(tls, zSql) 1916 if rc != 0 { 1917 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+16, ts+151, libc.VaList(bp, rc)) 1918 stringAppendTerm(tls, p, bp+16) 1919 if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { 1920 stringAppendTerm(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) 1921 sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) 1922 } 1923 } 1924 return rc 1925 } 1926 1927 func evalFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { 1928 bp := tls.Alloc(24) 1929 defer tls.Free(24) 1930 1931 var db uintptr = sqlite3.Xsqlite3_context_db_handle(tls, context) 1932 var zSql uintptr = sqlite3.Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) 1933 1934 *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) 1935 var rc int32 1936 _ = argc 1937 libc.Xmemset(tls, bp, 0, uint64(unsafe.Sizeof(String{}))) 1938 rc = sqlite3.Xsqlite3_exec(tls, db, zSql, *(*uintptr)(unsafe.Pointer(&struct { 1939 f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 1940 }{evalCallback})), bp, bp+16) 1941 if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { 1942 sqlite3.Xsqlite3_result_error(tls, context, *(*uintptr)(unsafe.Pointer(bp + 16)), -1) 1943 sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) 1944 } else if rc != 0 { 1945 sqlite3.Xsqlite3_result_error_code(tls, context, rc) 1946 } else { 1947 sqlite3.Xsqlite3_result_text(tls, context, (*String)(unsafe.Pointer(bp)).z, -1, libc.UintptrFromInt32(-1)) 1948 } 1949 stringFree(tls, bp) 1950 } 1951 1952 func startScript(tls *libc.TLS, iClient int32, pzScript uintptr, pTaskId uintptr, pzTaskName uintptr) int32 { 1953 bp := tls.Alloc(80) 1954 defer tls.Free(80) 1955 1956 var pStmt uintptr = uintptr(0) 1957 var taskId int32 1958 var rc int32 1959 var totalTime int32 = 0 1960 1961 *(*uintptr)(unsafe.Pointer(pzScript)) = uintptr(0) 1962 g.iTimeout = 0 1963 for 1 != 0 { 1964 rc = trySql(tls, ts+161, 0) 1965 if rc == SQLITE_BUSY { 1966 sqlite3.Xsqlite3_sleep(tls, 10) 1967 totalTime = totalTime + 10 1968 continue 1969 } 1970 if rc != SQLITE_OK { 1971 fatalError(tls, ts+177, libc.VaList(bp, sqlite3.Xsqlite3_errmsg(tls, g.db))) 1972 } 1973 if g.nError != 0 || g.nTest != 0 { 1974 runSql(tls, ts+196, 1975 libc.VaList(bp+8, g.nError, g.nTest)) 1976 g.nError = 0 1977 g.nTest = 0 1978 } 1979 pStmt = prepareSql(tls, ts+249, libc.VaList(bp+24, iClient)) 1980 rc = sqlite3.Xsqlite3_step(tls, pStmt) 1981 sqlite3.Xsqlite3_finalize(tls, pStmt) 1982 if rc == SQLITE_ROW { 1983 runSql(tls, ts+295, libc.VaList(bp+32, iClient)) 1984 g.iTimeout = DEFAULT_TIMEOUT 1985 runSql(tls, ts+326, 0) 1986 return SQLITE_DONE 1987 } 1988 pStmt = prepareSql(tls, 1989 ts+346, libc.VaList(bp+40, iClient)) 1990 rc = sqlite3.Xsqlite3_step(tls, pStmt) 1991 if rc == SQLITE_ROW { 1992 var n int32 = sqlite3.Xsqlite3_column_bytes(tls, pStmt, 0) 1993 *(*uintptr)(unsafe.Pointer(pzScript)) = sqlite3.Xsqlite3_malloc(tls, n+1) 1994 libc.Xstrcpy(tls, *(*uintptr)(unsafe.Pointer(pzScript)), sqlite3.Xsqlite3_column_text(tls, pStmt, 0)) 1995 *(*int32)(unsafe.Pointer(pTaskId)) = libc.AssignInt32(&taskId, sqlite3.Xsqlite3_column_int(tls, pStmt, 1)) 1996 *(*uintptr)(unsafe.Pointer(pzTaskName)) = sqlite3.Xsqlite3_mprintf(tls, ts+438, libc.VaList(bp+48, sqlite3.Xsqlite3_column_text(tls, pStmt, 2))) 1997 sqlite3.Xsqlite3_finalize(tls, pStmt) 1998 runSql(tls, 1999 ts+441, libc.VaList(bp+56, taskId)) 2000 g.iTimeout = DEFAULT_TIMEOUT 2001 runSql(tls, ts+326, 0) 2002 return SQLITE_OK 2003 } 2004 sqlite3.Xsqlite3_finalize(tls, pStmt) 2005 if rc == SQLITE_DONE { 2006 if totalTime > 30000 { 2007 errorMessage(tls, ts+524, 0) 2008 runSql(tls, ts+573, libc.VaList(bp+64, iClient)) 2009 sqlite3.Xsqlite3_close(tls, g.db) 2010 libc.Xexit(tls, 1) 2011 } 2012 for trySql(tls, ts+613, 0) == SQLITE_BUSY { 2013 sqlite3.Xsqlite3_sleep(tls, 10) 2014 totalTime = totalTime + 10 2015 } 2016 sqlite3.Xsqlite3_sleep(tls, 100) 2017 totalTime = totalTime + 100 2018 continue 2019 } 2020 fatalError(tls, ts+438, libc.VaList(bp+72, sqlite3.Xsqlite3_errmsg(tls, g.db))) 2021 } 2022 g.iTimeout = DEFAULT_TIMEOUT 2023 return int32(0) 2024 } 2025 2026 func finishScript(tls *libc.TLS, iClient int32, taskId int32, bShutdown int32) int32 { 2027 bp := tls.Alloc(16) 2028 defer tls.Free(16) 2029 2030 runSql(tls, 2031 ts+620, libc.VaList(bp, taskId)) 2032 if bShutdown != 0 { 2033 runSql(tls, ts+295, libc.VaList(bp+8, iClient)) 2034 } 2035 return SQLITE_OK 2036 } 2037 2038 func startClient(tls *libc.TLS, iClient int32) { 2039 bp := tls.Alloc(96) 2040 defer tls.Free(96) 2041 2042 runSql(tls, ts+701, libc.VaList(bp, iClient)) 2043 if sqlite3.Xsqlite3_changes(tls, g.db) != 0 { 2044 var zSys uintptr 2045 var rc int32 2046 zSys = sqlite3.Xsqlite3_mprintf(tls, ts+743, 2047 libc.VaList(bp+8, g.argv0, g.zDbFile, iClient, g.iTrace)) 2048 if g.bSqlTrace != 0 { 2049 zSys = sqlite3.Xsqlite3_mprintf(tls, ts+774, libc.VaList(bp+40, zSys)) 2050 } 2051 if g.bSync != 0 { 2052 zSys = sqlite3.Xsqlite3_mprintf(tls, ts+788, libc.VaList(bp+48, zSys)) 2053 } 2054 if g.zVfs != 0 { 2055 zSys = sqlite3.Xsqlite3_mprintf(tls, ts+798, libc.VaList(bp+56, zSys, g.zVfs)) 2056 } 2057 if g.iTrace >= 2 { 2058 logMessage(tls, ts+812, libc.VaList(bp+72, zSys)) 2059 } 2060 zSys = sqlite3.Xsqlite3_mprintf(tls, ts+825, libc.VaList(bp+80, zSys)) 2061 rc = libc.Xsystem(tls, zSys) 2062 if rc != 0 { 2063 errorMessage(tls, ts+830, libc.VaList(bp+88, rc)) 2064 } 2065 sqlite3.Xsqlite3_free(tls, zSys) 2066 } 2067 } 2068 2069 func readFile(tls *libc.TLS, zFilename uintptr) uintptr { 2070 bp := tls.Alloc(8) 2071 defer tls.Free(8) 2072 2073 var in uintptr = libc.Xfopen(tls, zFilename, ts+864) 2074 var sz int64 2075 var z uintptr 2076 if in == uintptr(0) { 2077 fatalError(tls, ts+867, libc.VaList(bp, zFilename)) 2078 } 2079 libc.Xfseek(tls, in, int64(0), SEEK_END) 2080 sz = libc.Xftell(tls, in) 2081 libc.Xrewind(tls, in) 2082 z = sqlite3.Xsqlite3_malloc(tls, int32(sz+int64(1))) 2083 sz = int64(libc.Xfread(tls, z, uint64(1), uint64(sz), in)) 2084 *(*int8)(unsafe.Pointer(z + uintptr(sz))) = int8(0) 2085 libc.Xfclose(tls, in) 2086 return z 2087 } 2088 2089 func tokenLength(tls *libc.TLS, z uintptr, pnLine uintptr) int32 { 2090 var n int32 = 0 2091 if libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z))))) != 0 || int32(*(*int8)(unsafe.Pointer(z))) == '/' && int32(*(*int8)(unsafe.Pointer(z + 1))) == '*' { 2092 var inC int32 = 0 2093 var c int32 2094 if int32(*(*int8)(unsafe.Pointer(z))) == '/' { 2095 inC = 1 2096 n = 2 2097 } 2098 for libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&n, 1)))))) != 0 { 2099 if c == '\n' { 2100 *(*int32)(unsafe.Pointer(pnLine))++ 2101 } 2102 if libc.Xisspace(tls, int32(uint8(c))) != 0 { 2103 continue 2104 } 2105 if inC != 0 && c == '*' && int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == '/' { 2106 n++ 2107 inC = 0 2108 } else if !(inC != 0) && c == '/' && int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == '*' { 2109 n++ 2110 inC = 1 2111 } else if !(inC != 0) { 2112 break 2113 } 2114 } 2115 n-- 2116 } else if int32(*(*int8)(unsafe.Pointer(z))) == '-' && int32(*(*int8)(unsafe.Pointer(z + 1))) == '-' { 2117 for n = 2; *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) != '\n'; n++ { 2118 } 2119 if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { 2120 *(*int32)(unsafe.Pointer(pnLine))++ 2121 n++ 2122 } 2123 } else if int32(*(*int8)(unsafe.Pointer(z))) == '"' || int32(*(*int8)(unsafe.Pointer(z))) == '\'' { 2124 var delim int32 = int32(*(*int8)(unsafe.Pointer(z))) 2125 for n = 1; *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0; n++ { 2126 if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == '\n' { 2127 *(*int32)(unsafe.Pointer(pnLine))++ 2128 } 2129 if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == delim { 2130 n++ 2131 if int32(*(*int8)(unsafe.Pointer(z + uintptr(n+1)))) != delim { 2132 break 2133 } 2134 } 2135 } 2136 } else { 2137 var c int32 2138 for n = 1; libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(z + uintptr(n))))) != 0 && !(libc.Xisspace(tls, int32(uint8(c))) != 0) && c != '"' && c != '\'' && c != ';'; n++ { 2139 } 2140 } 2141 return n 2142 } 2143 2144 func extractToken(tls *libc.TLS, zIn uintptr, nIn int32, zOut uintptr, nOut int32) int32 { 2145 var i int32 2146 if nIn <= 0 { 2147 *(*int8)(unsafe.Pointer(zOut)) = int8(0) 2148 return 0 2149 } 2150 for i = 0; i < nIn && i < nOut-1 && !(libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))))) != 0); i++ { 2151 *(*int8)(unsafe.Pointer(zOut + uintptr(i))) = *(*int8)(unsafe.Pointer(zIn + uintptr(i))) 2152 } 2153 *(*int8)(unsafe.Pointer(zOut + uintptr(i))) = int8(0) 2154 return i 2155 } 2156 2157 func findEnd(tls *libc.TLS, z uintptr, pnLine uintptr) int32 { 2158 var n int32 = 0 2159 for *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 && (libc.Xstrncmp(tls, z+uintptr(n), ts+896, uint64(5)) != 0 || !(libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(n+5)))))) != 0)) { 2160 n = n + tokenLength(tls, z+uintptr(n), pnLine) 2161 } 2162 return n 2163 } 2164 2165 func findEndif(tls *libc.TLS, z uintptr, stopAtElse int32, pnLine uintptr) int32 { 2166 var n int32 = 0 2167 for *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { 2168 var len int32 = tokenLength(tls, z+uintptr(n), pnLine) 2169 if libc.Xstrncmp(tls, z+uintptr(n), ts+902, uint64(7)) == 0 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(n+7)))))) != 0 || 2170 stopAtElse != 0 && libc.Xstrncmp(tls, z+uintptr(n), ts+910, uint64(6)) == 0 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(n+6)))))) != 0 { 2171 return n + len 2172 } 2173 if libc.Xstrncmp(tls, z+uintptr(n), ts+917, uint64(4)) == 0 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(n+4)))))) != 0 { 2174 var skip int32 = findEndif(tls, z+uintptr(n)+uintptr(len), 0, pnLine) 2175 n = n + (skip + len) 2176 } else { 2177 n = n + len 2178 } 2179 } 2180 return n 2181 } 2182 2183 func waitForClient(tls *libc.TLS, iClient int32, iTimeout int32, zErrPrefix uintptr) { 2184 bp := tls.Alloc(32) 2185 defer tls.Free(32) 2186 2187 var pStmt uintptr 2188 var rc int32 2189 if iClient > 0 { 2190 pStmt = prepareSql(tls, 2191 ts+922, 2192 libc.VaList(bp, iClient)) 2193 } else { 2194 pStmt = prepareSql(tls, 2195 ts+1018, 0) 2196 } 2197 g.iTimeout = 0 2198 for (libc.AssignInt32(&rc, sqlite3.Xsqlite3_step(tls, pStmt)) == SQLITE_BUSY || rc == SQLITE_ROW) && 2199 iTimeout > 0 { 2200 sqlite3.Xsqlite3_reset(tls, pStmt) 2201 sqlite3.Xsqlite3_sleep(tls, 50) 2202 iTimeout = iTimeout - 50 2203 } 2204 sqlite3.Xsqlite3_finalize(tls, pStmt) 2205 g.iTimeout = DEFAULT_TIMEOUT 2206 if rc != SQLITE_DONE { 2207 if zErrPrefix == uintptr(0) { 2208 zErrPrefix = ts + 1099 2209 } 2210 if iClient > 0 { 2211 errorMessage(tls, ts+1100, libc.VaList(bp+8, zErrPrefix, iClient)) 2212 } else { 2213 errorMessage(tls, ts+1132, libc.VaList(bp+24, zErrPrefix)) 2214 } 2215 } 2216 } 2217 2218 func filenameTail(tls *libc.TLS, z uintptr) uintptr { 2219 var i int32 2220 var j int32 2221 for i = libc.AssignInt32(&j, 0); *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0; i++ { 2222 if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == '/' { 2223 j = i + 1 2224 } 2225 } 2226 return z + uintptr(j) 2227 } 2228 2229 func booleanValue(tls *libc.TLS, zArg uintptr) int32 { 2230 bp := tls.Alloc(8) 2231 defer tls.Free(8) 2232 2233 var i int32 2234 if zArg == uintptr(0) { 2235 return 0 2236 } 2237 for i = 0; int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i)))) >= '0' && int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i)))) <= '9'; i++ { 2238 } 2239 if i > 0 && int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i)))) == 0 { 2240 return libc.Xatoi(tls, zArg) 2241 } 2242 if sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1166) == 0 || sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1169) == 0 { 2243 return 1 2244 } 2245 if sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1173) == 0 || sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1177) == 0 { 2246 return 0 2247 } 2248 errorMessage(tls, ts+1180, libc.VaList(bp, zArg)) 2249 return 0 2250 } 2251 2252 func test_breakpoint(tls *libc.TLS) { 2253 atomic.AddInt32(&cnt, 1) 2254 } 2255 2256 var cnt int32 = 0 2257 2258 func runScript(tls *libc.TLS, iClient int32, taskId int32, zScript uintptr, zFilename uintptr) { 2259 bp := tls.Alloc(1610) 2260 defer tls.Free(1610) 2261 2262 *(*int32)(unsafe.Pointer(bp + 376)) = 1 2263 var prevLine int32 = 1 2264 var ii int32 = 0 2265 var iBegin int32 = 0 2266 var n int32 2267 var c int32 2268 var j int32 2269 var len int32 2270 var nArg int32 2271 2272 libc.Xmemset(tls, bp+360, 0, uint64(unsafe.Sizeof(String{}))) 2273 stringReset(tls, bp+360) 2274 for libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(zScript + uintptr(ii))))) != 0 { 2275 prevLine = *(*int32)(unsafe.Pointer(bp + 376)) 2276 len = tokenLength(tls, zScript+uintptr(ii), bp+376) 2277 if libc.Xisspace(tls, int32(uint8(c))) != 0 || c == '/' && int32(*(*int8)(unsafe.Pointer(zScript + uintptr(ii+1)))) == '*' { 2278 ii = ii + len 2279 continue 2280 } 2281 if c != '-' || int32(*(*int8)(unsafe.Pointer(zScript + uintptr(ii+1)))) != '-' || !(libc.Xisalpha(tls, int32(*(*int8)(unsafe.Pointer(zScript + uintptr(ii+2))))) != 0) { 2282 ii = ii + len 2283 continue 2284 } 2285 2286 if ii > iBegin { 2287 var zSql uintptr = sqlite3.Xsqlite3_mprintf(tls, ts+1202, libc.VaList(bp, ii-iBegin, zScript+uintptr(iBegin))) 2288 evalSql(tls, bp+360, zSql, 0) 2289 sqlite3.Xsqlite3_free(tls, zSql) 2290 iBegin = ii + len 2291 } 2292 2293 if g.iTrace >= 2 { 2294 logMessage(tls, ts+1202, libc.VaList(bp+16, len, zScript+uintptr(ii))) 2295 } 2296 n = extractToken(tls, zScript+uintptr(ii)+uintptr(2), len-2, bp+380, int32(unsafe.Sizeof([30]int8{}))) 2297 for nArg = 0; n < len-2 && nArg < MX_ARG; nArg++ { 2298 for n < len-2 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zScript + uintptr(ii+2+n)))))) != 0 { 2299 n++ 2300 } 2301 if n >= len-2 { 2302 break 2303 } 2304 n = n + extractToken(tls, zScript+uintptr(ii)+uintptr(2)+uintptr(n), len-2-n, 2305 bp+410+uintptr(nArg)*100, int32(unsafe.Sizeof([100]int8{}))) 2306 } 2307 for j = nArg; j < MX_ARG; j++ { 2308 *(*int8)(unsafe.Pointer(bp + 410 + uintptr(libc.PostIncInt32(&j, 1))*100)) = int8(0) 2309 } 2310 2311 if libc.Xstrcmp(tls, bp+380, ts+1207) == 0 { 2312 sqlite3.Xsqlite3_sleep(tls, libc.Xatoi(tls, bp+410)) 2313 } else if libc.Xstrcmp(tls, bp+380, ts+1213) == 0 { 2314 var rc int32 = libc.Xatoi(tls, bp+410) 2315 finishScript(tls, iClient, taskId, 1) 2316 if rc == 0 { 2317 sqlite3.Xsqlite3_close(tls, g.db) 2318 } 2319 libc.Xexit(tls, rc) 2320 } else if libc.Xstrcmp(tls, bp+380, ts+1218) == 0 { 2321 if g.iTrace == 1 { 2322 logMessage(tls, ts+1202, libc.VaList(bp+32, len-1, zScript+uintptr(ii))) 2323 } 2324 stringReset(tls, bp+360) 2325 } else if libc.Xstrcmp(tls, bp+380, ts+1227) == 0 && iClient > 0 { 2326 finishScript(tls, iClient, taskId, 1) 2327 } else if libc.Xstrcmp(tls, bp+380, ts+1234) == 0 { 2328 stringReset(tls, bp+360) 2329 } else if libc.Xstrcmp(tls, bp+380, ts+1240) == 0 { 2330 var jj int32 2331 var zAns uintptr = zScript + uintptr(ii) 2332 for jj = 7; jj < len-1 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zAns + uintptr(jj)))))) != 0; jj++ { 2333 } 2334 zAns += uintptr(jj) 2335 if len-jj-1 != (*String)(unsafe.Pointer(bp+360)).n || libc.Xstrncmp(tls, (*String)(unsafe.Pointer(bp+360)).z, zAns, uint64(len-jj-1)) != 0 { 2336 errorMessage(tls, ts+1246, 2337 libc.VaList(bp+48, prevLine, zFilename, len-jj-1, zAns, (*String)(unsafe.Pointer(bp+360)).z)) 2338 } 2339 g.nTest++ 2340 stringReset(tls, bp+360) 2341 } else if libc.Xstrcmp(tls, bp+380, ts+1291) == 0 || libc.Xstrcmp(tls, bp+380, ts+1296) == 0 { 2342 var jj int32 2343 var zAns uintptr = zScript + uintptr(ii) 2344 var zCopy uintptr 2345 var isGlob int32 = libc.Bool32(int32(*(*int8)(unsafe.Pointer(bp + 380))) == 'g') 2346 for jj = 9 - 3*isGlob; jj < len-1 && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zAns + uintptr(jj)))))) != 0; jj++ { 2347 } 2348 zAns += uintptr(jj) 2349 zCopy = sqlite3.Xsqlite3_mprintf(tls, ts+1202, libc.VaList(bp+88, len-jj-1, zAns)) 2350 if libc.Bool32(sqlite3.Xsqlite3_strglob(tls, zCopy, (*String)(unsafe.Pointer(bp+360)).z) == 0)^isGlob != 0 { 2351 errorMessage(tls, ts+1304, 2352 libc.VaList(bp+104, prevLine, zFilename, zCopy, (*String)(unsafe.Pointer(bp+360)).z)) 2353 } 2354 sqlite3.Xsqlite3_free(tls, zCopy) 2355 g.nTest++ 2356 stringReset(tls, bp+360) 2357 } else if libc.Xstrcmp(tls, bp+380, ts+1347) == 0 { 2358 logMessage(tls, ts+438, libc.VaList(bp+136, (*String)(unsafe.Pointer(bp+360)).z)) 2359 } else if libc.Xstrcmp(tls, bp+380, ts+1354) == 0 { 2360 var zNewFile uintptr 2361 var zNewScript uintptr 2362 var zToDel uintptr = uintptr(0) 2363 zNewFile = bp + 410 2364 if !(int32(*(*int8)(unsafe.Pointer(zNewFile))) == '/') { 2365 var k int32 2366 for k = int32(libc.Xstrlen(tls, zFilename)) - 1; k >= 0 && !(int32(*(*int8)(unsafe.Pointer(zFilename + uintptr(k)))) == '/'); k-- { 2367 } 2368 if k > 0 { 2369 zNewFile = libc.AssignUintptr(&zToDel, sqlite3.Xsqlite3_mprintf(tls, ts+1361, libc.VaList(bp+144, k, zFilename, zNewFile))) 2370 } 2371 } 2372 zNewScript = readFile(tls, zNewFile) 2373 if g.iTrace != 0 { 2374 logMessage(tls, ts+1369, libc.VaList(bp+168, zNewFile)) 2375 } 2376 runScript(tls, 0, 0, zNewScript, zNewFile) 2377 sqlite3.Xsqlite3_free(tls, zNewScript) 2378 if g.iTrace != 0 { 2379 logMessage(tls, ts+1388, libc.VaList(bp+176, zNewFile)) 2380 } 2381 sqlite3.Xsqlite3_free(tls, zToDel) 2382 } else if libc.Xstrcmp(tls, bp+380, ts+1405) == 0 { 2383 var jj int32 2384 for jj = 7; jj < len && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zScript + uintptr(ii+jj)))))) != 0; jj++ { 2385 } 2386 logMessage(tls, ts+1202, libc.VaList(bp+184, len-jj, zScript+uintptr(ii)+uintptr(jj))) 2387 } else if libc.Xstrcmp(tls, bp+380, ts+1411) == 0 { 2388 var jj int32 2389 var rc int32 2390 var pStmt uintptr 2391 for jj = 4; jj < len && libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zScript + uintptr(ii+jj)))))) != 0; jj++ { 2392 } 2393 pStmt = prepareSql(tls, ts+1414, libc.VaList(bp+200, len-jj, zScript+uintptr(ii)+uintptr(jj))) 2394 rc = sqlite3.Xsqlite3_step(tls, pStmt) 2395 if rc != SQLITE_ROW || sqlite3.Xsqlite3_column_int(tls, pStmt, 0) == 0 { 2396 ii = ii + findEndif(tls, zScript+uintptr(ii)+uintptr(len), 1, bp+376) 2397 } 2398 sqlite3.Xsqlite3_finalize(tls, pStmt) 2399 } else if libc.Xstrcmp(tls, bp+380, ts+1426) == 0 { 2400 ii = ii + findEndif(tls, zScript+uintptr(ii)+uintptr(len), 0, bp+376) 2401 } else if libc.Xstrcmp(tls, bp+380, ts+1431) == 0 { 2402 } else if libc.Xstrcmp(tls, bp+380, ts+1437) == 0 && iClient == 0 { 2403 var iNewClient int32 = libc.Xatoi(tls, bp+410) 2404 if iNewClient > 0 { 2405 startClient(tls, iNewClient) 2406 } 2407 } else if libc.Xstrcmp(tls, bp+380, ts+1443) == 0 && iClient == 0 { 2408 var iTimeout int32 2409 if nArg >= 2 { 2410 iTimeout = libc.Xatoi(tls, bp+410+1*100) 2411 } else { 2412 iTimeout = 10000 2413 } 2414 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([1000]int8{})), bp+610, ts+1448, 2415 libc.VaList(bp+216, prevLine, zFilename)) 2416 waitForClient(tls, libc.Xatoi(tls, bp+410), iTimeout, bp+610) 2417 } else if libc.Xstrcmp(tls, bp+380, ts+1463) == 0 && iClient == 0 { 2418 var iTarget int32 = libc.Xatoi(tls, bp+410) 2419 var iEnd int32 2420 var zTask uintptr 2421 var zTName uintptr 2422 iEnd = findEnd(tls, zScript+uintptr(ii)+uintptr(len), bp+376) 2423 if iTarget < 0 { 2424 errorMessage(tls, ts+1468, 2425 libc.VaList(bp+232, prevLine, zFilename, iTarget)) 2426 } else { 2427 zTask = sqlite3.Xsqlite3_mprintf(tls, ts+1202, libc.VaList(bp+256, iEnd, zScript+uintptr(ii)+uintptr(len))) 2428 if nArg > 1 { 2429 zTName = sqlite3.Xsqlite3_mprintf(tls, ts+438, libc.VaList(bp+272, bp+410+1*100)) 2430 } else { 2431 zTName = sqlite3.Xsqlite3_mprintf(tls, ts+1505, libc.VaList(bp+280, filenameTail(tls, zFilename), prevLine)) 2432 } 2433 startClient(tls, iTarget) 2434 runSql(tls, 2435 ts+1511, libc.VaList(bp+296, iTarget, zTask, zTName)) 2436 sqlite3.Xsqlite3_free(tls, zTask) 2437 sqlite3.Xsqlite3_free(tls, zTName) 2438 } 2439 iEnd = iEnd + tokenLength(tls, zScript+uintptr(ii)+uintptr(len)+uintptr(iEnd), bp+376) 2440 len = len + iEnd 2441 iBegin = ii + len 2442 } else if libc.Xstrcmp(tls, bp+380, ts+1567) == 0 { 2443 test_breakpoint(tls) 2444 } else if libc.Xstrcmp(tls, bp+380, ts+1578) == 0 { 2445 g.bIgnoreSqlErrors = func() int32 { 2446 if nArg >= 1 { 2447 return libc.BoolInt32(!(booleanValue(tls, bp+410) != 0)) 2448 } 2449 return 1 2450 }() 2451 } else { 2452 errorMessage(tls, ts+1594, 2453 libc.VaList(bp+320, prevLine, zFilename, bp+380)) 2454 } 2455 ii = ii + len 2456 } 2457 if iBegin < ii { 2458 var zSql uintptr = sqlite3.Xsqlite3_mprintf(tls, ts+1202, libc.VaList(bp+344, ii-iBegin, zScript+uintptr(iBegin))) 2459 runSql(tls, zSql, 0) 2460 sqlite3.Xsqlite3_free(tls, zSql) 2461 } 2462 stringFree(tls, bp+360) 2463 } 2464 2465 func findOption(tls *libc.TLS, azArg uintptr, pnArg uintptr, zOption uintptr, hasArg int32) uintptr { 2466 bp := tls.Alloc(8) 2467 defer tls.Free(8) 2468 2469 var i int32 2470 var j int32 2471 var zReturn uintptr = uintptr(0) 2472 var nArg int32 = *(*int32)(unsafe.Pointer(pnArg)) 2473 2474 for i = 0; i < nArg; i++ { 2475 var z uintptr 2476 if i+hasArg >= nArg { 2477 break 2478 } 2479 z = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)) 2480 if int32(*(*int8)(unsafe.Pointer(z))) != '-' { 2481 continue 2482 } 2483 z++ 2484 if int32(*(*int8)(unsafe.Pointer(z))) == '-' { 2485 if int32(*(*int8)(unsafe.Pointer(z + 1))) == 0 { 2486 break 2487 } 2488 z++ 2489 } 2490 if libc.Xstrcmp(tls, z, zOption) == 0 { 2491 if hasArg != 0 && i == nArg-1 { 2492 fatalError(tls, ts+1630, libc.VaList(bp, z)) 2493 } 2494 if hasArg != 0 { 2495 zReturn = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+1)*8)) 2496 } else { 2497 zReturn = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)) 2498 } 2499 j = i + 1 + libc.Bool32(hasArg != 0) 2500 for j < nArg { 2501 *(*uintptr)(unsafe.Pointer(azArg + uintptr(libc.PostIncInt32(&i, 1))*8)) = *(*uintptr)(unsafe.Pointer(azArg + uintptr(libc.PostIncInt32(&j, 1))*8)) 2502 } 2503 *(*int32)(unsafe.Pointer(pnArg)) = i 2504 return zReturn 2505 } 2506 } 2507 return zReturn 2508 } 2509 2510 func usage(tls *libc.TLS, argv0 uintptr) { 2511 bp := tls.Alloc(8) 2512 defer tls.Free(8) 2513 2514 var i int32 2515 var zTail uintptr = argv0 2516 for i = 0; *(*int8)(unsafe.Pointer(argv0 + uintptr(i))) != 0; i++ { 2517 if int32(*(*int8)(unsafe.Pointer(argv0 + uintptr(i)))) == '/' { 2518 zTail = argv0 + uintptr(i) + uintptr(1) 2519 } 2520 } 2521 libc.Xfprintf(tls, uintptr(unsafe.Pointer(&libc.X__sF))+2*152, ts+1678, libc.VaList(bp, zTail)) 2522 libc.Xfprintf(tls, uintptr(unsafe.Pointer(&libc.X__sF))+2*152, 2523 ts+1717, 0) 2524 libc.Xexit(tls, 1) 2525 } 2526 2527 func unrecognizedArguments(tls *libc.TLS, argv0 uintptr, nArg int32, azArg uintptr) { 2528 bp := tls.Alloc(16) 2529 defer tls.Free(16) 2530 2531 var i int32 2532 libc.Xfprintf(tls, uintptr(unsafe.Pointer(&libc.X__sF))+2*152, ts+2289, libc.VaList(bp, argv0)) 2533 for i = 0; i < nArg; i++ { 2534 libc.Xfprintf(tls, uintptr(unsafe.Pointer(&libc.X__sF))+2*152, ts+2317, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)))) 2535 } 2536 libc.Xfprintf(tls, uintptr(unsafe.Pointer(&libc.X__sF))+2*152, ts+2321, 0) 2537 libc.Xexit(tls, 1) 2538 } 2539 2540 func main1(tls *libc.TLS, argc int32, argv uintptr) int32 { 2541 bp := tls.Alloc(264) 2542 defer tls.Free(264) 2543 2544 var zClient uintptr 2545 var iClient int32 2546 2547 var i int32 2548 var openFlags int32 = SQLITE_OPEN_READWRITE 2549 var rc int32 2550 2551 var zTrace uintptr 2552 var zCOption uintptr 2553 var zJMode uintptr 2554 var zNRep uintptr 2555 var nRep int32 = 1 2556 var iRep int32 2557 var iTmout int32 = 0 2558 var zTmout uintptr 2559 2560 g.argv0 = *(*uintptr)(unsafe.Pointer(argv)) 2561 g.iTrace = 1 2562 if argc < 2 { 2563 usage(tls, *(*uintptr)(unsafe.Pointer(argv))) 2564 } 2565 g.zDbFile = *(*uintptr)(unsafe.Pointer(argv + 1*8)) 2566 if strglob(tls, ts+2323, g.zDbFile) != 0 { 2567 usage(tls, *(*uintptr)(unsafe.Pointer(argv))) 2568 } 2569 if libc.Xstrcmp(tls, sqlite3.Xsqlite3_sourceid(tls), ts+2330) != 0 { 2570 libc.Xfprintf(tls, uintptr(unsafe.Pointer(&libc.X__sF))+2*152, 2571 ts+2415, 2572 libc.VaList(bp, sqlite3.Xsqlite3_sourceid(tls), ts+2330)) 2573 libc.Xexit(tls, 1) 2574 } 2575 *(*int32)(unsafe.Pointer(bp + 232)) = argc - 2 2576 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([32]int8{})), uintptr(unsafe.Pointer(&g))+64, ts+2475, libc.VaList(bp+16, libc.Xgetpid(tls))) 2577 zJMode = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2487, 1) 2578 zNRep = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2499, 1) 2579 if zNRep != 0 { 2580 nRep = libc.Xatoi(tls, zNRep) 2581 } 2582 if nRep < 1 { 2583 nRep = 1 2584 } 2585 g.zVfs = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2506, 1) 2586 zClient = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2510, 1) 2587 g.zErrLog = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2517, 1) 2588 g.zLog = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2524, 1) 2589 zTrace = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2528, 1) 2590 if zTrace != 0 { 2591 g.iTrace = libc.Xatoi(tls, zTrace) 2592 } 2593 if findOption(tls, argv+uintptr(2)*8, bp+232, ts+2534, 0) != uintptr(0) { 2594 g.iTrace = 0 2595 } 2596 zTmout = findOption(tls, argv+uintptr(2)*8, bp+232, ts+2540, 1) 2597 if zTmout != 0 { 2598 iTmout = libc.Xatoi(tls, zTmout) 2599 } 2600 g.bSqlTrace = libc.Bool32(findOption(tls, argv+uintptr(2)*8, bp+232, ts+2548, 0) != uintptr(0)) 2601 g.bSync = libc.Bool32(findOption(tls, argv+uintptr(2)*8, bp+232, ts+2557, 0) != uintptr(0)) 2602 if g.zErrLog != 0 { 2603 g.pErrLog = libc.Xfopen(tls, g.zErrLog, ts+2562) 2604 } else { 2605 g.pErrLog = uintptr(unsafe.Pointer(&libc.X__sF)) + 2*152 2606 } 2607 if g.zLog != 0 { 2608 g.pLog = libc.Xfopen(tls, g.zLog, ts+2562) 2609 } else { 2610 g.pLog = uintptr(unsafe.Pointer(&libc.X__sF)) + 1*152 2611 } 2612 2613 sqlite3.Xsqlite3_config(tls, SQLITE_CONFIG_LOG, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(&struct { 2614 f func(*libc.TLS, uintptr, int32, uintptr) 2615 }{sqlErrorCallback})), 0)) 2616 if zClient != 0 { 2617 iClient = libc.Xatoi(tls, zClient) 2618 if iClient < 1 { 2619 fatalError(tls, ts+2564, libc.VaList(bp+40, iClient)) 2620 } 2621 sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([32]int8{})), uintptr(unsafe.Pointer(&g))+64, ts+2591, 2622 libc.VaList(bp+48, libc.Xgetpid(tls), iClient)) 2623 } else { 2624 var nTry int32 = 0 2625 if g.iTrace > 0 { 2626 libc.Xprintf(tls, ts+2607, libc.VaList(bp+64, *(*uintptr)(unsafe.Pointer(argv)))) 2627 for i = 1; i < argc; i++ { 2628 libc.Xprintf(tls, ts+2317, libc.VaList(bp+72, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))) 2629 } 2630 libc.Xprintf(tls, ts+2321, 0) 2631 libc.Xprintf(tls, ts+2617, 0) 2632 for i = 0; libc.AssignUintptr(&zCOption, sqlite3.Xsqlite3_compileoption_get(tls, i)) != uintptr(0); i++ { 2633 libc.Xprintf(tls, ts+2722, libc.VaList(bp+80, zCOption)) 2634 } 2635 libc.Xfflush(tls, uintptr(unsafe.Pointer(&libc.X__sF))+1*152) 2636 } 2637 iClient = 0 2638 for __ccgo := true; __ccgo; __ccgo = rc != 0 && libc.PreIncInt32(&nTry, 1) < 60 && sqlite3.Xsqlite3_sleep(tls, 1000) > 0 { 2639 if nTry%5 == 4 { 2640 libc.Xprintf(tls, ts+2735, 2641 libc.VaList(bp+88, func() uintptr { 2642 if nTry > 5 { 2643 return ts + 2764 2644 } 2645 return ts + 1099 2646 }(), g.zDbFile)) 2647 } 2648 rc = libc.Xunlink(tls, g.zDbFile) 2649 if rc != 0 && *(*int32)(unsafe.Pointer(libc.X__errno(tls))) == ENOENT { 2650 rc = 0 2651 } 2652 } 2653 if rc != 0 { 2654 fatalError(tls, ts+2771, 2655 libc.VaList(bp+104, g.zDbFile, nTry)) 2656 } 2657 openFlags = openFlags | SQLITE_OPEN_CREATE 2658 } 2659 rc = sqlite3.Xsqlite3_open_v2(tls, g.zDbFile, uintptr(unsafe.Pointer(&g))+24, openFlags, g.zVfs) 2660 if rc != 0 { 2661 fatalError(tls, ts+2812, libc.VaList(bp+120, g.zDbFile)) 2662 } 2663 if iTmout > 0 { 2664 sqlite3.Xsqlite3_busy_timeout(tls, g.db, iTmout) 2665 } 2666 2667 if zJMode != 0 { 2668 runSql(tls, ts+2829, libc.VaList(bp+128, zJMode)) 2669 } 2670 if !(g.bSync != 0) { 2671 trySql(tls, ts+2853, 0) 2672 } 2673 sqlite3.Xsqlite3_enable_load_extension(tls, g.db, 1) 2674 sqlite3.Xsqlite3_busy_handler(tls, g.db, *(*uintptr)(unsafe.Pointer(&struct { 2675 f func(*libc.TLS, uintptr, int32) int32 2676 }{busyHandler})), uintptr(0)) 2677 sqlite3.Xsqlite3_create_function(tls, g.db, ts+2876, 0, SQLITE_UTF8, uintptr(0), 2678 *(*uintptr)(unsafe.Pointer(&struct { 2679 f func(*libc.TLS, uintptr, int32, uintptr) 2680 }{vfsNameFunc})), uintptr(0), uintptr(0)) 2681 sqlite3.Xsqlite3_create_function(tls, g.db, ts+2884, 1, SQLITE_UTF8, uintptr(0), 2682 *(*uintptr)(unsafe.Pointer(&struct { 2683 f func(*libc.TLS, uintptr, int32, uintptr) 2684 }{evalFunc})), uintptr(0), uintptr(0)) 2685 g.iTimeout = DEFAULT_TIMEOUT 2686 if g.bSqlTrace != 0 { 2687 sqlite3.Xsqlite3_trace(tls, g.db, *(*uintptr)(unsafe.Pointer(&struct { 2688 f func(*libc.TLS, uintptr, uintptr) 2689 }{sqlTraceCallback})), uintptr(0)) 2690 } 2691 if iClient > 0 { 2692 if *(*int32)(unsafe.Pointer(bp + 232)) > 0 { 2693 unrecognizedArguments(tls, *(*uintptr)(unsafe.Pointer(argv)), *(*int32)(unsafe.Pointer(bp + 232)), argv+uintptr(2)*8) 2694 } 2695 if g.iTrace != 0 { 2696 logMessage(tls, ts+2889, 0) 2697 } 2698 for 1 != 0 { 2699 *(*uintptr)(unsafe.Pointer(bp + 256)) = uintptr(0) 2700 rc = startScript(tls, iClient, bp+240, bp+248, bp+256) 2701 if rc == SQLITE_DONE { 2702 break 2703 } 2704 if g.iTrace != 0 { 2705 logMessage(tls, ts+2902, libc.VaList(bp+136, *(*uintptr)(unsafe.Pointer(bp + 256)), *(*int32)(unsafe.Pointer(bp + 248)))) 2706 } 2707 runScript(tls, iClient, *(*int32)(unsafe.Pointer(bp + 248)), *(*uintptr)(unsafe.Pointer(bp + 240)), *(*uintptr)(unsafe.Pointer(bp + 256))) 2708 if g.iTrace != 0 { 2709 logMessage(tls, ts+2916, libc.VaList(bp+152, *(*uintptr)(unsafe.Pointer(bp + 256)), *(*int32)(unsafe.Pointer(bp + 248)))) 2710 } 2711 finishScript(tls, iClient, *(*int32)(unsafe.Pointer(bp + 248)), 0) 2712 sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 256))) 2713 sqlite3.Xsqlite3_sleep(tls, 10) 2714 } 2715 if g.iTrace != 0 { 2716 logMessage(tls, ts+2928, 0) 2717 } 2718 } else { 2719 var pStmt uintptr 2720 var iTimeout int32 2721 if *(*int32)(unsafe.Pointer(bp + 232)) == 0 { 2722 fatalError(tls, ts+2939, 0) 2723 } 2724 if *(*int32)(unsafe.Pointer(bp + 232)) > 1 { 2725 unrecognizedArguments(tls, *(*uintptr)(unsafe.Pointer(argv)), *(*int32)(unsafe.Pointer(bp + 232)), argv+uintptr(2)*8) 2726 } 2727 runSql(tls, 2728 ts+2963, 0) 2729 *(*uintptr)(unsafe.Pointer(bp + 240)) = readFile(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))) 2730 for iRep = 1; iRep <= nRep; iRep++ { 2731 if g.iTrace != 0 { 2732 logMessage(tls, ts+3399, libc.VaList(bp+168, *(*uintptr)(unsafe.Pointer(argv + 2*8)), iRep)) 2733 } 2734 runScript(tls, 0, 0, *(*uintptr)(unsafe.Pointer(bp + 240)), *(*uintptr)(unsafe.Pointer(argv + 2*8))) 2735 if g.iTrace != 0 { 2736 logMessage(tls, ts+3427, libc.VaList(bp+184, *(*uintptr)(unsafe.Pointer(argv + 2*8)), iRep)) 2737 } 2738 } 2739 sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 240))) 2740 waitForClient(tls, 0, 2000, ts+3453) 2741 trySql(tls, ts+3473, 0) 2742 sqlite3.Xsqlite3_sleep(tls, 10) 2743 g.iTimeout = 0 2744 iTimeout = 1000 2745 for (libc.AssignInt32(&rc, trySql(tls, ts+3502, 0)) == SQLITE_BUSY || 2746 rc == SQLITE_ROW) && iTimeout > 0 { 2747 sqlite3.Xsqlite3_sleep(tls, 10) 2748 iTimeout = iTimeout - 10 2749 } 2750 sqlite3.Xsqlite3_sleep(tls, 100) 2751 pStmt = prepareSql(tls, ts+3523, 0) 2752 iTimeout = 1000 2753 for libc.AssignInt32(&rc, sqlite3.Xsqlite3_step(tls, pStmt)) == SQLITE_BUSY && iTimeout > 0 { 2754 sqlite3.Xsqlite3_sleep(tls, 10) 2755 iTimeout = iTimeout - 10 2756 } 2757 if rc == SQLITE_ROW { 2758 *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&g)) + 112)) += sqlite3.Xsqlite3_column_int(tls, pStmt, 0) 2759 *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&g)) + 116)) += sqlite3.Xsqlite3_column_int(tls, pStmt, 1) 2760 } 2761 sqlite3.Xsqlite3_finalize(tls, pStmt) 2762 } 2763 sqlite3.Xsqlite3_close(tls, g.db) 2764 maybeClose(tls, g.pLog) 2765 maybeClose(tls, g.pErrLog) 2766 if iClient == 0 { 2767 libc.Xprintf(tls, ts+3558, libc.VaList(bp+200, g.nError, g.nTest)) 2768 libc.Xprintf(tls, ts+3594, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(argv)))) 2769 for i = 1; i < argc; i++ { 2770 libc.Xprintf(tls, ts+2317, libc.VaList(bp+224, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))) 2771 } 2772 libc.Xprintf(tls, ts+2321, 0) 2773 } 2774 return libc.Bool32(g.nError > 0) 2775 } 2776 2777 var ts1 = "%s%.*s\n\x00%s:ERROR: \x00%s:FATAL: \x00UPDATE client SET wantHalt=1;\x00%s: \x00main\x00timeout after %dms\x00[%.*s]\x00(info) %s\x00(errcode=%d) %s\x00%s\n%s\n\x00out of memory\x00 \x00nil\x00'\x00error(%d)\x00BEGIN IMMEDIATE\x00in startScript: %s\x00UPDATE counters SET nError=nError+%d, nTest=nTest+%d\x00SELECT 1 FROM client WHERE id=%d AND wantHalt\x00DELETE FROM client WHERE id=%d\x00COMMIT TRANSACTION;\x00SELECT script, id, name FROM task WHERE client=%d AND starttime IS NULL ORDER BY id LIMIT 1\x00%s\x00UPDATE task SET starttime=strftime('%%Y-%%m-%%d %%H:%%M:%%f','now') WHERE id=%d;\x00Waited over 30 seconds with no work. Giving up.\x00DELETE FROM client WHERE id=%d; COMMIT;\x00COMMIT\x00UPDATE task SET endtime=strftime('%%Y-%%m-%%d %%H:%%M:%%f','now') WHERE id=%d;\x00INSERT OR IGNORE INTO client VALUES(%d,0)\x00%s \"%s\" --client %d --trace %d\x00%z --sqltrace\x00%z --sync\x00%z --vfs \"%s\"\x00system('%q')\x00%z &\x00system() fails with error code %d\x00rb\x00cannot open \"%s\" for reading\x00--end\x00--endif\x00--else\x00--if\x00SELECT 1 FROM task WHERE client=%d AND client IN (SELECT id FROM client) AND endtime IS NULL\x00SELECT 1 FROM task WHERE client IN (SELECT id FROM client) AND endtime IS NULL\x00\x00%stimeout waiting for client %d\x00%stimeout waiting for all clients\x00on\x00yes\x00off\x00no\x00unknown boolean: [%s]\x00%.*s\x00sleep\x00exit\x00testcase\x00finish\x00reset\x00match\x00line %d of %s:\nExpected [%.*s]\n Got [%s]\x00glob\x00notglob\x00line %d of %s:\nExpected [%s]\n Got [%s]\x00output\x00source\x00%.*s/%s\x00begin script [%s]\n\x00end script [%s]\n\x00print\x00if\x00SELECT %.*s\x00else\x00endif\x00start\x00wait\x00line %d of %s\n\x00task\x00line %d of %s: bad client number: %d\x00%s:%d\x00INSERT INTO task(client,script,name) VALUES(%d,'%q',%Q)\x00breakpoint\x00show-sql-errors\x00line %d of %s: unknown command --%s\x00command-line option \"--%s\" requires an argument\x00Usage: %s DATABASE ?OPTIONS? ?SCRIPT?\n\x00Options:\n --errlog FILENAME Write errors to FILENAME\n --journalmode MODE Use MODE as the journal_mode\n --log FILENAME Log messages to FILENAME\n --quiet Suppress unnecessary output\n --vfs NAME Use NAME as the VFS\n --repeat N Repeat the test N times\n --sqltrace Enable SQL tracing\n --sync Enable synchronous disk writes\n --timeout MILLISEC Busy timeout is MILLISEC\n --trace BOOLEAN Enable or disable tracing\n\x00%s: unrecognized arguments:\x00 %s\x00\n\x00*.test\x002022-09-05 11:02:23 4635f4a69c8c2a8df242b384a992aea71224e39a2ccab42d8c0b0602f1e826e8\x00SQLite library and header mismatch\nLibrary: %s\nHeader: %s\n\x00%05d.mptest\x00journalmode\x00repeat\x00vfs\x00client\x00errlog\x00log\x00trace\x00quiet\x00timeout\x00sqltrace\x00sync\x00a\x00illegal client number: %d\n\x00%05d.client%02d\x00BEGIN: %s\x00With SQLite 3.39.3 2022-09-05 11:02:23 4635f4a69c8c2a8df242b384a992aea71224e39a2ccab42d8c0b0602f1e826e8\n\x00-DSQLITE_%s\n\x00... %strying to unlink '%s'\n\x00still \x00unable to unlink '%s' after %d attempts\n\x00cannot open [%s]\x00PRAGMA journal_mode=%Q;\x00PRAGMA synchronous=OFF\x00vfsname\x00eval\x00start-client\x00begin %s (%d)\x00end %s (%d)\x00end-client\x00missing script filename\x00DROP TABLE IF EXISTS task;\nDROP TABLE IF EXISTS counters;\nDROP TABLE IF EXISTS client;\nCREATE TABLE task(\n id INTEGER PRIMARY KEY,\n name TEXT,\n client INTEGER,\n starttime DATE,\n endtime DATE,\n script TEXT\n);CREATE INDEX task_i1 ON task(client, starttime);\nCREATE INDEX task_i2 ON task(client, endtime);\nCREATE TABLE counters(nError,nTest);\nINSERT INTO counters VALUES(0,0);\nCREATE TABLE client(id INTEGER PRIMARY KEY, wantHalt);\n\x00begin script [%s] cycle %d\n\x00end script [%s] cycle %d\n\x00during shutdown...\n\x00UPDATE client SET wantHalt=1\x00SELECT 1 FROM client\x00SELECT nError, nTest FROM counters\x00Summary: %d errors out of %d tests\n\x00END: %s\x00" 2778 var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data