8000 dolt 1.53.1 by BrewTestBot · Pull Request #222921 · Homebrew/homebrew-core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

dolt 1.53.1 #222921

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 8, 2025
Merged

dolt 1.53.1 #222921

merged 2 commits into from
May 8, 2025

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
# Merged PRs

dolt

  • 9193: go: store/datas/pull: puller.go: Fix incorrect location for Close call on PullChunkTracker.
    When a pull or push failed with an error in a HasMany call or on the initiating read of a set of chunks from the ChunkFetcher, the initiating goroutine used to close the PullChunkTracker. However, the writes to the PullChunkTracker are issued on the thread which reads and processes the chunks themselves. This meant that it was possible for the PullChunkTracker to be Closed while that thread was still issuing writes against it.
    Making the chunk-reading thread responsible for the Close is more correct.
    This fixes #9190.
  • 9192: go: statspro: Make it possible for callers of StatsController.Stop() to block on the worker thread shutdown.
    Add pre-finalize blocking on the worker thread shutdown to dolt_gc safepoint controllers.
    Add blocking on the worker thread shutdown to dolt_stats_stop(), so that a caller knows that stats have actually stopped by the time it returns.
  • 9186: Fix --branch global option always flagging error "no valid repository"
    Fix issue #6979
    We define noValidRepository to ensure the command has a valid target, but in that definition we call mrEnv.GetEnv() on the wrong string, so it's always null with the --branch flag. We should call it just on the name of the database, excluding the branch.
    A string with the database and branch is also needed later, so we need to save both variables.
  • 9181: go: sqle/dprocedures: fetch,pull,push: Rebase the remote database before we interact with it.
    We need to rebase a remote in order to see its latest changes.
    Fixes #9164.
  • 9179: refactor: replace map iteration with maps.Copy
    Optimize code using a more modern writing style.

go-mysql-server

  • 2967: Unwrap wrapped values before computing their hash.
    (This PR changes the types in one of the tables used in tests. This improves the test coverage for TEXT columns, especially when they're used in conjunction with other tables with VARCHAR columns. None of the existing tests were testing the original type: this should be strictly increasing our test coverage.)
    The following plans involve computing a hash of rows to store in an in-memory hash set:
    • Intersect, Except, and Distinct
    • HashLookup
    • InSubquery
    • HashSubquery
    • FullJoinIter
    • ConcatJoin
    • Recursive CTE
    • UpdateJoinIter
      We weren't previously unwrapping wrapped values before computing hashes. The default hash implementation used the struct's %v representation to compute the hash, which has two problems:
    • The hash of the %v representation of a wrapper struct is not the same as the hash of the value that the wrapper is semantically equivalent to.
    • The hash of the %v representation of a wrapper struct depends on internal state, such as whether the wrapped has already been unwrapped once before (and cached the unwrapped value in an internal buffer)
      The simplest fix is to unwrap values before computing a row hash in the HashOf function.
      However, this fix comes at a cost: it now requires the engine to unwrap all values if they get used in any of the above plans. This will hurt performance for any of the above plans if they don't actually need to unwrap the value. For example, an UpdateJoinIter on a table with a TEXT column will now load that column from disk, even if its value is never used.
      A better fix might be to use the Hash() function that is already defined on the sql.Wrapper interface. For all existing Wrapper implementations, this returns the Dolt content address of the value, and is the same regardless of whether or not that address has previously been resolved. However, this would still return a different hash than an equivalent string. If we wanted them to return the same hash, Dolt would need to define a custom hash for strings that computes the Dolt content address of the string if it were to be stored as a Dolt chunk. This would likely be slower than Go's builtin hash for strings, although the performance might be comparable? This would likely result in worse performance for plans that don't use TEXT columns.
  • 2966: Fix float to bigint conversion result
    Fixes: Problem modifying a column to change from float to bigint dolthub/dolt#9178
    Test to be added to dolt engine tests
  • 2958: Correctly map enum values when altering an enum column.
    When altering the possible values of an enum column, the mapping between enum strings and their indexes may change. In order to alter the column correctly, we need to map the old indexes onto the new ones.
    This PR fixes two bugs in that mapping process:
    • Previously, we were converting the row to the new schema before setting the enums to their new index. This means that if the old row had an index that didn't exist in the new schema, this conversion would fail. By setting the enums to their new index before we convert the row to the new schema, we avoid this problem.
    • Enum indexes are 1-indexed, with the 0 value representing an "invalid" value. One way to get an invalid enum in MySQL is an INSERT IGNORE statement where the provided value for the enum is out of range. Dolt also allows setting the column to 0 directly, although MySQL does not. Previously, we were not able to alter enum columns if they contained a 0 value, but now we can.

Closed Issues

  • 9180: Unintuitive error messages when using global options --branch and --use-branch on invalid branches
  • 6979: --branch global option doesn't work by itself
  • 9190: Panic when trying to push wikipedia db
  • 9166: More panic: interface conversion: interface {} is *val.TextStorage, not string
  • 9178: Problem modifying a column to change from float to bigint
  • 9164: push/pull synchronization fails with file remote in multi-node setup

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.89 0.67 0.35
groupby_scan 13.22 17.95 1.36
index_join 1.47 2.39 1.63
index_join_scan 1.44 1.44 1.0
index_scan 34.33 30.26 0.88
oltp_point_select 0.18 0.26 1.44
oltp_read_only 3.43 5.18 1.51
select_random_points 0.33 0.59 1.79
select_random_ranges 0.37 0.62 1.68
table_scan 34.33 32.53 0.95
types_table_scan 75.82 125.52 1.66
reads_mean_multiplier 1.3
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.9 6.32 0.71
oltp_insert 4.03 3.13 0.78
oltp_read_write 8.9 11.45 1.29
oltp_update_index 4.1 3.19 0.78
oltp_update_non_index 4.18 3.07 0.73
oltp_write_only 5.67 6.32 1.11
types_delete_insert 8.28 6.67 0.81
writes_mean_multiplier 0.89
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 98.01 39.33 2.49
tpcc_tps_multiplier 2.49

| Overall Mean Multiple | 1.56 |
|-----------------------|------|


@github-actions github-actions bot added go Go use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels May 8, 2025
Copy link
Contributor
github-actions bot commented May 8, 2025

🤖 An automated task has requested bottles to be published to this PR.

Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch.

@github-actions github-actions bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label May 8, 2025
@BrewTestBot BrewTestBot enabled auto-merge May 8, 2025 23:29
@BrewTestBot BrewTestBot added this pull request to the merge queue May 8, 2025
Merged via the queue into master with commit 253b648 May 8, 2025
17 checks passed
@BrewTestBot BrewTestBot deleted the bump-dolt-1.53.1 branch May 8, 2025 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bump-formula-pr PR was created using `brew bump-formula-pr` CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. go Go use is a significant feature of the PR or issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0