Skip to content

1.0.1

Compare
Choose a tag to compare
@github-actions github-actions released this 11 May 17:37

Merged PRs

dolt

  • 5921: go: doltdb: hooksdatabase.go: Execute commit hooks in parallel so that synchronous commit hooks do not serialize on each other.
  • 5919: sql-server: dolt_log_level system variable allows reading the current log level for the server and setting a new one.
    Written values do not persist across server restarts.
  • 5918: Remove cry for help from dolt sql --help
    Fixes #5916
    Fixes #5920
  • 5902: go/store/datas/pull/clone.go: Fix to clone to interact with sql-server remotes better.
    Before this fix, |dolt clone| against a sql-server remote can fail with a confusing error message if the sql-server has a chunk journal. Adding the chunk journal to our destination ChunkStore causes us to update the root hash, which the Clone code was not expecting.
    This change updates the Clone code to look for the possible update to the destination's root hash and to not try to set the root hash on the ChunkStore if it has already been done by the code handling the chunk journal.
  • 5899: go: sqle: dolt_gc.go: Disable CALL dolt_gc() on a standby replica, where it is not currently safe. Shallow GC is still available.
  • 5895: add support for ALTER EVENT
    Depends on dolthub/go-mysql-server#1754
  • 5894: batsee --output dir
    An inevitable change to make the output directory of batsee configurable. Refactored the configuration struct to make changes like this a little easier.
  • 5892: Fix binlog connection re-establishment when connection closes between messages
    This PR changes our handling of io.EOF to trigger our connection re-establishment logic. Previously, only io.UnexpectedEOF was triggering a connection re-establishment.
    We found this by digging into some flakiness in the TestBinlogReplicationAutoReconnect test:
  • 5890: normalize windows file paths better
    Depending on if the windows file paths start with file:///C:... or file://C:..., the url package would parse these slightly differently. As a result, the environment would be stored in the singleton under one path, and retrieved with a different one, causing errors.
    fix for: #5780
  • 5885: go/libraries/doltcore/env/actions: remotes.go: Have fetch pull all the branch heads at once.
    Also avoids round-tripping to the remote to load a commit whose value we do not need yet.
  • 5884: Refactor SQLEngine instantiation into the Queryist interface
    SQL Command arguments which pertain to instantiating a local SqlEngine instance are now global arguments which come before the sql subcommand. This is a breaking change for users of the sql command who pass in the following arguments:
    • --data-dir
    • --user
    • --doltcfg-dir
    • --privilege-file
    • --branch-control-file
      Step on the path to: #3922
  • 5881: Remove overzealous validation check.
    This check appears to be redundant, in order to fail early and return a more helpful error message. But it's not helpful if it's wrong... which it is. It errors fast on inputs that should be correct (such as auto-increment columns), and it not only fails on the example from #5855, but it would prevent us from implementing a permanent fix.
    Removing the check, all tests still pass, because invalid imports are still detected by the remaining checks.
  • 5874: go/doltcore/merge: use unresolved-aware fk matching method in Foreign…
    …KeysMerge
    fix for #5531
  • 5870: Improve dolt_ignore pattern rules
    This PR does two things:
    • introduces % as an alias for *, since % is the SQL wildcard
    • adds an additional check for dolt_ignore rules that are equivalent but have different ignored values.
  • 5868: go through primary keys backwards
    This PR implements an iterator to go over Primary Keys backwards, allowing us to order by descending quickly.
    Companion PR: dolthub/go-mysql-server#1742
    Fix for: #5812
  • 5856: fix empty string import for ENUM and SET types
  • 5844: Mention official Arch Linux packaging in README
    I've been maintaining the AUR recipe for dolt since 2021 and updated it for almost all the releases since 0.28.4. I've now migrated the packaging from the AUR to prebuilt packages in the official Arch Linux repos.

go-mysql-server

  • 1770: Union offset+limit bug
    Unions were dropping limit, applying offset as limit.
  • 1763: prevent large varbinary column from being created
    We don't enforce column size limit for varbinary, causing panics.
    fix for: #5059
  • 1762: Add support for ALTER TABLE <table> MODIFY COLUMN <col> <type> UNIQUE
    This is a MySql syntax that is effectively syntactic sugar for
    ALTER TABLE <table> MODIFY COLUMN <col> <type>;
    ALTER TABLE <table> ADD UNIQUE INDEX `<col>` (col);
  • 1760: sql/core.go: SystemVariable: Add a NotifyChanged field which can be used to be notified when the variable value changes.
  • 1759: server/server.go: Log a message when we start accepting connections.
  • 1756: Allow all built-in functions to be used in column default value expressions
    We currently maintain an allow list of functions that can be used in column default value expressions. MySQL has changed what they support in column default value expressions over time and the current support allows all built-in functions to be used.
    This PR removes our allow list so that any function registered as a built-in function can be used in a default expression.
    Fixes #5887
  • 1754: support ALTER EVENT statement
    Support for ALTER EVENT statements excluding case for moving events across databases using RENAME TO clause.
    Depends on dolthub/vitess#233
  • 1744: Adding tests for altering keyless tables
    Added tests to cover basic keyless table column alterations, to test Dolt change in #5867
  • 1742: convert sort over pks with index
    This PR fixes some issues with the implementation of the rule replaceSortPk. Namely, the rule now works with both TableAliases, ColumnAliases, and SubqueriyAliases.
    Additionally, the rule is able to be applied when sorting in Descending order.
    Overally, this means queries like select * from t order by pk desc limit 1 will just be a Limit over an IndexTabledAccess
    Fix for: #5812

vitess

  • 235: Add support for INSERT INTO <table> VALUE ...;
    Adds support for VALUE as a synonym of VALUES in INSERT INTO <table> VALUES ..., to match MySQL's syntax.
    Fixes dolthub/go-mysql-server#1750
  • 234: go/netutil/conn.go: Avoid panicing when ConnWithTimeouts has a Set{,}Deadline method called.
    Clients does not expect setting deadlines on connections to panic. In particular, the standard library's TLS implementation adopts an existing net.Conn and will call SetWriteDeadline on it in certain cases.
    It makes more sense to allow the deadlines to be managed by the client when they see fit. This changes the behavior to simply forward the deadlines along as soon as the client code has shown an interest in managing the deadlines.
  • 233: support parsing ALTER EVENT statements
    Supports parsing ALTER EVENT statements

Closed Issues

  • 3604: Set log_level with a system variable
  • 5920: dolt stash --help causes SIGSEV
  • 5916: dolt sql --help displays "Help" instead of helpstring
  • 4599: Dropping a table then reimporting with inferred schema creates new tags unexpectedly
  • 4527: dolt revert violates NOT NULL constraint
  • 5673: out of range error on aggregate query
  • 5028: can't add a unique key using alter table $tbl modify $col
  • 5059: panic on large varbinary insert
  • 5812: Slow select order by limit
  • 5693: Comparison type overflows
  • 5875: Subquery expression -> union->recursiveCTE expression missing finalization rules
  • 5807: ENUMs treat empty strings "" as if they were on CSV import, resulting in error
  • 5845: Memory leak
  • 5848: dolt table import requires an empty column for AUTO_INCREMENT columns
  • 5887: Error should be "function m5hash does not exists" not "function m5hash on column id is not valid for usage in a default value
  • 5780: dolt sql-server fails if databases is configured in yaml
  • 1750: [Feature Request] Support for INSERT INTO ... VALUE

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 2.71 1.4
groupby_scan 12.3 16.12 1.3
index_join 1.16 4.03 3.5
index_join_scan 1.12 2.07 1.8
index_scan 30.26 54.83 1.8
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.91 8.58 2.9
select_random_points 0.3 0.74 2.5
select_random_ranges 0.35 1.12 3.2
table_scan 30.81 55.82 1.8
types_table_scan 70.55 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 7.3 6.91 1.0
oltp_insert 3.49 3.3 1.0
oltp_read_write 7.43 15.83 2.1
oltp_update_index 3.49 3.36 1.0
oltp_update_non_index 3.75 3.3 1.0
oltp_write_only 4.74 7.84 1.7
types_delete_insert 7.43 7.56 1.0
writes_mean_multiplier 1.2
Overall Mean Multiple 1.9