github dolthub/dolt v0.40.17
0.40.17

latest releases: v1.37.0, v1.36.1, v1.36.0...
22 months ago

Merged PRs

dolt

  • 3818: disable aws params for dolt_sync command run via sql and minor credentialing change
  • 3808: dolt_checkout and read replication working set fixes
    Sql path dolt_checkout used to create a new branch from HEAD
    if the checkout name did not have a remote tracking ref. The CLI,
    on the other hand, will initialize a local branch if a remote tracking
    ref with the same name in the default remote exists. The SQl path
    now mirrors the CLI checkout: if we checkout a new branch, like
    'new_feature', and we have previously fetched that branch from our
    default remote, dolt_checkout('new_feature') will initialize a branch
    using the head commit from the remote new_feature.
    Second, read replication was creating a local tracking branch for
    remote branches (sourced from the master remote), but not creating
    corresponding working sets. This let users attach to new branches with
    use db/new_feature syntax, but prevented users from
    dolt_checkout('new_feature') both for the bug in dolt checkout, but also
    because we created an intermediary state with a local branch, but
    without a corresponding working set. SQL replication will now fetch,
    create the new branch, and create the appropriate working set.
  • 3798: Support per user session variables in the server config
  • 3793: doltcore/sqle/dsess: Return "serialization failure" ER_LOCK_DEADLOCK (1213) on transaction merge conflict, remove DOLT_TRANSACTION_MERGE_STOMP flag and session var
    This change removes the ability to stomp merge conflicts stemming from transaction commit. Instead, transaction merge conflicts return ER_LOCK_DEADLOCK (1213) which signals to the client that the transaction has been rolled back due to failures in locking and/or transaction isolation guarantees. Part of this signal is the ANSI SQLSTATE code of 40001 that is associated with ER_LOCK_DEADLOCK. This code means "serialization failure", which is a more accurate description of the error being thrown by transaction merge conflicts.
    In this context ER_LOCK_DEADLOCK (1213) is a misnomer, and is somewhat misleading to the user. However, this is the only MySQL error code associated with transaction rollback due to serialization failures, and in particular it is recognized by the TPC-C benchmarking utility that we use. This change is partially motivated by Postgres's implementation of REPEATABLE READ which is similar to snapshot isolation.
    companion GMS PR: dolthub/go-mysql-server#1112
  • 3792: Backup success=1, error=0
  • 3786: Add --track flag to dolt branch
  • 3777: Drop support for deleting conflicts through cli and add cardinality column for keyless table conflicts
    Support for deleting conflicts "manually" through the cli has been dropped in favor of the equivalent SQL commands.
    Previously you could delete a conflict by specifying the primary key of the conflict:
    dolt conflicts resolve some_table pk_col 1
    Now, you can only delete a conflict through the SQL path:
    dolt sql -q "DELETE from dolt_conflicts_some_table where pk_col = 1"
    In addition, this PR also adds a cardinality column to dolt_conflicts_$tableName for keyless source tables. cardinality is the number of rows with the specified column values.
    For example:
    $ dolt sql -q "SELECT base_c0, base_c1, base_cardinality, our_cardinality, their_cardinality from dolt_conflicts_dupe;"
    +---------+---------+------------------+-----------------+-------------------+
    | base_c0 | base_c1 | base_cardinality | our_cardinality | their_cardinality |
    +---------+---------+------------------+-----------------+-------------------+
    | 1       | 1       | 10               | 6               | 8                 |
    +---------+---------+------------------+-----------------+-------------------+
    This PR also contains changes that reimplements dolt conflicts resolve --ours | --theirs through the SQL path.

go-mysql-server

  • 1113: Init RO sess vars
    I needed a way to initialize read-only session variables so I can set them when a new user connects to a value that depends on which user connects.
  • 1112: Added ErrLockDeadlock, mapped to MySQL error code 1213 and SQLSTATE 40001
  • 1109: Escape backticks in identifier names in show create table
    Updated show create table output to match MySQL's backtick escaping behavior.
    Related to: #3779

Closed Issues

  • 3820: N-gram databases for other-language Wikipedias
  • 3803: Replication and call dolt_checkout() not playing nice.
  • 3791: Dolt backup sync from SQL context returns success 0 instead of success 1.
  • 2970: Dolt does not consider primary keys to be a covering index
  • 3752: Socket not closing
  • 1137: sql: querying repo tags from a system table
  • 1089: I proxies mysql-8.0.23 to go-mysql-server,some problem confuse me

Don't miss a new dolt release

NewReleases is sending notifications on new releases.