github dolthub/dolt v0.38.0
0.38.0

latest releases: v1.43.0, v1.42.20, v1.42.19...
2 years ago

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 for show 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 rule validateJoinDepth 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 of sql.Schema and sql.Column, we need to check if there are any valid indexes defined over the columns we want to mark as auto_increment.
    Added skipped tests for queries that don't work.
    TODO:
    • Adding auto_increment adds NOT 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
  • 934: More transform and join tests
  • 932: Adding support for show create table <table> as of <version>
    Adds support for show 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:
    type TransformNodeFunc func(Node) (Node, bool, error)
    type TransformExprFunc func(Expression) (Expression, bool, error)
    type Transformer func(TransformContext) (sql.Node, bool, error)
    TransformUp's implementation uses the modification information to avoid
    re-creating a node with identical children:
    BenchmarkTransformOld
    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
    
    We use plan.InspectUp when possible, and then plan.TransformUp
    where possible, resorting to the more expensive plan.TransformUpCtx
    and plan.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 merging main changes to manage conflicts.

vitess

  • 151: Parser support for show create table <table> as of <asof>
    Adding support for parsing show create table <table> as of <asof>.
    Removing the OnTable field in Show struct that was duplicating the Table field.
    Two minor formatting fixes.
  • 150: Parser support for describe table as of and show columns from table as of
    Adding parser support for describe <table> as of <asof> and show 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

Don't miss a new dolt release

NewReleases is sending notifications on new releases.