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 forShowCreateTable
,Information_Schema.Columns
, andDescribe/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 theencodings
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