github dolthub/dolt v1.54.2
1.54.2

latest releases: v1.59.3, v1.59.2, v1.59.1...
3 months ago

Merged PRs

dolt

  • 9306: go: store/datas/pull: clone.go: Improve robust of Clone for certain remoteapi implementations when the remote Conjoins.
    The clone code works by listing the remote table files and downloading them into the local table file store. When the remote is a remoteapi implementation, like a DoltHub repository, this resulting in listing the remote table files and using URLs to fetch each of them.
    The URLs returned from these APIs can expire and they need to be refreshed. This refresh can happen in two ways:
    1. There is explicit support in the TableFileSource representation returned by the API to include a mechanism to refresh it. DoltHub uses this, and the Dolt client will make use of that support to refresh expired URLs.
    2. The heavy handed approach is to list the table files again and use the newly returned URLs.
      The Clone code has explicit support for doing (2), and it is necessary for remoteapi implementations with expiring URLs but without explicit RefreshTableFileUrl support. dolt itself, when running a remote as part of sql-server for example, does not implement RefreshTableFileUrl support, and so the re-list support is still necessary.
      This PR changes the Clone implementation so that, on a retry, it makes all the newly returned table file sources available for the next try, but it keeps the old sources around if they no longer come back from ListTableFiles. In this way, we get strictly more robust behavior than before.
      The downside is that, when the remote file is actually gone, the Clone code will continue attempting to download it until it reaches a terminal download failure. This change in behavior is not as disruptive as the current behavior, and so we make this new trade off for now.
  • 9299: Improved chunk tracking during clone
    Decrement the chunk counter when a file completes. Add a completion status message. Fix a potential race that @reltuk identified in review.
  • 9298: Last easy unskip according to Claude
  • 9296: Check for invalid ancestor merge spec
    fixes #9294
  • 9295: Various unskipped bats tests identified and fixed by Claude Code.
  • 9289: Fix load data tabs test
  • 9288: The where clause on a dolt diff command is always validated
    Even if there is an empty diff
  • 9287: Fix skip test for another load data issue
  • 9122: implement dolt_branch_status()
    This PR implements dolt_branch_status(<base_branch>, <feature_branch1>, <feature_branch2>, ...).
    The function compares base_branch against each of the feature branches and outputs a table that lists how many commits ahead and behind base branch.
    Additionally, this PR contains some cleanup/refactoring.
    addresses: #9090

go-mysql-server

  • 3010: Add query time to logger
    This is a proposed fix for Dolt issue: #8909
    I'm not certain if we want to just add this field or replace connect time. I think this implementation is safer.
  • 3009: New skipped tests for group_concat
    The ORDER BY clauses in aggregates like group_concat do not work correctly with subqueries. Lots of varied tests demonstrating this defect.
  • 3004: Add support for IS NULL expressions with records
    The implementation in GMS for IS NULL checks if the value is NULL or not. For record and composite types in Postgres, IS NULL needs to check if each value in the record or composite type is NULL to determine if the value is NULL. See dolthub/doltgresql#1520 for more details.
    This change creates a new shared type, named TupleValue, in GMS that is used for record values (and eventually, composite type values). I also considered giving Doltgres it's own, custom IsNull implementation, but the analyzer does specific checks and optimizations when it looks for *expression.IsNull instances, which would stop working correctly.
  • 3002: fix table functions in stored procedures
  • 3001: Support for injected expressions with ORDER BY clauses
    Depends on 416

vitess

  • 416: New flavor of injected expression
  • 415: Fix implementation for REVOKE ALL...
    This PR fixes REVOKE ALL [PRIVILEGES], GRANT OPTION ... so that it parse to the same thing as REVOKE ALL PRIVILEGES as they are equivalent in MySQL. The GRANT privilege is already part of all privileges, specifying it is just for clarity.
    Additionally, this PR adds syntax support for the IF EXISTS option and IGNORE UNKNOWN USER option that is part of REVOKE statements.
    MySQL Docs: https://dev.mysql.com/doc/refman/8.4/en/revoke.html
    Syntax for: #9228

Closed Issues

  • 8909: Dolt start time of queries in logs is all pinned to the connection open start time
  • 7984: Implement dolt_help set of system tables
  • 8345: dolt does not reload all statistics on server restart
  • 9240: Clone Status reports more chunks being downloaded than it says exist
  • 9294: HEAD^0 causes panic

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.86 0.67 0.36
groupby_scan 13.46 18.61 1.38
index_join 1.44 2.43 1.69
index_join_scan 1.42 1.47 1.04
index_scan 34.33 30.26 0.88
oltp_point_select 0.18 0.26 1.44
oltp_read_only 3.43 5.28 1.54
select_random_points 0.33 0.6 1.82
select_random_ranges 0.36 0.62 1.72
table_scan 34.33 32.53 0.95
types_table_scan 75.82 123.28 1.63
reads_mean_multiplier 1.31
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.9 6.32 0.71
oltp_insert 4.1 3.07 0.75
oltp_read_write 8.74 11.65 1.33
oltp_update_index 4.18 3.19 0.76
oltp_update_non_index 4.18 3.07 0.73
oltp_write_only 5.67 6.32 1.11
types_delete_insert 8.28 6.67 0.81
writes_mean_multiplier 0.89
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 97.48 39.64 2.46
tpcc_tps_multiplier 2.46
Overall Mean Multiple 1.55

Don't miss a new dolt release

NewReleases is sending notifications on new releases.