This is a minor feature release, containing new features, bug fixes, and performance improvements.
- Support for
describe table as of <version>
- Support for
show create table as of <version>
- Support for
GEOMETRY
type - Support
auto_increment
on non-primary key columns - Large insert / update operations are now faster and consume less memory
- Better
information_schema
table support - Fixed an error for certain filters on subqueries
- Improved performance for analyzing joins
- Improved query analysis performance
Please note: This release is backwards incompatible with older versions of dolt. Older versions of dolt are unable to read databases written by this version until they upgrade to this version or later.
Merged PRs
dolt
- 3194: Bulk IEA flushes to disk periodically
- 3193: Adding auto increment support for non-primary key columns
- 3191: simplify Bulk IEA partials map
- 3183: updating feature version test
- 3182: go/store/datas: Use RefMap directly instead of copying all entries and doing a linear search.
- 3176: Moved the bulk of foreign key processing into the SQL engine
This removes a lot of the local code dealing with foreign keys, as it has been moved to the engine. - 3173: Implemented RowIter2 for relevant types to enable indexed point-lookup with new storage format
- 3171: Fix panic when converting old triggers to new ones
- 3158: .github: Add DOLT_DEV testing to GitHub CI.
- 3141: Adding tests for 'show create table as of '
Adds support forshow create table as of <version>
.
Depends on: - 3140: Updated roadmap to match docs site
- 3123: go/store/datas/pull: Use errgroup. Rewrite Stats publishing.
- 3093: Adding
Geometry
type - 3082: Store created time for triggers
Dolt changes necessary to actually display the trigger creation times.
Migrations only happen after someone from an older Dolt version creates a new view/trigger. - 2818: Short Hash
hashes can't contain any letters past 'v', as they don't encode/decode correctly.
go-mysql-server
- 947: Update drop table tests to add primary keys, Add more ordering to JSON script test results
- 946: enginetests: Added result ordering to a few more JSON script tests
- 942: enginetest: Update JSON Scripts tests to add primary keys and ordered results
- 941: Fixes unhashable filter bug, adds semantic validation starter
Fixes unhashable filter bug.
Adds improvement on semantic operand validation. Targetted checks easier
to implement. - 940: Enable RowIter2 on IndexedTableAccess
This is pretty limited and only works for static lookups, not joins, but is enough to benchmark with
This change also does some refactoring of index analysis code, but no other functional changes
Small bug fix to the String() method of SubstringIndex - 939: ValidateJoinDepth rule; hard cutoff for > 12 table joins
New analyzer rulevalidateJoinDepth
that errors if we count more than 12 join leaves. Opaque node counting could be done more carefully.
join search schema comparison was O(n^4) if i counted correctly, now should be more like O(n) - 938: Quickperm, reduce join search memory usage
- 936: Allow
auto_increment
on non-primary key columns
Fix for: #2981
Since Unique Keys are not a part ofsql.Schema
andsql.Column
, we need to check if there are any valid indexes defined over the columns we want to mark asauto_increment
.
Added skipped tests for queries that don't work.
TODO:- Adding
auto_increment
addsNOT NULL
constraint too - Support adding columns; need to be able to
alter table t add column j int unique
first - Autoincrement on keys defined over multiple columns; MySQL only allows leftmost column to be
auto_incremented
- Adding
- 934: More transform and join tests
- 932: Adding support for
show create table <table> as of <version>
Adds support forshow create table <table> as of <version>
to go-mysql-server
Depends on: - 929: have
_example/main.go
work as expected
Fixes: dolthub/go-mysql-server#911 - 867: TransformUp is now sensitive to tree modifications
TransformUp and related node/expression DFS helper functions expect the
visit functions to return an additional boolean parameter indicating
whether the visit changed the node:TransformUp's implementation uses the modification information to avoidtype TransformNodeFunc func(Node) (Node, bool, error) type TransformExprFunc func(Expression) (Expression, bool, error) type Transformer func(TransformContext) (sql.Node, bool, error)
re-creating a node with identical children:
We useBenchmarkTransformOld BenchmarkTransformOld-12 396544 2782 ns/op 3000 B/op 51 allocs/op BenchmarkTransformOldNoEdit BenchmarkTransformOldNoEdit-12 407797 2731 ns/op 2936 B/op 50 allocs/op BenchmarkTransformNew BenchmarkTransformNew-12 4584258 254.1 ns/op 96 B/op 5 allocs/op BenchmarkTransformNewNoEdit BenchmarkTransformNewNoEdit-12 4782098 237.8 ns/op 96 B/op 5 allocs/op
plan.InspectUp
when possible, and thenplan.TransformUp
where possible, resorting to the more expensiveplan.TransformUpCtx
andplan.TransformUpCtxSchema
only when necessary. - 858: New Foreign Key Implementation
Baseline PR containing foreign key progress. As foreign keys won't be ready to merge until they're fully completed, this PR will serve as the baseline that future foreign key PRs are based on, so that changes are digestible. Once a PR is approved, it will be added to this one. In addition, this serves as a synchronization point for mergingmain
changes to manage conflicts.
vitess
- 151: Parser support for
show create table <table> as of <asof>
Adding support for parsingshow create table <table> as of <asof>
.
Removing theOnTable
field in Show struct that was duplicating theTable
field.
Two minor formatting fixes. - 150: Parser support for describe table as of and show columns from table as of
Adding parser support fordescribe <table> as of <asof>
andshow columns from <table> as of <asof>
Closed Issues
- 3138: SQL syntax error registers as unhashable filter
- 2981: Support Auto increment on non-primary key column with index
- 3188: Unique constraint on table not preventing insert
- 3061: Should Store Creation Time for Triggers
- 3179: Combining dolt and git repositories
- 3100: unbound variable in query (bug in 0.37.6 and after)
- 3068: SQL: Geometry type support
- 911: _example Failure to output