Skip to content

Hide ALTER default materialization from authorizers - #2435

Merged
timsehn merged 1 commit into
masterfrom
fix/2428-alter-default-authorizer
Aug 26, 2026
Merged

Hide ALTER default materialization from authorizers#2435
timsehn merged 1 commit into
masterfrom
fix/2428-alter-default-authorizer

Conversation

@timsehn

@timsehn timsehn commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Fixes #2428.

Suppress authorizer callbacks only while DoltLite runs the internal row rewrite for ALTER TABLE ADD COLUMN DEFAULT. The outer ALTER and sqlite_master update remain authorized, and the callback is restored before control returns to the caller.

The regression matrix covers main and attached schemas, denied user-table UPDATE, absence of leaked READ/UPDATE callbacks, materialized default values, and authorizer restoration.

Validation:

  • fail-before: 10 of 19 assertions failed
  • focused matrix: 19 passed
  • default-materialization regression: 7 passed
  • C gates: 30 of 30 passed
  • DoltLite shell suites: 118 of 118 passed
  • native regression: 311090 assertions passed
  • make lint

Suppress authorization callbacks only while running the internal row materialization for ALTER TABLE ADD COLUMN DEFAULT. The outer schema change remains authorized, and the callback is restored immediately afterward.

Fixes #2428

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

itoqa Bot commented Aug 26, 2026

Copy link
Copy Markdown

Ito QA test results
Commit: 433f114: 14 test cases ran, 14 passed ✅.

Summary

Coverage focuses on database schema changes with default values, including existing-row updates, attached databases, quoted names, repeated changes, reopening, indexed lookups, and recovery after rejected or failed operations. It also exercises authorization and change-tracking behavior, including denied user updates, hidden internal work, catalog notifications, triggers, counters, integrity, and rollback-related edge cases.

Safe to merge — the exercised schema-change, authorization, recovery, integrity, and cross-database behaviors show no regressions or PR-attributable failures, leaving no merge-blocking risk in this run.

Tests run by Ito

View full run

Result Severity Type Description
Authorize The table change succeeded, showed the expected authorization events, and hid only the internal row update. A later user update was denied as expected, proving the caller's authorization rule was restored.
Authorize Altering the attached table succeeded, showed the expected schema activity, and kept the internal row rewrite hidden. A later update to the table was still denied by the caller's authorization rule.
General Adding default columns changes the intended main and attached tables, and existing rows keep the right values after the databases are reopened.
General The database kept its table definition and existing rows in sync after the failed-change recovery checks. Closing and reopening the database did not reveal a mismatch, and retry results matched the clean control.
General After the failed-case investigation, the database code restores normal trigger and change-counter behavior after internal work. The available native regression passed all 19 checks, and source review covers cleanup when the internal operation returns an error.
General The table showed the new column and the requested default on every existing row after the change. Repeating the read produced the same values, with no partial state.
Counters Adding a column with a default filled the existing rows with the right values. The internal row update did not appear as normal trigger or change-counter activity, and later user updates still behaved normally.
Materialize Adding columns with constant defaults filled the existing rows in the main and attached tables. The internal rewrite produced no user-table authorization callbacks.
Materialize Adding a column with a constant default filled the existing rows in the attached table. The main table stayed unchanged, so the schema-qualified rewrite targeted the right table.
Rev Denying the table change returns an authorization error, and the table keeps its original columns and rows.
Rev Table changes completed successfully while the database continued to report its catalog updates to the authorization callback.
Rev Adding a column with a default value fills existing rows correctly, and the related integrity and merge checks pass.
Rev Adding a column with a default kept existing rows, indexed lookups, and table integrity correct before and after reopening the database.
Rev Two schema changes succeeded and filled in the new default values. Later table updates were still denied, so the access rule stayed active throughout the connection.

Tip

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

@github-actions

Copy link
Copy Markdown
Contributor

DoltLite performance vs PR base

  • Baseline: 3617aa5e5b8403a1878a2df0005fea736926105c
  • Candidate: a9d03856589f2b9601bccee93eb88953fbf8246e
  • Overall ratio: 1.006x
  • 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: none
Suite Workloads Baseline total Candidate total Ratio Result
blobpk 69 11.19s 11.30s 1.010x PASS
compositepk 69 11.39s 11.37s 0.998x PASS
int 69 10.44s 10.54s 1.010x PASS
textpk 69 11.18s 11.26s 1.007x PASS
vc 13 934.96ms 935.20ms 1.000x PASS
blobpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 37.10ms 37.28ms +186us 1.005x PASS
mem_reads oltp_range_select 13.48ms 13.59ms +103us 1.008x PASS
mem_reads oltp_sum_range 13.77ms 13.54ms -232us 0.983x PASS
mem_reads oltp_order_range 3.07ms 3.10ms +29us 1.009x PASS
mem_reads oltp_distinct_range 4.17ms 4.15ms -21us 0.995x PASS
mem_reads oltp_index_scan 6.18ms 5.90ms -283us 0.954x PASS
mem_reads select_random_points 20.77ms 20.28ms -496us 0.976x PASS
mem_reads select_random_ranges 5.25ms 5.09ms -157us 0.970x PASS
mem_reads covering_index_scan 4.63ms 4.49ms -140us 0.970x PASS
mem_reads groupby_scan 33.59ms 33.77ms +180us 1.005x PASS
mem_reads index_join 8.86ms 8.67ms -195us 0.978x PASS
mem_reads index_join_scan 5.15ms 5.25ms +95us 1.018x PASS
mem_reads types_table_scan 1.18s 1.19s +15.33ms 1.013x PASS
mem_reads table_scan 1.31s 1.33s +19.78ms 1.015x PASS
mem_reads oltp_read_only 135.94ms 134.56ms -1.38ms 0.990x PASS
mem_writes oltp_bulk_insert 360.42ms 358.57ms -1.85ms 0.995x PASS
mem_writes oltp_insert 38.01ms 38.26ms +249us 1.007x PASS
mem_writes oltp_update_index 130.84ms 130.15ms -690us 0.995x PASS
mem_writes oltp_update_non_index 76.59ms 76.03ms -556us 0.993x PASS
mem_writes oltp_delete_insert 101.19ms 101.22ms +36us 1.000x PASS
mem_writes oltp_write_only 59.40ms 60.20ms +800us 1.013x PASS
mem_writes types_delete_insert 52.90ms 52.53ms -365us 0.993x PASS
mem_writes oltp_read_write 143.14ms 141.24ms -1.90ms 0.987x PASS
file_reads oltp_point_select 56.27ms 55.53ms -737us 0.987x PASS
file_reads oltp_range_select 15.69ms 15.72ms +31us 1.002x PASS
file_reads oltp_sum_range 15.85ms 15.58ms -276us 0.983x PASS
file_reads oltp_order_range 3.31ms 3.30ms -16us 0.995x PASS
file_reads oltp_distinct_range 4.46ms 4.46ms +4us 1.001x PASS
file_reads oltp_index_scan 8.24ms 8.19ms -45us 0.995x PASS
file_reads select_random_points 24.16ms 23.51ms -650us 0.973x PASS
file_reads select_random_ranges 7.38ms 7.12ms -263us 0.964x PASS
file_reads covering_index_scan 6.65ms 6.63ms -24us 0.996x PASS
file_reads groupby_scan 34.12ms 34.18ms +61us 1.002x PASS
file_reads index_join 10.83ms 10.71ms -119us 0.989x PASS
file_reads index_join_scan 5.70ms 5.56ms -141us 0.975x PASS
file_reads types_table_scan 1.17s 1.19s +20.29ms 1.017x PASS
file_reads table_scan 1.29s 1.31s +17.08ms 1.013x PASS
file_reads oltp_read_only 160.67ms 161.45ms +781us 1.005x PASS
file_writes oltp_bulk_insert 368.78ms 368.48ms -309us 0.999x PASS
file_writes oltp_insert 45.04ms 45.36ms +315us 1.007x PASS
file_writes oltp_update_index 145.49ms 143.64ms -1.85ms 0.987x PASS
file_writes oltp_update_non_index 91.01ms 90.58ms -428us 0.995x PASS
file_writes oltp_delete_insert 113.50ms 114.46ms +955us 1.008x PASS
file_writes oltp_write_only 69.58ms 70.16ms +583us 1.008x PASS
file_writes types_delete_insert 61.07ms 60.72ms -351us 0.994x PASS
file_writes oltp_read_write 151.88ms 151.21ms -668us 0.996x PASS
ac_reads oltp_point_select 55.48ms 55.70ms +223us 1.004x PASS
ac_reads oltp_range_select 15.40ms 15.46ms +53us 1.003x PASS
ac_reads oltp_sum_range 15.72ms 15.51ms -206us 0.987x PASS
ac_reads oltp_order_range 3.29ms 3.31ms +16us 1.005x PASS
ac_reads oltp_distinct_range 4.38ms 4.43ms +52us 1.012x PASS
ac_reads oltp_index_scan 8.28ms 8.09ms -194us 0.977x PASS
ac_reads select_random_points 23.91ms 23.54ms -370us 0.985x PASS
ac_reads select_random_ranges 7.25ms 7.09ms -158us 0.978x PASS
ac_reads covering_index_scan 6.72ms 6.64ms -78us 0.988x PASS
ac_reads groupby_scan 34.36ms 34.04ms -326us 0.991x PASS
ac_reads index_join 10.72ms 10.51ms -218us 0.980x PASS
ac_reads index_join_scan 5.57ms 5.57ms +5us 1.001x PASS
ac_reads types_table_scan 1.19s 1.22s +31.14ms 1.026x PASS
ac_reads table_scan 1.31s 1.33s +17.62ms 1.013x PASS
ac_reads oltp_read_only 162.63ms 162.64ms +12us 1.000x PASS
ac_writes oltp_bulk_insert_ac 78.11ms 75.67ms -2.44ms 0.969x PASS
ac_writes oltp_insert_ac 94.08ms 92.64ms -1.43ms 0.985x PASS
ac_writes oltp_update_index_ac 102.00ms 104.43ms +2.43ms 1.024x PASS
ac_writes oltp_update_non_index_ac 84.62ms 84.39ms -230us 0.997x PASS
ac_writes oltp_delete_insert_ac 96.74ms 96.92ms +186us 1.002x PASS
ac_writes oltp_write_only_ac 93.08ms 95.77ms +2.69ms 1.029x PASS
ac_writes types_delete_insert_ac 85.36ms 84.52ms -837us 0.990x PASS
ac_writes oltp_read_write_ac 98.53ms 99.73ms +1.20ms 1.012x PASS
compositepk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 36.32ms 36.13ms -185us 0.995x PASS
mem_reads oltp_range_select 20.66ms 20.92ms +256us 1.012x PASS
mem_reads oltp_sum_range 20.46ms 20.61ms +152us 1.007x PASS
mem_reads oltp_order_range 3.90ms 3.88ms -23us 0.994x PASS
mem_reads oltp_distinct_range 5.03ms 5.01ms -14us 0.997x PASS
mem_reads oltp_index_scan 5.68ms 5.66ms -24us 0.996x PASS
mem_reads select_random_points 30.27ms 30.12ms -154us 0.995x PASS
mem_reads select_random_ranges 8.21ms 8.25ms +34us 1.004x PASS
mem_reads covering_index_scan 4.25ms 4.16ms -85us 0.980x PASS
mem_reads groupby_scan 42.62ms 41.96ms -662us 0.984x PASS
mem_reads index_join 10.07ms 10.03ms -39us 0.996x PASS
mem_reads index_join_scan 5.58ms 5.57ms -4us 0.999x PASS
mem_reads types_table_scan 1.21s 1.22s +9.40ms 1.008x PASS
mem_reads table_scan 1.34s 1.34s -241us 1.000x PASS
mem_reads oltp_read_only 162.93ms 162.12ms -812us 0.995x PASS
mem_writes oltp_bulk_insert 334.35ms 324.24ms -10.12ms 0.970x PASS
mem_writes oltp_insert 34.62ms 34.48ms -142us 0.996x PASS
mem_writes oltp_update_index 118.03ms 118.10ms +69us 1.001x PASS
mem_writes oltp_update_non_index 74.94ms 74.20ms -748us 0.990x PASS
mem_writes oltp_delete_insert 94.44ms 93.21ms -1.23ms 0.987x PASS
mem_writes oltp_write_only 56.96ms 56.76ms -197us 0.997x PASS
mem_writes types_delete_insert 51.00ms 50.24ms -761us 0.985x PASS
mem_writes oltp_read_write 152.42ms 151.33ms -1.09ms 0.993x PASS
file_reads oltp_point_select 58.01ms 57.68ms -331us 0.994x PASS
file_reads oltp_range_select 23.18ms 23.04ms -141us 0.994x PASS
file_reads oltp_sum_range 22.84ms 22.78ms -58us 0.997x PASS
file_reads oltp_order_range 4.13ms 4.22ms +95us 1.023x PASS
file_reads oltp_distinct_range 5.27ms 5.31ms +40us 1.008x PASS
file_reads oltp_index_scan 7.88ms 7.97ms +86us 1.011x PASS
file_reads select_random_points 33.06ms 32.40ms -653us 0.980x PASS
file_reads select_random_ranges 10.43ms 10.57ms +137us 1.013x PASS
file_reads covering_index_scan 6.75ms 6.65ms -100us 0.985x PASS
file_reads groupby_scan 42.76ms 42.07ms -681us 0.984x PASS
file_reads index_join 11.77ms 11.74ms -37us 0.997x PASS
file_reads index_join_scan 5.86ms 5.83ms -23us 0.996x PASS
file_reads types_table_scan 1.20s 1.21s +9.41ms 1.008x PASS
file_reads table_scan 1.33s 1.34s +11.78ms 1.009x PASS
file_reads oltp_read_only 193.84ms 193.72ms -116us 0.999x PASS
file_writes oltp_bulk_insert 349.49ms 338.93ms -10.56ms 0.970x PASS
file_writes oltp_insert 40.13ms 40.49ms +361us 1.009x PASS
file_writes oltp_update_index 130.29ms 130.08ms -215us 0.998x PASS
file_writes oltp_update_non_index 88.41ms 88.39ms -25us 1.000x PASS
file_writes oltp_delete_insert 105.24ms 105.36ms +118us 1.001x PASS
file_writes oltp_write_only 67.41ms 67.02ms -386us 0.994x PASS
file_writes types_delete_insert 56.79ms 56.06ms -728us 0.987x PASS
file_writes oltp_read_write 161.36ms 161.06ms -295us 0.998x PASS
ac_reads oltp_point_select 58.09ms 57.65ms -442us 0.992x PASS
ac_reads oltp_range_select 23.12ms 23.21ms +87us 1.004x PASS
ac_reads oltp_sum_range 22.60ms 22.61ms +10us 1.000x PASS
ac_reads oltp_order_range 4.13ms 4.12ms -14us 0.997x PASS
ac_reads oltp_distinct_range 5.26ms 5.27ms +7us 1.001x PASS
ac_reads oltp_index_scan 7.97ms 7.95ms -17us 0.998x PASS
ac_reads select_random_points 32.85ms 32.71ms -139us 0.996x PASS
ac_reads select_random_ranges 10.53ms 10.52ms -13us 0.999x PASS
ac_reads covering_index_scan 6.37ms 6.39ms +19us 1.003x PASS
ac_reads groupby_scan 42.74ms 42.03ms -710us 0.983x PASS
ac_reads index_join 11.68ms 11.73ms +43us 1.004x PASS
ac_reads index_join_scan 5.85ms 5.83ms -22us 0.996x PASS
ac_reads types_table_scan 1.22s 1.22s -6.34ms 0.995x PASS
ac_reads table_scan 1.35s 1.35s -492us 1.000x PASS
ac_reads oltp_read_only 196.73ms 195.09ms -1.64ms 0.992x PASS
ac_writes oltp_bulk_insert_ac 58.50ms 58.54ms +36us 1.001x PASS
ac_writes oltp_insert_ac 75.97ms 74.82ms -1.15ms 0.985x PASS
ac_writes oltp_update_index_ac 87.53ms 86.44ms -1.09ms 0.988x PASS
ac_writes oltp_update_non_index_ac 69.79ms 68.57ms -1.22ms 0.983x PASS
ac_writes oltp_delete_insert_ac 80.87ms 80.78ms -82us 0.999x PASS
ac_writes oltp_write_only_ac 78.68ms 77.08ms -1.60ms 0.980x PASS
ac_writes types_delete_insert_ac 71.27ms 68.26ms -3.01ms 0.958x PASS
ac_writes oltp_read_write_ac 89.84ms 88.55ms -1.29ms 0.986x PASS
int details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 28.35ms 28.38ms +26us 1.001x PASS
mem_reads oltp_range_select 11.55ms 11.48ms -66us 0.994x PASS
mem_reads oltp_sum_range 11.22ms 11.26ms +45us 1.004x PASS
mem_reads oltp_order_range 2.73ms 2.73ms +0us 1.000x PASS
mem_reads oltp_distinct_range 3.81ms 3.83ms +13us 1.003x PASS
mem_reads oltp_index_scan 4.98ms 4.96ms -20us 0.996x PASS
mem_reads select_random_points 10.53ms 10.49ms -35us 0.997x PASS
mem_reads select_random_ranges 3.85ms 3.83ms -23us 0.994x PASS
mem_reads covering_index_scan 4.08ms 4.05ms -35us 0.991x PASS
mem_reads groupby_scan 32.97ms 32.36ms -608us 0.982x PASS
mem_reads index_join 7.67ms 7.82ms +155us 1.020x PASS
mem_reads index_join_scan 4.39ms 4.38ms -10us 0.998x PASS
mem_reads types_table_scan 1.18s 1.20s +22.73ms 1.019x PASS
mem_reads table_scan 1.29s 1.30s +15.12ms 1.012x PASS
mem_reads oltp_read_only 115.61ms 114.63ms -981us 0.992x PASS
mem_writes oltp_bulk_insert 243.59ms 244.45ms +860us 1.004x PASS
mem_writes oltp_insert 26.70ms 26.55ms -145us 0.995x PASS
mem_writes oltp_update_index 86.74ms 87.23ms +494us 1.006x PASS
mem_writes oltp_update_non_index 52.72ms 52.17ms -546us 0.990x PASS
mem_writes oltp_delete_insert 70.40ms 70.43ms +30us 1.000x PASS
mem_writes oltp_write_only 44.26ms 44.47ms +216us 1.005x PASS
mem_writes types_delete_insert 36.23ms 35.64ms -590us 0.984x PASS
mem_writes oltp_read_write 108.04ms 108.54ms +505us 1.005x PASS
file_reads oltp_point_select 46.95ms 47.22ms +272us 1.006x PASS
file_reads oltp_range_select 13.70ms 13.78ms +81us 1.006x PASS
file_reads oltp_sum_range 13.51ms 13.46ms -56us 0.996x PASS
file_reads oltp_order_range 3.05ms 3.08ms +31us 1.010x PASS
file_reads oltp_distinct_range 4.15ms 4.14ms -15us 0.996x PASS
file_reads oltp_index_scan 7.20ms 7.22ms +23us 1.003x PASS
file_reads select_random_points 12.87ms 12.77ms -99us 0.992x PASS
file_reads select_random_ranges 5.86ms 5.83ms -29us 0.995x PASS
file_reads covering_index_scan 6.29ms 6.16ms -136us 0.978x PASS
file_reads groupby_scan 32.66ms 32.61ms -49us 0.998x PASS
file_reads index_join 9.36ms 9.46ms +99us 1.011x PASS
file_reads index_join_scan 4.84ms 4.85ms +4us 1.001x PASS
file_reads types_table_scan 1.18s 1.19s +19.63ms 1.017x PASS
file_reads table_scan 1.29s 1.31s +19.18ms 1.015x PASS
file_reads oltp_read_only 144.07ms 144.52ms +455us 1.003x PASS
file_writes oltp_bulk_insert 253.86ms 251.84ms -2.01ms 0.992x PASS
file_writes oltp_insert 30.45ms 30.66ms +212us 1.007x PASS
file_writes oltp_update_index 97.96ms 97.91ms -52us 0.999x PASS
file_writes oltp_update_non_index 65.41ms 64.85ms -566us 0.991x PASS
file_writes oltp_delete_insert 79.97ms 79.96ms -12us 1.000x PASS
file_writes oltp_write_only 51.88ms 52.86ms +979us 1.019x PASS
file_writes types_delete_insert 41.77ms 41.62ms -149us 0.996x PASS
file_writes oltp_read_write 115.74ms 116.11ms +370us 1.003x PASS
ac_reads oltp_point_select 46.67ms 46.85ms +171us 1.004x PASS
ac_reads oltp_range_select 13.61ms 13.75ms +135us 1.010x PASS
ac_reads oltp_sum_range 13.46ms 13.35ms -112us 0.992x PASS
ac_reads oltp_order_range 3.04ms 3.04ms +0us 1.000x PASS
ac_reads oltp_distinct_range 4.12ms 4.10ms -26us 0.994x PASS
ac_reads oltp_index_scan 7.14ms 7.29ms +148us 1.021x PASS
ac_reads select_random_points 12.73ms 12.72ms -14us 0.999x PASS
ac_reads select_random_ranges 5.85ms 5.85ms -1us 1.000x PASS
ac_reads covering_index_scan 6.32ms 6.24ms -81us 0.987x PASS
ac_reads groupby_scan 32.80ms 32.69ms -119us 0.996x PASS
ac_reads index_join 9.48ms 9.46ms -19us 0.998x PASS
ac_reads index_join_scan 4.86ms 4.83ms -27us 0.994x PASS
ac_reads types_table_scan 1.18s 1.20s +14.77ms 1.013x PASS
ac_reads table_scan 1.29s 1.31s +18.25ms 1.014x PASS
ac_reads oltp_read_only 144.00ms 143.62ms -381us 0.997x PASS
ac_writes oltp_bulk_insert_ac 85.86ms 85.30ms -557us 0.994x PASS
ac_writes oltp_insert_ac 97.04ms 94.28ms -2.76ms 0.972x PASS
ac_writes oltp_update_index_ac 109.00ms 107.74ms -1.26ms 0.988x PASS
ac_writes oltp_update_non_index_ac 90.70ms 91.38ms +683us 1.008x PASS
ac_writes oltp_delete_insert_ac 101.94ms 101.84ms -107us 0.999x PASS
ac_writes oltp_write_only_ac 99.23ms 95.25ms -3.98ms 0.960x PASS
ac_writes types_delete_insert_ac 90.86ms 92.02ms +1.16ms 1.013x PASS
ac_writes oltp_read_write_ac 104.83ms 108.12ms +3.29ms 1.031x PASS
textpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 36.11ms 35.67ms -433us 0.988x PASS
mem_reads oltp_range_select 13.55ms 13.34ms -207us 0.985x PASS
mem_reads oltp_sum_range 13.61ms 13.41ms -203us 0.985x PASS
mem_reads oltp_order_range 3.04ms 3.04ms -4us 0.999x PASS
mem_reads oltp_distinct_range 4.16ms 4.16ms +6us 1.001x PASS
mem_reads oltp_index_scan 5.80ms 5.78ms -14us 0.998x PASS
mem_reads select_random_points 20.37ms 20.49ms +128us 1.006x PASS
mem_reads select_random_ranges 5.12ms 5.11ms -17us 0.997x PASS
mem_reads covering_index_scan 4.29ms 4.34ms +52us 1.012x PASS
mem_reads groupby_scan 33.86ms 33.82ms -36us 0.999x PASS
mem_reads index_join 8.50ms 8.63ms +136us 1.016x PASS
mem_reads index_join_scan 5.25ms 5.21ms -38us 0.993x PASS
mem_reads types_table_scan 1.18s 1.20s +22.96ms 1.019x PASS
mem_reads table_scan 1.30s 1.31s +7.81ms 1.006x PASS
mem_reads oltp_read_only 132.09ms 131.63ms -453us 0.997x PASS
mem_writes oltp_bulk_insert 356.48ms 357.70ms +1.23ms 1.003x PASS
mem_writes oltp_insert 37.86ms 37.54ms -320us 0.992x PASS
mem_writes oltp_update_index 131.50ms 131.86ms +361us 1.003x PASS
mem_writes oltp_update_non_index 77.13ms 76.78ms -346us 0.996x PASS
mem_writes oltp_delete_insert 101.95ms 100.72ms -1.23ms 0.988x PASS
mem_writes oltp_write_only 58.63ms 58.81ms +178us 1.003x PASS
mem_writes types_delete_insert 52.68ms 52.31ms -369us 0.993x PASS
mem_writes oltp_read_write 141.87ms 139.92ms -1.94ms 0.986x PASS
file_reads oltp_point_select 56.87ms 55.78ms -1.09ms 0.981x PASS
file_reads oltp_range_select 15.88ms 15.51ms -369us 0.977x PASS
file_reads oltp_sum_range 16.24ms 15.95ms -297us 0.982x PASS
file_reads oltp_order_range 3.30ms 3.28ms -14us 0.996x PASS
file_reads oltp_distinct_range 4.47ms 4.51ms +43us 1.010x PASS
file_reads oltp_index_scan 8.30ms 8.21ms -91us 0.989x PASS
file_reads select_random_points 24.01ms 23.31ms -698us 0.971x PASS
file_reads select_random_ranges 7.21ms 7.05ms -161us 0.978x PASS
file_reads covering_index_scan 6.78ms 6.64ms -133us 0.980x PASS
file_reads groupby_scan 34.73ms 34.44ms -286us 0.992x PASS
file_reads index_join 10.98ms 10.69ms -290us 0.974x PASS
file_reads index_join_scan 5.99ms 5.74ms -255us 0.957x PASS
file_reads types_table_scan 1.18s 1.20s +17.58ms 1.015x PASS
file_reads table_scan 1.30s 1.31s +13.02ms 1.010x PASS
file_reads oltp_read_only 162.54ms 160.03ms -2.51ms 0.985x PASS
file_writes oltp_bulk_insert 375.42ms 368.75ms -6.67ms 0.982x PASS
file_writes oltp_insert 45.27ms 44.94ms -334us 0.993x PASS
file_writes oltp_update_index 151.77ms 150.30ms -1.47ms 0.990x PASS
file_writes oltp_update_non_index 92.47ms 92.63ms +154us 1.002x PASS
file_writes oltp_delete_insert 117.88ms 117.10ms -772us 0.993x PASS
file_writes oltp_write_only 71.48ms 71.30ms -176us 0.998x PASS
file_writes types_delete_insert 65.50ms 64.55ms -951us 0.985x PASS
file_writes oltp_read_write 154.53ms 152.92ms -1.61ms 0.990x PASS
ac_reads oltp_point_select 56.42ms 55.85ms -570us 0.990x PASS
ac_reads oltp_range_select 16.05ms 15.51ms -544us 0.966x PASS
ac_reads oltp_sum_range 16.26ms 16.12ms -144us 0.991x PASS
ac_reads oltp_order_range 3.37ms 3.32ms -43us 0.987x PASS
ac_reads oltp_distinct_range 4.48ms 4.47ms -16us 0.996x PASS
ac_reads oltp_index_scan 8.22ms 8.08ms -145us 0.982x PASS
ac_reads select_random_points 23.27ms 23.80ms +533us 1.023x PASS
ac_reads select_random_ranges 7.22ms 7.07ms -150us 0.979x PASS
ac_reads covering_index_scan 6.78ms 6.61ms -163us 0.976x PASS
ac_reads groupby_scan 34.40ms 34.40ms -3us 1.000x PASS
ac_reads index_join 11.09ms 11.04ms -49us 0.996x PASS
ac_reads index_join_scan 5.77ms 5.75ms -21us 0.996x PASS
ac_reads types_table_scan 1.18s 1.20s +21.99ms 1.019x PASS
ac_reads table_scan 1.30s 1.31s +17.01ms 1.013x PASS
ac_reads oltp_read_only 161.64ms 159.63ms -2.01ms 0.988x PASS
ac_writes oltp_bulk_insert_ac 75.80ms 76.28ms +479us 1.006x PASS
ac_writes oltp_insert_ac 86.99ms 87.35ms +364us 1.004x PASS
ac_writes oltp_update_index_ac 101.72ms 102.18ms +455us 1.004x PASS
ac_writes oltp_update_non_index_ac 84.68ms 83.39ms -1.30ms 0.985x PASS
ac_writes oltp_delete_insert_ac 94.53ms 93.65ms -888us 0.991x PASS
ac_writes oltp_write_only_ac 91.88ms 92.18ms +301us 1.003x PASS
ac_writes types_delete_insert_ac 86.22ms 83.54ms -2.68ms 0.969x PASS
ac_writes oltp_read_write_ac 97.60ms 99.42ms +1.82ms 1.019x PASS
vc details
Section Test Baseline Candidate Delta Ratio Result
vc status_clean_many_tables 83.44ms 83.56ms +119us 1.001x PASS
vc status_dirty_many_tables 86.55ms 86.68ms +132us 1.002x PASS
vc diff_regular_working_one_table 79.28ms 78.67ms -607us 0.992x PASS
vc diff_regular_working_many_tables 91.45ms 92.02ms +569us 1.006x PASS
vc diff_stat_working_many_tables 91.48ms 91.68ms +204us 1.002x PASS
vc diff_schema_working_many_tables 92.08ms 92.24ms +161us 1.002x PASS
vc branch_list_many_branches 22.86ms 23.48ms +626us 1.027x PASS
vc branch_create_delete 25.74ms 25.68ms -54us 0.998x PASS
vc checkout_branch_clean 55.99ms 56.48ms +489us 1.009x PASS
vc merge_data_no_conflicts 29.75ms 28.98ms -779us 0.974x PASS
vc merge_schema_no_conflicts 22.50ms 21.89ms -608us 0.973x PASS
vc merge_data_conflicts 126.76ms 126.72ms -43us 1.000x PASS
vc merge_data_conflicts_with_resolve 127.08ms 127.12ms +31us 1.000x PASS

All relative performance gates passed.

@github-actions

Copy link
Copy Markdown
Contributor

DoltLite source coverage

Metric Covered Total Coverage
Lines 52591 61960 84.88%
Branches 24266 35890 67.61%
Functions 2476 2690 92.04%

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

Per-file coverage (97 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% 68.91% 79.37%
src/chunk_staging.c 93.75% 80.33% 100.00%
src/chunk_store.c 91.00% 75.09% 100.00%
src/chunk_store_commit.c 86.75% 67.65% 100.00%
src/chunk_store_lock.c 93.98% 76.36% 100.00%
src/chunk_store_refs_api.c 91.17% 76.75% 100.00%
src/chunk_wal.c 81.88% 58.05% 87.10%
src/doltlite.c 100.00% 100.00% 100.00%
src/doltlite_add.c 85.50% 69.20% 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.42% 62.46% 96.15%
src/doltlite_cherry_pick.c 77.89% 58.62% 71.43%
src/doltlite_chunk_walk.c 88.60% 64.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 75.49% 68.21% 100.00%
src/doltlite_config.c 79.51% 70.93% 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 90.77% 71.24% 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.17% 76.01% 95.65%
src/doltlite_diff_table.c 93.96% 69.76% 97.06%
src/doltlite_docs.c 83.94% 71.43% 94.74%
src/doltlite_gc.c 77.37% 57.14% 96.55%
src/doltlite_hashof.c 76.95% 64.97% 94.44%
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.72% 100.00%
src/doltlite_merge_cmd.c 88.81% 72.63% 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 75.96% 58.70% 100.00%
src/doltlite_merge_constraints_unique.c 85.99% 62.82% 100.00%
src/doltlite_merge_pass1.c 92.38% 73.59% 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 80.50% 63.23% 100.00%
src/doltlite_merge_schema.c 91.62% 71.91% 97.06%
src/doltlite_merge_status.c 91.98% 73.53% 92.31%
src/doltlite_patch.c 94.36% 70.80% 98.15%
src/doltlite_rebase.c 85.32% 59.28% 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 84.71% 66.04% 96.00%
src/doltlite_remote_sql.c 66.60% 60.73% 93.55%
src/doltlite_remotesrv.c 75.84% 64.43% 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.21% 72.41% 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% 62.73% 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.39% 67.07% 34.29%
src/prolly_btree.c 86.00% 66.56% 90.70%
src/prolly_btree_catalog.c 82.81% 69.06% 97.14%
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 87.89% 68.20% 97.83%
src/prolly_btree_orig.c 93.75% 71.43% 93.15%
src/prolly_btree_state.c 93.19% 65.93% 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 52.79% 39.04% 60.87%
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.34% 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.42% 81.64% 100.00%

Download HTML and LCOV artifacts from this workflow run.

@timsehn
timsehn merged commit c305362 into master Aug 26, 2026
67 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.

ALTER ADD COLUMN DEFAULT is blocked by an authorizer that denies UPDATE on the table

1 participant