github dolthub/dolt v0.40.10
0.40.10

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

This is a patch release with bug fixes and performance improvements.

  • Bug fix for dolt_diff system table and null values.
  • Bug fix for max_connections system variable
  • Bug fix for polygon types with multiple linestrings
  • Better performance for dolt table import
  • Differentiate between staged and unstaged changes in dolt_diff results
  • Updated README to be more database-centric
  • Bug fix for certain REGEXP expressions
  • Fix for dolt dump output involving string literals

Merged PRs

dolt

  • 3635: Liuliu/root hash does not exist panic
  • 3630: bugfix: using nils instead of "NULL" strings
    The dolt_diff system table was returning literal "NULL" strings instead of nil values. This worked in the enginetests, but when they get printed out in a shell they couldn't be converted into a datetime and produced an error.
  • 3622: Changed CLI docs generation to use bold paragraphs instead of subheadings for arguments etc.
    Also cleaned up a nonsensical set of doc interfaces
  • 3619: Fix setting max_connections in server yaml
    We use system variables depending on whether a variable is user-defined variable or not. The issue was variables defined in config variable was not used in starting new sql engine. When max_connections variable was defined in config file either through yaml file or on command line, it should use that value, if not it uses default value. We check for persistence behavior. If it's set to load, then use the value of global max_connections variable, otherwise use value set in server config, which can either be default or user defined value.
  • 3611: fixing panic when creating a polygon with more than one linestring
    geom_db> create table t (p polygon);
    geom_db> insert into t values (polygon(linestring(point(1,1),point(2,2),point(3,3),point(1,1)),linestring(point(1,1),point(2,2),point(3,3),point(1,1)));
    Query OK, 1 row affected
    geom_db> select * from t;
    panic in ExchangeIterPartitionRows: runtime error: slice bounds out of range [260:140]
    
    fix was just a typo multiplying the index to be way out of range
    enginetests for this case in GMS PR
  • 3608: Add a warning for imports where the file's schema is smaller than the table's schema
    We should warn the user when executing a partial import as it may have antagonistic behaviors when import files do not properly match a table schema. For example consider a table with the schema (pk, val). If I import a file with schema (pk, va) the second column will get dropped by the importer.
  • 3606: Get branches by root hash
  • 3598: Simplified types, removed some type checks, fixed SELECT output
    DECIMAL, ENUM, SET, and TIME have all been simplified to return a consistent and expected value type (which cleanly maps to storage). This lets us bypass type checking in some places. In addition, we now have consistency between the output of CLI commands and a client's output when connected to the server (these were different in some scenarios).
  • 3597: Modified README to be more "database version control"-centric
    Maps to this blog:
    https://www.dolthub.com/blog/2022-06-13-version-controllled-database-getting-started/
  • 3591: Support the bulk edit accumulator for dolt table import
    At release 0.34.5 we introduced the new import path that supported import through the sql engine. Recently, I noticed that there was a performance decrease at imports of the size ~10M rows compared to the 0.34.4 version of import. Performance was improved by adding support to the bulk edit accumulator.
  • 3584: update bats test for columnDefaultValue changes in GMS
    Depends on dolthub/go-mysql-server#1036
  • 3581: Differentiate between staged and unstaged table deltas in dolt_diff system table

go-mysql-server

  • 1064: Add more exhaustive cases for int, uint conversion
    fix for #3632
  • 1062: adding enginetests to scriptgen
  • 1060: remove suffix check
    NOW() does not have prefix ( but has suffix )
  • 1059: Adding EngineTests for polygons with multiple linestrings
  • 1056: Allow REGEXP args to be converted
    fix for #1055
  • 1053: Added type wire tests
    This enforces that we're returning the correct data over the wire (which may differ from the storage values). Majority of the fixes made have been moved to the parent PR (dolthub/go-mysql-server#1044) so that this one is not quite as large. They're all fairly straightforward, hence I don't think they require review.
    The expected test output has been validated against MySQL (using the shim). In addition, this also enforces that the results are coming from the Type.SQL() function by running the output of a sql.RowIter (gathered from the directly querying the engine) through the Type.SQL() function and ensuring it matches.
  • 1044: Type value changes & row type assertions
    This PR has two primary goals:
    1. All types now pass their values around in a form most suitable to that type.
    2. Enforce that the aforementioned types are always passed to integrators, such that integrators do not need to do type validation on their end.
      To elaborate on these points, some types already passed around values that were sensible and a best fit for that type, such as MEDIUMINT returning an int32. Other types, such as DECIMAL, passed around strings, which necessitated conversions for integrators to be able to properly persist the values. Not only that, there is currently no guarantee that a row's values each have their best fit type (a BIGINT can work with an int8, but it should be able to always expect int64). To make these guarantees, I'm adding a check at all GMS-integrator junctions that pass a sql.Row and verifying that the value types are exactly what that column expects.
      This may have the side effect of changing the output of a SELECT statement for integrators. As a SELECT statement simply returns a sql.RowIter, additional logic will be needed to convert all values to their canonical MySQL representation. This can easily be achieved by passing all values through Type.SQL() before display.
  • 1036: single quoted default value in create table statements
    Current Dolt default literal values are stores in double quotes, but MySQL does not parse double quoted default literal value in CREATE TABLE statements for both sql shell and importing dumps.
    Fixes #3218
    Added character set and collation columns for show create view

Closed Issues

  • 3618: setting listener.max_connections in server yaml does not reflect in system variables
  • 3601: dolt table import should print a warning message if there is a schema mis-match
  • 3612: Fix Elixir Installation for mysql-client-tests
  • 3218: dolt dump has incorrect default values for create table statements
  • 3583: Error: [2057] when fetching remote table at non-HEAD commit following schema change using as of
  • 1055: REGEXP '^[-]?[0-9]+$' fails on int64 column.

Don't miss a new dolt release

NewReleases is sending notifications on new releases.