github dolthub/dolt v1.43.20
1.43.20

latest releases: v1.45.0, v1.44.4, v1.44.3...
14 days ago

Merged PRs

dolt

  • 8634: Add pointers for schemas for dolt_workspace_* and dolt_diff system tables for doltgres
  • 8633: Add TLS options in help docs
  • 8632: fix error message for duplicate unique key violation on out of band types
    Certain types are stored out of band (like TEXT and BLOB), so we compare their addresses to test for existence. Consequently, the error message would contain the hash rather than the contents.
    This PR fixes the formatting to print the prefix.
    fixes: #8629
  • 8630: Fixed issues with branch control
    This is primarily to fix issues with:
    • #8622
    • #8623
      For the first issue, we did not actually update the longest match counter, and it was therefore being ignored. The variable existed, but it was not being updated. I think this went so long without being caught (even with all of the tests in enginetests and bats) due to how we handle expression folding, where subset entries are completely ignored if a superset already exists.
      The second issue is somewhat similar to the first, in that we were not checking the permission set when determining whether a new row is actually a subset. If an existing row is a superset, but the permissions are more restrictive than the new row, then it's not an actual superset, since it has more restrictive permissions. This is even in the documentation, so it's a simple mistake of forgetting to add that check to the code itself.
      Lastly, the bats tests have been updated such that they rely on sockets now, and Windows does not support sockets. This was not caught since most Windows developers have moved to primary development on Doltgres, so this at least allows such developers to run the bats tests locally again.
  • 8624: Update sql status to not report changes for unstaged tables that have changed but not visibly.
    Sometimes tables can change their hashes despite having no visible changes. The two ways I identified where this can happen are:
    • The table has different column tags from the ancestor because it was originally a different table that got renamed.
    • The table stores whether it's in a conflict and stores the hash of the other branch's table and the common ancestor table.
      If these are the only changes to a table, we shouldn't report it as changed in dolt status.
      These tables can still be staged and report as modified once staged.
  • 8619: README updates to explain MySQL 8.4 requirement
    Updates README to explain how to install mysql 8.4, since the 9.0 innovation release does not include support for the mysql_native_password auth plugin by default.

go-mysql-server

  • 2776: bump mysql version
    Certain tools expect a higher version of MySQL.
    Currently, the latest stable version of MySQL is 8.4.4, but 8.0.23 is the minimum needed to satisfy mydumper.
    Additionally, this alters the version() method to select directly from the @@version system variable.
    related: #8592
  • 2775: prevent creating and dropping mysql and information_schema databases
    fixes: #8621
  • 2774: insert ignore to enum column truncates data
  • 2765: increase column size for information_schema.processlist.state
    The State column in our information_schema.processlist table is different than the MySQL implementation because we include progress information. As a result, it is possible to exceed the 64 character limit that the column is defined as.
    However, thius means deviating from MySQL's definition of the table.
  • 2764: information_schema uppercase rule doesn't apply to processlist table
    Selecting from information schema typically results in all uppercase column names, except for the information_schema.processlist table, which follows the non info schema casing (matches the projection).
    Relevant MySQL Bug: https://bugs.mysql.com/bug.php?id=84456

Closed Issues

  • 8629: Erroneous output with unique constraint on TEXT or TINYTEXT
  • 8607: Creating two tables with the same schema and database, dropping one of them, and renaming the second table to the dropped table creates an entry in status but not diff
  • 8622: Potential issue with longest matching branch namespace control rules
  • 8621: prevent CREATE DATABASE mysql;
  • 8611: INSERT IGNORE for ENUM should truncate data instead of using the first element

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.89 0.62 0.3
groupby_scan 13.22 16.41 1.2
index_join 1.47 2.26 1.5
index_join_scan 1.42 1.47 1.0
index_scan 34.95 55.82 1.6
oltp_point_select 0.18 0.27 1.5
oltp_read_only 3.43 5.47 1.6
select_random_points 0.33 0.65 2.0
select_random_ranges 0.36 0.65 1.8
table_scan 34.95 55.82 1.6
types_table_scan 77.19 144.97 1.9
reads_mean_multiplier 1.5
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.9 6.21 0.7
oltp_insert 4.1 3.07 0.7
oltp_read_write 8.9 11.65 1.3
oltp_update_index 4.18 3.13 0.7
oltp_update_non_index 4.18 3.07 0.7
oltp_write_only 5.67 6.21 1.1
types_delete_insert 8.43 6.55 0.8
writes_mean_multiplier 0.9
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 95.75 41.26 2.3
tpcc_tps_multiplier 2.3
Overall Mean Multiple 1.57

Don't miss a new dolt release

NewReleases is sending notifications on new releases.