Skip to content

0.10.0

Compare
Choose a tag to compare
@mjesuele mjesuele released this 29 Oct 20:31

We are excited to announce the latest release of Dolt, which includes a new feature, substantial improvements to existing features, and a new Windows installer.

Dolt Blame

Dolt now has a blame command, which provides row audit functionality familiar to Git users. (Blame for individual cells is in the works.) We have a deep dive on the implementation of dolt blame on our blog, so definitely check that out if you're interested.

One of the long-term goals of Dolt is to provide a database with fine-grained audit capabilities to support hygienic management of valuable human-scale data, and this feature is a huge step towards realizing that vision.

SQL Enhancements

One of our major goals for the product is full SQL compliance; this release contains steps towards achieving that. In particular, the following commands are now supported:

  • CREATE TABLE
  • DROP TABLE
  • INSERT VALUES & INSERT SET (no IGNORE or ON DUPLICATE KEY UPDATE support yet, also no INSERT SELECT support yet)
  • UPDATE (Single table, no IGNORE support yet)
  • REPLACE VALUES and REPLACE SET (no REPLACE SELECT support yet)

As well as making progress against our goal of full compliance, we also created a test suite that will help validate our SQL implementation. Check out the test suite and harness, and the related blog post. This is an important step in creating a fully transparent mechanism for our progress against our compliance goal.

We also fixed some bugs and made some performance improvements.

Schema Import

We now support schema inference from a CSV file. This is a convenience function to make importing a CSV with a correct schema easier. The command is best understood by looking at the help details:

$ dolt schema import --help
NAME
	dolt schema import - Creates a new table with an inferred schema.

SYNOPSIS
	dolt schema import [--create|--replace] [--force] [--dry-run] [--lower|--upper] [--keep-types] [--file-type <type>] [--float-threshold] [--map <mapping-file>] [--delim <delimiter>]--pks <field>,... <table> <file>

Windows Installer Packages

We now provide both 32- and 64-bit MSI packages for easy installation of Dolt on Windows. These may be used instead of manually extracting the archives (which are now provided in .zip format instead of .tar.gz). Please let us know if you encounter any issues.

Other

Various bug fixes and enhancements, and also improvements to dolt clone which had a problematic race condition.

As always, bug reports, feedback, and feature requests are very much appreciated. We hope you enjoy using Dolt!

Merged PRs

  • 175: {bats, go}: Make commit spec truly optional in blame
    $ dolt blame lunch-places
    +--------------------+----------------------------------------------------+-----------------+------------------------------+----------------------------------+
    | NAME               | COMMIT MSG                                         | AUTHOR          | TIME                         | COMMIT                           |
    +--------------------+----------------------------------------------------+-----------------+------------------------------+----------------------------------+
    | Boa                | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Chipotle           | lunch-places: Added Chipotle                       | katie mcculloch | Thu Aug 29 11:38:00 PDT 2019 | m2jbro89ou8g6rv71rs7q9f3jsmjuk1d |
    | Sidecar            | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Wendy's            | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Bangkok West Thai  | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Jamba Juice        | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Kazu Nori          | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | McDonald's         | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Sunnin             | change rating                                      | bheni           | Thu Apr  4 15:43:00 PDT 2019 | 137qgvrsve1u458briekqar5f7iiqq2j |
    | Bruxie             | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Espresso Cielo     | added Espresso Cielo                               | Matt Jesuele    | Wed Jul 10 12:20:39 PDT 2019 | 314hls5ncucpol2qfdphf923s21luk16 |
    | Seasalt Fish Grill | fixed ratings                                      | bheni           | Thu Apr  4 14:07:36 PDT 2019 | rqpd7ga1nic3jmc54h44qa05i8124vsp |
    | Starbucks          | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Tocaya             | update tocaya rating                               | bheni           | Thu Jun  6 17:22:24 PDT 2019 | qi331vjgoavqpi5am334cji1gmhlkdv5 |
    | Sake House         | fixed ratings                                      | bheni           | Thu Apr  4 14:07:36 PDT 2019 | rqpd7ga1nic3jmc54h44qa05i8124vsp |
    | Swingers           | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Art's Table        | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Bay Cities         | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Benny's Tacos      | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Bibibop            | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Curious Palate     | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    | Meat on Ocean      | Had an unhandled schema merge conflict which I ch… | Tim Sehn        | Fri Mar 22 12:21:59 PDT 2019 | ffabndafbp64r393ttghused8siip77j |
    +--------------------+----------------------------------------------------+-----------------+------------------------------+----------------------------------+
    
  • 174: Update dolt blame description
  • 170: Skipping the right SQL test that has a hanging race condition (joins …
    …on legacy engine, code to be deleted soon)
  • 168: Bh/correctness fixes
  • 166: clone bug fix
  • 165: README.md: Remove Tim's username from shell prompt
  • 161: Zachmu/sql logictest
    Improved main method for running or parsing sqllogic tests.
  • 160: Bh/upload error checking
  • 159: Zachmu/sql logictest
    Removed code for sqllogic test and took a dependency on the new module instead.
  • 158: Disabling sql server tests on linux, since they appear to be hanging …
    …waiting for the server to start
  • 157: Basic dolt blame
    This still needs some more BATS tests and maybe some UI touches like what @Hydrocharged suggested, but overall I think it's ready for some eyes.
    The biggest thing I don't like is the logic surrounding pretty-printing of primary keys (you'll see why) but please do tell me if you notice other things that are janky.
    In general, feedback and suggestions are very welcome.
  • 156: Bh/schema import
  • 155: Zachmu/sql logictest
    Implementation of sqllogictest for dolt on go-mysql-server. After getting this merged, I plan to fork off the non-dolt portions to a separate repo.
  • 154: Bumping dependency of go-mysql-server to head of ld-master branch. Al…
    …so fixing several issues that come up when doing so.
  • 152: go/store/nbs: Add recover in table_set Rebase goroutines. (Saw a SIGSEGV which crashed doltremoteapi).
  • 148: Added new InlineBlob type
    This turned out to be far smaller than I thought as far as changes go. This types change might be simpler than I first thought! I probably felt it was harder just because finding all of these locations was a major pain...
  • 146: proto/dolt/services/eventsapi: Adopt the version of eventsapi that lives in ld repo instead of here.
  • 145: Update README.md
  • 144: Miscellaneous small changes
    Just some small stuff I cherry-picked out of the dolt blame PR I'm gonna drop tomorrow. In particular, I use getCommitSpec in that.
  • 142: fixes batch building issue
  • 140: go/libraries/doltcore/doltdb/doltdb.go: Change initial commit message to imperative tense
    This is the style recommended for contributions to Git itself and used by GitHub by default:
    image
  • 137: Added skipped bats test for the non-existant primary key bug
  • 135: fix tag number on pb remote_url_scheme
  • 134: Changed IsValidTableName to allow single character table names, added…
    … tests
  • 132: updated schema command text
  • 131: bats: Factor setup and teardown logic out of tests, greatly reducing duplication
    This has been bothering me for a while.
  • 130: fix active remote url to only save the url scheme
  • 129: Batch inserts handle backslashes better
    Added a new bats test to demonstrate, but originally the function didn't handle \\'' properly, and now it does. Had to add 4 backslashes on the test because bash does its own escaping before passing it to dolt.
  • 128: bh/schema sub commands
    This is a refactor of the existing dolt schema functionality. Previously dolt schema had many different ways it could be run:
    "[<commit>] [<table>...]",
    "--export <table> <file>",
    "--add-column [--default <default_value>] [--not-null] [--tag <tag-number>] <table> <name> <type>",
    "--rename-column <table> <old> <new>",
    "--drop-column <table> <column>",
    
    These have all been split into separate commands:
    dolt schema show
    dolt schema export
    dolt schema add-column
    dolt schema rename-column
    dolt schema drop-column
  • 127: Increased the length of the buffer to read from STDIN for SQL stateme…
    …nts.
    My first Golang code.
  • 126: Fixed not returning error on invalid batch inserts
    Fixes Bats test as introduced in: #125
  • 125: Added skipped bats test for sql shell continuing after bad statement …
    …and not exiting 0
  • 124: Added skipped bats test for piped sql
  • 123: Fix cell count function for diff summary cells modified
  • 122: Fixed SQL batch insert breaking on semicolons in strings
    Fixes SQL bug as found in new Bats test introduced here: #124
  • 118: README.md: Minor updates
  • 117: Bh/diff summary opt

Closed Issues

  • 120: Semicolon bug in piped sql