github dolthub/dolt v1.26.1
1.26.1

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

Merged PRs

dolt

  • 7003: Print an error when server args don't validate
    We aren't printing any errors from sql-server when there are unparsable flags.
    Previous Behavior:
    $ dolt sql-server --rasdjdsdlsdk
    $ echo $?
    1
    
    New Behavior:
    $ dolt sql-server --rasdjdsdlsdk
    error: sql-server does not take positional arguments, but found 1: asdjdsdlsdk
    $ echo $?
    1
    
  • 6996: go: sqle: cluster: commithook: When shutting down the server, the cluster replication commithook could deadlock after the replication thread missed a wakeup signal.
    Fix it so that the wakeup thread is guaranteed to see the canceled context or the wakeup signal.
  • 6992: go/libraries/doltcore/remotesrv: Ensure we stop the gRPC server and cancel inflight requests when we are multiplexing one port for HTTP and gRPC traffic.
  • 6977: Improve the persistence of the file that stores USERs and GRANTs.
    The USERs and GRANTs on a sql-server instance are stored in a separate file from the Merkle DAG table data that makes up the Dolt databases themselves. Previously, the contents of this file were not written in a crash resistant way, and they could be lost or corrupted after a crash or when taking a block-device snapshot.
    This change also changes the file's permission bits to be 0600, instead of 0777, which was much more permissive than intended.
  • 6974: Support merging schemas with virtual / generated columns
    Substantially addresses #6945, although there are a couple remaining edge cases that are hard to crack, in this PR as skipped tests.

go-mysql-server

  • 2144: Push filters insensitive to table name
    Filter pushing bug that is specific to 1) table names with capital letters, and 2) filters that need to move through joins. The problem is not indexing specifically, but checking for an index is the easiest way to test this.
    dolt bump: #7001
  • 2142: Idx histogram manipulation
    Add simple histogram mutators for filter types. Use histogram costs for index selection when available. Added stats docs.
    Dolt enginetests seem to be passing. Companion here: #6997
    TODO:
    • I'd like to block statistics when only partially provided
    • TPCC plans are changed and I want to revert. Blocking partial statistics might fix those, I'm trying to get all of the actual index statistics for those tables as a better enginetest/blog example.
  • 2141: Fixing field metadata for JSON and geometry types
    JSON and geometry types should always report a binary collation in MySQL's field metadata. While debugging #6970, I noticed that MySQL was sending a binary collation for these types, but GMS was sending back the default collation.
  • 2140: Respect character_set_results when emitting field metadata
    For non-binary types, we need to respect the value for the character_set_results session var (when not NULL) and use that for the field metadata returned in the MySQL wire protocol.
    The unexpected charset/collation metadata is causing DataGrip to be unable to work with some types in the table editor ( see #6970 for more details).
    I've validated this behavior with MySQL by inspecting packets with Wireshark. For testing, we were already testing the behavior of character_set_results and the charset translation, but we weren't testing the field metadata. I added support to check against the expect charset field metadata, but had to use reflection to get that data from the MySQL driver, since it's not exposed through the standard golang sql database APIs.
  • 2135: Resolve indexes of columns in CREATE TABLE statements early

Closed Issues

  • 6945: virtual column merges don't work
  • 6970: Regression: Pasting into Datagrip TEXT field puts null

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.11 2.71 1.3
groupby_scan 12.98 17.63 1.4
index_join 1.37 5.0 3.6
index_join_scan 1.27 2.18 1.7
index_scan 34.33 54.83 1.6
oltp_point_select 0.17 0.43 2.5
oltp_read_only 3.3 7.56 2.3
select_random_points 0.32 0.72 2.2
select_random_ranges 0.38 0.86 2.3
table_scan 34.33 54.83 1.6
types_table_scan 74.46 155.8 2.1
reads_mean_multiplier 2.1
Write Tests MySQL Dolt Multiple
oltp_delete_insert 7.98 6.79 0.9
oltp_insert 3.75 3.36 0.9
oltp_read_write 8.28 15.0 1.8
oltp_update_index 3.82 3.36 0.9
oltp_update_non_index 3.82 3.36 0.9
oltp_write_only 5.28 7.56 1.4
types_delete_insert 7.56 7.43 1.0
writes_mean_multiplier 1.1
Overall Mean Multiple 1.6

Don't miss a new dolt release

NewReleases is sending notifications on new releases.