Skip to content

1.55.5

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 08 Jul 02:17

Merged PRs

dolt

  • 9461: Correctly delete rows from DOLT_CONFLICTS_ tables when the table schema has changed from the base.
    The logic for marking conflicts as resolved had an implicit assumption that the table schema had not changed from the ancestor commit. If the schema had changed, then it would compute an incorrect key for the conflicts map, and would fail to remove conflicts.
  • 9459: Add @GLOBAL.dolt_auto_gc_enabled system variable to inspect whether auto GC is enabled.
    The system variable is read-only. The only way to enable Auto GC remains setting:
    behavior:
    auto_gc_behavior:
    enable: true
    in the config.yaml file which is given to dolt sql-server in its --config parameter.
  • 9446: Flush outputs in archive command. Fixes flaky test
    Make lambabats more reliable.
    Also, catch an error which was previously ignored.
  • 9445: Swallow gc NoOp err
    Fixes: #9448
  • 9441: Only print Query Ok results in interactive shell.
    This PR changes the CLI so that we only print the "Query OK" and "Database Changed" messages when using the interactive shell; this matched MySQL behavior.
    Additionally, it now caches the output of DDL iterators. This way, we are not dependent on the printing to complete to have the changes committed (rowIter.Close() to be called).
    companion pr: dolthub/go-mysql-server#3059
    fixes: #9281

go-mysql-server

  • 3070: Don't prune VirtualColumnTable tables
    fixes #8968
    Pruning columns in VirtualColumnTable tables causes indexing errors when VirtualColumnTable Projections are evaluated
    Future work: prune VirtualColumnTable Projections so that VirtualColumnTable underlying table can be pruned
  • 3067: #9427 - Prevent user and system variables in column defaults and generated values
    Fixes #9427
    Adds validation to prevent user variables (@variable) and system variables (@@variable) from being used in column default value expressions and generated column expressions.
    Modified validateColumnDefault function in sql/analyzer/resolve_column_defaults.go to detect UserVar and SystemVar expressions and return ErrColumnDefaultUserVariable error.
    Added ErrColumnDefaultUserVariable error definition to sql/errors.go to match MySQL's error message format.
    🤖 Generated with Claude Code
  • 3065: Fix enum columns cannot have auto_increment
    Fixes #9423
    • Added ErrInvalidColumnSpecifier error message
    • Added enum type validation in validateAutoIncrementModify and validateAutoIncrementAdd
    • Enabled previously skipped test case for enum auto_increment validation
      🤖 Generated with Claude Code
  • 3063: Fix count(*) for added generated columns
    Fixes #8959
  • 3062: Allow DEFAULT keyword in UPDATE for generated columns (issue #9438)
    Fixes #9438
    • Modified validation in dml.go to allow DEFAULT expressions for generated columns
    • For generated columns, DEFAULT now correctly uses the generated expression
    • Maintains existing validation that rejects non-DEFAULT values for generated columns
      🤖 Generated with Claude Code
  • 3060: Merge scopeColumn types in SetOp scope
    fixes #9024
    Previously, the scopeColumn type defaulted to that of the corresponding scopeColumn in the left scope. This would cause a type conversion error if the left scopeColumn was a less general type than the corresponding right scopeColumn.
    The merged scopeColumn is also made nullable if one of the merging columns is nullable.
    GeneralizeTypes also checks if two types are already equal. This prevents DolgresTypes from always being generalized as a LongText.
  • 3059: Fix SET statements to return OkResult instead of empty rows
    brings back changes from: dolthub/go-mysql-server#3046
  • 3054: Support for set-returning functions
    Also includes small bug fix for CASE type conversion semantics (don't always convert to longtext)

Closed Issues

  • 9426: Support enum string context
  • 6397: Allow table names with special characters when MySql allows them
  • 6488: alias case sensitivity bug
  • 6848: jsonpath lookup bug
  • 8968: Generated columns not populated
  • 9281: CREATE TABLE doesn't generate Query OK confirmation message
  • 9423: enum columns cannot have auto_increment
  • 9427: Prevent user and system variables in column default and generated values
  • 9448: Multiple dolt_gc calls without changes result in error state
  • 9330: Feature request : a way to stop tracking a table
  • 8959: Generated Columns added to table result in index error
  • 9438: Allow default keyword as update value for generated columns
  • 9428: Allow default keyword as value to column with generated constraint

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.89 0.68 0.36
groupby_scan 13.46 19.65 1.46
index_join 1.52 2.48 1.63
index_join_scan 1.47 1.44 0.98
index_scan 34.33 31.37 0.91
oltp_point_select 0.2 0.29 1.45
oltp_read_only 3.75 5.37 1.43
select_random_points 0.35 0.61 1.74
select_random_ranges 0.39 0.64 1.64
table_scan 34.95 33.12 0.95
types_table_scan 75.82 130.13 1.72
reads_mean_multiplier 1.3
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.43 6.55 0.78
oltp_insert 4.18 3.25 0.78
oltp_read_write 9.06 11.87 1.31
oltp_update_index 4.18 3.3 0.79
oltp_update_non_index 4.18 3.25 0.78
oltp_write_only 5.28 6.55 1.24
types_delete_insert 8.43 6.91 0.82
writes_mean_multiplier 0.93
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 94.85 38.99 2.43
tpcc_tps_multiplier 2.43
Overall Mean Multiple 1.55