Skip to content

Reject unresolved diff refs consistently - #2556

Merged
timsehn merged 1 commit into
masterfrom
fix/2540-unresolved-diff-refs
Sep 2, 2026
Merged

Reject unresolved diff refs consistently#2556
timsehn merged 1 commit into
masterfrom
fix/2540-unresolved-diff-refs

Conversation

@timsehn

@timsehn timsehn commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • reject unresolved refs across every dolt_diff_<table> query plan instead of silently returning zero rows
  • report distinct descriptive errors for missing refs and invalid ancestor specs
  • make dolt_diff_stat use the same error domain
  • cover TVF, WHERE-filter, hash-prefix, from-only, to-only, and revision-range forms against Dolt

Validation

  • make -C build lint
  • bash test/run_doltlite_tests.sh build/doltlite — 125 suites passed
  • focused native diff suites — 156 passed
  • focused Dolt oracle suites — 243 passed

Fixes #2540

Co-Authored-By: OpenAI Codex noreply@openai.com

Fixes #2540

Co-Authored-By: OpenAI Codex <noreply@openai.com>
@itoqa

itoqa Bot commented Sep 2, 2026

Copy link
Copy Markdown

Ito QA test results
Commit: 496866c: 14 test cases ran, 14 passed ✅.

Summary

Coverage spans normal data comparisons and summaries across branches, commits, tags, working changes, and filtered views, along with recovery after invalid input. It also exercises adversarial edge cases such as malformed ranges and missing references, confirming clear errors without losing later valid results.

Safe to merge — all exercised behaviors passed, with no regressions, new failures, or previously flagged failures attributable to this PR. The run indicates low merge risk and no blocker identified.

Tests run by Ito

View full run

Result Severity Type Description
General After two invalid slice requests, the valid main-to-feature comparison still returned the expected removed and added rows.
General An invalid reference shows a clear error, and later statistics and summary queries in the same session return complete results that match a fresh session.
General Both filtered summary queries reported that nosuchref was not found. The error stayed the same when the table filter changed from an existing table to a missing table.
Diff The comparison rejected the missing reference and clearly reported that nosuchref was not found instead of returning an empty result.
Diff The from-only diff query was rejected with a clear error saying that the garbage reference was not found.
Diff Comparing against abc123 shows a clear error instead of an empty result.
Diff Comparing two valid commits returned the expected added row with id 2 and value b.
Diff Comparing HEAD with WORKING showed the newly inserted row with id 4 and value working.
Range A query using one revision without a range delimiter returned the expected error instead of pretending that there were no changes.
Range The query rejects the unresolved HEAD~99...feature range with a clear invalid revision range error instead of returning an empty diff.
Rev Valid branch names, the base tag with HEAD, and full commit hashes all return the expected changed rows. The equivalent filtered queries return the same row attribution.
Stat The statistics query rejected the missing nosuchref reference and showed a clear ref-not-found error instead of returning empty statistics.
Summary A filtered comparison between main and feature returned the expected summary row for table t: one data change and no schema change.
Summary Both summary query forms clearly report that nosuchref was not found instead of returning an empty result.

Tip

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

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

DoltLite source coverage

Metric Covered Total Coverage
Lines 53702 63102 85.10%
Branches 24851 36644 67.82%
Functions 2512 2724 92.22%

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

Per-file coverage (98 files)
File Lines Branches Functions
src/btree_orig_api.c 87.91% 77.27% 89.53%
src/chunk_file.c 100.00% 100.00% 100.00%
src/chunk_index.c 84.27% 66.78% 100.00%
src/chunk_refs.c 84.99% 69.17% 79.37%
src/chunk_staging.c 93.75% 81.15% 100.00%
src/chunk_store.c 91.11% 75.34% 100.00%
src/chunk_store_commit.c 86.75% 67.23% 100.00%
src/chunk_store_lock.c 88.69% 71.00% 100.00%
src/chunk_store_refs_api.c 91.17% 76.75% 100.00%
src/chunk_wal.c 82.48% 58.70% 87.50%
src/doltlite.c 100.00% 100.00% 100.00%
src/doltlite_add.c 86.85% 69.76% 100.00%
src/doltlite_ancestor.c 89.19% 68.92% 100.00%
src/doltlite_at.c 83.39% 64.20% 100.00%
src/doltlite_blame.c 80.86% 61.14% 96.43%
src/doltlite_branch.c 88.30% 80.66% 100.00%
src/doltlite_branches.c 93.75% 75.93% 93.75%
src/doltlite_checkout.c 77.57% 63.06% 96.43%
src/doltlite_cherry_pick.c 79.00% 59.57% 71.43%
src/doltlite_chunk_walk.c 92.23% 66.22% 100.00%
src/doltlite_clean.c 93.33% 67.19% 100.00%
src/doltlite_cmd.c 81.09% 75.19% 100.00%
src/doltlite_commit.c 94.41% 76.87% 100.00%
src/doltlite_commit_ancestors.c 92.09% 72.83% 92.31%
src/doltlite_commit_cmd.c 78.08% 67.50% 100.00%
src/doltlite_config.c 80.47% 71.74% 100.00%
src/doltlite_conflicts.c 84.27% 62.50% 93.75%
src/doltlite_constraint_violations.c 82.46% 57.54% 91.11%
src/doltlite_core.c 91.34% 70.81% 100.00%
src/doltlite_creds.c 84.09% 53.78% 92.00%
src/doltlite_dbpage.c 93.45% 78.33% 91.67%
src/doltlite_diff.c 88.56% 68.99% 96.55%
src/doltlite_diff_stat.c 94.24% 75.90% 95.74%
src/doltlite_diff_table.c 94.12% 72.71% 97.14%
src/doltlite_docs.c 83.94% 71.43% 94.74%
src/doltlite_gc.c 78.48% 58.10% 96.55%
src/doltlite_hashof.c 79.79% 70.05% 100.00%
src/doltlite_history.c 86.93% 76.40% 100.00%
src/doltlite_http_remote.c 82.22% 57.34% 92.31%
src/doltlite_ignore.c 77.57% 62.25% 82.14%
src/doltlite_log.c 96.81% 73.24% 92.86%
src/doltlite_merge.c 95.93% 70.46% 100.00%
src/doltlite_merge_cmd.c 87.19% 72.12% 100.00%
src/doltlite_merge_constraints.c 86.15% 63.64% 95.00%
src/doltlite_merge_constraints_check.c 86.81% 67.79% 100.00%
src/doltlite_merge_constraints_fk.c 78.00% 56.64% 100.00%
src/doltlite_merge_constraints_notnull.c 80.45% 67.92% 100.00%
src/doltlite_merge_constraints_strict.c 77.35% 63.04% 100.00%
src/doltlite_merge_constraints_unique.c 85.99% 62.82% 100.00%
src/doltlite_merge_pass1.c 92.94% 74.16% 100.00%
src/doltlite_merge_pass2.c 83.59% 67.46% 100.00%
src/doltlite_merge_predetect.c 86.38% 71.15% 95.45%
src/doltlite_merge_rebuild.c 99.15% 78.91% 100.00%
src/doltlite_merge_rows.c 82.93% 64.74% 100.00%
src/doltlite_merge_schema.c 90.95% 71.94% 97.06%
src/doltlite_merge_status.c 91.98% 73.53% 92.31%
src/doltlite_patch.c 94.36% 70.71% 98.15%
src/doltlite_rebase.c 85.42% 59.55% 100.00%
src/doltlite_record.c 78.67% 59.36% 95.24%
src/doltlite_ref.c 95.52% 75.36% 100.00%
src/doltlite_remote.c 85.61% 66.89% 96.00%
src/doltlite_remote_sql.c 66.60% 60.73% 93.55%
src/doltlite_remotesrv.c 75.76% 63.77% 90.77%
src/doltlite_reset.c 87.48% 72.76% 100.00%
src/doltlite_revert.c 80.51% 69.44% 100.00%
src/doltlite_schema_diff.c 94.42% 71.13% 96.97%
src/doltlite_schemas.c 70.86% 48.75% 90.91%
src/doltlite_status.c 91.49% 72.78% 97.56%
src/doltlite_tag.c 86.84% 70.31% 94.12%
src/doltlite_tests.c 84.22% 69.61% 91.11%
src/doltlite_tls.c 85.04% 60.91% 92.31%
src/doltlite_verify_constraints.c 79.15% 66.44% 100.00%
src/doltlite_workspace.c 91.84% 70.27% 100.00%
src/pager_shim.c 58.87% 67.46% 34.29%
src/prolly_btree.c 86.00% 66.45% 90.70%
src/prolly_btree_catalog.c 83.10% 69.04% 97.22%
src/prolly_btree_cursor.c 84.15% 62.09% 96.00%
src/prolly_btree_cursor_count.c 80.05% 56.74% 100.00%
src/prolly_btree_cursor_payload.c 75.69% 54.48% 95.65%
src/prolly_btree_cursor_seek.c 76.68% 66.20% 82.35%
src/prolly_btree_mutation.c 88.02% 68.30% 97.83%
src/prolly_btree_orig.c 93.75% 71.43% 93.15%
src/prolly_btree_state.c 93.51% 66.38% 100.00%
src/prolly_btree_txn.c 81.84% 69.30% 98.08%
src/prolly_cache.c 93.27% 69.12% 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 89.67% 80.47% 100.00%
src/prolly_diff.c 59.59% 46.05% 71.43%
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 93.87% 80.52% 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% 67.41% 91.67%
src/prolly_xxhash.c 100.00% 100.00% 100.00%
src/sortkey.c 93.16% 81.51% 100.00%

Download HTML and LCOV artifacts from this workflow run.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

DoltLite performance vs PR base

  • Baseline: c438aa463061db6c7d2bc82bf682e5479b8cce7e
  • Candidate: d1d533e6ab18f8557a6d6a288e2c02eb35cbca4c
  • Overall ratio: 1.009x
  • Gate result: PASS
  • Gates: individual > 1.50x with more than 10.00ms regression; section, suite, or overall > 1.25x with the same minimum delta
  • vc individual gate: > 2.00x with more than 50.00ms regression
  • Confirmed failed gates: none
  • Automatic retries: textpk cleared after 2 attempts; no gate failed every time
Suite Workloads Baseline total Candidate total Ratio Result
blobpk 69 11.22s 11.23s 1.001x PASS
compositepk 69 11.49s 11.64s 1.013x PASS
int 69 10.37s 10.41s 1.003x PASS
textpk 69 10.40s 10.61s 1.021x PASS
vc 13 853.18ms 846.50ms 0.992x PASS
blobpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 34.35ms 33.99ms -361us 0.989x PASS
mem_reads oltp_range_select 13.24ms 13.26ms +19us 1.001x PASS
mem_reads oltp_sum_range 12.83ms 12.94ms +112us 1.009x PASS
mem_reads oltp_order_range 3.12ms 3.10ms -13us 0.996x PASS
mem_reads oltp_distinct_range 4.19ms 4.17ms -26us 0.994x PASS
mem_reads oltp_index_scan 5.43ms 5.50ms +65us 1.012x PASS
mem_reads select_random_points 19.17ms 19.29ms +117us 1.006x PASS
mem_reads select_random_ranges 5.16ms 5.16ms +6us 1.001x PASS
mem_reads covering_index_scan 4.27ms 4.34ms +74us 1.017x PASS
mem_reads groupby_scan 35.78ms 36.02ms +239us 1.007x PASS
mem_reads index_join 8.27ms 8.29ms +15us 1.002x PASS
mem_reads index_join_scan 5.33ms 5.43ms +96us 1.018x PASS
mem_reads types_table_scan 1.22s 1.22s -2.37ms 0.998x PASS
mem_reads table_scan 1.35s 1.35s +367us 1.000x PASS
mem_reads oltp_read_only 128.74ms 128.45ms -289us 0.998x PASS
mem_writes oltp_bulk_insert 343.49ms 346.09ms +2.60ms 1.008x PASS
mem_writes oltp_insert 37.75ms 38.05ms +301us 1.008x PASS
mem_writes oltp_update_index 129.59ms 129.65ms +63us 1.000x PASS
mem_writes oltp_update_non_index 75.84ms 76.18ms +344us 1.005x PASS
mem_writes oltp_delete_insert 101.39ms 101.49ms +106us 1.001x PASS
mem_writes oltp_write_only 60.54ms 60.47ms -70us 0.999x PASS
mem_writes types_delete_insert 50.13ms 50.32ms +191us 1.004x PASS
mem_writes oltp_read_write 135.35ms 135.06ms -290us 0.998x PASS
file_reads oltp_point_select 55.80ms 55.73ms -75us 0.999x PASS
file_reads oltp_range_select 15.76ms 15.72ms -37us 0.998x PASS
file_reads oltp_sum_range 15.49ms 15.46ms -38us 0.998x PASS
file_reads oltp_order_range 3.44ms 3.41ms -28us 0.992x PASS
file_reads oltp_distinct_range 4.55ms 4.52ms -27us 0.994x PASS
file_reads oltp_index_scan 8.11ms 8.03ms -74us 0.991x PASS
file_reads select_random_points 22.02ms 22.15ms +130us 1.006x PASS
file_reads select_random_ranges 7.47ms 7.41ms -62us 0.992x PASS
file_reads covering_index_scan 6.94ms 6.93ms -9us 0.999x PASS
file_reads groupby_scan 36.19ms 36.24ms +49us 1.001x PASS
file_reads index_join 10.54ms 10.47ms -69us 0.993x PASS
file_reads index_join_scan 5.71ms 5.75ms +37us 1.006x PASS
file_reads types_table_scan 1.22s 1.22s -4.28ms 0.996x PASS
file_reads table_scan 1.35s 1.35s +1.86ms 1.001x PASS
file_reads oltp_read_only 160.46ms 161.90ms +1.44ms 1.009x PASS
file_writes oltp_bulk_insert 352.84ms 355.23ms +2.40ms 1.007x PASS
file_writes oltp_insert 44.39ms 44.61ms +216us 1.005x PASS
file_writes oltp_update_index 145.87ms 145.95ms +80us 1.001x PASS
file_writes oltp_update_non_index 89.38ms 89.60ms +224us 1.003x PASS
file_writes oltp_delete_insert 114.81ms 115.06ms +241us 1.002x PASS
file_writes oltp_write_only 71.00ms 71.16ms +161us 1.002x PASS
file_writes types_delete_insert 58.71ms 59.03ms +326us 1.006x PASS
file_writes oltp_read_write 145.12ms 145.38ms +253us 1.002x PASS
ac_reads oltp_point_select 56.19ms 55.81ms -376us 0.993x PASS
ac_reads oltp_range_select 15.76ms 15.86ms +96us 1.006x PASS
ac_reads oltp_sum_range 15.17ms 15.37ms +197us 1.013x PASS
ac_reads oltp_order_range 3.46ms 3.44ms -12us 0.997x PASS
ac_reads oltp_distinct_range 4.60ms 4.49ms -119us 0.974x PASS
ac_reads oltp_index_scan 8.09ms 8.07ms -15us 0.998x PASS
ac_reads select_random_points 22.21ms 22.16ms -47us 0.998x PASS
ac_reads select_random_ranges 7.61ms 7.48ms -130us 0.983x PASS
ac_reads covering_index_scan 6.89ms 6.90ms +11us 1.002x PASS
ac_reads groupby_scan 36.09ms 36.22ms +137us 1.004x PASS
ac_reads index_join 10.72ms 10.75ms +22us 1.002x PASS
ac_reads index_join_scan 5.84ms 5.77ms -69us 0.988x PASS
ac_reads types_table_scan 1.22s 1.22s +722us 1.001x PASS
ac_reads table_scan 1.35s 1.36s +3.45ms 1.003x PASS
ac_reads oltp_read_only 161.39ms 160.54ms -854us 0.995x PASS
ac_writes oltp_bulk_insert_ac 53.87ms 54.14ms +276us 1.005x PASS
ac_writes oltp_insert_ac 70.46ms 70.07ms -386us 0.995x PASS
ac_writes oltp_update_index_ac 79.21ms 79.29ms +79us 1.001x PASS
ac_writes oltp_update_non_index_ac 61.34ms 62.42ms +1.08ms 1.018x PASS
ac_writes oltp_delete_insert_ac 70.57ms 72.52ms +1.95ms 1.028x PASS
ac_writes oltp_write_only_ac 70.06ms 70.52ms +460us 1.007x PASS
ac_writes types_delete_insert_ac 63.86ms 63.18ms -679us 0.989x PASS
ac_writes oltp_read_write_ac 82.85ms 82.68ms -176us 0.998x PASS
compositepk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 41.04ms 41.12ms +73us 1.002x PASS
mem_reads oltp_range_select 21.24ms 21.12ms -121us 0.994x PASS
mem_reads oltp_sum_range 20.22ms 20.48ms +260us 1.013x PASS
mem_reads oltp_order_range 3.88ms 3.87ms -6us 0.998x PASS
mem_reads oltp_distinct_range 5.05ms 5.14ms +95us 1.019x PASS
mem_reads oltp_index_scan 6.14ms 6.02ms -114us 0.981x PASS
mem_reads select_random_points 32.39ms 32.06ms -332us 0.990x PASS
mem_reads select_random_ranges 9.02ms 8.97ms -55us 0.994x PASS
mem_reads covering_index_scan 4.65ms 4.48ms -165us 0.965x PASS
mem_reads groupby_scan 40.38ms 41.88ms +1.50ms 1.037x PASS
mem_reads index_join 10.50ms 11.12ms +619us 1.059x PASS
mem_reads index_join_scan 5.49ms 5.50ms +13us 1.002x PASS
mem_reads types_table_scan 1.18s 1.21s +33.52ms 1.028x PASS
mem_reads table_scan 1.30s 1.33s +30.75ms 1.024x PASS
mem_reads oltp_read_only 174.47ms 171.48ms -2.99ms 0.983x PASS
mem_writes oltp_bulk_insert 348.90ms 347.30ms -1.60ms 0.995x PASS
mem_writes oltp_insert 35.29ms 34.96ms -328us 0.991x PASS
mem_writes oltp_update_index 126.72ms 125.54ms -1.18ms 0.991x PASS
mem_writes oltp_update_non_index 78.77ms 78.46ms -305us 0.996x PASS
mem_writes oltp_delete_insert 97.58ms 96.73ms -848us 0.991x PASS
mem_writes oltp_write_only 57.55ms 56.44ms -1.11ms 0.981x PASS
mem_writes types_delete_insert 53.41ms 53.98ms +574us 1.011x PASS
mem_writes oltp_read_write 162.04ms 160.49ms -1.55ms 0.990x PASS
file_reads oltp_point_select 59.62ms 59.43ms -191us 0.997x PASS
file_reads oltp_range_select 23.09ms 22.92ms -167us 0.993x PASS
file_reads oltp_sum_range 22.53ms 22.28ms -249us 0.989x PASS
file_reads oltp_order_range 4.38ms 4.41ms +38us 1.009x PASS
file_reads oltp_distinct_range 5.46ms 5.57ms +111us 1.020x PASS
file_reads oltp_index_scan 8.35ms 8.25ms -106us 0.987x PASS
file_reads select_random_points 36.41ms 36.08ms -332us 0.991x PASS
file_reads select_random_ranges 11.08ms 10.97ms -113us 0.990x PASS
file_reads covering_index_scan 6.55ms 6.62ms +66us 1.010x PASS
file_reads groupby_scan 40.95ms 40.62ms -325us 0.992x PASS
file_reads index_join 12.43ms 12.67ms +246us 1.020x PASS
file_reads index_join_scan 5.89ms 5.94ms +50us 1.008x PASS
file_reads types_table_scan 1.20s 1.22s +19.39ms 1.016x PASS
file_reads table_scan 1.27s 1.32s +42.84ms 1.034x PASS
file_reads oltp_read_only 200.26ms 198.29ms -1.98ms 0.990x PASS
file_writes oltp_bulk_insert 356.87ms 355.17ms -1.71ms 0.995x PASS
file_writes oltp_insert 40.46ms 40.65ms +189us 1.005x PASS
file_writes oltp_update_index 134.62ms 132.70ms -1.92ms 0.986x PASS
file_writes oltp_update_non_index 90.32ms 91.35ms +1.03ms 1.011x PASS
file_writes oltp_delete_insert 106.94ms 107.43ms +484us 1.005x PASS
file_writes oltp_write_only 68.22ms 66.76ms -1.46ms 0.979x PASS
file_writes types_delete_insert 59.96ms 60.47ms +512us 1.009x PASS
file_writes oltp_read_write 173.03ms 170.36ms -2.67ms 0.985x PASS
ac_reads oltp_point_select 58.57ms 58.35ms -219us 0.996x PASS
ac_reads oltp_range_select 23.08ms 23.05ms -30us 0.999x PASS
ac_reads oltp_sum_range 22.21ms 22.39ms +177us 1.008x PASS
ac_reads oltp_order_range 4.36ms 4.27ms -87us 0.980x PASS
ac_reads oltp_distinct_range 5.48ms 5.45ms -33us 0.994x PASS
ac_reads oltp_index_scan 8.18ms 8.05ms -126us 0.985x PASS
ac_reads select_random_points 34.87ms 35.47ms +592us 1.017x PASS
ac_reads select_random_ranges 10.96ms 11.00ms +36us 1.003x PASS
ac_reads covering_index_scan 6.39ms 6.33ms -63us 0.990x PASS
ac_reads groupby_scan 40.89ms 40.42ms -471us 0.988x PASS
ac_reads index_join 12.09ms 12.33ms +241us 1.020x PASS
ac_reads index_join_scan 5.91ms 5.86ms -59us 0.990x PASS
ac_reads types_table_scan 1.20s 1.22s +23.02ms 1.019x PASS
ac_reads table_scan 1.30s 1.33s +27.48ms 1.021x PASS
ac_reads oltp_read_only 200.88ms 200.10ms -785us 0.996x PASS
ac_writes oltp_bulk_insert_ac 88.60ms 82.04ms -6.56ms 0.926x PASS
ac_writes oltp_insert_ac 97.86ms 101.21ms +3.35ms 1.034x PASS
ac_writes oltp_update_index_ac 103.40ms 101.56ms -1.85ms 0.982x PASS
ac_writes oltp_update_non_index_ac 93.67ms 86.17ms -7.50ms 0.920x PASS
ac_writes oltp_delete_insert_ac 105.37ms 115.50ms +10.13ms 1.096x PASS
ac_writes oltp_write_only_ac 98.82ms 94.52ms -4.30ms 0.956x PASS
ac_writes types_delete_insert_ac 95.06ms 87.89ms -7.17ms 0.925x PASS
ac_writes oltp_read_write_ac 109.64ms 115.65ms +6.01ms 1.055x PASS
int details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 26.99ms 27.87ms +885us 1.033x PASS
mem_reads oltp_range_select 10.95ms 11.01ms +66us 1.006x PASS
mem_reads oltp_sum_range 10.66ms 10.72ms +60us 1.006x PASS
mem_reads oltp_order_range 2.78ms 2.83ms +45us 1.016x PASS
mem_reads oltp_distinct_range 3.91ms 3.89ms -20us 0.995x PASS
mem_reads oltp_index_scan 4.66ms 4.79ms +135us 1.029x PASS
mem_reads select_random_points 10.74ms 11.21ms +463us 1.043x PASS
mem_reads select_random_ranges 3.94ms 3.97ms +30us 1.008x PASS
mem_reads covering_index_scan 4.13ms 4.10ms -29us 0.993x PASS
mem_reads groupby_scan 34.27ms 34.39ms +116us 1.003x PASS
mem_reads index_join 7.58ms 7.60ms +27us 1.004x PASS
mem_reads index_join_scan 4.53ms 4.56ms +35us 1.008x PASS
mem_reads types_table_scan 1.19s 1.19s -406us 1.000x PASS
mem_reads table_scan 1.32s 1.33s +2.17ms 1.002x PASS
mem_reads oltp_read_only 111.49ms 113.05ms +1.56ms 1.014x PASS
mem_writes oltp_bulk_insert 240.74ms 241.41ms +671us 1.003x PASS
mem_writes oltp_insert 27.45ms 27.71ms +258us 1.009x PASS
mem_writes oltp_update_index 93.32ms 92.44ms -878us 0.991x PASS
mem_writes oltp_update_non_index 53.57ms 53.64ms +66us 1.001x PASS
mem_writes oltp_delete_insert 72.74ms 72.56ms -180us 0.998x PASS
mem_writes oltp_write_only 46.50ms 46.94ms +448us 1.010x PASS
mem_writes types_delete_insert 36.30ms 36.81ms +503us 1.014x PASS
mem_writes oltp_read_write 105.93ms 106.91ms +983us 1.009x PASS
file_reads oltp_point_select 48.89ms 48.88ms -8us 1.000x PASS
file_reads oltp_range_select 13.22ms 13.32ms +94us 1.007x PASS
file_reads oltp_sum_range 12.70ms 12.87ms +176us 1.014x PASS
file_reads oltp_order_range 3.08ms 3.09ms +15us 1.005x PASS
file_reads oltp_distinct_range 4.20ms 4.21ms +13us 1.003x PASS
file_reads oltp_index_scan 7.18ms 7.26ms +85us 1.012x PASS
file_reads select_random_points 13.07ms 13.64ms +562us 1.043x PASS
file_reads select_random_ranges 6.06ms 6.05ms -11us 0.998x PASS
file_reads covering_index_scan 6.61ms 6.54ms -72us 0.989x PASS
file_reads groupby_scan 34.49ms 34.81ms +323us 1.009x PASS
file_reads index_join 9.12ms 9.15ms +23us 1.003x PASS
file_reads index_join_scan 4.79ms 4.89ms +93us 1.019x PASS
file_reads types_table_scan 1.18s 1.19s +5.07ms 1.004x PASS
file_reads table_scan 1.33s 1.33s -1.83ms 0.999x PASS
file_reads oltp_read_only 144.44ms 143.75ms -685us 0.995x PASS
file_writes oltp_bulk_insert 249.54ms 249.08ms -458us 0.998x PASS
file_writes oltp_insert 31.73ms 31.99ms +258us 1.008x PASS
file_writes oltp_update_index 101.42ms 101.34ms -78us 0.999x PASS
file_writes oltp_update_non_index 68.27ms 68.50ms +230us 1.003x PASS
file_writes oltp_delete_insert 82.28ms 81.15ms -1.13ms 0.986x PASS
file_writes oltp_write_only 51.94ms 53.77ms +1.83ms 1.035x PASS
file_writes types_delete_insert 42.14ms 42.12ms -24us 0.999x PASS
file_writes oltp_read_write 112.68ms 115.18ms +2.50ms 1.022x PASS
ac_reads oltp_point_select 49.09ms 49.01ms -88us 0.998x PASS
ac_reads oltp_range_select 13.29ms 13.38ms +93us 1.007x PASS
ac_reads oltp_sum_range 12.76ms 12.92ms +162us 1.013x PASS
ac_reads oltp_order_range 3.07ms 3.10ms +29us 1.009x PASS
ac_reads oltp_distinct_range 4.15ms 4.19ms +35us 1.008x PASS
ac_reads oltp_index_scan 7.21ms 7.25ms +40us 1.006x PASS
ac_reads select_random_points 13.27ms 13.71ms +442us 1.033x PASS
ac_reads select_random_ranges 6.08ms 6.10ms +24us 1.004x PASS
ac_reads covering_index_scan 6.43ms 6.42ms -11us 0.998x PASS
ac_reads groupby_scan 34.70ms 34.72ms +17us 1.000x PASS
ac_reads index_join 9.13ms 9.41ms +289us 1.032x PASS
ac_reads index_join_scan 4.80ms 4.92ms +112us 1.023x PASS
ac_reads types_table_scan 1.19s 1.20s +3.38ms 1.003x PASS
ac_reads table_scan 1.32s 1.33s +9.76ms 1.007x PASS
ac_reads oltp_read_only 144.42ms 145.05ms +628us 1.004x PASS
ac_writes oltp_bulk_insert_ac 56.92ms 55.62ms -1.30ms 0.977x PASS
ac_writes oltp_insert_ac 70.48ms 70.20ms -280us 0.996x PASS
ac_writes oltp_update_index_ac 80.30ms 81.30ms +1.00ms 1.013x PASS
ac_writes oltp_update_non_index_ac 63.92ms 64.61ms +680us 1.011x PASS
ac_writes oltp_delete_insert_ac 73.45ms 73.96ms +507us 1.007x PASS
ac_writes oltp_write_only_ac 74.02ms 73.82ms -201us 0.997x PASS
ac_writes types_delete_insert_ac 63.86ms 63.07ms -791us 0.988x PASS
ac_writes oltp_read_write_ac 78.83ms 81.74ms +2.91ms 1.037x PASS
textpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 25.60ms 26.30ms +694us 1.027x PASS
mem_reads oltp_range_select 10.12ms 10.15ms +31us 1.003x PASS
mem_reads oltp_sum_range 9.84ms 9.94ms +100us 1.010x PASS
mem_reads oltp_order_range 2.48ms 2.48ms +7us 1.003x PASS
mem_reads oltp_distinct_range 3.43ms 3.45ms +17us 1.005x PASS
mem_reads oltp_index_scan 4.21ms 4.31ms +96us 1.023x PASS
mem_reads select_random_points 16.32ms 16.06ms -263us 0.984x PASS
mem_reads select_random_ranges 3.98ms 3.99ms +10us 1.003x PASS
mem_reads covering_index_scan 3.31ms 3.28ms -24us 0.993x PASS
mem_reads groupby_scan 27.52ms 27.56ms +45us 1.002x PASS
mem_reads index_join 6.90ms 6.92ms +16us 1.002x PASS
mem_reads index_join_scan 4.57ms 4.52ms -44us 0.990x PASS
mem_reads types_table_scan 962.88ms 961.32ms -1.56ms 0.998x PASS
mem_reads table_scan 1.06s 1.06s -1.25ms 0.999x PASS
mem_reads oltp_read_only 99.46ms 99.53ms +70us 1.001x PASS
mem_writes oltp_bulk_insert 241.91ms 240.76ms -1.15ms 0.995x PASS
mem_writes oltp_insert 26.38ms 26.16ms -216us 0.992x PASS
mem_writes oltp_update_index 98.06ms 97.18ms -880us 0.991x PASS
mem_writes oltp_update_non_index 55.99ms 55.64ms -349us 0.994x PASS
mem_writes oltp_delete_insert 72.63ms 72.13ms -501us 0.993x PASS
mem_writes oltp_write_only 41.76ms 41.35ms -406us 0.990x PASS
mem_writes types_delete_insert 36.77ms 37.03ms +265us 1.007x PASS
mem_writes oltp_read_write 99.80ms 100.34ms +544us 1.005x PASS
file_reads oltp_point_select 32.47ms 32.43ms -43us 0.999x PASS
file_reads oltp_range_select 11.17ms 11.14ms -29us 0.997x PASS
file_reads oltp_sum_range 10.76ms 10.93ms +176us 1.016x PASS
file_reads oltp_order_range 2.60ms 2.61ms +14us 1.005x PASS
file_reads oltp_distinct_range 3.45ms 3.47ms +13us 1.004x PASS
file_reads oltp_index_scan 5.11ms 5.08ms -37us 0.993x PASS
file_reads select_random_points 17.61ms 17.95ms +335us 1.019x PASS
file_reads select_random_ranges 4.74ms 4.74ms -4us 0.999x PASS
file_reads covering_index_scan 4.27ms 4.25ms -13us 0.997x PASS
file_reads groupby_scan 27.77ms 27.93ms +153us 1.006x PASS
file_reads index_join 7.96ms 8.28ms +318us 1.040x PASS
file_reads index_join_scan 4.83ms 5.03ms +197us 1.041x PASS
file_reads types_table_scan 964.63ms 960.74ms -3.89ms 0.996x PASS
file_reads table_scan 1.06s 1.06s -1.16ms 0.999x PASS
file_reads oltp_read_only 108.41ms 109.56ms +1.16ms 1.011x PASS
file_writes oltp_bulk_insert 329.94ms 309.63ms -20.31ms 0.938x PASS
file_writes oltp_insert 49.21ms 51.90ms +2.69ms 1.055x PASS
file_writes oltp_update_index 177.60ms 179.82ms +2.22ms 1.012x PASS
file_writes oltp_update_non_index 115.68ms 110.31ms -5.37ms 0.954x PASS
file_writes oltp_delete_insert 139.73ms 139.52ms -212us 0.998x PASS
file_writes oltp_write_only 101.76ms 89.47ms -12.29ms 0.879x PASS
file_writes types_delete_insert 114.18ms 71.01ms -43.17ms 0.622x PASS
file_writes oltp_read_write 149.21ms 149.57ms +358us 1.002x PASS
ac_reads oltp_point_select 31.96ms 32.10ms +144us 1.005x PASS
ac_reads oltp_range_select 11.12ms 11.05ms -66us 0.994x PASS
ac_reads oltp_sum_range 10.69ms 10.71ms +18us 1.002x PASS
ac_reads oltp_order_range 2.62ms 2.58ms -38us 0.985x PASS
ac_reads oltp_distinct_range 3.47ms 3.55ms +81us 1.023x PASS
ac_reads oltp_index_scan 5.10ms 5.01ms -86us 0.983x PASS
ac_reads select_random_points 17.50ms 17.79ms +284us 1.016x PASS
ac_reads select_random_ranges 4.74ms 4.70ms -36us 0.992x PASS
ac_reads covering_index_scan 4.19ms 3.97ms -216us 0.948x PASS
ac_reads groupby_scan 27.75ms 27.88ms +132us 1.005x PASS
ac_reads index_join 7.68ms 7.84ms +157us 1.020x PASS
ac_reads index_join_scan 4.85ms 4.90ms +51us 1.011x PASS
ac_reads types_table_scan 959.57ms 959.43ms -136us 1.000x PASS
ac_reads table_scan 1.06s 1.06s +62us 1.000x PASS
ac_reads oltp_read_only 107.84ms 108.89ms +1.05ms 1.010x PASS
ac_writes oltp_bulk_insert_ac 115.21ms 247.00ms +131.79ms 2.144x TRANSIENT
ac_writes oltp_insert_ac 212.46ms 192.66ms -19.80ms 0.907x PASS
ac_writes oltp_update_index_ac 255.13ms 189.45ms -65.69ms 0.743x PASS
ac_writes oltp_update_non_index_ac 163.83ms 235.63ms +71.80ms 1.438x PASS
ac_writes oltp_delete_insert_ac 256.43ms 194.54ms -61.89ms 0.759x PASS
ac_writes oltp_write_only_ac 143.84ms 444.82ms +300.99ms 3.093x TRANSIENT
ac_writes types_delete_insert_ac 212.06ms 271.84ms +59.78ms 1.282x PASS
ac_writes oltp_read_write_ac 424.13ms 305.06ms -119.08ms 0.719x PASS
vc details
Section Test Baseline Candidate Delta Ratio Result
vc status_clean_many_tables 97.58ms 97.86ms +280us 1.003x PASS
vc status_dirty_many_tables 99.22ms 99.34ms +116us 1.001x PASS
vc diff_regular_working_one_table 90.06ms 90.48ms +421us 1.005x PASS
vc diff_regular_working_many_tables 108.30ms 104.33ms -3.97ms 0.963x PASS
vc diff_stat_working_many_tables 104.67ms 105.14ms +473us 1.005x PASS
vc diff_schema_working_many_tables 104.36ms 104.21ms -155us 0.999x PASS
vc branch_list_many_branches 27.62ms 26.16ms -1.46ms 0.947x PASS
vc branch_create_delete 28.18ms 28.09ms -86us 0.997x PASS
vc checkout_branch_clean 62.62ms 61.60ms -1.02ms 0.984x PASS
vc merge_data_no_conflicts 32.51ms 32.52ms +5us 1.000x PASS
vc merge_schema_no_conflicts 25.07ms 24.82ms -248us 0.990x PASS
vc merge_data_conflicts 36.56ms 36.10ms -468us 0.987x PASS
vc merge_data_conflicts_with_resolve 36.42ms 35.85ms -567us 0.984x PASS

All relative performance gates passed.

@timsehn
timsehn merged commit 4673ce9 into master Sep 2, 2026
200 of 204 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.

Unresolvable refs on dolt_diff_<t> have inconsistent error behavior

1 participant