Skip to content

Add schema object dolt_status oracle coverage#1654

Merged
timsehn merged 1 commit into
masterfrom
test/schema-object-status-oracle
Jul 16, 2026
Merged

Add schema object dolt_status oracle coverage#1654
timsehn merged 1 commit into
masterfrom
test/schema-object-status-oracle

Conversation

@timsehn

@timsehn timsehn commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

This adds a dedicated Dolt oracle suite for dolt_status schema-object behavior: index create/drop/replace, unique and composite indexes, column/schema changes, CHECK/UNIQUE/FK table definitions, mixed table/schema-object states, and filtered scans.

The new oracle exposed and this PR fixes:

  • index-only schema changes were missing from dolt_status
  • staging a named table could overwrite a different named staged entry when SQLite reused rootpages under FK DDL
  • path reset of a staged dropped indexed table restored the table without its index entries
  • fallback catalog serialization could not recover schema rows for unnamed index entries

Tests:

  • make -C build -j$(sysctl -n hw.ncpu 2>/dev/null || nproc) DOLTLITE_PROLLY_CHECK=1 doltlite
  • bash test/vc_oracle_status_schema_objects_test.sh build/doltlite dolt
  • bash test/vc_oracle_status_test.sh build/doltlite dolt
  • bash test/vc_oracle_add_test.sh build/doltlite dolt
  • bash test/vc_oracle_reset_test.sh build/doltlite dolt
  • bash test/vc_oracle_checkout_test.sh build/doltlite dolt
  • bash test/vc_oracle_schemas_test.sh build/doltlite dolt
  • bash test/vc_oracle_schema_diff_test.sh build/doltlite dolt
  • bash test/vc_oracle_commit_test.sh build/doltlite dolt
  • bash test/vc_oracle_diff_test.sh build/doltlite dolt

Fixes #1655

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Version-Control Performance Ceilings

Runs: median of 3 executions per benchmark, excluding fixture setup. The
working-set fixtures use 800 committed tables with 125 rows each
(100000 rows total); data-dirty cases update 1 row in 40
tables, and schema-dirty cases update 1 row plus add a column in 20 tables.
Branch tests use 300 branches, checkout uses a clean 400-table
branch switch over 100000 rows, and merge
tests use 100000-row tables with 2000 changed or conflicting
rows per side.

Benchmark Median ms Ceiling ms Result
status_clean_many_tables 62 200 PASS
status_dirty_many_tables 63 200 PASS
diff_regular_working_one_table 58 150 PASS
diff_regular_working_many_tables 62 200 PASS
diff_stat_working_many_tables 62 200 PASS
diff_schema_working_many_tables 63 200 PASS
branch_list_many_branches 17 100 PASS
branch_create_delete 30 100 PASS
checkout_branch_clean 104 200 PASS
merge_data_no_conflicts 36 150 PASS
merge_schema_no_conflicts 18 100 PASS
merge_data_conflicts 98 250 PASS
merge_data_conflicts_with_resolve 98 250 PASS

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Sysbench-Style Benchmark: Doltlite vs SQLite

In-Memory

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 24,266 27,044 1.11
oltp_range_select 10,671 11,928 1.12
oltp_sum_range 9,342 11,349 1.21
oltp_order_range 2,623 2,910 1.11
oltp_distinct_range 3,716 4,057 1.09
oltp_index_scan 3,926 4,880 1.24
select_random_points 10,554 11,051 1.05
select_random_ranges 3,028 4,014 1.33
covering_index_scan 4,304 4,013 0.93
groupby_scan 31,818 34,488 1.08
index_join 5,908 7,885 1.33
index_join_scan 3,401 4,834 1.42
types_table_scan 1,108,528 1,236,178 1.12
table_scan 1,270,087 1,355,118 1.07
oltp_read_only 100,797 115,745 1.15
Average 1.16

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 181,666 240,752 1.33
oltp_insert 15,751 28,391 1.80
oltp_update_index 51,147 87,465 1.71
oltp_update_non_index 34,955 58,496 1.67
oltp_delete_insert 45,155 69,298 1.53
oltp_write_only 22,254 44,505 2.00
types_delete_insert 25,355 39,702 1.57
oltp_read_write 67,038 102,372 1.53
Average 1.64

File-Backed

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 106,613 55,842 0.52
oltp_range_select 19,695 14,739 0.75
oltp_sum_range 17,999 14,407 0.80
oltp_order_range 3,585 3,268 0.91
oltp_distinct_range 4,570 4,397 0.96
oltp_index_scan 12,081 8,070 0.67
select_random_points 18,334 14,470 0.79
select_random_ranges 11,463 6,928 0.60
covering_index_scan 12,910 7,179 0.56
groupby_scan 32,915 35,004 1.06
index_join 10,301 9,975 0.97
index_join_scan 4,243 5,313 1.25
types_table_scan 1,108,271 1,230,817 1.11
table_scan 1,268,674 1,353,919 1.07
oltp_read_only 219,936 156,886 0.71
Average 0.85

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 195,729 261,955 1.34
oltp_insert 21,742 35,746 1.64
oltp_update_index 76,996 114,729 1.49
oltp_update_non_index 58,289 80,173 1.38
oltp_delete_insert 66,997 94,259 1.41
oltp_write_only 42,438 64,895 1.53
types_delete_insert 40,365 52,777 1.31
oltp_read_write 86,222 121,248 1.41
Average 1.44

File-Backed (autocommit)

Each statement runs as its own transaction — exposes per-commit
fixed costs that the wrapped-in-BEGIN/COMMIT tests amortize away.
SQLite uses WAL mode with synchronous=FULL in this section so
the comparison uses SQLite's durable WAL autocommit path.

Reads

Reads have no commit cost; these are the same SQL files as the
File-Backed Reads section, included here for symmetry and to
catch any per-statement overhead doltlite pays on the read path.

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 51,505 56,186 1.09
oltp_range_select 13,703 14,785 1.08
oltp_sum_range 12,415 14,236 1.15
oltp_order_range 3,082 3,253 1.06
oltp_distinct_range 4,050 4,376 1.08
oltp_index_scan 6,803 8,136 1.20
select_random_points 13,502 14,425 1.07
select_random_ranges 5,853 6,963 1.19
covering_index_scan 7,256 7,135 0.98
groupby_scan 32,268 34,790 1.08
index_join 7,582 10,016 1.32
index_join_scan 3,850 5,234 1.36
types_table_scan 1,104,468 1,226,408 1.11
table_scan 1,265,592 1,362,578 1.08
oltp_read_only 142,825 157,771 1.10
Average 1.13

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert_ac 14,873 59,888 4.03
oltp_insert_ac 17,269 78,020 4.52
oltp_update_index_ac 19,138 89,222 4.66
oltp_update_non_index_ac 15,357 69,236 4.51
oltp_delete_insert_ac 17,196 81,253 4.73
oltp_write_only_ac 17,072 80,723 4.73
types_delete_insert_ac 15,052 69,629 4.63
oltp_read_write_ac 22,540 90,295 4.01
Average 4.48

100000 rows, median of 5 invocations per test; autocommit writes use 9, workload-only timing via host monotonic clock when available.

Performance Ceiling Check (2.5x individual, 2x average; autocommit writes: 6x / 5x)

All tests within ceilings.

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Sysbench-Style Benchmark (TEXT PK): Doltlite vs SQLite

Companion to the classic Sysbench-Style Benchmark. Every workload here
runs against tables with a 32-char hex TEXT PRIMARY KEY (UUID-shaped).

Individual ratios gated at 2.5×; section averages gated at 2×. Autocommit writes use 6× / 5×.

In-Memory

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 29,854 38,336 1.28
oltp_range_select 12,181 14,695 1.21
oltp_sum_range 11,173 14,128 1.26
oltp_order_range 2,837 3,183 1.12
oltp_distinct_range 3,968 4,145 1.04
oltp_index_scan 4,393 6,313 1.44
select_random_points 18,274 21,170 1.16
select_random_ranges 4,097 5,248 1.28
covering_index_scan 4,603 4,817 1.05
groupby_scan 31,690 33,851 1.07
index_join 6,734 9,325 1.38
index_join_scan 4,464 5,546 1.24
types_table_scan 1,183,813 1,250,631 1.06
table_scan 1,218,485 1,343,878 1.10
oltp_read_only 114,908 135,443 1.18
Average 1.19

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 231,868 354,697 1.53
oltp_insert 21,293 38,923 1.83
oltp_update_index 69,451 131,107 1.89
oltp_update_non_index 47,292 85,194 1.80
oltp_delete_insert 50,322 102,888 2.04
oltp_write_only 28,119 60,490 2.15
types_delete_insert 32,362 54,272 1.68
oltp_read_write 86,171 138,662 1.61
Average 1.82

File-Backed

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 99,473 61,885 0.62
oltp_range_select 20,446 17,458 0.85
oltp_sum_range 19,180 16,644 0.87
oltp_order_range 3,801 3,520 0.93
oltp_distinct_range 4,850 4,536 0.94
oltp_index_scan 11,886 8,909 0.75
select_random_points 25,309 24,127 0.95
select_random_ranges 10,795 7,700 0.71
covering_index_scan 11,394 7,209 0.63
groupby_scan 32,272 34,108 1.06
index_join 11,722 11,312 0.97
index_join_scan 5,494 5,923 1.08
types_table_scan 1,059,247 1,281,192 1.21
table_scan 1,424,313 1,346,958 0.95
oltp_read_only 228,494 177,253 0.78
Average 0.89

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 254,037 383,318 1.51
oltp_insert 49,310 52,940 1.07
oltp_update_index 113,482 168,469 1.48
oltp_update_non_index 86,197 112,152 1.30
oltp_delete_insert 93,085 134,690 1.45
oltp_write_only 98,740 83,634 0.85
types_delete_insert 56,424 77,318 1.37
oltp_read_write 140,075 166,498 1.19
Average 1.28

File-Backed (autocommit)

Each statement runs as its own transaction — exposes per-commit
fixed costs that the wrapped-in-BEGIN/COMMIT tests amortize away.
SQLite uses WAL mode with synchronous=FULL in this section so
the comparison uses SQLite's durable WAL autocommit path.

Reads

Reads have no commit cost; these are the same SQL files as the
File-Backed Reads section, included here for symmetry and to
catch any per-statement overhead doltlite pays on the read path.

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 54,270 62,542 1.15
oltp_range_select 16,142 17,333 1.07
oltp_sum_range 14,886 16,724 1.12
oltp_order_range 3,487 3,507 1.01
oltp_distinct_range 4,432 4,542 1.02
oltp_index_scan 7,231 9,071 1.25
select_random_points 20,838 24,379 1.17
select_random_ranges 6,649 7,741 1.16
covering_index_scan 7,666 7,390 0.96
groupby_scan 31,942 34,231 1.07
index_join 8,693 10,948 1.26
index_join_scan 5,026 5,976 1.19
types_table_scan 1,047,811 1,274,397 1.22
table_scan 1,352,704 1,346,302 1.00
oltp_read_only 154,766 172,148 1.11
Average 1.12

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert_ac 23,938 90,261 3.77
oltp_insert_ac 27,844 107,334 3.85
oltp_update_index_ac 30,235 121,470 4.02
oltp_update_non_index_ac 24,918 106,527 4.28
oltp_delete_insert_ac 27,149 121,400 4.47
oltp_write_only_ac 27,668 110,947 4.01
types_delete_insert_ac 23,473 103,328 4.40
oltp_read_write_ac 32,218 115,199 3.58
Average 4.05

100000 rows, median of 5 invocations per test; autocommit writes use 9, workload-only timing via host monotonic clock when available.

Performance Ceiling Check (2.5x individual, 2x average; autocommit writes: 6x / 5x)

All tests within ceilings.

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Sysbench-Style Benchmark (composite PK): Doltlite vs SQLite

Companion to the classic Sysbench-Style Benchmark. Every workload here
runs against tables with a 2-column INTEGER PRIMARY KEY(a, b) WITHOUT ROWID.

Individual ratios gated at 2.5×; section averages gated at 2×. Autocommit writes use 6× / 5×.

In-Memory

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 32,827 40,244 1.23
oltp_range_select 18,138 21,878 1.21
oltp_sum_range 17,572 20,617 1.17
oltp_order_range 3,409 3,852 1.13
oltp_distinct_range 4,500 4,883 1.09
oltp_index_scan 4,505 6,126 1.36
select_random_points 27,758 31,752 1.14
select_random_ranges 7,544 8,963 1.19
covering_index_scan 4,162 4,198 1.01
groupby_scan 35,852 39,390 1.10
index_join 8,117 10,378 1.28
index_join_scan 4,184 5,473 1.31
types_table_scan 1,051,699 1,260,393 1.20
table_scan 1,188,836 1,354,327 1.14
oltp_read_only 143,827 168,640 1.17
Average 1.18

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 246,013 355,497 1.45
oltp_insert 19,073 36,648 1.92
oltp_update_index 68,536 116,261 1.70
oltp_update_non_index 49,964 85,476 1.71
oltp_delete_insert 49,861 96,338 1.93
oltp_write_only 27,222 57,969 2.13
types_delete_insert 32,991 55,493 1.68
oltp_read_write 101,053 158,870 1.57
Average 1.76

File-Backed

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 102,266 65,636 0.64
oltp_range_select 25,581 24,567 0.96
oltp_sum_range 25,595 23,691 0.93
oltp_order_range 4,312 4,297 1.00
oltp_distinct_range 5,557 5,324 0.96
oltp_index_scan 11,593 9,222 0.80
select_random_points 38,086 36,656 0.96
select_random_ranges 15,421 11,775 0.76
covering_index_scan 11,187 7,122 0.64
groupby_scan 36,743 39,315 1.07
index_join 12,578 12,722 1.01
index_join_scan 5,165 5,929 1.15
types_table_scan 1,043,908 1,269,797 1.22
table_scan 1,285,578 1,365,498 1.06
oltp_read_only 255,645 210,921 0.83
Average 0.93

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 261,519 383,957 1.47
oltp_insert 26,306 46,041 1.75
oltp_update_index 98,770 146,684 1.49
oltp_update_non_index 78,464 105,408 1.34
oltp_delete_insert 77,467 121,640 1.57
oltp_write_only 50,378 78,720 1.56
types_delete_insert 50,846 69,331 1.36
oltp_read_write 129,650 179,058 1.38
Average 1.49

File-Backed (autocommit)

Each statement runs as its own transaction — exposes per-commit
fixed costs that the wrapped-in-BEGIN/COMMIT tests amortize away.
SQLite uses WAL mode with synchronous=FULL in this section so
the comparison uses SQLite's durable WAL autocommit path.

Reads

Reads have no commit cost; these are the same SQL files as the
File-Backed Reads section, included here for symmetry and to
catch any per-statement overhead doltlite pays on the read path.

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 58,174 66,337 1.14
oltp_range_select 21,927 24,670 1.13
oltp_sum_range 20,660 23,953 1.16
oltp_order_range 4,002 4,323 1.08
oltp_distinct_range 5,002 5,322 1.06
oltp_index_scan 7,093 9,111 1.28
select_random_points 31,176 36,038 1.16
select_random_ranges 10,365 11,927 1.15
covering_index_scan 7,030 7,144 1.02
groupby_scan 36,464 39,531 1.08
index_join 9,767 12,786 1.31
index_join_scan 4,685 5,992 1.28
types_table_scan 1,075,881 1,274,094 1.18
table_scan 1,337,299 1,360,534 1.02
oltp_read_only 187,583 209,244 1.12
Average 1.14

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert_ac 22,453 84,664 3.77
oltp_insert_ac 25,320 105,256 4.16
oltp_update_index_ac 27,525 113,278 4.12
oltp_update_non_index_ac 23,518 92,565 3.94
oltp_delete_insert_ac 24,145 109,462 4.53
oltp_write_only_ac 25,481 107,095 4.20
types_delete_insert_ac 22,948 94,658 4.12
oltp_read_write_ac 32,225 109,776 3.41
Average 4.03

100000 rows, median of 5 invocations per test; autocommit writes use 9, workload-only timing via host monotonic clock when available.

Performance Ceiling Check (2.5x individual, 2x average; autocommit writes: 6x / 5x)

All tests within ceilings.

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Sysbench-Style Benchmark (BLOB PK): Doltlite vs SQLite

Companion to the classic Sysbench-Style Benchmark. Every workload here
runs against tables with a 16-byte big-endian BLOB PRIMARY KEY.

Individual ratios gated at 2.5×; section averages gated at 2×. Autocommit writes use 6× / 5×.

In-Memory

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 30,195 37,111 1.23
oltp_range_select 12,250 14,532 1.19
oltp_sum_range 11,270 13,759 1.22
oltp_order_range 2,755 3,128 1.14
oltp_distinct_range 3,856 4,146 1.08
oltp_index_scan 4,234 6,089 1.44
select_random_points 17,239 20,850 1.21
select_random_ranges 3,804 5,246 1.38
covering_index_scan 4,341 4,396 1.01
groupby_scan 30,789 33,434 1.09
index_join 6,662 8,893 1.33
index_join_scan 3,832 5,526 1.44
types_table_scan 1,042,599 1,237,185 1.19
table_scan 1,176,528 1,326,606 1.13
oltp_read_only 114,658 135,271 1.18
Average 1.22

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 243,245 352,883 1.45
oltp_insert 19,758 38,703 1.96
oltp_update_index 66,730 126,416 1.89
oltp_update_non_index 47,961 83,012 1.73
oltp_delete_insert 48,353 100,416 2.08
oltp_write_only 28,257 60,195 2.13
types_delete_insert 32,321 52,933 1.64
oltp_read_write 81,578 136,811 1.68
Average 1.82

File-Backed

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 98,637 60,811 0.62
oltp_range_select 19,479 17,302 0.89
oltp_sum_range 18,650 16,444 0.88
oltp_order_range 3,663 3,529 0.96
oltp_distinct_range 4,727 4,642 0.98
oltp_index_scan 11,333 8,985 0.79
select_random_points 25,258 25,126 0.99
select_random_ranges 10,649 7,838 0.74
covering_index_scan 11,311 7,263 0.64
groupby_scan 31,536 34,101 1.08
index_join 10,700 11,591 1.08
index_join_scan 5,104 5,848 1.15
types_table_scan 1,041,897 1,246,620 1.20
table_scan 1,240,440 1,339,075 1.08
oltp_read_only 220,128 174,243 0.79
Average 0.93

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 260,350 376,231 1.45
oltp_insert 31,019 51,460 1.66
oltp_update_index 99,319 161,635 1.63
oltp_update_non_index 75,280 107,990 1.43
oltp_delete_insert 79,758 129,651 1.63
oltp_write_only 55,559 82,627 1.49
types_delete_insert 50,845 72,791 1.43
oltp_read_write 112,791 161,847 1.43
Average 1.52

File-Backed (autocommit)

Each statement runs as its own transaction — exposes per-commit
fixed costs that the wrapped-in-BEGIN/COMMIT tests amortize away.
SQLite uses WAL mode with synchronous=FULL in this section so
the comparison uses SQLite's durable WAL autocommit path.

Reads

Reads have no commit cost; these are the same SQL files as the
File-Backed Reads section, included here for symmetry and to
catch any per-statement overhead doltlite pays on the read path.

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 54,106 61,565 1.14
oltp_range_select 15,840 17,589 1.11
oltp_sum_range 14,480 16,905 1.17
oltp_order_range 3,265 3,633 1.11
oltp_distinct_range 4,461 4,763 1.07
oltp_index_scan 6,588 8,983 1.36
select_random_points 20,405 24,592 1.21
select_random_ranges 6,379 7,802 1.22
covering_index_scan 7,601 7,248 0.95
groupby_scan 32,258 34,163 1.06
index_join 8,974 11,448 1.28
index_join_scan 4,705 6,048 1.29
types_table_scan 1,048,628 1,253,314 1.20
table_scan 1,184,958 1,327,912 1.12
oltp_read_only 154,880 174,616 1.13
Average 1.16

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert_ac 22,545 79,951 3.55
oltp_insert_ac 24,630 102,619 4.17
oltp_update_index_ac 27,767 110,669 3.99
oltp_update_non_index_ac 22,292 91,069 4.09
oltp_delete_insert_ac 24,628 101,770 4.13
oltp_write_only_ac 24,348 98,837 4.06
types_delete_insert_ac 21,270 88,734 4.17
oltp_read_write_ac 29,325 105,729 3.61
Average 3.97

100000 rows, median of 5 invocations per test; autocommit writes use 9, workload-only timing via host monotonic clock when available.

Performance Ceiling Check (2.5x individual, 2x average; autocommit writes: 6x / 5x)

All tests within ceilings.

@timsehn

timsehn commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

Reviewed and verified on the branch (checked build):

  • The dolt_status does not attribute index changes to their table #1655 repro is fixed: CREATE INDEX and DROP INDEX on a committed table both report t | 0 | modified in dolt_status.
  • Green against the branch: the new schema-objects status oracle 18/18, reset oracle vs Dolt 43/43, and the index×VC matrix 38/38 — the reset index-restoration and fallback-row changes compose cleanly with the staging fixes they build on.
  • No file overlap with Attribute index changes to their table in the dolt_diff summary #1656 (diff-summary index attribution) — the two use the same schema-row attribution approach in disjoint surfaces; consolidating the two comparators into one shared helper is a reasonable follow-up, not a blocker.

Two things to address before merge:

  1. Stale base — needs a rebase onto current master. The branch forked before Keep unstaged views and triggers out of named-add commits #1652 (view/trigger staging) merged: doltlite_commit.sh fails its two view-staging gates here (view_stays_out_of_named_commit, view_in_am_commit) purely because the branch lacks doltliteBuildNamedStageMasterRoot. The pairing-hardening hunk sits in the same addStageNamedTables region Keep unstaged views and triggers out of named-add commits #1652 touched, so after rebasing please re-run doltlite_commit.sh (56 cases) and doltlite_index_vc_matrix.sh to confirm the merge composes.

  2. Minor, non-blocking: the new unnamedRootMatch arm still allows a named working table to pair with an unnamed staged entry on a bare number match — that's the pre-existing exposure (a cross-domain number collision would overwrite an index entry), narrowed but not eliminated for the unnamed case. Worth a follow-up tightening with the same by-schema-row resolution used elsewhere; also statusCompareIndexSchemaObjects runs two full catalog schema loads plus an O(from×to) name scan on every status query — fine at typical schema sizes, just noting it against the scaling suite's future appetite.

@timsehn
timsehn force-pushed the test/schema-object-status-oracle branch from babf3f6 to a792be9 Compare July 16, 2026 16:51
@timsehn
timsehn merged commit 46a2ab0 into master Jul 16, 2026
27 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.

dolt_status does not attribute index changes to their table

1 participant