github dolthub/dolt v1.2.0
1.2.0

latest releases: v1.43.14, v1.43.13, v1.43.12...
17 months ago

This release contains a behavior change to use the SQL user name for the Dolt commit author, when Dolt is operating in a SQL mode (i.e. when calling dolt_commit() through dolt sql or through a SQL connection to a dolt sql-server).

Per Dolt's versioning policy, this may require users to update code that accesses the committer field of the dolt_log table. Thus, the minor (major.minor.patch) version bump.

Merged PRs

dolt

  • 6026: Remove __LD_1__ from CI
    This is an initial pass at removing integration tests that test the old data format or the migration to the new format.
    The most important thing is the changes to the GitHub action yaml files. We no longer create actions where the default format is LD_1.
    This PR also removes some individual tests that test the old format, but not all of them, only the really low hanging fruit to start. Removing all of these tests will likely be a gradual approach as we edit bats tests.
  • 6025: Use the SQL user as the Dolt commit author when operating in a SQL context
    When operating in SQL mode (e.g. dolt sql or connected to a dolt sql-server), the Dolt commit author is now recorded as the SQL user who created the Dolt commit, instead of using the user info configured through dolt config. Committing from the CLI continues to use the dolt config configured user info.
    Fixes #5607
  • 6014: Allow @@dolt_transaction_commit to be set through sql-server config
    Dolt sql-server YAML configuration can now specify dolt_transaction_commit in the behavior section to automatically set the global value of @@dolt_transaction_commit for a sql-server.
    Prereq for dolthub/hosted-issues#99

go-mysql-server

  • 1795: qualify json_table columns
    Likely due to improved aliasing code, it's simple to qualify columns for json_table.
    This PR
    1. adds skipped tests for currently unsupported functionality for json_tables
    • for ordinality
    • nested paths
    • default
    • error
    1. adds prepared tests for existing json table script and query tests
    2. reorganizes json tests
      MySQL docs for missing functionality: https://dev.mysql.com/doc/refman/8.0/en/json-table-functions.html
      Fix for: #6004
  • 1789: foreign key index match should be on prefix not subset
    Turns out the logic for using an existing secondary index for foreign keys was matching on a subset instead of a prefix.
    For example:
    fks> create table parent (fk1 int, fk2 int, primary key (fk1, fk2));
    fks> create table child (id int unique, fk1 int, fk2, primary key (fk2, fk1, id), foreign key (fk1, fk2) references parent (fk1, fk2));
    
    This should produce a child table that creates a new secondary index over the columns (fk1, fk2).
    But, we don't do that and instead reference some other index (not sure what), causing errors when calling dolt constraints verify --all
    This PR ensures that we only pick an existing secondary index as the underlying index for a foreign key if that index is a prefix for the foreign key.
  • 1788: Divide pushdown
    Pushdown currently performs two sets of transforms.
    1. Push filters as low in the tree as possible:
    Filter(x=1) -> Join(Tablescan(x), Tablescan(y), x=y)
    =>
    Join(Filter(x=1)->Tablescan(x), Tablescan(y), x=y)
    
    1. Convert filters into static index scans:
    Filter(x=1)->Tablescan(x)
    =>
    Indexscan(x, x in [1,1])
    
    There are now two rules, pushFilters and generateIndexScans. Running pushFilters
    before join planning lets join planning make better use of functional dependencies.
    Also:
    • Small rule reorganizations
    • Small correctness changes exposed by refactor
    • Remove pushdown tests
    • Filter pushdown appears to work in more cases, see plan changes
    • sql.FilteredTable interface is now unused, marked as deprecated but did not delete related functions

Closed Issues

  • 5607: SQL users act as committer, not user who started the server
  • 6006: JSON_EXTRACT() has trouble parsing an expression with *
  • 6004: JSON_TABLE can't find column when using aliases
  • 4330: Replication variables too sensitive to definition order
  • 1749: [Feature Request] Support for JSON operator

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.76 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.16 4.03 3.5
index_join_scan 1.12 2.14 1.9
index_scan 30.26 53.85 1.8
oltp_point_select 0.15 0.47 3.1
oltp_read_only 2.86 8.13 2.8
select_random_points 0.29 0.77 2.7
select_random_ranges 0.35 1.08 3.1
table_scan 30.81 54.83 1.8
types_table_scan 69.29 173.58 2.5
reads_mean_multiplier 2.4
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 4.65 5.88 1.3
oltp_insert 2.3 2.86 1.2
oltp_read_write 6.21 15.27 2.5
oltp_update_index 2.39 2.97 1.2
oltp_update_non_index 2.43 2.91 1.2
oltp_write_only 3.43 7.56 2.2
types_delete_insert 4.65 6.67 1.4
writes_mean_multiplier 1.5
Overall Mean Multiple 2.0

Don't miss a new dolt release

NewReleases is sending notifications on new releases.