Merged PRs
Backwards Incompatible Changes
This version makes the Docker entry point script for dolt-sql-server execute initdb.d/ scripts after the server is started. This means if the DOLT_USER or DOLT_DATABASE environment variables are specified and a later script tries to create the same items a conflict may occur.
Per Dolt’s versioning policy, this is a minor version bump because these changes may impact existing applications. Please reach out to us on GitHub or Discord if you have questions or need help with any of these changes.
dolt
- 9979: #9977: Add
DOLT_DIFFtest withINandNOT IN - 9978: Replace uses of io.EOF in merge logic with an explicit return value.
Previously, methods inpatch_generator.gowould returnio.EOFto indicate that it had finished diffing two branches and that there were no more differences.
While this was a simpler interface, it meant that callers had to know whether or not it was possible for the returned error to beio.EOFand had to remember to check for it. Otherwise, that error could get propagated to the method's own caller.
This caused a correctness bug, where a function was assumed to never returnio.EOFinstead of checking for it.
A safer approach is to have a separate return value to indicate whether or not there can possibly be any more patches. That way, failing to check this value would become a compiler error. - 9961: docker-entrypoint.sh: Add missing dependencies for SQL file extraction and amend MySQL entry point behavior
Fixes #9955docker-entrypoint.shnow matches the order of operations of MySQL's entry point, user and database environment variables are configured before thedocker-entrypoint-init.d/directory.- Added missing dependencies for SQL file extraction inside of
serverDockerfile. docker-entrypoint-initdb.dfiles are now piped directly intodolt sqlto fixArgument list too longerror when parsing a large dump.docker-entrypoint-initdb.dfiles now output their query results.- Some status messages have changed to match MySQL's entry point.
- Increased timeout on
run_containerinbatsintegration tests to reduce false positives.
go-mysql-server
- 3276: Truncate strings for datetime conversion
fixes #9917 - 3275: #9977: Prevent filter pushdown for Anti joins for
NOT IN
Fixes #9977
Companion #9979 - 3274: Do not convert full outer joins to cross joins
fixes #9973 - 3270: #9969: Fix
ENCLOSED BYignoring terminator inside of field when usingLOAD DATA INFILE
Fixes #9969 - 3269: Add Grafana to listed Backends
- 3267: Fix GroupBy validation for queries with Having
fixes #9963
In #3166, I had skipped adding aggregate function dependencies to the from scope of the Having node because they were being included in the select expressions during GroupBy validation. However, removing them caused other scoping issue.
So I undid the skip, and instead of using the select expressions from the innermost Project node, we now use the select expressions from the innermost Project node that is not a direct child of a Having node. This exposed a bug where we were not able to resolve aliases in OrderBy expressions so I added Alias expressions to the select dependency map used for resolving OrderBy and Select expressions
Closed Issues
- 9917: Inconsistency of DATETIME between Dolt and MySQL
- 9977:
INsubquery predicate withNOT INincorrectly returns rows when queryingDOLT_DIFF - 9969: Enclosed fields not handled correctly in
LOAD DATA - 9973: full (outer) join on empty table returns empty set
- 3221: go-mysql-server can no longer claim to be "pure Go"
- 3264: Panic When Comparing Decimal against NaN