A WITHOUT ROWID table we create is stored as a rowid b-tree rather than an
index b-tree, so the oracle reports the file malformed. Confirmed identical on
origin/main and on the wave-1 branch (files compared byte-for-byte), so it is
untouched by #687 — that ticket's test correctly skips integrity_check for
this case and says why.
Why it matters: same class as #687 — a file we produce that stock SQLite
calls corrupt, a direct hit on the byte-compatibility claim.
Scope: store a WITHOUT ROWID table as an index b-tree keyed by its
declared PRIMARY KEY, PK columns first in the record. Oracle-diff:
single-column PK, composite PK, our-create/oracle-read,
oracle-create/our-read, integrity_check, and confirm no
sqlite_autoindex_* is emitted for the PK (SQLite creates none for a
WITHOUT ROWID table's own PK).
Complexity
Estimate: large
Reasoning: A storage-layout change, not a codegen fix. Kept
separate from ticket 3 for exactly that reason.
Refs: #686, #687, #715, #716
A
WITHOUT ROWIDtable we create is stored as a rowid b-tree rather than anindex b-tree, so the oracle reports the file malformed. Confirmed identical on
origin/mainand on the wave-1 branch (files compared byte-for-byte), so it isuntouched by #687 — that ticket's test correctly skips
integrity_checkforthis case and says why.
Why it matters: same class as #687 — a file we produce that stock SQLite
calls corrupt, a direct hit on the byte-compatibility claim.
Scope: store a
WITHOUT ROWIDtable as an index b-tree keyed by itsdeclared PRIMARY KEY, PK columns first in the record. Oracle-diff:
single-column PK, composite PK, our-create/oracle-read,
oracle-create/our-read,
integrity_check, and confirm nosqlite_autoindex_*is emitted for the PK (SQLite creates none for aWITHOUT ROWID table's own PK).
Complexity
Estimate: large
Reasoning: A storage-layout change, not a codegen fix. Kept
separate from ticket 3 for exactly that reason.
Refs: #686, #687, #715, #716