This release adds support for the CHECK
constraint, and includes various bug fixes and performance improvements.
Databases written by this release of Dolt cannot be read by earlier versions. Earlier versions must upgrade to at least this version. This is a failsafe mechanism to prevent loss of schema information on write caused by earlier Dolt versions not understanding how to persist newer schema constructs (CHECK
constraints in this case).
Merged PRs
- 1541: /integration-tests/compatibility: Split Compatibility tests into forward and backward
- 1540: Fixed TINYBLOB errors with specific inputs
Similar to #1528, except dealing with the kind. Still surprised this was not caught earlier, seems like it should be completely broken. Some test repos have had thousands of rows with aBLOB
-type column and they all worked without issue. - 1538: Fixed UNIQUE index violations causing duplicate key errors
- 1537: Support for CHECK constraints
This is missing:- Bats tests
- Feature version bump
- 1536: libraries/doltcore/tables: fix two subpackage dropped errors
- 1534: /go/libraries/doltcore/sqle: Fix
SELECT INTO ...
bug forAUTO_INCREMENT
columns
Fixes: #1491 - 1533: replace io.Copy to improve clone perf
Fixes #1530 by replacing a call to io.Copy with a new function writeTo. Existing reader implementation replaces read calls to HTTP requests and larger read sizes here has a very big impact on Perf.
takes gcs clone of 600MB repo from
toreal 28m2.168s user 0m21.606s sys 0m15.104s
has similar performance improvements for AWS repos and has small Dolthub clone perf improvements.real 0m17.885s user 0m1.607s sys 0m2.443s
- 1532: couple changes for aws errors
- 1531: go/go.mod: Bump go-mysql-server.
- 1528: Fixed some VARBINARY strings reading their length incorrectly
SomeVARBINARY
strings were misreading their length, leading to other values reading garbage and erroring. Not sure how someVARBINARY
strings were reading correctly, but this fixes the issue. Was caught by the fuzzer, but I stripped out the other queries for the bats test (still reproduces without them). - 1527: libraries/doltcore/fkconstrain: fix dropped errors
This fixes two dropped error variables inlibraries/doltcore/fkconstrain
. - 1526: Fix AsyncDiffer wrong context for cancelation bug.
- 1525: Andy/faster tag validation
Previously we fully validated column tag uniqueness on every call todoltdb.PutTable()
. This is a huge perf hit on the write path. We can safely eliminate this validation in the case where the old and new table schemas have the sametypes.Ref
. - 1524: delete batches
- 1523: Unskipped many engine plan tests, changed how skipping works
- 1521: fixed dropped errors in libraries/doltcore/env
This fixes dropped errors inlibraries/doltcore/env
andlibraries/doltcore/envtestutils
. - 368: Improvements and corrections for check constraints
Biggest changes:- Better validation
- Checks in CREATE TABLE statements work as expected now (poor validation before)
- ALTER TABLE DROP CONSTRAINT works as expected (doesn't assume a foreign key)
- Unnamed checks are expected to be named by integrators now
- 365: Fix SELECT INTO ... bug for AUTO_INCREMENT columns
- 363: sql/expression/case.go: Type a CASE expression by considering all its branches.
Implements a lot of the typing behavior described here:
https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#operator_case - 362: Give correct error code for duplicate database.
Return a Vitess error with codeERDbCreateExists(1007)
when trying to create a database that already exists - 360: Brought sql.PushdownTable back to memory.Table
And made its implementation not reduce its schema (same as dolt).
sql.FilteredTable has significant issues, so that one is still disabled by default. - 359: Added IsGenerated to sql.Index