Skip to content
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

dolt 1.29.0 #156144

Merged
merged 2 commits into from
Dec 1, 2023
Merged

dolt 1.29.0 #156144

merged 2 commits into from
Dec 1, 2023

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
# Merged PRs

dolt

  • 7084: Fix existant typo
  • 7077: remove dolt sql-client command
    Fully deprecates dolt sql-client by removing the CLI command.
    Resolves: Deprecate dolt sql-client dolthub/dolt#6886
  • 7069: go/cmd/dolt: Implement new semantics for sql-server.lock.
    Previously sql-server.lock served two purposes: (1) attempt to keep two sql-server's from running against a Dolt database at the same time and (2) allow the Dolt binary to work seamlessly as a client when it was run against a Dolt database where a sql-server was already running locally. The previous implementation involved writing process state into multiple directories across the disk and checking that filesystem state against currently running processes in an attempt to choose the correct behavior for a given Dolt invocation.
    This changes the sql-server.lock file to only be responsible for discovery in the second case. The first case is handled by querying the storage layer for any Dolt databases which will be served as part of a running sql-server. In order for the sql-server to start successfully, it must have exclusive write access to every Dolt database it will be serving. dolt sql-server is changed to only write the sql-server.lock file into the top-level data_dir of the running server. In exchange, all other dolt invocations which are looking for a running server are changed to look in successive parents of their data_dir in an attempt to find connection details for the running server.
    The --ignore-lock-file option is deprecated, but still successfully parsed and ignored to avoid needlessly breaking existing users.
  • 7062: aws sdk upgrade
    Original: Migrate AWS SDK for JavaScript v2 APIs to v3 dolthub/dolt#6948
  • 7059: hasher utility
  • 7054: remove dolt stored procedure aliases
  • 7042: Run nullness checking on merged rows during three-way merges.
    This fixes one of the failures from Merging in a schema change can bypass constraint checks, causing panics or unrecoverable errors. dolthub/dolt#7034, but it's the more important one (the panic)
    Before, we would panic when attempting to compute a merged row if that row would contain a null in a non-null column.
    Now, we allow this row to be generated, and we validate it before merging it into the table.
  • 7035: Detect data conflicts even when one branch has the same binary representation as the ancestor.
    Fixes Three Way Merging won't consider a row to have a data conflict if either side has the same binary rerpresentation as the base.  dolthub/dolt#6746
    This fixes a bug where the following situation fails to detect a conflict:
    Branch Value
    Ancestor (1, 2)
    Left (1, 2, NULL)
    Right (1, 2, 3)
    Both branches add a column but add different values to it. This should be a data conflict, but we currently don't detect it because Ancestor and Left have the same bytes in storage.
  • 6938: Bump golang.org/x/image from 0.5.0 to 0.10.0 in /go
    Bumps golang.org/x/image from 0.5.0 to 0.10.0.
    Commits
    • cb227cd tiff: limit work when decoding malicious images
    • a5392f0 bmp: support to decode 8-bit format with up to 256 color palette
    • f9550b0 go.mod: update golang.org/x dependencies
    • 81c166c go.mod: update golang.org/x dependencies
    • ed5dba0 go.mod: update golang.org/x dependencies
    • 08ca817 font: have Glyph return !ok for U+FFFD substitute
    • b6ac75b go.mod: update golang.org/x dependencies
    • 1b74412 font/sfnt: set type for all NameID constants
    • f632f7f tiff, tiff/lzw, vector: use single space in comments
    • See full diff in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/image&package-manager=go_modules&previous-version=0.5.0&new-version=0.10.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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) 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

  • 2175: Fix existant typo
  • 2171: Bug fixes for type handling in IF and COALESCE functions
  • 2170: have flush binary logs be noop
    fixes Support flush binary logs dolthub/dolt#7055
  • 2169: Unique table and column ids
    The motivation for this PR is making the costing/exploration phase consistent with the data structures for index costing. That means switching memo ScalarExpr back to sql.Expression. Moving the previously join-specific ids in ScalarExpr to tables and column refs lets us preserve most memo data structures and join transformation logic. The alternative to combining these changes would be to rewrite all of the memo data structures and transformation logic to not use ids, which would be a fairly long and difficult process.
    Change summary:
    • expression.GetField has table and column ids now
    • relational source nodes have sql.TableIdNode to embed unique table ids and a range of source columns ids
    // TableIdNode is a distinct source of rows associated with a table
    // identifier and set of column identifiers.
    type TableIdNode interface {
    NameableNode
    WithId(id TableId) TableIdNode
    Id() TableId
    WithColumns(ColSet) TableIdNode
    Columns() ColSet
    }
    • exploration phase uses sql.Expression and the new ids
      Most of the diffs in this PR are from adding tables and column ids to DebugString and auto-changes to expression.NewGetFieldWithTable. The substantive changes are folded in planbuilder, memo.go, rel_props.go, indexed_joins.go, and join_order_builder.go.
      SetOp, GroupBy, and Window are 3 outliers that implement TableIdNode but lack the ability to represent all of their expressions with id's. All expressions should eventually get ids, but we would only need a subset of expression types to have ids for this to work for these nodes (ex: GroupBy's colset would be aggregate expressions and any passthrough GetFields). One customer that updates Dolt versions infrequently would see a couple HASH_JOIN fallback to INNER_JOIN until this is fixed.
      TODO
    • a couple integration query plans are different now, I think because of the 3 outliers above
    • follow up PR deleting deprecated code
      Dolt bump: [no-release-notes] Unique ids bump dolthub/dolt#7067
  • 2168: fix panic in math funcs
    fixes Crash by SQRT dolthub/dolt#7060
    Additionally, fixes POW() to not have the same panic and returns warnings instead of errors for certain inputs to LOG().
  • 2166: prevent panic on nil cast for time functions
    fixes Crash by Time Functions dolthub/dolt#7056
  • 2165: fix update <table> set <column> = default
    This PR fixes a bug where attempting to update a column to its default would throw an unresolved error.
  • 2158: have DayName() return NULL on bad DATETIME conversions
    fixes Crash by Function DAYNAME dolthub/dolt#7039
  • 2156: Decorrelate IN_SUBQUERY refactor
    Decorrelating IN_SUBQUERY into subquery aliases adds new relations to the query plans in a way that makes table and column identifier tracking difficult. So instead of converting select * from xy where x in (select u from uv) into a subquery alias join:
    Filter(
    Tablescan(xy),
    InSubquery(
    x,
    Subquery(
    Project(u, Tablescan(uv))))))
    =>
    Join(
    (x = u),
    Tablescan(xy),
    SubqueryAlias(
    'scalarSubq0',
    Tablescan(uv)))
    
    we disambiguate the subquery and create a table-table join:
    Filter(
    Tablescan(xy),
    InSubquery(
    x,
    Subquery(
    Project(u, Tablescan(uv))))))
    =>
    Join(
    (x = u),
    Tablescan(xy),
    Tablescan(uv))
    
    We disambiguate table names and column references in the process of unnesting scopes to avoid table name clashes.
    This change is better in most places, but worse in instances when we cannot unnest now because the RHS equality expression is not a valid get field reference, for example when the subquery returns the value of a GROUP_BY or WINDOW or a synthesized alias (anything without a source column Id). This is fixable in the future.
    This also fixes a few ANTI_JOIN problems that this refactor exposed.

Closed Issues

  • 6062: Dolt interactive sql-client cli: Support database name for connection
  • 6886: Deprecate dolt sql-client
  • 7029: sql-server.lock file preventing docker instance from running
  • 7055: Support flush binary logs
  • 6746: Three Way Merging won't consider a row to have a data conflict if either side has the same binary rerpresentation as the base.
  • 7060: Crash by SQRT
  • 7056: Crash by Time Functions
  • 7048: Similar queries return different results with different orderings of the where clause
  • 2159: VSCode debug Build Error

@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 Dec 1, 2023
Copy link
Contributor

github-actions bot commented Dec 1, 2023

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

@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 Dec 1, 2023
@BrewTestBot BrewTestBot enabled auto-merge December 1, 2023 22:14
@BrewTestBot BrewTestBot added this pull request to the merge queue Dec 1, 2023
Merged via the queue into Homebrew:master with commit 8789606 Dec 1, 2023
12 checks passed
@BrewTestBot BrewTestBot deleted the bump-dolt-1.29.0 branch December 1, 2023 22:23
@github-actions github-actions bot added the outdated PR was locked due to age label Jan 1, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
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 outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants