github dolthub/dolt v1.78.6
1.78.6

6 hours ago

Merged PRs

dolt

  • 10163: Bug fix: correctly copy check constraints
    A customer reported a strange behavior where check constraints were getting corrupted/duplicated. The root cause was a bug in the CheckConstraint.Copy() implementation that wasn't returning a copy of the underlying checks, and allowed another part of engine to modify the check constraints accidentally.
  • 10149: Change nodeCache from array to slice
    Arrays in golang are pass by value, whereas slices are pass by reference, so the nodeCache was getting copied everywhere.
  • 10147: #10138: Fix dolt_backup sync and sync-url not taking working set changes in transaction
    Fixes #10138
  • 10146: #7628: Amend dolt_backup DoltgresSQL privilege check for server only
    Fixes #7628
    • Fix dolt_backup support in dolthub/dolt driver.
    • Fix Erlang MySQL integrations test to use locked version of Elixir 1.18.3 base docker image.
  • 10126: .github,go/utils/{publishrelease,rpmbuild}: Add a basic RPM build to the published release artifacts for Dolt.
    These RPMs include the statically linked Dolt binary, installed at /usr/local/bin/dolt. They work on x86_64 and aarch64 RPM-based Linux distributions. To install them, download the appropriate dolt-...-1.{x86_64,aarch64}.rpm file from the GitHub release artifacts and run sudo rpm -i downloaded_file.rpm on it.
  • 10078: journal errors, recovery, and testing
    Variety of changes to provide assist in healthy journals.
    1. Detect journal data loss by looking for parsable objects after unparsable blocks. (root hash followed by another root or chunk). Data loss detection prevents loading of DB, and produced error message in logs.
    2. Removed null padding during journal file creation.
    3. Automatically truncate journal files when they do not contain any dataloss after parsable portions of the file.
    4. Refactor FSCK to enable running when database is not loadable.
    5. Provide FSCK flag --revive-journal-with-data-loss to backup and repair journal file

go-mysql-server

  • 3322: custom AppendDateFormat
    The time package's implementation of AppendDate contains additional checks and formatting options that are not necessary. Implementing a cheaper version gives us better performance.
    Benchmarks: #10150 (comment)
  • 3321: rewrite last query info
    Reimplement LastQueryInfo to not use a map of *atomic.Value with constant keys
    benchmarks: #10148 (comment)
  • 3319: Fix TimestampFuncExpr and SetOp in stored procedures
    Changes:
    • add missing case for replacing variables for TimestampFuncExpr in the interpreter
    • fix incorrect interface cast when assigning to ast.Subquery.Select
      Fixes:
    • #10141
    • #10142
  • 3318: #10113: Fix DELETE queries with NOT EXISTS uninitialized subqueries
    Fixes #10113
    DELETE queries with NOT EXISTS subqueries failed because EXISTS expressions did not set the refsSubquery flag. This caused DELETE queries to use a simplified analyzer batch that skipped subquery initialization, leaving subqueries without execution builders.
    • Refactor EXISTS expression building to reuse buildScalar() for *ast.Subquery, ensuring refsSubquery is set.
    • Capture the table node for simple DELETE queries before buildWhere() wraps it.
    • Separate concerns between explicit targets and implicit targets in a bool, but keep all targets in the same list to handle wrapped targets.
    • Add WithTargets() method to update targets without changing the explicit/implicit flag.
    • Fix offsetAssignIndexes() fast path to skip when virtual columns are present, using the full indexing path instead.

Closed Issues

  • 10134: Dolt and Debezium - GTID error in debezium-connector-mysql
  • 10138: Is dolt_add("-A") Required Before Calling the Stored Procedure dolt_backup("sync", "name")?
  • 10141: Adding a procedure around a CTE query causes panic
  • 10142: Referencing a procedure variable inside a non-trivial query fails
  • 10137: Data returned from dolt sql-server is different from dolt sql -q
  • 10113: Dolt attempted to evaluate uninitialized subquery , SQL compatibility adjustment

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.82 0.55 0.3
groupby_scan 13.95 11.65 0.84
index_join 1.5 1.96 1.31
index_join_scan 1.47 1.34 0.91
index_scan 34.33 22.69 0.66
oltp_point_select 0.2 0.28 1.4
oltp_read_only 3.82 5.28 1.38
select_random_points 0.35 0.58 1.66
select_random_ranges 0.39 0.57 1.46
table_scan 34.33 28.16 0.82
types_table_scan 74.46 65.65 0.88
reads_mean_multiplier 1.06
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.43 6.55 0.78
oltp_insert 4.18 3.19 0.76
oltp_read_write 9.22 11.65 1.26
oltp_update_index 4.25 3.25 0.76
oltp_update_non_index 4.25 3.19 0.75
oltp_write_only 5.28 6.32 1.2
types_delete_insert 8.43 6.91 0.82
writes_mean_multiplier 0.9
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 93.72 36.25 2.59
tpcc_tps_multiplier 2.59
Overall Mean Multiple 1.52

Don't miss a new dolt release

NewReleases is sending notifications on new releases.