github dolthub/dolt v1.76.0
1.76.0

latest releases: v1.76.2, v1.76.1
2 days ago

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_DIFF test with IN and NOT IN
  • 9978: Replace uses of io.EOF in merge logic with an explicit return value.
    Previously, methods in patch_generator.go would return io.EOF to 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 be io.EOF and 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 return io.EOF instead 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 #9955
    • docker-entrypoint.sh now matches the order of operations of MySQL's entry point, user and database environment variables are configured before the docker-entrypoint-init.d/ directory.
    • Added missing dependencies for SQL file extraction inside of serverDockerfile.
    • docker-entrypoint-initdb.d files are now piped directly into dolt sql to fix Argument list too long error when parsing a large dump.
    • docker-entrypoint-initdb.d files now output their query results.
    • Some status messages have changed to match MySQL's entry point.
    • Increased timeout on run_container in bats integration tests to reduce false positives.
    image

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 BY ignoring terminator inside of field when using LOAD 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: IN subquery predicate with NOT IN incorrectly returns rows when querying DOLT_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

Don't miss a new dolt release

NewReleases is sending notifications on new releases.