github dolthub/dolt v0.40.26
0.40.26

latest releases: v1.43.1, v1.43.0, v1.42.20...
2 years ago

This release supports collations and charsets in the new __DOLT__ format. To create a database in the new format, run dolt init --new-format. The new format is about 3X faster than the original __LD_1__ format.

Merged PRs

dolt

  • 4097: Fix for diffing across Dolt databases
  • 4093: allow optional empty value for string value for arg parsing
    --socket flag can be defined without value, which should get default value of /tmp/mysql.sock
    To allow empty string as value, added a new arg option type.
  • 4089: don't overwrite parent's .doltcfg if current is missing
    fixes: #4088
  • 4087: go/store/{nbs,datas/pull}: Fix race condition in concurrent pulls which can truncate a table file.
  • 4073: Preserve enum value case when emitting type metadata
    Depends on: dolthub/go-mysql-server#1179
  • 4070: Prevent use [db]/[tag] from creating duplicate revision db
    Fixes #4030
  • 4061: Index Builder more efficient for secondary lookups
  • 4051: Real Collation Support
    This PR adds real collation support to Dolt, primarily through the new __DOLT__ format. The old format does not intentionally support collations, however general GMS improvements do have some effect on the correctness of the old format.
    Related PR: dolthub/go-mysql-server#1147

go-mysql-server

  • 1185: empty host is any host
    Fixes issue where empty string for host should be "%".
    Context: dolthub/go-mysql-server#1151 (comment)
  • 1184: Added more wire tests for collations
  • 1179: Preserve original enum value case on retrieval
    When retrieving enum values for ShowCreateTable,Information_Schema.Columns, and Describe/ShowColumns, they were always being converted to lowercase, which doesn't match MySQL's behavior. Instead, we should preserve the case each enum value was defined with, whenever we return those values.
    This did not affect enum values returned as part of table data – these values were already correctly preserving the originally defined case.
    Fixes: #3991
    Fixes: dolthub/go-mysql-server#1161
  • 1177: Secondary Lookup Range Templates
    Do not use the IndexBuilder for secondary lookups. Directly create the equality ranges and/or nullable filters.
    index_join_scan latency change locally on OXS: 4.8ms -> 3.8 ms (-20%).
    No interface changes, regular Dolt bump passes at the time the PR was created.
  • 1147: Real Collation Support
    This PR adds true support for collations. Most of the files in the encodings package were generated from collation-extractor, and thus inflate the overall line count.
    Many tests have been implemented, however I do plan on replicating most of the engine tests over the wire, but I do not feel that that is a blocker (just additional validation).

vitess

  • 185: add support for grant all privileges to <user>
  • 183: resolving unreserved keyword inconsistencies with MySQL
    Tests have been updated to document the inconsistencies below.
    Changes:
    • unreserved many keywords
    • allow reserved keywords to be used as identifiers when they are qualified
      Words that parse in dolt, but don't in MySQL:
    • dual
    • minute_second
      Words that don't parse in dolt (only in quries that use these in where conditions), but do in MySQL:
    • escape
    • next
    • off
    • sql_cache
    • sql_no_cache
      Fix for: #3977

Closed Issues

  • 4088: dolt sql-server does not look in parent directory (as per spec) for .doltcfg
  • 2161: Support case-insensitive collation utf8mb4_general_ci
  • 3985: --socket option says it defaults to /tmp/mysql.sock but it does not
  • 4074: Update query has matches but no rows changed -- parser bug?
  • 3991: Add support for case-sensitive text in ENUM options
  • 3948: granting all privileges leads to syntax error
  • 4030: Creating a tag at commit that already exists in databases list and then calling use db/tag overloads procedures
  • 3217: TestSpatialQueries in Dolt
  • 3979: Dolt insists reserved words are always quoted
  • 1091: expose JoinComplexityLimit system variable

Don't miss a new dolt release

NewReleases is sending notifications on new releases.