Merged PRs
dolt
- 8300: Fix nil panic in using
dolt show
to inspect secondary indexes. - 8299: More consistent return types for dolt procedures
Most procedures that return integers returnint64
, but there are a few exceptions. The procedures that returnint
break in doltgres here - 8297: dolt_workspace_* update and delete support
This change adds the ability to update dolt_workspace_ tables. Updates can take two forms:- The "staging" column of the table. may be toggled from it's current state. If setting from false to true, the working value will be written into the staged table. Setting from true to false will remove the row from staging, and leave the value in working as is.
- You can delete any row which has a "staged" column of false. This will revert the workspace changes and return them to the original value.
- 8186: Add support for Doltgres indexes
go-mysql-server
- 2641: Correctly handle indexes on virtual columns
Fixes #8276
Lots of small behaviors around virtual columns were not working correctly:- Adding an index on a virtual column triggered a table rebuild even when this wasn't necessary
- Rebuilding a table that contained virtual columns could lead to incorrect results
- Inserting into a table with a virtual column could update indexes incorrectly
- Adding a generated column to the start of a table could lead to incorrect results
This PR adds tests for these cases and fixes them by tweaking the logic for projections on tables with generated columns.
- 2638: Change ranges to an interface
Closed Issues
- 8276: Indexes on virtual generated columns generate incorrect results.
Performance
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 0.65 | 0.3 |
groupby_scan | 13.22 | 16.41 | 1.2 |
index_join | 1.37 | 2.66 | 1.9 |
index_join_scan | 1.27 | 2.11 | 1.7 |
index_scan | 34.33 | 54.83 | 1.6 |
oltp_point_select | 0.18 | 0.3 | 1.7 |
oltp_read_only | 3.49 | 5.77 | 1.7 |
select_random_points | 0.34 | 0.65 | 1.9 |
select_random_ranges | 0.39 | 0.69 | 1.8 |
table_scan | 34.33 | 54.83 | 1.6 |
types_table_scan | 75.82 | 142.39 | 1.9 |
reads_mean_multiplier | 1.6 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 8.13 | 5.99 | 0.7 |
oltp_insert | 3.82 | 3.02 | 0.8 |
oltp_read_write | 8.58 | 11.87 | 1.4 |
oltp_update_index | 3.89 | 3.02 | 0.8 |
oltp_update_non_index | 3.89 | 2.97 | 0.8 |
oltp_write_only | 5.37 | 6.21 | 1.2 |
types_delete_insert | 7.7 | 6.43 | 0.8 |
writes_mean_multiplier | 0.9 |
TPC-C TPS Tests | MySQL | Dolt | Multiple |
---|---|---|---|
tpcc-scale-factor-1 | 99.27 | 39.96 | 2.5 |
tpcc_tps_multiplier | 2.5 |
Overall Mean Multiple | 1.67 |
---|