github dolthub/dolt v1.39.3
1.39.3

latest releases: v1.43.15, v1.43.14, v1.43.13...
5 months ago

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 IfConditionals when applying stored procedures
    When applying a stored procedure to a CALL statement, we weren't calling finalizeSubqueries() on any subqueries in IfConditional expressions, which caused the subquery to not have a NodeExecBuilder populated.
    Customer issue: #7944
  • 2529: Fix global decimal.MarshalJSONWithoutQuotes overwrite
    The decimal.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 into BinlogMetadata
    The mysql.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
    The CREATE 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 a CREATE 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

Don't miss a new dolt release

NewReleases is sending notifications on new releases.