github dolthub/dolt v1.58.6
1.58.6

5 days ago

Merged PRs

dolt

  • 9730: Fix dolt_conflicts_resolve for doltgres
  • 9728: #9725 - Fix AUTO_INCREMENT reuse after HA failover by refreshing trackers
    Fixes #9725
    Newly promoted primary could reuse AUTO_INCREMENT values due to a stale in-memory tracker. On promotion, we now synchronously refresh AUTO_INCREMENT trackers for databases already loaded in the session, aligning sequences with the current working sets so the first post-promotion inserts do not reuse existing IDs.
  • 9721: disable only_full_group_by in sysbench
    Since our group validation much more closely aligns with MySQL, we discovered that sysbench script groupby_scan.lua is not valid in MySQL without disabling ONLY_FULL_GROUP_BY in sql_mode. This PR fixes the local test scripts and the benchmark runners to accept a config.yaml with the sql_mode set.
  • 9719: Drop old event messages
    Changes the event collector/emitter to drop old events and not grow unbounded when events can't be delivered.
    The event collector already batched 64 events per request when LogEvent messages were being sent successfully. However, when there are issues sending LogEvent messages, the events queue up, with no upper bound, and each LogEvent request gets larger and larger. This change limits the tracked "unsent" events to that existing 64 event batch size.
  • 9710: Fixes for Doltgres-related procedure calling
    This contains some fixes related to calling Dolt functions in Doltgres.
    Required by:
  • 9702: go: cmd/dolt: cli_context: Slightly rework CliContext and LateBinderyQueryist lifecycle.
    Rework CliContext and LateBinderyQueryist lifecycle so that CliContext itself is Closed when we are done with it. If it instantiated the LateBinderQueryist, it closes it at that time.
    Previously LateBinderQueryist was responsible for returning a closer(), which a caller of CliContext.QueryEngine could see as non-nil and call at the end of its work. This works well when a QueryEngine is used exactly one time or when QueryEngine usage is completely nested, as is the case with the backslash command implementations called from dolt sql. But in tests, we sometimes use command instances back-to-back, on the same CliContext instance, where it results in using the Queryist after it has already been closed.
    This PR also reworks result types so that callers of QueryEngine can know if they are connected locally or remotely and if the QueryEngine interaction they are making is the first one in the session. Some callers need to inspect that state to implement helpful error checks and guard rails, and they were previously using things like a non-nil closer and interface casts to concrete types to implement these checks.
  • 9678: dolt_tests system table
    Adds dolt_tests system table. The table currently has no functionality, but behaves similarly to the other writable system tables like dolt_ignore and dolt_query_catalog.

go-mysql-server

  • 3175: Support filtering by comment in show table status
    fixes #6894
    • update "Comments" to "Comment" in show table status schema
    • include table comment in table status row
  • 3174: Make SHOW VARIABLES display boolean values as ON/OFF to match MySQL
    Changes the output of SHOW VARIABLES to match MySQL's output, where boolean values are shown as ON or OFF. Also adds definitions for two replication related system variables.
  • 3173: Mask column names from non-triggered tables in UpdateJoins
    fixes #9403
  • 3172: Add correlated columns from subqueries to GroupBy select dependencies
    fixes #9699
  • 3169: go.mod: Bump go-icu-regex. Picks up a wazero bump which improves amd64 behavior on builds with go 1.24.0+.
  • 3166: Unskip GroupBy validation on Project, Having, and Sort nodes
    Fixes #4998
    Still need to allow group by unique non-nullable columns (#9700)
    Query plans needed to be updated because Subquery.String and GroupBy.String changed. The latter was due to SelectedExprs being renamed to SelectDeps.
    Dolt bump: #9704

Closed Issues

  • 9725: AUTO_INCREMENT not synced after primary/standby failover, causing duplicate key errors
  • 6894: show table status "Comments" column does not match MySQL "Comment" column
  • 9403: Triggers are unable to get the right column when joined tables share a column name
  • 9699: GroupBy nodes for aggregate columns need to include select dependencies from subqueries
  • 4736: migrate: column type cannot be auto-incremented
  • 4998: GroupBy validation not running on nodes wrapped in Having, Project, or Sort (validation is also way too strict when it does run)

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.86 0.68 0.37
groupby_scan 13.22 21.11 1.6
index_join 1.47 2.61 1.78
index_join_scan 1.44 1.44 1.0
index_scan 34.33 32.53 0.95
oltp_point_select 0.2 0.29 1.45
oltp_read_only 3.75 5.37 1.43
select_random_points 0.35 0.61 1.74
select_random_ranges 0.38 0.64 1.68
table_scan 34.33 32.53 0.95
types_table_scan 74.46 127.81 1.72
reads_mean_multiplier 1.33
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.43 6.55 0.78
oltp_insert 4.18 3.25 0.78
oltp_read_write 9.06 11.87 1.31
oltp_update_index 4.18 3.3 0.79
oltp_update_non_index 4.18 3.25 0.78
oltp_write_only 5.28 6.55 1.24
types_delete_insert 8.43 6.91 0.82
writes_mean_multiplier 0.93
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 94.92 39.42 2.41
tpcc_tps_multiplier 2.41
Overall Mean Multiple 1.56

Don't miss a new dolt release

NewReleases is sending notifications on new releases.