Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support tables with more than 63 columns #442

Open
sevenrats opened this issue Aug 18, 2024 · 2 comments
Open

Support tables with more than 63 columns #442

sevenrats opened this issue Aug 18, 2024 · 2 comments

Comments

@sevenrats
Copy link

sevenrats commented Aug 18, 2024

cr-sqlite appears to fail with an unhelpful "Runtime error: SQL logic error" when converting a table with more than 63 columns.

To reproduce (this case will succeed if you remove the final column, bringing the column count to 63):

.load ./crsqlite.so sqlite3_crsqlite_init
.mode qbox
create table TypedBaseItems (id PRIMARY KEY NOT NULL, cmuA Int NULL, JlSc Int NULL, hFkW Int NULL, oMQA Int NULL, ZGGf Int NULL, rnNp Int NULL, vPdQ Int NULL, NzDE Int NULL, tKtn Int NULL, PQgo Int NULL, HQKt Int NULL, LYhd Int NULL, XKvH Int NULL, wsEB Int NULL, tenT Int NULL, UVyY Int NULL, oAED Int NULL, uQgb Int NULL, bDLl Int NULL, qRmK Int NULL, btyQ Int NULL, jlgH Int NULL, Aagy Int NULL, PsQL Int NULL, ANTc Int NULL, LpeM Int NULL, gGoX Int NULL, HCHX Int NULL, TBFu Int NULL, KhVe Int NULL, VDVI Int NULL, RECg Int NULL, TBDj Int NULL, neMc Int NULL, tKgB Int NULL, KOFf Int NULL, FmAU Int NULL, rEuC Int NULL, idAs Int NULL, vmpm Int NULL, RbPY Int NULL, lGDe Int NULL, LEWJ Int NULL, zyRv Int NULL, JAaA Int NULL, ezvK Int NULL, yJef Int NULL, PDrd Int NULL, qzHC Int NULL, iHOn Int NULL, EsdX Int NULL, OAPz Int NULL, jDNL Int NULL, QTgC Int NULL, RvQm Int NULL, rBwu Int NULL, IzDI Int NULL, xDed Int NULL, StGo Int NULL, Tvnx Int NULL, NjXf Int NULL, VVXF 
Int NULL, aMJV Int NULL);
select crsql_as_crr('TypedBaseItems');
@sevenrats
Copy link
Author

rust-gdb ./sqlite3 
GNU gdb (Debian 15.1-1) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./sqlite3...
(gdb) break crsql_core::tableinfo::is_table_compatible
Breakpoint 1 at 0x17be6b: file src/tableinfo.rs, line 915.
(gdb) run
Starting program: /mnt/data/Austins_Code/crdt-jellyfin/sqlite3 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
SQLite version 3.42.0 2023-05-16 12:36:15
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> create table TypedBaseItems (id PRIMARY KEY NOT NULL, cmuA Int NULL, JlSc Int NULL, hFkW Int NULL, oMQA Int NULL, ZGGf Int NULL, rnNp Int NULL, vPdQ Int NULL, NzDE Int NULL, tKtn Int NULL, PQgo Int NULL, HQKt Int NULL, LYhd Int NULL, XKvH Int NULL, wsEB Int NULL, tenT Int NULL, UVyY Int NULL, oAED Int NULL, uQgb Int NULL, bDLl Int NULL, qRmK Int NULL, btyQ Int NULL, jlgH Int NULL, Aagy Int NULL, PsQL Int NULL, ANTc Int NULL, LpeM Int NULL, gGoX Int NULL, HCHX Int NULL, TBFu Int NULL, KhVe Int NULL, VDVI Int NULL, RECg Int NULL, TBDj Int NULL, neMc Int NULL, tKgB Int NULL, KOFf Int NULL, FmAU Int NULL, rEuC Int NULL, idAs Int NULL, vmpm Int NULL, RbPY Int NULL, lGDe Int NULL, LEWJ Int NULL, zyRv Int NULL, JAaA Int NULL, ezvK Int NULL, yJef Int NULL, PDrd Int NULL, qzHC Int NULL, iHOn Int NULL, EsdX Int NULL, OAPz Int NULL, jDNL Int NULL, QTgC Int NULL, RvQm Int NULL, rBwu Int NULL, IzDI Int NULL, xDed Int NULL, StGo Int NULL, Tvnx Int NULL, NjXf Int NULL, VVXF 
Int NULL, aMJV Int NULL);(x1...> 
sqlite> select crsql_as_crr('TypedBaseItems');

Breakpoint 1, crsql_core::tableinfo::is_table_compatible (db=0x5555557fcf48, table=..., err=0x7fffffffb1a0) at src/tableinfo.rs:915
915	    if db.count(&format!(
(gdb) step
core::fmt::rt::Argument::new_display<&str> (x=0x7fffffff9fb8) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/rt.rs:97
warning: 97	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/rt.rs: No such file or directory
(gdb) 
core::fmt::rt::Argument::new<&str> (x=<optimized out>, f=<optimized out>) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/rt.rs:92
92	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/rt.rs
(gdb) 
core::fmt::rt::Argument::new_display<&str> (x=0x7fffffff9fb8) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/rt.rs:98
98	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/rt.rs
(gdb) 
crsql_core::tableinfo::is_table_compatible (db=0x5555557fcf48, table=..., err=0x7fffffffb1a0) at src/tableinfo.rs:915
915	    if db.count(&format!(
(gdb) 
core::fmt::Arguments::new_v1 (pieces=..., args=...) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs:328
warning: 328	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs: No such file or directory
(gdb) 
331	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs
(gdb) 
332	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs
(gdb) 
alloc::fmt::format (args=...) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/alloc/src/fmt.rs:614
warning: 614	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/alloc/src/fmt.rs: No such file or directory
(gdb) 
core::fmt::Arguments::as_str (self=<error reading variable: Cannot access memory at address 0x0>) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs:423
warning: 423	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs: No such file or directory
(gdb) 
424	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs
(gdb) 
425	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs
(gdb) 
426	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/fmt/mod.rs
(gdb) 
alloc::fmt::format (args=...) at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/alloc/src/fmt.rs:614
warning: 614	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/alloc/src/fmt.rs: No such file or directory
(gdb) 
core::option::Option<&str>::map_or_else<&str, alloc::string::String, alloc::fmt::format::{closure_env#0}, fn(&str) -> alloc::string::String> (self=..., default=..., f=0x10000000000)
    at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/option.rs:1179
warning: 1179	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/option.rs: No such file or directory
(gdb) 
1181	in /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/core/src/option.rs
(gdb) 
alloc::fmt::format::{closure#0} () at /rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/alloc/src/fmt.rs:614
warning: 614	/rustc/2bbb6198933abf193c0ef1d18d9d70f99eed59ba/library/alloc/src/fmt.rs: No such file or directory
(gdb) 
Runtime error: SQL logic error

@sevenrats
Copy link
Author

sevenrats commented Aug 19, 2024

(gdb) break cr-sqlite/core/rs/sqlite-rs-embedded/sqlite3_capi/src/capi.rs:403
Breakpoint 1 at 0x1bc05b: file src/capi.rs, line 410.
(gdb) run
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
SQLite version 3.42.0 2023-05-16 12:36:15
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open database.db

...

sqlite> create table TypedBaseItems (id PRIMARY KEY NOT NULL, cmuA Int NULL, JlSc Int NULL, hFkW Int NULL, oMQA Int NULL, ZGGf Int NULL, rnNp Int NULL, vPdQ Int NULL, NzDE Int NULL, tKtn Int NULL, PQgo Int NULL, HQKt Int NULL, LYhd Int NULL, XKvH Int NULL, wsEB Int NULL, tenT Int NULL, UVyY Int NULL, oAED Int NULL, uQgb Int NULL, bDLl Int NULL, qRmK Int NULL, btyQ Int NULL, jlgH Int NULL, Aagy Int NULL, PsQL Int NULL, ANTc Int NULL, LpeM Int NULL, gGoX Int NULL, HCHX Int NULL, TBFu Int NULL, KhVe Int NULL, VDVI Int NULL, RECg Int NULL, TBDj Int NULL, neMc Int NULL, tKgB Int NULL, KOFf Int NULL, FmAU Int NULL, rEuC Int NULL, idAs Int NULL, vmpm Int NULL, RbPY Int NULL, lGDe Int NULL, LEWJ Int NULL, zyRv Int NULL, JAaA Int NULL, ezvK Int NULL, yJef Int NULL, PDrd Int NULL, qzHC Int NULL, iHOn Int NULL, EsdX Int NULL, OAPz Int NULL, jDNL Int NULL, QTgC Int NULL, RvQm Int NULL, rBwu Int NULL, IzDI Int NULL, xDed Int NULL, StGo Int NULL, Tvnx Int NULL, NjXf Int NULL, VVXF 
Int NULL, aMJV Int NULL);(x1...> 
sqlite> select crsql_as_crr('TypedBaseItems');

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x555555833f38, n=108, stmt=0x7fffffff9e60, leftover=0x7fffffff9e68) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) step
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x555555833f38 "SELECT count(*) FROM pragma_index_list('TypedBaseItems')\n", ' ' <repeats 12 times>, "WHERE \"origin\" != 'pk' AND \"unique\" = 1\004", nBytes=108, 
    ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555833f38 "SELECT count(*) FROM pragma_index_list('TypedBaseItems')\n", ' ' <repeats 12 times>, "WHERE \"origin\" != 'pk' AND \"unique\" = 1\004", 
    nBytes=108, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555833f38 "SELECT count(*) FROM pragma_index_list('TypedBaseItems')\n", ' ' <repeats 12 times>, "WHERE \"origin\" != 'pk' AND \"unique\" = 1\004", 
    nBytes=108, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555833f38 "SELECT count(*) FROM pragma_index_list('TypedBaseItems')\n", ' ' <repeats 12 times>, "WHERE \"origin\" != 'pk' AND \"unique\" = 1\004", 
    nBytes=108, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x555555833f38 "SELECT count(*) FROM pragma_index_list('TypedBaseItems')\n", ' ' <repeats 12 times>, "WHERE \"origin\" != 'pk' AND \"unique\" = 1\004", nBytes=108, 
    prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x55555581a2f8, n=97, stmt=0x7fffffff9e60, leftover=0x7fffffff9e68) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, 
    zSql=0x55555581a2f8 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')\n        WHERE \"pk\" > 0 AND \"notnull\" > 0 UNIQUE INDEX crsql_site_id_site_id ON \"crsql_site_id\" (site_id);", nBytes=97, 
    ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x55555581a2f8 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')\n        WHERE \"pk\" > 0 AND \"notnull\" > 0 UNIQUE INDEX crsql_site_id_site_id ON \"crsql_site_id\" (site_id);", nBytes=97, 
    prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x55555581a2f8 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')\n        WHERE \"pk\" > 0 AND \"notnull\" > 0 UNIQUE INDEX crsql_site_id_site_id ON \"crsql_site_id\" (site_id);", nBytes=97, 
    prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x55555581a2f8 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')\n        WHERE \"pk\" > 0 AND \"notnull\" > 0 UNIQUE INDEX crsql_site_id_site_id ON \"crsql_site_id\" (site_id);", nBytes=97, 
    prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, 
    zSql=0x55555581a2f8 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')\n        WHERE \"pk\" > 0 AND \"notnull\" > 0 UNIQUE INDEX crsql_site_id_site_id ON \"crsql_site_id\" (site_id);", nBytes=97, 
    prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x55555581a508, n=71, stmt=0x7fffffff9e60, leftover=0x7fffffff9e68) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x55555581a508 "SELECT count(*) FROM pragma_table_info('TypedBaseItems') WHERE \"pk\" > 0", nBytes=71, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68)
    at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555581a508 "SELECT count(*) FROM pragma_table_info('TypedBaseItems') WHERE \"pk\" > 0", nBytes=71, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, 
    pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555581a508 "SELECT count(*) FROM pragma_table_info('TypedBaseItems') WHERE \"pk\" > 0", nBytes=71, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, 
    pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555581a508 "SELECT count(*) FROM pragma_table_info('TypedBaseItems') WHERE \"pk\" > 0", nBytes=71, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, 
    pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x55555581a508 "SELECT count(*) FROM pragma_table_info('TypedBaseItems') WHERE \"pk\" > 0", nBytes=71, prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9e60, 
    pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x55555582b268, n=112, stmt=0x7fffffff9ee0, leftover=0x7fffffff9ee8) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x55555582b268 "SELECT 1 FROM sqlite_master WHERE name = ? AND type = 'table' AND sql\n", ' ' <repeats 12 times>, "LIKE '%autoincrement%' limit 1a\001", nBytes=112, 
    ppStmt=0x7fffffff9ee0, pzTail=0x7fffffff9ee8) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555582b268 "SELECT 1 FROM sqlite_master WHERE name = ? AND type = 'table' AND sql\n", ' ' <repeats 12 times>, "LIKE '%autoincrement%' limit 1a\001", 
    nBytes=112, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9ee0, pzTail=0x7fffffff9ee8) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555582b268 "SELECT 1 FROM sqlite_master WHERE name = ? AND type = 'table' AND sql\n", ' ' <repeats 12 times>, "LIKE '%autoincrement%' limit 1a\001", 
    nBytes=112, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9ee0, pzTail=0x7fffffff9ee8) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555582b268 "SELECT 1 FROM sqlite_master WHERE name = ? AND type = 'table' AND sql\n", ' ' <repeats 12 times>, "LIKE '%autoincrement%' limit 1a\001", 
    nBytes=112, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9ee0, pzTail=0x7fffffff9ee8) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x55555582b268 "SELECT 1 FROM sqlite_master WHERE name = ? AND type = 'table' AND sql\n", ' ' <repeats 12 times>, "LIKE '%autoincrement%' limit 1a\001", nBytes=112, 
    prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9ee0, pzTail=0x7fffffff9ee8) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x5555558366e8, n=62, stmt=0x7fffffff9e60, leftover=0x7fffffff9e68) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x5555558366e8 "SELECT count(*) FROM pragma_foreign_key_list('TypedBaseItems')", nBytes=62, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68)
    at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x5555558366e8 "SELECT count(*) FROM pragma_foreign_key_list('TypedBaseItems')", nBytes=62, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68)
    at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x5555558366e8 "SELECT count(*) FROM pragma_foreign_key_list('TypedBaseItems')", nBytes=62, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68)
    at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x5555558366e8 "SELECT count(*) FROM pragma_foreign_key_list('TypedBaseItems')", nBytes=62, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68)
    at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x5555558366e8 "SELECT count(*) FROM pragma_foreign_key_list('TypedBaseItems')", nBytes=62, prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68)
    at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x55555581d028, n=123, stmt=0x7fffffff9e60, leftover=0x7fffffff9e68) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x55555581d028 "SELECT count(*) FROM pragma_table_xinfo('TypedBaseItems')\n        WHERE \"notnull\" = 1 AND \"dflt_value\" IS NULL AND \"pk\" = 0", nBytes=123, 
    ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555581d028 "SELECT count(*) FROM pragma_table_xinfo('TypedBaseItems')\n        WHERE \"notnull\" = 1 AND \"dflt_value\" IS NULL AND \"pk\" = 0", nBytes=123, 
    prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555581d028 "SELECT count(*) FROM pragma_table_xinfo('TypedBaseItems')\n        WHERE \"notnull\" = 1 AND \"dflt_value\" IS NULL AND \"pk\" = 0", nBytes=123, 
    prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x55555581d028 "SELECT count(*) FROM pragma_table_xinfo('TypedBaseItems')\n        WHERE \"notnull\" = 1 AND \"dflt_value\" IS NULL AND \"pk\" = 0", nBytes=123, 
    prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x55555581d028 "SELECT count(*) FROM pragma_table_xinfo('TypedBaseItems')\n        WHERE \"notnull\" = 1 AND \"dflt_value\" IS NULL AND \"pk\" = 0", nBytes=123, 
    prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9e60, pzTail=0x7fffffff9e68) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x555555793ba3, n=70, stmt=0x7fffffffa600, leftover=0x7fffffffa608) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, 
    zSql=0x555555793ba3 "SELECT count(*) FROM sqlite_master WHERE type = 'trigger' AND name = ?__crsql_itrig/mnt/data/Austins_Code/cr-sqlite/core/rs/core/src/is_crr.rsDROP TABLE IF EXISTS \"__crsql_clock\"__crsql_pks\"/mnt/data/"..., nBytes=70, ppStmt=0x7fffffffa600, pzTail=0x7fffffffa608) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x555555793ba3 "SELECT count(*) FROM sqlite_master WHERE type = 'trigger' AND name = ?__crsql_itrig/mnt/data/Austins_Code/cr-sqlite/core/rs/core/src/is_crr.rsDROP TABLE IF EXISTS \"__crsql_clock\"__crsql_pks\"/mnt/data/"..., nBytes=70, prepFlags=128, pOld=0x0, ppStmt=0x7fffffffa600, pzTail=0x7fffffffa608) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x555555793ba3 "SELECT count(*) FROM sqlite_master WHERE type = 'trigger' AND name = ?__crsql_itrig/mnt/data/Austins_Code/cr-sqlite/core/rs/core/src/is_crr.rsDROP TABLE IF EXISTS \"__crsql_clock\"__crsql_pks\"/mnt/data/"..., nBytes=70, prepFlags=128, pOld=0x0, ppStmt=0x7fffffffa600, pzTail=0x7fffffffa608) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x555555793ba3 "SELECT count(*) FROM sqlite_master WHERE type = 'trigger' AND name = ?__crsql_itrig/mnt/data/Austins_Code/cr-sqlite/core/rs/core/src/is_crr.rsDROP TABLE IF EXISTS \"__crsql_clock\"__crsql_pks\"/mnt/data/"..., nBytes=70, prepFlags=128, pOld=0x0, ppStmt=0x7fffffffa600, pzTail=0x7fffffffa608) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, 
    zSql=0x555555793ba3 "SELECT count(*) FROM sqlite_master WHERE type = 'trigger' AND name = ?__crsql_itrig/mnt/data/Austins_Code/cr-sqlite/core/rs/core/src/is_crr.rsDROP TABLE IF EXISTS \"__crsql_clock\"__crsql_pks\"/mnt/data/"..., nBytes=70, prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffffa600, pzTail=0x7fffffffa608) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x555555836f28, n=56, stmt=0x7fffffff9df0, leftover=0x7fffffff9df8) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x555555836f28 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')", nBytes=56, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555836f28 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')", nBytes=56, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8)
    at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555836f28 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')", nBytes=56, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8)
    at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555836f28 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')", nBytes=56, prepFlags=128, pOld=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8)
    at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x555555836f28 "SELECT count(*) FROM pragma_table_info('TypedBaseItems')", nBytes=56, prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8)
    at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x555555819718, n=93, stmt=0x7fffffff9df0, leftover=0x7fffffff9df8) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, 
    zSql=0x555555819718 "SELECT \"cid\", \"name\", \"pk\"\n         FROM pragma_table_info('TypedBaseItems') ORDER BY cid ASC', rootpage=#2, sql= ON \"crsql_site_id\" (site_id)", nBytes=93, 
    ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x555555819718 "SELECT \"cid\", \"name\", \"pk\"\n         FROM pragma_table_info('TypedBaseItems') ORDER BY cid ASC', rootpage=#2, sql= ON \"crsql_site_id\" (site_id)", nBytes=93, prepFlags=128, 
    pOld=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8) at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x555555819718 "SELECT \"cid\", \"name\", \"pk\"\n         FROM pragma_table_info('TypedBaseItems') ORDER BY cid ASC', rootpage=#2, sql= ON \"crsql_site_id\" (site_id)", nBytes=93, prepFlags=128, 
    pOld=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8) at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, 
    zSql=0x555555819718 "SELECT \"cid\", \"name\", \"pk\"\n         FROM pragma_table_info('TypedBaseItems') ORDER BY cid ASC', rootpage=#2, sql= ON \"crsql_site_id\" (site_id)", nBytes=93, prepFlags=128, 
    pOld=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8) at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x555555819718 "SELECT \"cid\", \"name\", \"pk\"\n         FROM pragma_table_info('TypedBaseItems') ORDER BY cid ASC', rootpage=#2, sql= ON \"crsql_site_id\" (site_id)", 
    nBytes=93, prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffff9df0, pzTail=0x7fffffff9df8) at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 

Breakpoint 1, sqlite3_capi::capi::prepare_v2 (db=0x5555557fb318, sql=0x555555793cd2, n=50, stmt=0x7fffffffa320, leftover=0x7fffffffa328) at src/capi.rs:410
410	    unsafe { invoke_sqlite!(prepare_v2, db, sql, n, stmt, leftover) }
(gdb) 
sqlite3_prepare_v2 (db=0x5555557fb318, zSql=0x555555793cd2 "SELECT name FROM pragma_table_info(?) WHERE pk > 0d", nBytes=50, ppStmt=0x7fffffffa320, pzTail=0x7fffffffa328) at ./dist/sqlite3-extra.c:138861
138861	  rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555793cd2 "SELECT name FROM pragma_table_info(?) WHERE pk > 0d", nBytes=50, prepFlags=128, pOld=0x0, ppStmt=0x7fffffffa320, pzTail=0x7fffffffa328)
    at ./dist/sqlite3-extra.c:138760
138760	  int cnt = 0;
(gdb) 
138765	  *ppStmt = 0;
(gdb) 
138766	  if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
(gdb) 
sqlite3SafetyCheckOk (db=0x5555557fb318) at ./dist/sqlite3-extra.c:35294
35294	  if( db==0 ){
(gdb) 
35298	  eOpenState = db->eOpenState;
(gdb) 
35299	  if( eOpenState!=SQLITE_STATE_OPEN ){
(gdb) 
35306	    return 1;
(gdb) 
35308	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555793cd2 "SELECT name FROM pragma_table_info(?) WHERE pk > 0d", nBytes=50, prepFlags=128, pOld=0x0, ppStmt=0x7fffffffa320, pzTail=0x7fffffffa328)
    at ./dist/sqlite3-extra.c:138770
138770	  sqlite3BtreeEnterAll(db);
(gdb) 
sqlite3BtreeEnterAll (db=0x5555557fb318) at ./dist/sqlite3-extra.c:68686
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68689	      p->pBt->db = p->db;
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68687	    Btree *p = db->aDb[i].pBt;
(gdb) 
68688	    if( p ){
(gdb) 
68686	  for(i=0; i<db->nDb; i++){
(gdb) 
68692	}
(gdb) 
sqlite3LockAndPrepare (db=0x5555557fb318, zSql=0x555555793cd2 "SELECT name FROM pragma_table_info(?) WHERE pk > 0d", nBytes=50, prepFlags=128, pOld=0x0, ppStmt=0x7fffffffa320, pzTail=0x7fffffffa328)
    at ./dist/sqlite3-extra.c:138775
138775	    rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
(gdb) 
sqlite3Prepare (db=0x5555557fb318, zSql=0x555555793cd2 "SELECT name FROM pragma_table_info(?) WHERE pk > 0d", nBytes=50, prepFlags=128, pReprepare=0x0, ppStmt=0x7fffffffa320, pzTail=0x7fffffffa328)
    at ./dist/sqlite3-extra.c:138610
138610	  int rc = SQLITE_OK;       /* Result code */
(gdb) 
138615	  memset(PARSE_HDR(&sParse), 0, PARSE_HDR_SZ);
(gdb) 
Runtime error: SQL logic error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant