github dolthub/dolt v1.11.0
1.11.0

latest releases: v1.43.13, v1.43.12, v1.43.11...
15 months ago

This release contains backwards incompatible changes:

  • schema changes to the dolt_schemas and dolt_procedures system tables to allow @@SQL_MODE to be stored for schema fragments, as part of support for the ANSI_QUOTES parsing mode. Existing databases will have their system tables automatically upgraded to the new schema.
  • The stored procedures for dolt_clone() and dolt_remote() no longer support for the optional flags related to AWS (--aws-region, --aws-creds-type, --aws-creds-file, --aws-creds-profile). There is no longer a mechanism to set these values on a running server.

Per Dolt’s versioning policy, this is a minor version bump because of the schema changes for these two system tables. For safety, this release also updates the Dolt feature version to version 4, meaning that once a database is upgraded by using this release, interacting with that database through the dolt CLI requires version 1.11.0 or higher.

Merged PRs

dolt

  • 6515: Prevent dolt sql from allowing LOAD_FILE from directories outside of working directory
  • 6513: dolt sql-server: Add a system_variables: key to config.yaml, which allows setting global system variables.
    For example, this can be used to set secure_file_priv when the server starts up. That variable is non-dynamic, so it cannot be set with SET @@GLOBAL...
  • 6511: Bug fix: panic in schema merge when schema contains BLOB columns
    When processing a schema merge, we need to update existing, stored data in the primary index. We weren't updating the value descriptor in the prolly map to the new version from the changed schema, which started causing a problem with BLOB/TEXT types since validation checked that the value stored in those fields was a valid address pointing outside of the table to the real data.
    Related to #6496 – the reason that PR wasn't able to cleanly repro the exact failure was because the merge was getting short circuited, since the right and left sides weren't both making changes, so essentially the merge was getting fast-forwarded instead.
  • 6506: Drop the aws flags from the dolt_remote() procedure
    Apparently there are no tests for these flags because the tests don't blow up if I remove them. We still allow the flags in the CLI context though.
  • 6505: Create SECURITY.md
  • 6485: Fixed Full-Text merge bug, removed pseudo-index tables from view
    This does two primary things. First, it removes the pseudo-index tables from dolt status, the status table, merge, and diff outputs. This allows them to match the other index tables, which don't show up in those views anyway. Second, it fixes a bug during merge where the pseudo-index tables are the only ones that have been renamed. The setup is very unlikely, but it's been fixed nonetheless.
  • 6465: ANSI_QUOTES support
    Adds support for honoring the ANSI_QUOTES SQL mode. When this SQL mode is enabled, anything in double quotes is assumed to be an identifier, and not a string literal.
    Corresponding GMS PR: dolthub/go-mysql-server#1915
    Fixes: #6305

go-mysql-server

  • 1942: Full-Text Fixes Pt. 3
  • 1941: Bug fix for JSON_ARRAY function with binary arguments
    Binary args are now treated as character strings
    Also added a testing path to ScriptTests that let you inject Vitess bindvars to exercise more server logic
    Fixes dolthub/go-mysql-server#1855
  • 1940: Add SECURITY.md.
  • 1937: Remove do-nothing logic from pushdown.go
    This code is for an optimization that "pushes" filters deeper into the tree so that they're adjacent to the tables they modify.
    I've simplified the logic in two ways:
    • Removed handling of IndexedTableAccess nodes. This analysis pass used to run after these nodes were generated, but now runs before, so this code path will never be hit. Removing this logic makes it easier to make future changes to IndexedTableAccess
    • Removed the withTable subfunction, which never actually does anything, because the only table it will attempt to assign to a ResolvedTable is the table already on the node. This was likely leftover from a previous cleanup.
  • 1935: Allow timestamps when encoding json
    As reported on discord, Nautobot, through DJango, puts time stamp data into a json object. This fails because:
    db> select JSON_OBJECT("a", Now());
    unsupported type: time.Time
    
    This change enables the encoding of a time stamp into a string.

vitess

  • 264: Revert dolthub/vitess#261
    Change in description breaks prepared statements that send a value with character data above the max size of a CHAR column (256 bytes).
    Fixes dolthub/dolthub-issues#489
  • 263: Add SECURITY.md.
  • 261: Preserving bind var type for sqltypes.Char params
    When a caller executes a prepared statement, they send the parameters as well as parameter type information to the sql-server. Vitess populates bindvars type information that go-mysql-server uses to execute the query. Vitess is currently converting many SQL types to VARBINARY, including CHAR, which makes it look like binary data was sent and not a char string, like the caller indicated.
    This change stops converting sqltypes.Char bind var type info into VARBINARY, which enables go-mysql-server to see that a char string was passed. Without this type information, go-mysql-server doesn't seem able to differentiate between legitimate binary data sent by the client versus a character string. Since these types need to be handled differently, and we can't assume that all VARBINARY types can be converted into strings, it seems like we need to respect the SQL type the caller indicated for the bind var and pass that up to integrators.
    It seems like this change could be helpful for other SQL types, too, but I wanted to start with just sqltypes.Char to see if this approach causes any other issues.
    Fixes: dolthub/go-mysql-server#1855
    Related go-mysql-server PR: dolthub/go-mysql-server#1919
    Related Dolt PR: #6441

Closed Issues

  • 6305: XCA Tool shows no records when Dolt is used instead of MySQL
  • 6508: Specify database name on running docker image dolt-sql-server
  • 6498: Can't get hosted replication to work. And got a Panic after trying for a while.
  • 6489: json_table prepared errors

Don't miss a new dolt release

NewReleases is sending notifications on new releases.