github dolthub/dolt v1.20.0
1.20.0

latest releases: v1.43.0, v1.42.20, v1.42.19...
11 months ago

Merged PRs

This release contains backwards incompatible changes:

  • dolt merge command line tool's exit status has changed for conflicts in merges. Perviously merges which resulted in conflicts returned an exit status of 0, indicating success. This release changes the behavior to return a 1 in the event of a failed merge.

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

  • 6815: Update README now that drop database is reverseable
  • 6810: Prevent dolt_checkout from creating new branches in read-only databases
    Fixes: #6785
  • 6774: migrate dolt pull to use sql queries
    This change updates dolt pull to use the appropriate sql engine to generate results.
    Related: #3922

go-mysql-server

  • 2074: optimize min(pk) and max(pk)
    This PR adds an optimization to queries that have a MIN or MAX aggregation over a PRIMARY KEY column.
    Since indexes are already sorted (and we support a reverse iterator) we can look at the first/last row to answer queries in this form.
    The new analyzer rule, replaceAgg, converts queries of the format select max(pk) ... from ... to the equivalent select pk ... from ... order by pk limit 1. Then, we depend on an replacePkSort to apply IndexedTableAccess
    Additionally, this PR has replacePkSort optimization apply to queries that have filters (specifically those that were pushed down to IndexedTableAccess)
    There is also a some refactoring and tidying up.
    Fixes #6793
  • 2073: Bug fixes for explicit DEFAULT values in INSERT statements
    Previously this was broken when DEFAULT values referred to other columns.
    Fixes #6430
    Needs more tests, but this fixes the immediate buggy behavior.
    Also fixes a related bug in MySQL: https://bugs.mysql.com/bug.php?id=112708
  • 2072: support json_valid() function
    Add support for JSON_VALID(val) function
  • 2070: Add routines to PrivilegeSets
    Added some Unit tests as well. This is in preparation for supporting routine grants.
  • 2068: Virtual column proof of concept
    This needs a lot more tests, but this demonstrates the approach within can work well enough
  • 2065: Remove redundant information_schema creation in the driver example
    In the driver's example, information_schema is duplicated.
    It is created in two places.
    1. factory.Resolve()
    2. Catalog in Analyzer in Driver.OpenConnector()
      There is no need to create it in the factory.Resolve().
      I checked databases using this:
    diff --git a/driver/_example/main.go b/driver/_example/main.go
    index 34e0580ed..adbc1a249 100644
    --- a/driver/_example/main.go
    +++ b/driver/_example/main.go
    @@ -35,6 +35,14 @@ func main() {
    rows, err := db.Query("SELECT * FROM mytable")
    must(err)
    dump(rows)
    +
    +       rows, err = db.Query("SHOW DATABASES")
    +       must(err)
    +       for rows.Next() {
    +               var db string
    +               must(rows.Scan(&db))
    +               fmt.Println("db:", db)
    +       }
    }
    func must(err error) {

Closed Issues

  • 6793: No index used when calling select max(date) ...
  • 6430: Column defaults do not get applied correctly with explicit DEFAULT keyword
  • 6785: Read-only databases allow creating new branches using DOLT_CHECKOUT()
  • 6808: Support JSON_VALID()
  • 6788: Make uuid primary keys function more like auto_increment
  • 6799: Make Laravel example app work with Dolt
  • 6286: Fix field indexes after analysis

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.11 2.71 1.3
groupby_scan 12.98 17.01 1.3
index_join 1.32 4.57 3.5
index_join_scan 1.25 2.14 1.7
index_scan 34.33 54.83 1.6
oltp_point_select 0.17 0.4 2.4
oltp_read_only 3.25 7.17 2.2
select_random_points 0.32 0.68 2.1
select_random_ranges 0.38 0.9 2.4
table_scan 34.33 54.83 1.6
types_table_scan 74.46 155.8 2.1
reads_mean_multiplier 2.0
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 4.41 5.37 1.2
oltp_insert 2.18 2.66 1.2
oltp_read_write 6.55 13.46 2.1
oltp_update_index 2.22 2.66 1.2
oltp_update_non_index 2.22 2.61 1.2
oltp_write_only 3.25 6.55 2.0
types_delete_insert 4.49 5.77 1.3
writes_mean_multiplier 1.4
Overall Mean Multiple 1.8

Don't miss a new dolt release

NewReleases is sending notifications on new releases.