Skip to content

Return no such table for dolt_workspace_<missing> - #3073

Merged
timsehn merged 1 commit into
masterfrom
fix/3036-workspace-no-such-table
Sep 19, 2026
Merged

timsehn merged 1 commit into
masterfrom
fix/3036-workspace-no-such-table

Conversation

@timsehn

@timsehn timsehn commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

`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

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>
@itoqa

itoqa Bot commented Sep 18, 2026

Copy link
Copy Markdown

Ito QA test results
Commit: 9492b29: 8 test cases ran, 8 passed ✅.

Summary

Coverage 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

View full run

Result Severity Type Description
General The one-column workspace connected and returned its row using the workspace's declared metadata, to_c, and from_c columns. The missing workspace returned a clear no-such-table error naming the requested module, so the earlier failure came from expecting a bare c column rather than the documented workspace columns.
General Queries for missing history, diff, and point-in-time modules each failed with a clear error naming the requested module.
General Two clients querying different missing workspace names each received an error naming the name they requested. No query returned an out-of-memory error, a successful table, or the other client's name across five overlaps.
Diff Querying a missing diff table fails with a clear no-such-table message that names dolt_diff_nope, instead of exposing an out-of-memory error.
Rev Queries for missing diff, history, and at tables each returned the matching no-such-table error. None returned an out-of-memory error.
Rev The missing table query returned the expected error, and the same connection then created a table, inserted a row, and returned 1|ok.
Rev Queries for two missing tables returned errors that kept the full names that were requested.
Workspace Selecting the missing workspace table failed with a message naming dolt_workspace_nope, and no out-of-memory error was shown.

Tip

Reply with @itoqa to send us feedback on this test run.

@timsehn

timsehn commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator Author

@itoqa thanks for the 8/8 on 9492b29.

The missing-workspace case is the one this PR changes: dolt_workspace_nope is no such table: dolt_workspace_nope, not out of memory. Good to see the sibling dolt_diff_ / dolt_history_ / dolt_at_ names stay in the error, two clients keep their own names, and a later create/insert on the same connection still works.

@github-actions

Copy link
Copy Markdown
Contributor

Gate: success · CI run

Performance hotspots

PR-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

Workload PR base ms Candidate ms Candidate/base Stock ms Candidate/stock
scan_first 768.993 763.809 0.99× 132.320 5.77×
scan_repeat 745.397 742.606 1.00× 112.742 6.59×
point_10000 118.885 116.516 0.98× 20.381 5.72×
index_scan_row_fetch 1924.772 1950.930 1.01× 541.536 3.60×

Add Column With Default

Workload PR base ms Candidate ms Candidate/base Stock ms Candidate/stock
add_column_default 221.052 221.928 1.00× 3.861 57.48×

Large Index Edits

Workload PR base ms Candidate ms Candidate/base Stock ms Candidate/stock
index_edit_update 2229.888 2239.217 1.00× 720.858 3.11×

@github-actions

Copy link
Copy Markdown
Contributor

DoltLite source coverage

Metric Covered Total Coverage
Lines 60459 70194 86.13%
Branches 28507 41336 68.96%
Functions 2799 3001 93.27%

Merged 135 pooled raw profiles from the distributed Linux correctness jobs.

Per-file coverage (103 files)
File Lines Branches Functions
src/btree_orig_api.c 94.81% 80.00% 93.90%
src/chunk_file.c 100.00% 100.00% 100.00%
src/chunk_index.c 90.98% 73.77% 96.15%
src/chunk_index_spool.c 98.70% 83.58% 100.00%
src/chunk_refs.c 85.22% 70.92% 79.69%
src/chunk_staging.c 94.74% 81.97% 100.00%
src/chunk_store.c 91.57% 75.76% 100.00%
src/chunk_store_commit.c 86.99% 68.80% 100.00%
src/chunk_store_lock.c 90.81% 71.28% 100.00%
src/chunk_store_refs_api.c 92.00% 78.02% 100.00%
src/chunk_wal.c 82.62% 58.76% 90.62%
src/doltlite.c 100.00% 100.00% 100.00%
src/doltlite_add.c 86.50% 69.06% 100.00%
src/doltlite_ancestor.c 88.29% 67.11% 100.00%
src/doltlite_at.c 89.60% 68.65% 100.00%
src/doltlite_blame.c 79.93% 63.48% 93.10%
src/doltlite_branch.c 88.59% 82.91% 100.00%
src/doltlite_branches.c 93.75% 75.93% 93.75%
src/doltlite_checkout.c 78.63% 64.34% 96.30%
src/doltlite_cherry_pick.c 81.54% 59.66% 75.00%
src/doltlite_chunk_source.c 89.77% 70.24% 100.00%
src/doltlite_chunk_walk.c 92.23% 66.22% 100.00%
src/doltlite_clean.c 94.71% 70.45% 100.00%
src/doltlite_cmd.c 76.89% 69.09% 80.33%
src/doltlite_commit.c 94.41% 76.87% 100.00%
src/doltlite_commit_ancestors.c 97.71% 76.09% 100.00%
src/doltlite_commit_cmd.c 79.55% 69.36% 100.00%
src/doltlite_config.c 79.71% 71.74% 100.00%
src/doltlite_conflicts.c 87.46% 66.02% 97.10%
src/doltlite_constraint_violations.c 88.83% 60.00% 94.34%
src/doltlite_core.c 91.48% 74.44% 100.00%
src/doltlite_creds.c 89.00% 57.12% 96.15%
src/doltlite_dbpage.c 92.78% 80.65% 91.67%
src/doltlite_diff.c 89.97% 70.07% 97.06%
src/doltlite_diff_stat.c 91.34% 71.81% 96.30%
src/doltlite_diff_table.c 93.89% 75.77% 100.00%
src/doltlite_docs.c 97.73% 75.00% 100.00%
src/doltlite_framed.c 79.10% 64.81% 100.00%
src/doltlite_gc.c 75.88% 55.31% 83.78%
src/doltlite_hashof.c 80.81% 71.04% 100.00%
src/doltlite_history.c 87.30% 77.83% 100.00%
src/doltlite_http_remote.c 83.46% 58.07% 91.43%
src/doltlite_ignore.c 89.33% 69.51% 100.00%
src/doltlite_log.c 95.86% 75.55% 100.00%
src/doltlite_merge.c 95.02% 70.65% 100.00%
src/doltlite_merge_cmd.c 77.19% 61.82% 85.19%
src/doltlite_merge_constraints.c 84.72% 66.56% 100.00%
src/doltlite_merge_constraints_check.c 85.58% 65.00% 100.00%
src/doltlite_merge_constraints_fk.c 83.07% 57.88% 100.00%
src/doltlite_merge_constraints_notnull.c 95.00% 60.71% 100.00%
src/doltlite_merge_constraints_strict.c 89.47% 60.00% 100.00%
src/doltlite_merge_constraints_unique.c 88.85% 64.43% 100.00%
src/doltlite_merge_generated.c 92.65% 76.67% 100.00%
src/doltlite_merge_index_key.c 80.64% 59.92% 100.00%
src/doltlite_merge_pass1.c 93.51% 75.43% 100.00%
src/doltlite_merge_pass2.c 84.32% 69.23% 100.00%
src/doltlite_merge_predetect.c 87.51% 72.24% 96.00%
src/doltlite_merge_rebuild.c 99.15% 80.08% 100.00%
src/doltlite_merge_rows.c 87.69% 74.31% 100.00%
src/doltlite_merge_schema.c 91.46% 73.26% 100.00%
src/doltlite_merge_status.c 91.98% 73.53% 92.31%
src/doltlite_patch.c 93.57% 72.16% 98.15%
src/doltlite_rebase.c 85.97% 60.64% 100.00%
src/doltlite_record.c 78.78% 61.73% 95.45%
src/doltlite_ref.c 92.94% 72.89% 100.00%
src/doltlite_remote.c 87.43% 68.20% 95.31%
src/doltlite_remote_sql.c 73.96% 67.21% 96.97%
src/doltlite_remotesrv.c 75.61% 63.69% 89.39%
src/doltlite_reset.c 88.47% 74.66% 100.00%
src/doltlite_revert.c 89.69% 67.39% 100.00%
src/doltlite_schema_diff.c 90.36% 68.83% 97.06%
src/doltlite_schemas.c 82.86% 63.28% 92.31%
src/doltlite_status.c 90.51% 71.57% 97.83%
src/doltlite_tag.c 88.82% 72.31% 94.12%
src/doltlite_tests.c 85.39% 70.63% 97.37%
src/doltlite_tls.c 86.44% 62.28% 100.00%
src/doltlite_verify_constraints.c 79.49% 66.45% 100.00%
src/doltlite_workspace.c 88.50% 67.69% 100.00%
src/pager_shim.c 61.23% 67.75% 38.06%
src/prolly_btree.c 85.99% 67.40% 91.22%
src/prolly_btree_catalog.c 83.50% 70.78% 97.33%
src/prolly_btree_cursor.c 86.92% 65.27% 96.00%
src/prolly_btree_cursor_count.c 84.53% 60.59% 100.00%
src/prolly_btree_cursor_payload.c 76.01% 56.33% 95.83%
src/prolly_btree_cursor_seek.c 85.57% 70.29% 95.45%
src/prolly_btree_mutation.c 88.26% 69.14% 97.78%
src/prolly_btree_orig.c 93.75% 71.43% 93.15%
src/prolly_btree_state.c 93.29% 66.59% 100.00%
src/prolly_btree_txn.c 81.93% 68.55% 98.08%
src/prolly_cache.c 94.30% 75.53% 100.00%
src/prolly_check.c 60.36% 62.96% 100.00%
src/prolly_chunker.c 94.04% 78.38% 100.00%
src/prolly_cursor.c 88.52% 82.14% 100.00%
src/prolly_diff.c 65.81% 53.61% 75.00%
src/prolly_hash.c 93.33% 80.00% 100.00%
src/prolly_hashset.c 90.48% 80.56% 100.00%
src/prolly_mutate.c 80.78% 69.11% 100.00%
src/prolly_mutmap.c 94.82% 82.01% 100.00%
src/prolly_node.c 88.91% 73.81% 100.00%
src/prolly_three_way_diff.c 95.79% 85.37% 100.00%
src/prolly_three_way_merge.c 81.92% 68.15% 91.67%
src/prolly_xxhash.c 100.00% 100.00% 100.00%
src/sortkey.c 93.20% 80.50% 100.00%

Download HTML and LCOV artifacts from this workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

DoltLite performance vs PR base

  • Baseline: 1abf1fcc1ccb871c7d8486611d6b1041e9d459d3
  • Candidate: 98eda6544ac6bc01be1d972aa9db6000abfdae86
  • Overall ratio: 0.996x
  • Gate result: PASS
  • Gates: individual > 1.25x with more than 10.00ms regression; section, suite, or overall > 1.15x with the same minimum delta
  • vc individual gate: > 1.50x with more than 50.00ms regression
  • Confirmed failed gates: none
  • Automatic retries: none
Suite Workloads Baseline total Candidate total Ratio Result
blobpk 69 11.56s 11.54s 0.998x PASS
compositepk 69 12.14s 12.05s 0.992x PASS
int 69 7.06s 7.07s 1.001x PASS
textpk 69 11.53s 11.48s 0.995x PASS
vc 17 1.63s 1.64s 1.004x PASS
blobpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 39.23ms 38.60ms -628us 0.984x PASS
mem_reads oltp_range_select 15.15ms 14.35ms -795us 0.948x PASS
mem_reads oltp_sum_range 14.29ms 14.18ms -114us 0.992x PASS
mem_reads oltp_order_range 3.26ms 3.29ms +30us 1.009x PASS
mem_reads oltp_distinct_range 4.36ms 4.38ms +14us 1.003x PASS
mem_reads oltp_index_scan 6.53ms 6.31ms -227us 0.965x PASS
mem_reads select_random_points 21.65ms 21.52ms -130us 0.994x PASS
mem_reads select_random_ranges 6.60ms 6.53ms -70us 0.989x PASS
mem_reads covering_index_scan 9.79ms 9.73ms -66us 0.993x PASS
mem_reads groupby_scan 35.51ms 34.29ms -1.22ms 0.966x PASS
mem_reads index_join 10.05ms 9.88ms -174us 0.983x PASS
mem_reads index_join_scan 5.92ms 5.92ms -7us 0.999x PASS
mem_reads types_table_scan 1.23s 1.22s -5.22ms 0.996x PASS
mem_reads table_scan 1.33s 1.32s -5.12ms 0.996x PASS
mem_reads oltp_read_only 146.15ms 144.81ms -1.34ms 0.991x PASS
mem_writes oltp_bulk_insert 364.90ms 369.45ms +4.55ms 1.012x PASS
mem_writes oltp_insert 39.17ms 38.61ms -558us 0.986x PASS
mem_writes oltp_update_index 138.50ms 136.63ms -1.87ms 0.987x PASS
mem_writes oltp_update_non_index 81.48ms 81.79ms +316us 1.004x PASS
mem_writes oltp_delete_insert 105.18ms 105.17ms -5us 1.000x PASS
mem_writes oltp_write_only 62.37ms 62.17ms -198us 0.997x PASS
mem_writes types_delete_insert 53.87ms 54.11ms +238us 1.004x PASS
mem_writes oltp_read_write 151.28ms 151.97ms +693us 1.005x PASS
file_reads oltp_point_select 58.90ms 59.07ms +166us 1.003x PASS
file_reads oltp_range_select 17.32ms 16.57ms -760us 0.956x PASS
file_reads oltp_sum_range 16.26ms 16.41ms +148us 1.009x PASS
file_reads oltp_order_range 3.53ms 3.54ms +6us 1.002x PASS
file_reads oltp_distinct_range 4.68ms 4.70ms +18us 1.004x PASS
file_reads oltp_index_scan 8.65ms 8.49ms -159us 0.982x PASS
file_reads select_random_points 24.95ms 24.68ms -271us 0.989x PASS
file_reads select_random_ranges 8.73ms 8.66ms -68us 0.992x PASS
file_reads covering_index_scan 12.06ms 11.88ms -177us 0.985x PASS
file_reads groupby_scan 36.34ms 35.92ms -423us 0.988x PASS
file_reads index_join 11.32ms 11.15ms -167us 0.985x PASS
file_reads index_join_scan 6.20ms 6.20ms +9us 1.001x PASS
file_reads types_table_scan 1.20s 1.21s +14.17ms 1.012x PASS
file_reads table_scan 1.32s 1.31s -5.77ms 0.996x PASS
file_reads oltp_read_only 171.56ms 172.02ms +467us 1.003x PASS
file_writes oltp_bulk_insert 372.93ms 377.05ms +4.12ms 1.011x PASS
file_writes oltp_insert 46.05ms 45.91ms -143us 0.997x PASS
file_writes oltp_update_index 160.04ms 157.54ms -2.50ms 0.984x PASS
file_writes oltp_update_non_index 95.98ms 98.23ms +2.25ms 1.023x PASS
file_writes oltp_delete_insert 120.08ms 119.29ms -790us 0.993x PASS
file_writes oltp_write_only 74.40ms 74.56ms +163us 1.002x PASS
file_writes types_delete_insert 65.99ms 66.00ms +15us 1.000x PASS
file_writes oltp_read_write 161.31ms 160.56ms -751us 0.995x PASS
ac_reads oltp_point_select 59.41ms 58.68ms -737us 0.988x PASS
ac_reads oltp_range_select 17.20ms 16.35ms -848us 0.951x PASS
ac_reads oltp_sum_range 16.23ms 16.23ms +1us 1.000x PASS
ac_reads oltp_order_range 3.56ms 3.55ms -8us 0.998x PASS
ac_reads oltp_distinct_range 4.71ms 4.76ms +41us 1.009x PASS
ac_reads oltp_index_scan 8.60ms 8.70ms +105us 1.012x PASS
ac_reads select_random_points 24.85ms 25.13ms +280us 1.011x PASS
ac_reads select_random_ranges 8.70ms 8.62ms -76us 0.991x PASS
ac_reads covering_index_scan 12.11ms 11.92ms -190us 0.984x PASS
ac_reads groupby_scan 36.59ms 36.04ms -558us 0.985x PASS
ac_reads index_join 11.24ms 11.18ms -61us 0.995x PASS
ac_reads index_join_scan 6.20ms 6.19ms -2us 1.000x PASS
ac_reads types_table_scan 1.20s 1.20s -3.55ms 0.997x PASS
ac_reads table_scan 1.34s 1.32s -15.70ms 0.988x PASS
ac_reads oltp_read_only 175.13ms 175.00ms -131us 0.999x PASS
ac_writes oltp_bulk_insert_ac 79.11ms 81.12ms +2.01ms 1.025x PASS
ac_writes oltp_insert_ac 96.25ms 99.86ms +3.61ms 1.038x PASS
ac_writes oltp_update_index_ac 114.01ms 111.79ms -2.21ms 0.981x PASS
ac_writes oltp_update_non_index_ac 88.13ms 90.06ms +1.93ms 1.022x PASS
ac_writes oltp_delete_insert_ac 97.46ms 98.74ms +1.28ms 1.013x PASS
ac_writes oltp_write_only_ac 96.71ms 95.61ms -1.10ms 0.989x PASS
ac_writes types_delete_insert_ac 88.66ms 87.27ms -1.38ms 0.984x PASS
ac_writes oltp_read_write_ac 105.06ms 102.91ms -2.15ms 0.980x PASS
compositepk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 40.63ms 40.43ms -200us 0.995x PASS
mem_reads oltp_range_select 21.04ms 21.21ms +177us 1.008x PASS
mem_reads oltp_sum_range 20.28ms 19.89ms -388us 0.981x PASS
mem_reads oltp_order_range 4.08ms 3.92ms -160us 0.961x PASS
mem_reads oltp_distinct_range 5.11ms 5.01ms -105us 0.979x PASS
mem_reads oltp_index_scan 6.06ms 5.87ms -190us 0.969x PASS
mem_reads select_random_points 31.94ms 31.43ms -512us 0.984x PASS
mem_reads select_random_ranges 8.49ms 8.23ms -260us 0.969x PASS
mem_reads covering_index_scan 9.40ms 9.44ms +40us 1.004x PASS
mem_reads groupby_scan 42.16ms 42.45ms +294us 1.007x PASS
mem_reads index_join 11.21ms 11.34ms +129us 1.012x PASS
mem_reads index_join_scan 6.18ms 5.97ms -214us 0.965x PASS
mem_reads types_table_scan 1.29s 1.28s -5.73ms 0.996x PASS
mem_reads table_scan 1.44s 1.43s -11.07ms 0.992x PASS
mem_reads oltp_read_only 175.52ms 173.56ms -1.97ms 0.989x PASS
mem_writes oltp_bulk_insert 340.51ms 336.65ms -3.86ms 0.989x PASS
mem_writes oltp_insert 36.32ms 36.46ms +143us 1.004x PASS
mem_writes oltp_update_index 141.22ms 139.79ms -1.42ms 0.990x PASS
mem_writes oltp_update_non_index 83.72ms 82.55ms -1.18ms 0.986x PASS
mem_writes oltp_delete_insert 102.76ms 101.58ms -1.18ms 0.989x PASS
mem_writes oltp_write_only 61.54ms 61.62ms +79us 1.001x PASS
mem_writes types_delete_insert 54.51ms 53.59ms -914us 0.983x PASS
mem_writes oltp_read_write 165.70ms 163.83ms -1.86ms 0.989x PASS
file_reads oltp_point_select 61.09ms 61.08ms -3us 1.000x PASS
file_reads oltp_range_select 23.52ms 22.96ms -556us 0.976x PASS
file_reads oltp_sum_range 23.04ms 22.36ms -676us 0.971x PASS
file_reads oltp_order_range 4.38ms 4.20ms -182us 0.958x PASS
file_reads oltp_distinct_range 5.48ms 5.32ms -156us 0.972x PASS
file_reads oltp_index_scan 8.71ms 8.86ms +151us 1.017x PASS
file_reads select_random_points 34.76ms 35.16ms +404us 1.012x PASS
file_reads select_random_ranges 11.73ms 10.71ms -1.02ms 0.913x PASS
file_reads covering_index_scan 11.71ms 11.77ms +58us 1.005x PASS
file_reads groupby_scan 42.83ms 42.50ms -324us 0.992x PASS
file_reads index_join 12.07ms 11.94ms -137us 0.989x PASS
file_reads index_join_scan 6.37ms 6.23ms -147us 0.977x PASS
file_reads types_table_scan 1.29s 1.27s -13.29ms 0.990x PASS
file_reads table_scan 1.44s 1.43s -12.89ms 0.991x PASS
file_reads oltp_read_only 202.60ms 203.00ms +408us 1.002x PASS
file_writes oltp_bulk_insert 347.45ms 346.71ms -742us 0.998x PASS
file_writes oltp_insert 41.44ms 42.16ms +722us 1.017x PASS
file_writes oltp_update_index 143.88ms 142.68ms -1.20ms 0.992x PASS
file_writes oltp_update_non_index 99.91ms 100.14ms +232us 1.002x PASS
file_writes oltp_delete_insert 115.72ms 115.12ms -593us 0.995x PASS
file_writes oltp_write_only 73.80ms 73.13ms -669us 0.991x PASS
file_writes types_delete_insert 61.61ms 61.49ms -126us 0.998x PASS
file_writes oltp_read_write 175.65ms 172.76ms -2.89ms 0.984x PASS
ac_reads oltp_point_select 60.54ms 60.51ms -32us 0.999x PASS
ac_reads oltp_range_select 23.55ms 23.05ms -502us 0.979x PASS
ac_reads oltp_sum_range 22.41ms 22.26ms -156us 0.993x PASS
ac_reads oltp_order_range 4.33ms 4.22ms -105us 0.976x PASS
ac_reads oltp_distinct_range 5.44ms 5.29ms -152us 0.972x PASS
ac_reads oltp_index_scan 8.44ms 8.48ms +41us 1.005x PASS
ac_reads select_random_points 34.31ms 33.73ms -587us 0.983x PASS
ac_reads select_random_ranges 10.85ms 10.75ms -98us 0.991x PASS
ac_reads covering_index_scan 11.68ms 11.67ms -10us 0.999x PASS
ac_reads groupby_scan 42.56ms 42.56ms -8us 1.000x PASS
ac_reads index_join 12.16ms 12.07ms -91us 0.993x PASS
ac_reads index_join_scan 6.34ms 6.34ms -7us 0.999x PASS
ac_reads types_table_scan 1.29s 1.28s -6.32ms 0.995x PASS
ac_reads table_scan 1.44s 1.42s -14.59ms 0.990x PASS
ac_reads oltp_read_only 208.14ms 199.55ms -8.59ms 0.959x PASS
ac_writes oltp_bulk_insert_ac 61.87ms 61.04ms -831us 0.987x PASS
ac_writes oltp_insert_ac 81.12ms 83.50ms +2.38ms 1.029x PASS
ac_writes oltp_update_index_ac 99.18ms 96.76ms -2.42ms 0.976x PASS
ac_writes oltp_update_non_index_ac 68.32ms 72.75ms +4.44ms 1.065x PASS
ac_writes oltp_delete_insert_ac 80.23ms 81.54ms +1.31ms 1.016x PASS
ac_writes oltp_write_only_ac 79.48ms 79.12ms -364us 0.995x PASS
ac_writes types_delete_insert_ac 67.22ms 67.46ms +233us 1.003x PASS
ac_writes oltp_read_write_ac 89.48ms 88.16ms -1.32ms 0.985x PASS
int details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 17.30ms 17.78ms +477us 1.028x PASS
mem_reads oltp_range_select 6.49ms 6.48ms -10us 0.998x PASS
mem_reads oltp_sum_range 6.65ms 6.58ms -66us 0.990x PASS
mem_reads oltp_order_range 1.68ms 1.69ms +12us 1.007x PASS
mem_reads oltp_distinct_range 2.25ms 2.31ms +66us 1.029x PASS
mem_reads oltp_index_scan 3.52ms 3.50ms -13us 0.996x PASS
mem_reads select_random_points 8.91ms 9.02ms +118us 1.013x PASS
mem_reads select_random_ranges 2.99ms 2.95ms -42us 0.986x PASS
mem_reads covering_index_scan 5.11ms 5.26ms +154us 1.030x PASS
mem_reads groupby_scan 18.40ms 18.40ms +3us 1.000x PASS
mem_reads index_join 4.85ms 4.56ms -293us 0.940x PASS
mem_reads index_join_scan 3.60ms 3.61ms +4us 1.001x PASS
mem_reads types_table_scan 749.57ms 734.53ms -15.04ms 0.980x PASS
mem_reads table_scan 821.41ms 830.09ms +8.67ms 1.011x PASS
mem_reads oltp_read_only 64.61ms 65.02ms +413us 1.006x PASS
mem_writes oltp_bulk_insert 154.33ms 154.24ms -90us 0.999x PASS
mem_writes oltp_insert 16.76ms 16.51ms -252us 0.985x PASS
mem_writes oltp_update_index 60.65ms 58.46ms -2.19ms 0.964x PASS
mem_writes oltp_update_non_index 34.83ms 35.31ms +481us 1.014x PASS
mem_writes oltp_delete_insert 45.57ms 43.18ms -2.38ms 0.948x PASS
mem_writes oltp_write_only 28.66ms 29.86ms +1.20ms 1.042x PASS
mem_writes types_delete_insert 21.82ms 22.37ms +553us 1.025x PASS
mem_writes oltp_read_write 60.61ms 60.76ms +150us 1.002x PASS
file_reads oltp_point_select 32.19ms 32.92ms +730us 1.023x PASS
file_reads oltp_range_select 7.96ms 8.12ms +169us 1.021x PASS
file_reads oltp_sum_range 8.30ms 8.28ms -14us 0.998x PASS
file_reads oltp_order_range 1.85ms 1.81ms -41us 0.978x PASS
file_reads oltp_distinct_range 2.50ms 2.48ms -26us 0.990x PASS
file_reads oltp_index_scan 5.07ms 5.21ms +148us 1.029x PASS
file_reads select_random_points 9.84ms 10.24ms +405us 1.041x PASS
file_reads select_random_ranges 4.48ms 4.50ms +14us 1.003x PASS
file_reads covering_index_scan 6.68ms 6.88ms +200us 1.030x PASS
file_reads groupby_scan 18.77ms 18.64ms -132us 0.993x PASS
file_reads index_join 6.21ms 6.06ms -147us 0.976x PASS
file_reads index_join_scan 3.78ms 3.70ms -75us 0.980x PASS
file_reads types_table_scan 727.29ms 724.24ms -3.04ms 0.996x PASS
file_reads table_scan 819.86ms 823.37ms +3.51ms 1.004x PASS
file_reads oltp_read_only 83.63ms 85.08ms +1.45ms 1.017x PASS
file_writes oltp_bulk_insert 199.91ms 204.13ms +4.22ms 1.021x PASS
file_writes oltp_insert 27.78ms 27.69ms -92us 0.997x PASS
file_writes oltp_update_index 108.22ms 108.46ms +243us 1.002x PASS
file_writes oltp_update_non_index 79.34ms 79.43ms +89us 1.001x PASS
file_writes oltp_delete_insert 89.83ms 89.78ms -43us 1.000x PASS
file_writes oltp_write_only 59.94ms 60.19ms +247us 1.004x PASS
file_writes types_delete_insert 46.22ms 46.22ms -8us 1.000x PASS
file_writes oltp_read_write 92.87ms 93.04ms +166us 1.002x PASS
ac_reads oltp_point_select 31.37ms 32.13ms +754us 1.024x PASS
ac_reads oltp_range_select 7.93ms 7.84ms -89us 0.989x PASS
ac_reads oltp_sum_range 7.80ms 7.86ms +59us 1.008x PASS
ac_reads oltp_order_range 1.83ms 1.84ms +4us 1.002x PASS
ac_reads oltp_distinct_range 2.32ms 2.33ms +6us 1.003x PASS
ac_reads oltp_index_scan 4.59ms 4.51ms -87us 0.981x PASS
ac_reads select_random_points 9.54ms 9.73ms +189us 1.020x PASS
ac_reads select_random_ranges 4.27ms 4.39ms +117us 1.027x PASS
ac_reads covering_index_scan 6.67ms 6.58ms -94us 0.986x PASS
ac_reads groupby_scan 18.74ms 18.04ms -702us 0.963x PASS
ac_reads index_join 5.93ms 5.36ms -565us 0.905x PASS
ac_reads index_join_scan 3.86ms 3.81ms -53us 0.986x PASS
ac_reads types_table_scan 730.01ms 727.25ms -2.77ms 0.996x PASS
ac_reads table_scan 820.33ms 817.10ms -3.22ms 0.996x PASS
ac_reads oltp_read_only 82.94ms 83.55ms +610us 1.007x PASS
ac_writes oltp_bulk_insert_ac 80.77ms 82.31ms +1.54ms 1.019x PASS
ac_writes oltp_insert_ac 90.80ms 95.38ms +4.59ms 1.051x PASS
ac_writes oltp_update_index_ac 101.92ms 108.89ms +6.96ms 1.068x PASS
ac_writes oltp_update_non_index_ac 84.79ms 86.84ms +2.06ms 1.024x PASS
ac_writes oltp_delete_insert_ac 93.34ms 93.31ms -26us 1.000x PASS
ac_writes oltp_write_only_ac 97.02ms 96.52ms -502us 0.995x PASS
ac_writes types_delete_insert_ac 91.78ms 90.78ms -997us 0.989x PASS
ac_writes oltp_read_write_ac 99.27ms 99.52ms +246us 1.002x PASS
textpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 40.04ms 39.46ms -576us 0.986x PASS
mem_reads oltp_range_select 15.34ms 14.63ms -709us 0.954x PASS
mem_reads oltp_sum_range 14.50ms 14.62ms +119us 1.008x PASS
mem_reads oltp_order_range 3.31ms 3.33ms +21us 1.006x PASS
mem_reads oltp_distinct_range 4.48ms 4.49ms +12us 1.003x PASS
mem_reads oltp_index_scan 6.46ms 6.54ms +76us 1.012x PASS
mem_reads select_random_points 22.58ms 22.22ms -354us 0.984x PASS
mem_reads select_random_ranges 6.68ms 6.63ms -50us 0.993x PASS
mem_reads covering_index_scan 9.75ms 9.76ms +9us 1.001x PASS
mem_reads groupby_scan 36.05ms 35.09ms -961us 0.973x PASS
mem_reads index_join 10.24ms 9.84ms -400us 0.961x PASS
mem_reads index_join_scan 6.20ms 6.06ms -137us 0.978x PASS
mem_reads types_table_scan 1.25s 1.24s -1.82ms 0.999x PASS
mem_reads table_scan 1.36s 1.35s -12.76ms 0.991x PASS
mem_reads oltp_read_only 146.42ms 144.34ms -2.07ms 0.986x PASS
mem_writes oltp_bulk_insert 365.27ms 365.00ms -263us 0.999x PASS
mem_writes oltp_insert 39.77ms 38.76ms -1.01ms 0.975x PASS
mem_writes oltp_update_index 140.36ms 139.38ms -980us 0.993x PASS
mem_writes oltp_update_non_index 82.65ms 83.83ms +1.18ms 1.014x PASS
mem_writes oltp_delete_insert 105.19ms 104.62ms -572us 0.995x PASS
mem_writes oltp_write_only 62.45ms 61.52ms -927us 0.985x PASS
mem_writes types_delete_insert 54.44ms 54.18ms -261us 0.995x PASS
mem_writes oltp_read_write 148.87ms 146.82ms -2.05ms 0.986x PASS
file_reads oltp_point_select 58.88ms 58.28ms -601us 0.990x PASS
file_reads oltp_range_select 17.22ms 16.61ms -608us 0.965x PASS
file_reads oltp_sum_range 16.80ms 16.98ms +184us 1.011x PASS
file_reads oltp_order_range 3.60ms 3.59ms -1us 1.000x PASS
file_reads oltp_distinct_range 4.78ms 4.74ms -42us 0.991x PASS
file_reads oltp_index_scan 8.57ms 8.73ms +157us 1.018x PASS
file_reads select_random_points 24.88ms 24.75ms -125us 0.995x PASS
file_reads select_random_ranges 8.88ms 8.63ms -250us 0.972x PASS
file_reads covering_index_scan 12.37ms 12.16ms -217us 0.982x PASS
file_reads groupby_scan 35.57ms 35.41ms -160us 0.996x PASS
file_reads index_join 11.43ms 11.12ms -316us 0.972x PASS
file_reads index_join_scan 6.67ms 6.37ms -299us 0.955x PASS
file_reads types_table_scan 1.20s 1.20s -1.76ms 0.999x PASS
file_reads table_scan 1.30s 1.30s -3.56ms 0.997x PASS
file_reads oltp_read_only 172.04ms 170.81ms -1.23ms 0.993x PASS
file_writes oltp_bulk_insert 376.01ms 380.32ms +4.31ms 1.011x PASS
file_writes oltp_insert 45.91ms 46.00ms +90us 1.002x PASS
file_writes oltp_update_index 159.82ms 157.14ms -2.68ms 0.983x PASS
file_writes oltp_update_non_index 99.94ms 100.06ms +122us 1.001x PASS
file_writes oltp_delete_insert 126.33ms 124.62ms -1.72ms 0.986x PASS
file_writes oltp_write_only 77.42ms 77.25ms -170us 0.998x PASS
file_writes types_delete_insert 66.44ms 65.57ms -873us 0.987x PASS
file_writes oltp_read_write 163.81ms 161.37ms -2.44ms 0.985x PASS
ac_reads oltp_point_select 59.09ms 58.72ms -374us 0.994x PASS
ac_reads oltp_range_select 17.51ms 16.78ms -732us 0.958x PASS
ac_reads oltp_sum_range 16.71ms 17.04ms +321us 1.019x PASS
ac_reads oltp_order_range 3.59ms 3.58ms -11us 0.997x PASS
ac_reads oltp_distinct_range 4.78ms 4.80ms +21us 1.004x PASS
ac_reads oltp_index_scan 8.57ms 8.58ms +14us 1.002x PASS
ac_reads select_random_points 25.68ms 25.17ms -515us 0.980x PASS
ac_reads select_random_ranges 8.72ms 8.72ms -2us 1.000x PASS
ac_reads covering_index_scan 12.34ms 12.23ms -107us 0.991x PASS
ac_reads groupby_scan 35.79ms 35.15ms -640us 0.982x PASS
ac_reads index_join 11.26ms 11.17ms -81us 0.993x PASS
ac_reads index_join_scan 6.88ms 6.77ms -112us 0.984x PASS
ac_reads types_table_scan 1.19s 1.19s -5.75ms 0.995x PASS
ac_reads table_scan 1.30s 1.30s -8.62ms 0.993x PASS
ac_reads oltp_read_only 171.32ms 170.70ms -617us 0.996x PASS
ac_writes oltp_bulk_insert_ac 76.62ms 75.01ms -1.62ms 0.979x PASS
ac_writes oltp_insert_ac 88.89ms 88.98ms +91us 1.001x PASS
ac_writes oltp_update_index_ac 104.69ms 102.86ms -1.83ms 0.982x PASS
ac_writes oltp_update_non_index_ac 81.63ms 84.24ms +2.61ms 1.032x PASS
ac_writes oltp_delete_insert_ac 95.49ms 96.56ms +1.07ms 1.011x PASS
ac_writes oltp_write_only_ac 95.32ms 93.77ms -1.56ms 0.984x PASS
ac_writes types_delete_insert_ac 84.03ms 84.48ms +450us 1.005x PASS
ac_writes oltp_read_write_ac 102.53ms 99.75ms -2.78ms 0.973x PASS
vc details
Section Test Baseline Candidate Delta Ratio Result
vc status_clean_many_tables 34.90ms 34.73ms -161us 0.995x PASS
vc status_dirty_many_tables 38.84ms 38.87ms +26us 1.001x PASS
vc diff_regular_working_one_table 30.63ms 30.86ms +234us 1.008x PASS
vc diff_regular_working_many_tables 43.76ms 43.78ms +16us 1.000x PASS
vc diff_stat_working_many_tables 43.71ms 44.00ms +295us 1.007x PASS
vc diff_schema_working_many_tables 44.21ms 44.81ms +601us 1.014x PASS
vc branch_list_many_branches 22.25ms 22.46ms +205us 1.009x PASS
vc branch_create_delete 25.19ms 25.42ms +230us 1.009x PASS
vc at_literal_deep_history 26.86ms 27.11ms +258us 1.010x PASS
vc diff_literal_deep_history 27.08ms 26.91ms -173us 0.994x PASS
vc history_literal_deep_history 28.39ms 29.07ms +680us 1.024x PASS
vc checkout_branch_clean 39.46ms 38.46ms -999us 0.975x PASS
vc merge_data_no_conflicts 28.86ms 28.57ms -290us 0.990x PASS
vc merge_data_secondary_index 1.12s 1.12s +4.84ms 1.004x PASS
vc merge_schema_no_conflicts 21.20ms 21.52ms +321us 1.015x PASS
vc merge_data_conflicts 29.97ms 29.89ms -81us 0.997x PASS
vc merge_data_conflicts_with_resolve 30.35ms 30.50ms +148us 1.005x PASS

All relative performance gates passed.

@timsehn
timsehn merged commit 827f32f into master Sep 19, 2026
69 checks passed
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

Successfully merging this pull request may close these issues.

SELECT from dolt_workspace_<missing table> fails with "out of memory" instead of "no such table"

1 participant