Return no such table for dolt_workspace_<missing> - #3073
Conversation
PRAGMA table_xinfo on a missing table has zero columns, and sqlite3_malloc(0) is NULL, so doltliteGetColumnNames returned NOMEM. dolt_workspace_nope then surfaced as out of memory (7) while dolt_diff_nope already said no such table. Treat a zero-column lookup as empty, not OOM, and map that connect failure to SQLITE_ERROR with no such table: <module name>. Fail-before: SELECT * FROM dolt_workspace_nope printed out of memory (7). Fixes #3036. Co-Authored-By: Grok 4.6 <noreply@x.ai>
|
SummaryCoverage focuses on database table discovery and error handling, including normal access to a valid workspace, clear behavior for missing tables, preservation of requested names, recovery after an error, and isolation of simultaneous requests. These are primarily edge-case, failure-recovery, and concurrency behaviors, with no application bugs observed. Safe to merge — the run found no regressions, new failures, or previously flagged failures attributable to this PR, and all exercised behaviors passed. No merge blocker was identified. Tests run by Ito
Tip Reply with @itoqa to send us feedback on this test run. |
|
@itoqa thanks for the 8/8 on The missing-workspace case is the one this PR changes: |
|
Gate: success · CI run Performance hotspotsPR-base gates: 1.25× per workload and 1.15× per section/suite, with a 10 ms minimum regression and confirmation across three attempts. Stock ratios expose standing gaps and are reported separately. Large Table Scans
Add Column With Default
Large Index Edits
|
DoltLite source coverage
Merged 135 pooled raw profiles from the distributed Linux correctness jobs. Per-file coverage (103 files)
|
DoltLite performance vs PR base
blobpk details
compositepk details
int details
textpk details
vc details
All relative performance gates passed. |

`SELECT * FROM dolt_workspace_nope` returned `out of memory (7)` while `dolt_diff_nope` / `dolt_history_` / `dolt_at_` already said `no such table`. Callers treat SQLITE_NOMEM as fatal.
`PRAGMA table_xinfo` on a missing table has zero columns. `sqlite3_malloc(0)` is NULL, so column load returned NOMEM. Treat that as an empty table and map the connect failure to `no such table: dolt_workspace_nope`.
Fail-before: `out of memory (7)`. After: workspace suite 55/55, including the missing-table message.
Fixes #3036.
Co-Authored-By: Grok 4.6 noreply@x.ai