0.12.0
We are excited to announce the release of Dolt 0.12.0!
Community
We have our first open-source committer to the Dolt project! Thanks to @namdnguyen for providing a helpful fix to our documentation. We are hoping this will be the first of many open-source contributions to Dolt.
SQL
As discussed in this blog post, we use sqllogictest to test our SQL implementation's logical correctness. It contains 5 million tests! This release marks a huge jump in compliance, with our implementation now hitting 89%, up from well under 50% just a few weeks ago.
Diff With Predicate
--diff-where
command allows the user to add a predicate on the table being diff'd to reduce the surface area of the diff output and drill into specific data of interest.
Override Commit Date
When a user commits data, a timestamp is associated with the commit. By allowing Dolt users to customize the timestamp we allow the user to create an implicit bi-temporal database (based on commit time) while maintaining the ordinal integrity of the commit graph for querying history and reasoning about the sequence of updates.
SQL Diffs
Using the SQL diff command, that is dolt diff -q
or dolt diff --sql
, users can produce SQL output that will transform one branch into another. In other words this command will produce the difference, in data and schema transformations, between two refspecs in the commit log of Dolt repository.
As usual, this release also contains bug fixes and performance improvements. Please create an issue if you have any questions or find a bug.
Merged PRs
- 241: Bumped version and added release script
- 239: bats/create-views.bats: Pick up go-mysql-server support for views.
- 237: go/performance/benchmarks: remove id from results
- 236: Noticed an alter table test that now works was skipped. Unskipped.
- 235: Fix typo in README for table import
I ran into this typo while using Dolt yesterday. The command keywords were in the incorrect order in the README. - 233: Zachmu/sql batch
Killed off original sql batch inserter and implemented equivalent functionality for new engine. - 232: Andy/sqldiffrefactor
- 230: go/store/nbs: table_set.go: Rebase: Reuse upstream table file instances when supplied table specs correspond to them.
- 229: fix schema diff primary key changes
Output looks like this for changing a pk:Also add the pk contstraint so it shows when it is not changing:--- a/test @ 4uvb6bb3p7dqudnuidh9oh4ccsehik7n +++ b/test @ 2tl4quv92ot0jg4v3ai204rld00trbo4 CREATE TABLE test ( `pk` BIGINT NOT NULL COMMENT 'tag:0' - `c1` BIGINT COMMENT 'tag:1' `c2` BIGINT COMMENT 'tag:2' `c3` BIGINT COMMENT 'tag:3' `c4` BIGINT COMMENT 'tag:4' `c5` BIGINT COMMENT 'tag:5' < PRIMARY KEY (`pk`, `c1`) > PRIMARY KEY (`pk`) );
--- a/test @ idfqe6c5s2i9ohihkk4r4tj70tf3l8c7 +++ b/test @ 2tl4quv92ot0jg4v3ai204rld00trbo4 CREATE TABLE test ( `pk` BIGINT NOT NULL COMMENT 'tag:0' `c1` BIGINT COMMENT 'tag:1' `c2` BIGINT COMMENT 'tag:2' < `c3` BIGINT COMMENT 'tag:3' > `newColName3` BIGINT COMMENT 'tag:3' `c4` BIGINT COMMENT 'tag:4' `c5` BIGINT COMMENT 'tag:5' PRIMARY KEY (`pk`, `c1`) );
- 228: bh/add commit date
- 227: Bug fixes for sqllogictest dolt harness:
- More inclusive types
- Better error handling for panics
- Cheat on tables without primary keys to allow more tests (~40%) to succeed.
- 225: disable benchmarking dolt sql imports
- 224: go/cmd/dolt: commands/sql: Keep the sql engine around throughout the lifetime of the shell / batch import.
- 221: improved super schema names
- 220: update go-mysql-server dependency
- 219: dolt benchmarking
Initial approach is to write a script that will run n benchmarks, collect their results, then serialize those results to later be imported intodolt
. Looking for feedback on approach before I head too far down this path, if it is suboptimal.
In it's current state, there are a lot of switch statements and panics and it only accounts for typesint
andstring
and only accounts for.csv
style test data formats, but I'd like to make my data generation functions robust enough to be able to account for all file formats that dolt supports and all noms types... - 218: Added skipped bats test for schema diffs on adding a primary key
- 216: Andy/sqlschemadiffs
Adding schema changes todolf diff --sql
output. Supports:- add/drop table
- add/drop column
- rename table
- rename column
- 215: diff table
- 214: Bh/super schema
- 213: Zachmu/sql performance
- 212: Zachmu/sql indexes2
- 211: Added time to the handled cases in DATETIME & changed tests
This won't compile until dolthub/go-mysql-server#26 is referenced ingo.mod
.