Merged PRs
dolt
- 7421: Add support for
@@dolt_transaction_commit_message
Allows customers to control the messages in commits created by@@dolt_transaction_commit
.
Related to #7417
Documentation updates: dolthub/docs#1996 - 7412: When aborting a merge/cherry-pick, avoid resetting ignored tables.
Tables that matchdolt_ignore
in the working set should be ignored by most operations.
(CAVEAT: If we want to match git, these tables should only be ignored if there are not staged/HEAD versions of those tables. But we appear to not match git in that regard right now.)
This PR changes the logic for aborting merges to avoid modifying any tables matchdolt_ignore
- 7410: Prevent panic when sorting by
commit_hash
in various dolt system tables
The analyzer rulereplacePkSort
does not work over certain types of indexes as some indexes are unordered.
Certain dolt system tables use a MockIndex because they are not backed by a datastore.
Unfortunately, we don't have a propernil
check for theidxSch
, leading to a panic when attempting to sort by columns in those mock indexes
This PR adds a nil check, so we don't try to use these indexes.
fixes #7404 - 7408: Adds support for
dolt log --stat
Adds support fordolt log --stat
which prints the diffstat for each commit in the log. - 7401: fix bats tests to include backticks for column names in default and generated expressions
companion pr: dolthub/go-mysql-server#2291
fixes #7388 - 7390: Concurrent table deletion and schema modification should be reported as a schema conflict.
Previously during a merge, if one branch altered a table schema and the other branch deleted the table, this would be an error that would automatically abort the merge. Now it's a schema conflict.
go-mysql-server
- 2295: allow tables with self referential foreign keys to be dropped
Our logic for preventingDROP
s on a table if that table was referenced in aFOREIGN KEY
did not account for when the table was self referencing. This PR fixes that and closes the gap in our testing for this area.
fixes #7418 - 2294: match range key with range type
Creating lookups when comparing columns of different types were causing problems.
Especially, if one of the types is a string.
This is not a perfect fix as we don't do truncation yet, but it will stop panics.
Reused solution from this PR:
dolthub/go-mysql-server#2177
It fixes the test case in this issue, but a skipped test is added for missing truncation functionality.
#7371 - 2291: backquote column names in
default
andgenerated
column expressions
To prevent parsing errors for special column names, we need to wrap column identifiers with backquotes.
MySQL prints column identifiers indefault
andgenerated
expressions when doingshow create table ...
with backquotes anyways.
fixes #7388 - 2288: Add more join statistic tests, some bug fixes
- 2285: Avoid generating SemiJoins when the subquery contains an OFFSET expression, as doing say may generate incorrect results.
Closed Issues
- 7418: Unable to drop table with self referential foreign key
- 7384: Can't add multiple foreign keys in
CREATE TABLE
- 7388: Cannot use column names containing spaces or uppercase characters as a generated primary key
- 7404: Panic when querying
dolt_log
when you order bycommit_hash
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.11 | 3.13 | 1.5 |
groupby_scan | 13.46 | 17.63 | 1.3 |
index_join | 1.34 | 5.28 | 3.9 |
index_join_scan | 1.25 | 2.26 | 1.8 |
index_scan | 33.72 | 63.32 | 1.9 |
oltp_point_select | 0.17 | 0.46 | 2.7 |
oltp_read_only | 3.36 | 8.13 | 2.4 |
select_random_points | 0.32 | 0.74 | 2.3 |
select_random_ranges | 0.39 | 0.92 | 2.4 |
table_scan | 34.33 | 63.32 | 1.8 |
types_table_scan | 74.46 | 173.58 | 2.3 |
reads_mean_multiplier | 2.2 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 5.77 | 6.09 | 1.1 |
oltp_insert | 3.02 | 3.07 | 1.0 |
oltp_read_write | 7.56 | 15.27 | 2.0 |
oltp_update_index | 3.02 | 3.13 | 1.0 |
oltp_update_non_index | 2.91 | 3.07 | 1.1 |
oltp_write_only | 4.33 | 7.43 | 1.7 |
types_delete_insert | 5.67 | 6.79 | 1.2 |
writes_mean_multiplier | 1.3 |
Overall Mean Multiple | 1.9 |
---|