github dolthub/dolt v0.75.3
0.75.3

latest releases: v1.43.0, v1.42.20, v1.42.19...
18 months ago

Merged PRs

dolt

  • 5578: /go/cmd/dolt/commands/login.go: fix audience used for dolt login
  • 5565: go/store/nbs: teardown chunk journal in swap tables during GC
  • 5555: use revision database name from current database for accessing DbData for dolt_checkout()
  • 5464: Three way differ and merge optimizations
    Refactor merge in a way that makes add-heavy merges faster. Expose interface for computing a three way diff without performing a merge (for statistic/PR info gathering). The compute overhead is mixed for updates, but parentFkConstraint checking is still the main bottleneck there.
    There is a general tradeoff executing merges quite larger than memory. Under that threshold, sharing one diff and batching lookups into secondary indexes is mostly faster. Above a certain table size it is faster for every data merge and correctness check to perform its own map diff. In the future I hope we find a smarter way to overlap diffs, merges, and lookups for all of the indexes and checks (primary, secondary, uniqueness checks, foreign key child, secondary child). Hopefully the current organizational pattern pushes us in that direction.
  • 5456: Bump golang.org/x/image from 0.0.0-20220302094943-723b81ca9867 to 0.5.0 in /go
    Bumps golang.org/x/image from 0.0.0-20220302094943-723b81ca9867 to 0.5.0.
    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/image&package-manager=go_modules&previous-version=0.0.0-20220302094943-723b81ca9867&new-version=0.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).

go-mysql-server

  • 1656: De Morgan's Laws for NOT filter hoisting
    Hoisting filters in NOT expressions is subject to violating De Morgan's Laws. The current fix makes sure that when we pull filters from a subquery into a parent scope, we will include the hoisted filters in the NOT conjunction.
    So:
    select * from xy where not exists (select * from uv where x = 1)
    =>
    select * from xy where not (exists (select * from uv) and x = 1)
    And in the more general case:
    select * from xy where not exists (select * from uv where not exists (select * from uv where x = 1))
    =>
    select * from xy where not (exists (select * from uv) and not (exists (select * from uv) and x = 1))
    Further simplification would be helpful.
  • 1649: fix batched insert ... on duplicate update ...
    We create new table edit accumulators for inserter and updater fields for the insert node, which messes up batched inserts as certain edits are not visible between the two. The fix is two do what dolt does, and share edit accumulators.
    fix for: #5433
    Context: dolthub/go-mysql-server#1642 (comment)

Closed Issues

  • 5433: Keyless Tables with a Unique Key do not enforce uniqueness and create extra values on insert
  • 5526: call dolt_checkout new branch error after force deleting existing branch

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 2.71 1.4
groupby_scan 12.3 16.12 1.3
index_join 1.23 3.96 3.2
index_join_scan 1.16 2.03 1.7
index_scan 30.26 51.94 1.7
oltp_point_select 0.15 0.48 3.2
oltp_read_only 2.97 8.43 2.8
select_random_points 0.3 0.73 2.4
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 53.85 1.7
types_table_scan 70.55 161.51 2.3
reads_mean_multiplier 2.3
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 5.0 5.57 1.1
oltp_insert 2.43 2.71 1.1
oltp_read_write 6.55 15.55 2.4
oltp_update_index 2.57 2.86 1.1
oltp_update_non_index 2.52 2.76 1.1
oltp_write_only 3.55 7.3 2.1
types_delete_insert 4.82 6.32 1.3
writes_mean_multiplier 1.4
Overall Mean Multiple 1.9

Don't miss a new dolt release

NewReleases is sending notifications on new releases.