Merged PRs
dolt
- 6955: Optimize when secondary indexes need to be fully rebuilt after a merge
At the end of a merge, Dolt was rebuilding some secondary indexes that did not need to be rebuilt. #6951 shows one example where the destination side of a merge has an existing index that does not exist on the source side of the merge. Dolt's merge code correctly updates that secondary index in place as the merge diffs are processed, but we were still doing an unnecessary full rebuild on the secondary index after processing all the diffs for that table.
Making this optimization uncovered another bug where column default values weren't being applied when merging a new row into a secondary index. This PR also fixes that bug, by ensuring that we remap a tuple and apply the column default value, before updating the secondary index with the new tuple. - 6953: Fix
import
bats test for existing table with FK constraints
Fixes the bats test for overwriting data in an existing table with FK constraints to properly test the intended behavior.
Related: #2281 - 6952: Importing
NULL
doesn't violate foreign key constraints
Adds a test verifying that importing aNULL
value doesn't violate foreign key constraints.
Related: #2108 - 6947: Switch reflog data to be stored in a ring buffer
Changes the in-memory reflog buffer to be a ring buffer, to limit on how much memory is used.
Although we do have anasync.RingBuffer
type already, it has slightly different use case. This implementation is more tailored to the reflog buffer's needs, including supporting iteration, and less locking and synchronization. - 6912: add warning message to dolt sql-client
Adds a warning message todolt sql-client
that this command will be deprecated. Command will be fully deprecated in 2 weeks.
Related: #6886
go-mysql-server
- 2121: fix panic when calling
ST_POINTFROMWKB()
with no arguments
Closed Issues
- 2281: Overwriting an existing table using import -c -f does not remove foreign key constraints
- 2108: NULL entries treated as foreign key constraint violations on import
- 6950: Cannot
DROP
column if it's namedgeometry
- 6900: support
int1
,int2
, ... types - 4787: Feature Request: Include csv as a dolt diff format option.
- 4930: Output 'conflicts cat' to csv
- 5824: Dolt SQL REPL sometimes eats up preceding lines in terminal when query is being edited
- 5849: Cloning database with new format tables to instance with old format tables causes errors
- 6012: ERROR 1: MySQL error message:value exceeded max field size of 65kb
- 6118:
\G
does not work withdolt sql-client
- 6220: Differences between
dolt sql
results anddolt sql-server
results - 6805: Dolt doesn't log any errors with PHP and Laravel when expecting a MySQL 5.7 communication protocol
- 6453: Export to parquet terminates with SIGKILL on large repo
- 6527:
dolt version
panics in some directories - 6709: dolt_merge() MySql return content missing column names since Dolt 1.11.1
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.14 | 2.71 | 1.3 |
groupby_scan | 12.98 | 17.32 | 1.3 |
index_join | 1.32 | 5.0 | 3.8 |
index_join_scan | 1.27 | 2.18 | 1.7 |
index_scan | 33.72 | 55.82 | 1.7 |
oltp_point_select | 0.17 | 0.41 | 2.4 |
oltp_read_only | 3.3 | 7.3 | 2.2 |
select_random_points | 0.32 | 0.69 | 2.2 |
select_random_ranges | 0.38 | 0.94 | 2.5 |
table_scan | 33.72 | 55.82 | 1.7 |
types_table_scan | 74.46 | 161.51 | 2.2 |
reads_mean_multiplier | 2.1 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 7.98 | 6.79 | 0.9 |
oltp_insert | 3.75 | 3.36 | 0.9 |
oltp_read_write | 8.28 | 14.73 | 1.8 |
oltp_update_index | 3.82 | 3.43 | 0.9 |
oltp_update_non_index | 3.82 | 3.36 | 0.9 |
oltp_write_only | 5.37 | 7.56 | 1.4 |
types_delete_insert | 7.7 | 7.43 | 1.0 |
writes_mean_multiplier | 1.1 |
Overall Mean Multiple | 1.6 |
---|