github dolthub/dolt v1.78.3
1.78.3

17 hours ago

Merged PRs

dolt

  • 10111: Implement DOLT_JSON_DIFF table function
    This defines a new system table function DOLT_JSON_DIFF(arg1, arg2)
    For each difference between the two provided JSON objects, this function produces a row describing the path to the changed value, and the before and after values. It can be used in a lateral join with other system tables to show changes in multiple rows or across multiple commits.
    The tests in dolt_json_diff_test.go are go tests for the table function, confirming that it has the same behavior as the unit tests for the underlying differ.
    The added engine tests are used to test more complicated behavior, such as using this table function in a lateral join.
  • 10096: Add require_client_cert to sql server configuration options
    Adds a new require_client_cert property to the listener section of a sql server configuration file. When enabled, clients must present a certificate and must connect over a secure connection. If ca_cert is also provided in the server's configuration, the provided client cert will also be verified against the server's CA cert.
    Note that this mode prevents dolt sql from being able to connect to a running Dolt SQL server, since dolt sql will connect to the server but does not have a valid client cert and private key to use.
    Related to #10008
    Doc updates dolthub/docs#2718

go-mysql-server

  • 3315: cache static groupby schema
    The schema throughout a groupby query does not change, so we should not be recreating one for the grouping key each time.
    Benchmarks: #10119 (comment)
  • 3314: server/handler: Add ConnectionAuthenticated callback which Vitess can call once the connection is authenticated.
    Previously gms relied on the ComInitDB callback to update the processlist with the currently authenticated user. This resulted in the processlist showing "unauthenticated user" for connections which were already authenticated but which had not issued a ComInitDB. Those connections could issue queries which would also appear in the process list. Adding an explicit callback when the authentication is successful and allowing the processlist entry to be Command Sleep with an authenticated user even when no database is selected is more correct behavior here.
  • 3310: Split Iter.Next(), RowToSQL, and callback into separate threads
    This PR expands on an optimization where we separate iter.Next() and RowToSQL + callback() into two separate threads. Now, iter.Next(), RowToSQL, and callback() all run in their own goroutines with corresponding buffered channels communicating between them.
    Additionally, this PR tidys up the resultForDefaultIter and resultForValueIter code.
    Benchmarks: #10103 (comment)

vitess

  • 444: go/mysql: server.go: Add a callback on Handler, ConnectionAuthenticated, which is called immediately after the connection is authenticated.
    This allows a server implementation to know the authenticated user without waiting for the first command interactions, such as ComQuery or ComInitDB.
  • 443: Updating auth interfaces to pass connection
    Enables implementations to have access to the connection. Needed as part of mutual TLS auth work so that implementations can validate connection properties. Also matches the interface definitions in the official vitess repo.

Closed Issues

Don't miss a new dolt release

NewReleases is sending notifications on new releases.