github dolthub/dolt v1.7.0
1.7.0

latest releases: v1.41.2, v1.41.1, v1.41.0...
12 months ago

This release contains backwards incompatible changes:

  • Dolt commands which have been migrated to use SQL (sql, add, blame, status, commit, branch) have new behavior which may impact existing user workflows. Specifically, If the --user flag is in use, there is a new --password argument which will be required. If one is not presented, you will be prompted for a password, and this will hang waiting for input. Furthermore, previously these commands would allow users to specify incorrect credentials silently. If bad credentials are given now, the commands will fail appropriately. If you want to use a password in your automated jobs, but don't want to specify the password on the command line, you can set the DOLT_CLI_PASSWORD environment variable.

Per Dolt’s versioning policy, this is a minor version bump (major.minor.patch).

Merged PRs

dolt

  • 6237: chore: fmt modify
    unnecessary use of fmt.Sprintf
    use fmt.Errorf(...) instead of errors.New(fmt.Sprintf(...))
    use fmt.Printf instead of fmt.Println(fmt.Sprintf(...)) (but don't forget the newline)
  • 6235: Bring back pretty content for commit when commiting to a local db
    The output of the commit command changed with: #6138
    This change brings back the pretty log command output when running in a local context. This is a temporary change since we probably won't get to the log command for awhile yet.
  • 6234, 6233, 6232: Continuous Integration Updates
  • 6229: Support for dolt_ procedures inside user stored procedures
    These are just tests, the actual necessary changes are in dolthub/go-mysql-server#1852
    This addresses a large part of #5829, but see the last comment there: because of how we analyze / execute stored procedures, things dolt_checkout() doesn't work in stored procedures in some cases (namely when using unqualified table names).
  • 6176: Enable authentication in the CLI commands migrated to sql backend
    Enable Authentication in the following ways:
    • New Global Flag --password
    • DOLT_CLI_PASSWORD environment variable
    • Ask for a password with a prompt.
    • Automatic authentication to a server using the secret in the sql-server.lock file
      One significant change in behavior is that previously if a user presented a non-sense username/password, we'd accept it as a super user identity. If a real user was specified, we would promote that user to a super user - regardless of if the password was correct.
      Now, if a --user flag is presented, the user must present a password by flag, env var or prompt. If the user/pwd combination is not a known user, the command will fail. This applies to both local and remote mode.
      Important to call out that this isn't about security. If you want to be a super user, you can just not provide a --user. This behavior is to enable consistent behavior of client applications where they need to test permissions. We were making this impossible before because bad credentials were being promoted.
      Related: #3922

go-mysql-server

  • 1848: IntDiv.Type() should always return either uint64 or int64
    Previously, our IntDiv.convertLeftRight() used IntDiv.Type() to determine the larger type between IntDiv.Left.Type() and IntDiv.Right.Type() to avoid precision loss when doing internal calculations. Now, that logic is moved from IntDiv.Type() to IntDiv.convertLeftRight(), and IntDiv.Type() can only return uint64 or int64.
    This should fix the sql correctness regression from dolthub/go-mysql-server#1834
  • 1847: Fix TargetSchema.Resolved() to check targetSchema column default expressions
    A couple SchemaTarget implementations weren't checking if the targetSchema was resolved as part of the Resolved() method. Added tests, audited the other implementations, and simplified the logic to use a new method on Schema to check that column default expressions are resolved.
    Fixes: #6206
    Dolt CI Run: #6213
  • 1839: Slow degenerate semi join, hoist select opt
    This enables recursive subquery decorrelations, and adds a hash join execution option for semi joins that is equivalent to cached subquery existence checks.

Closed Issues

  • 5829: dolt_commit() will break some following statements in stored procedures

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 2.66 1.4
groupby_scan 12.3 17.01 1.4
index_join 1.16 4.41 3.8
index_join_scan 1.12 2.11 1.9
index_scan 30.81 54.83 1.8
oltp_point_select 0.15 0.46 3.1
oltp_read_only 2.86 7.98 2.8
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.06 3.0
table_scan 30.81 54.83 1.8
types_table_scan 70.55 155.8 2.2
reads_mean_multiplier 2.3
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 5.18 5.88 1.1
oltp_insert 2.57 2.91 1.1
oltp_read_write 6.32 15.27 2.4
oltp_update_index 2.48 3.07 1.2
oltp_update_non_index 2.57 2.91 1.1
oltp_write_only 3.55 7.43 2.1
types_delete_insert 5.09 6.55 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.