Merged PRs
dolt
- 7947: Bug Fix: Index name case-insensitivity
MySQL index names are case-insensitive, but Dolt's index implementation wasn't handling them that way. This makes index names case-insensitive.
Customer issue: #7945
New enginetests added in GMS PR: dolthub/go-mysql-server#2530 - 7941: Bug fix for AllSchemas method for schemas
- 7940: dolt sql slash cmds
Add the ability to run some dolt commands directly from the dolt sql shell.
Fixes: #6874 - 7933: Update get-mysql-dolt-job-json.sh
TPS comparison is inverted compared t latency_p95 comparison. - 7931: Update get-mysql-dolt-job-json.sh
go-mysql-server
- 2531: Bug Fix: Finalize subqueries in
IfConditional
s when applying stored procedures
When applying a stored procedure to aCALL
statement, we weren't callingfinalizeSubqueries()
on any subqueries inIfConditional
expressions, which caused the subquery to not have aNodeExecBuilder
populated.
Customer issue: #7944 - 2529: Fix global decimal.MarshalJSONWithoutQuotes overwrite
Thedecimal.MarshalJSONWithoutQuotes
is a global variable.
By setting this value then this can cause problems with any other code that does not expect this value to be changed.
Instead using a custom encoder to ensure that the marshalling behaviour is as expected without changing the global value ensure that this will not cause compatibility issues with other projects.
This code is covered both by existing tests, and an additional one in this PR.
(if the custom encode switch case is not added, but the global variables are, then the tests fail). - 2528: Bug fix for unwrapping a privileged db
- 2524: Adding
@@max_binlog_size
system variable
https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_max_binlog_size - 2523: Added additional analyzer hooks for integrators
- 2522: More INSERT short-circuits
Only run an "on update" code block when expressions are non-nil. Directly compare sql mode default string, rather than lowercasing every time. - 2519: IndexedTableAccess gets indexing fast path
vitess
- 350: Refactoring
BinlogStream
type intoBinlogMetadata
Themysql.BinlogStream
type from Vitess was a little awkward to use, and seems to have been mostly intended as test code. This gives it a more descriptive name and makes it a little easier to pass around struct copies without concurrency issues from a shared instance. - 349: Fixed timestamp bindvar formatting to match MySQL string expectation
- 348: Allowing caching plugin to be specified in string quotes
TheCREATE USER ... IDENTIFIED WITH
syntax (MySQL ref) allows the caching plugin to be specified in string quotes, but our parser only supported identifier quotes.
This came up as part of binlog replication testing – MySQL was sending aCREATE USER
statement from the primary to a Dolt replica, but Dolt wasn't able to parse the statement because of the use of string quotes around the caching plugin name.
Closed Issues
- 6874: Embed cli command in
dolt sql
- 2289: First Unique Key in a keyless table should be represented as a primary key
Performance
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 2.97 | 1.4 |
groupby_scan | 13.22 | 17.01 | 1.3 |
index_join | 1.34 | 5.28 | 3.9 |
index_join_scan | 1.27 | 2.22 | 1.7 |
index_scan | 34.95 | 52.89 | 1.5 |
oltp_point_select | 0.18 | 0.5 | 2.8 |
oltp_read_only | 3.49 | 8.13 | 2.3 |
select_random_points | 0.34 | 0.81 | 2.4 |
select_random_ranges | 0.39 | 0.95 | 2.4 |
table_scan | 34.95 | 54.83 | 1.6 |
types_table_scan | 75.82 | 137.35 | 1.8 |
reads_mean_multiplier | 2.1 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 7.98 | 6.21 | 0.8 |
oltp_insert | 3.82 | 3.07 | 0.8 |
oltp_read_write | 8.58 | 14.73 | 1.7 |
oltp_update_index | 3.89 | 3.19 | 0.8 |
oltp_update_non_index | 3.89 | 3.13 | 0.8 |
oltp_write_only | 5.37 | 6.55 | 1.2 |
types_delete_insert | 7.7 | 6.79 | 0.9 |
writes_mean_multiplier | 1.0 |
TPC-C TPS Tests | MySQL | Dolt | Multiple |
---|---|---|---|
tpcc-scale-factor-1 | 99.71 | 25.77 | 4.2 |
tpcc_tps_multiplier | 3.9 |
Overall Mean Multiple | 2.33 |
---|