Releases: dolthub/dolt
0.16.4
Merged PRs
- 661: disable auto completion in multi-repo environment
- 657: rename publishrelease.sh and remove unsupported builds
- 653: bump go-mysql-server version
- 652: Fix dolt dump-docs
Fix markdown for dolt sql command, and fix code that swallowed templating error that allowed broken docs in - 650: Secondary Indexes Pt. 1 Episode 2
This PR is strictly the tests. All of the PR feedback and whatnot can be seen from the commit history found on the parent PR #495. - 649: Disallowed tag changes
- 646: bug fix
- 645: fix panic
fix of 630 - 643: Zachmu/go mysql server fork
Use the new hard-fork of go-mysql-server.
This is based on #641, so the diffs will be more reasonable when that is merged. - 641: Zachmu/test refactor
Refactored the SQL engine tests to make it possible to validate schemas of result sets are as expected. This involved moving a lot of code around to avoid import cycles. Also unskipped or deleted a bunch of tests that had been skipped. - 638: /benchmark/sql_regressions/run_regressions.sh: Update jobs to push to master, not regressions
nightly
andreleases
now push tomaster
. (regressions
) has been merged into master - 637: Bumped version
- 100: remove schema caching
- 99: exposing ddl parse method
- 98: fixes nil value conversion
- 95: server: fix tests on linux
- 94: Added RAND() function
- 93: s/src-d/liquidata-inc/g
- 92: Zachmu/keyword case
- 91: Fixed pilosa using statements
Closed Issues
0.16.3
Merged PRs
- 636: sql-server command documentation
NAME dolt sql-server - Start a MySQL-compatible server. SYNOPSIS dolt sql-server --config <file> dolt sql-server [-H <host>] [-P <port>] [-u <user>] [-p <password>] [-t <timeout>] [-l <loglevel>] [--multi-db-dir <directory>] [-r] DESCRIPTION By default, starts a MySQL-compatible server which allows only one user connection ata time to the dolt repository in the current directory. Any edits made through this server will be automatically reflected in the working set. This behavior can be modified using a yaml configuration file passed to the server via --config <file>, or by using the supported switches and flags to configure the server directly on the command line (If --config <file> is provided all other command line arguments are ignored). This is an example yaml configuration file showing all supported items and their default values: log_level: info behavior: read_only: false autocommit: true user: name: root password: "" listener: host: localhost port: 3306 max_connections: 1 read_timeout_millis: 30000 write_timeout_millis: 30000 databases: [] SUPPORTED CONFIG FILE FIELDS: log_level - Level of logging provided. Options are: `trace', `debug`, `info`, `warning`, `error`, and `fatal`. behavior.read_only - If true database modification is disabled. behavior.autocommit - If true write queries will automatically alter the working set. When working with autocommit enabled it is highly recommended that listener.max_connections be set to 1 as concurrency issues will arise otherwise. user.name - The username that connections should use for authentication. user.password - The password that connections should use for authentication. listener.host - The host address that the server will run on. This may be `localhost` or an IPv4 or IPv6 address. listener.port - The port that the server should listen on. listener.max_connections - The number of simultaneous connections that the server will accept. listener.read_timeout_millis - The number of milliseconds that the server will wait for a read operation. listener.write_timeout_millis - The number of milliseconds that the server will wait for a write operation. databases - a list of dolt data repositories to make available as SQL databases. If databases is missing or empty then the working directory must be a valid dolt data repository which will be made available as a SQL database databases[i].path - A path to a dolt data repository. databases[i].name - The name that the database corresponding to the given path should be referenced via SQL. If a config file is not provided many of these settings may be configured on the command line. OPTIONS --config=<file> When provided configuration is taken from the yaml config file and all command line parameters are ignored. -H <Host address>, --host=<Host address> Defines the host address that the server will run on (default `localhost`) -P <Port>, --port=<Port> Defines the port that the server will run on (default `3306`) -u <User>, --user=<User> Defines the server user (default `root`) -p <Password>, --password=<Password> Defines the server password (default ``) -t <Connection timeout>, --timeout=<Connection timeout> Defines the timeout, in seconds, used for connections A value of `0` represents an infinite timeout (default `30000`) -r, --readonly Disables modification of the database -l <Log level>, --loglevel=<Log level> Defines the level of logging provided Options are: `trace', `debug`, `info`, `warning`, `error`, `fatal` (default `info`) --multi-db-dir=<directory> Defines a directory whose subdirectories should all be dolt data repositories accessible as independent databases. --no-auto-commit When provided sessions will not automatically commit their changes to the working set. Anything not manually committed will be lost.
- 635: Bumped version for release
- 89: Secondary Indexes
This has been cleaned up and whatnot, so you can give this an earnest look. Most things are a deletion, since I chose to go about things a bit differently than it was already coded in, but overall there are relatively few new additions. I also removed a lot of the temporary code that was hanging around, as it turns out most of it wasn't needed. - 88: Zachmu/analyzer
Analyzer improvements, mostly related to treatment of aliases to support selecting the same table twice, but lots of other improvements as well. - 87: ctx in Session.Set
0.16.2
We are pleased to release a couple of bug fixes and a new configuration feature.
In. particular:
- a bug that caused queries against
dolt_diff_<table>
tables is now fixed - users can now configure their MySQL Server instance with a YAML file that will allow them to select multiple repos, among other options
Merged PRs
- 625: Added skipped bats test for bad cloning behavior
- 622: configuration changes
- 621: Db/push to regressions latest
idea here is to maintain two shallow branches used to help with thesqllogictest-tester
jenkins job. whenever we run thereleases
job, we update branchregressions-tip-latest
to the latest release results and also updateregressions-tip-previous
to be whatregressions-tip-latest
was...
Decided to have two branches since we may not always get fixing a regression right away, and this gives us a little time to do so... - 618: Merging release with version bump back to master
- 617: Andy/dolt diff panic
- 616: /bats/arg-parsing.bats: Add skipped test for checkout panic
- 615: Bh/partial key2
handle composite set for partial key iteration
refactor: pulled some of the initialization code out of the creation functions - 614: partial key iteration
This is simple partial key iteration. Certainly not optimal. - 613: Zachmu/sql batch errors
Real tokenization for SQL statements in batch processing mode, instead of line-based scans with hacks for embedded semicolons. Print out the line number failed query during batch processing failure.
Fixes #555 - 612: Db/sqllogictest tester
- 611: filter reader tests
- 609: change default cmItr which used to rely on WithFilters call
Closed Issues
- 623: AWS URL Formats ?
0.16.1
This release contains a bug fix to the SQL server implementation that may cause the server to have issues with starting.
Merged PRs
- 607: Jenkinsfile: Enable AWS remote bats tests in Jenkins.
- 605: {bats,libraries/doltcore/env}: Fix init stomp bug
Dont stomp/save any docs if one or more docs already exist in repo - 604: Skipped bats tests for dolt init stomping existing LICENSE.md and REA…
…DME.md - 603: Schema export specification in bats tests
- 600: Added test for bad error message on only passing one argument to dolt…
… push - 599: Fixed bug for multi-key indexes
- 596: go/store/config: config_test.go: Fix test that fails when running test suite as root.
This can happen when building and running in a golang docker container, for
example. - 595: [WIP] Writable Branches
Still a WIP. Writing additional bats and unit tests. - 594: Tim/bats schema import tags
Skipped bats test for two sequential schema imports causing a guaranteed tag collision - 592: /benchmark/sql_regressions/DoltRegressionsJenkinsfile: Refactor sql-watchers failure email
- 590: Add json to supported output types in dolt sql --help
Fixes #588 - 586: Andy/Init commits don't need migration
If a repo created with an old client ( < 0.16.0) has a branch with only the init commit, newer clients will always register that repo as un-migrated.
This change ignores init commits when checking if a repo has been migrated - 584: Added skipped bats test for DATETIME support in schema import
- 583: go/utils/publishrelease: Run the builds in a docker container to a get managed toolchain.
Closed Issues
0.16.0 [ACTION REQUIRED]
Dolt 0.16.0 is a very exciting release. It contains an important change to how we store columns, as well as a host of exciting features. The change to how we store columns does require users to migrate their repositories when they upgrade. We will provide some background, as well as the (very simple) migration procedure, before discussing features in the release.
We are absolutely committed to making this as painless as possible for our users, as a consequence don't hesitate to shoot us a note at [email protected] if you face any difficulty with the migration, or just need to discuss it further due to the sensitive nature of your data.
Unique Tags Migration
Dolt uses an integer value called a tag to identify columns. This contrived example illustrates that:
$ dolt init
$ cat > text.csv
name,id
novak,1
$ dolt table import -c --pk=id peeps text.csv
CREATE TABLE `peeps` (
`name` LONGTEXT COMMENT 'tag:0',
`id` LONGTEXT NOT NULL COMMENT 'tag:1',
PRIMARY KEY (`id`)
);
Versions of Dolt prior to this release only required tag uniqueness per table in a given commit, not across tables and across every commit.. This caused issues when diffing and merging between commits where column tags had been reused. We decided to bite the bullet and make the fix. Going forward, all column tags will be unique across all tables and history.
Existing Dolt repositories must be migrated to be used with Dolt client 0.16.0 and later. Running a command with the new client on an old repository will result in an error message prompting you to migrate the repository. The migration process is heavily tested, deterministic, and makes no changes to underlying data. It merely fixes the format to satisfy the requirements of new versions. . After upgrading Dolt, run a single command in your repository to migrate:
$ dolt migrate
Once that's complete you should be done. If you have Dolt data living at a remote, and collaborators, there's just one additional step. The first user to upgrade will need to run:
$ dolt migrate --push
This will force push the migrated branches. Subsequent collaborators will have to then run:
$ dolt migrate --pull
This will sync their migrated repo with the migrated remote, and preserve any local changes they have, applying them on top.
SQL
We are committed to making our SQL implementation as close as possible 100% correct, and this release represents a big step towards that goal. The improvements include:
SHOW CREATE VIEW
now works, so views can be inspected in the canonical manner- views now appear in
SHOW TABLES
statements - added support for new types:
DECIMAL
,TIME
,SET
,ENUM
,NCHAR
,NVARCHAR
, and aliases to many more dolt sql-server
anddolt sql
now support accessing multiple dolt repositories in a single SQL session. Each repository is exposed as a database. See databases withSHOW DATABASES
, and select one to query withUSE $database
. Joins across repositories are supported. Startdolt sql
ordolt sql-server
with the new--multi-db-dir
argument, which must name a directory containing dolt repositories to expose in queries.dolt sql-server
now supports writes, which means that the working set will be updated byUPDATE, INSERT, DELETE
and other statements which change data. The SQL server was previously read-only. This fixes #549. Important caveat: only one concurrent connection is allowed to prevent data races. Support for better concurrency is being tracked in #579- functions
user()
,left()
,if()
are now supported, motivated by getting Dolt working with DataGrip - saved queries now execute at the command line with
dolt sql -x
option - more complete implementation of
information_schema
database - JSON output option for SQL query results with
dolt sql -r json
VCS in SQL
As well as making our SQL implementation compliant with MySQL, we are also committed to implementing all VCS operations available on the command line available via the SQL interface.
- we now have a
dolt_branch
system table where the list of branches on a repo is surfaced in SQL
Remotes
We have now fixed AWS S3 remotes, so if you want to use your own S3 infrastructure as a backend, you can do that. See the dolt remote
CLI documentation for details. While we love to see data and users on DoltHub, we are committed to making Dolt and open standard, and that means being useful to the broadest possible audience.
Bug Fixes etc.
As well as fixing the issue with remotes, we fixed a number of other bugs:
- checking out or merging working set doc files
- Better SQL error messages
- SQL queries respect case of column aliases, issue here
- Queries required by Jetbrains DataGrip are now supported issue here.
Merged PRs
- 577: streaming map edits
- 576: Help Fix
As identified by Asgavar in #553 there is a segfault caused by differences in logic between isHelp and the Parse function of the ArgParser. I found that changing the Parser to be like the isHelp function caused issues for some commands if you have a branch named help or a table named help. As a result I opted to change the isHelp logic instead.
Thank you @Asgavar - 572: More Types V2
Have fun @zachmu - 571: Skipping git-dolt bats tests on Windows due to flakiness
Is this fine? By putting it at the end of thesetup
function, it's equivalent to manually putting a skip on every test. Then whenever we fix it, we can just delete it in one place. - 569: Andy/migrate push pull
- 568: Zachmu/sql updates
Implemented auto-commit database flavor, and use it in SQL server. Also:- Fix prompt formatting for shell
- Update result printing for non-SELECT queries
- Use a dolt version string for SQL server
This relies on dolthub/go-mysql-server#84. Will update go.mod once it's checked in.
- 565: SQL Reserved word and SQL Keyword in column name tests
- 564: go/libraries/doltcore/env: paths.go: Consult HOME environment variable for home location before consulting os/user.
- 563: Dockerfile: Bump golang version; use mod=readonly.
- 559: Andy/migration refactor
- 556: Basic SQL batch mode bats tests
- 554: Skipped bats test for help command segfault
- 552: using correct root
- 551: Zachmu/sql json
Added JSON result output to sql command. Also fixed handling of NULL values in CSV output.
This fixes #533 - 548: read only version of branches table
- 547: Km/doc checkout bug
Taylor brought a bad docs bug to my attention. If you had a modified doc, and thendolt checkout <branch>
ordolt checkout -b <branch>
, your local docs would be overwritten by the working root (your changes vanish).
The intended behavior is to keep the working set exactly as it is ondolt checkout <branch>
, given there are no conflicts. Since your "working set" for docs is technically on the filesystem, and not on the roots, it was getting wiped. Now i'm pulling the unstagedDocDiffs from the filesystem, and excluding those when it comes time tosaveDocsOnCheckout
.
Added bats test coverage too - 546: /bats/1pk5col-strings.bats: Add skipped test for exporting to csv then reimporting
- 545: /benchmark/sql_regressions/DoltRegressionsJenkinsfile: Add sql watcher 3
- 544: Zachmu/bheni patch
Fixed bug in parsing URLs of relative file paths. - 543: bats/aws-remotes.bats: Enable test for push.
- 542: Added skipped bats test for issue 538
#538 - 540: interface for multi-db and tests
- 539: Db/dolt harness test
Pretty simple tests, but I think are effective. Tested against the commit that initially caused the breaks and these tests failed... should also have caught the "unable to find table errors" that occurred during the harness fixing iteration process. Feels pretty seems fine to me! LMK - 537: Jenkinsfile: Add environment variables for running AWS remote bats tests.
- 536: bats/aws-remotes.bats: Add some smoke tests for AWS remotes interactions.
Currently these get skipped in CI. Will follow up with CI changes after this lands as they will require some external state creation and some small infra work.
Push is skipped here and can be unskipped after #531 lands.
Clone is skipped here and will remain skipped until another PR fixes it. I took a pass this morning but clone logic has gotten a little hairy and I wasn't happy with the progress I was making. Going to take another pass soon. - [535](https:...
0.15.2
We are excited to announce the release of Dolt 0.15.2.
AS OF Further Enhanced
In our last release, 0.15.1 we highlighted the ability to query AS OF
a branch or commit. In this release we expand this functionality by allowing uses to query AS OF
a timestamp. This represents a version of the syntax familiar to users of other SQL databases with versioned data support. Thus we allow users to treat the underling commit graph as either wall clock time or relative to a commit.
TIMESTAMP and DATETIME functions
Dolt SQL now supports TIMESTAMP
and DATETIME
functions, which can be used to construct a time object of the given type. DATETIME('2020-03-01')
and DATETIME()
will return the given time or the current time, respectively.
Other
We continue to make enhancements to our underlying SQL engine, and other assorted bug fixes.
As usual, let us know if you have any thoughts by filing an issue!
Merged PRs
- 487: fix issue with merge blowing away changes in working
Previously we used to fail if there was anything checked out and you tried to merge. Then we went to the git model where we would allow merging as long as the changes in the working set didn't touch the same tables as the changes in the commit being merged. For fast forward merges this was stomping working table changes as we'd just set the root and not re-apply the changes to the tables that were modified in the working set. - 485: Andy/ci compatibility
- 482: Db/bats merge stats
One test for inaccurate merge stats, one for confusion with thecheckout
command.
@timsehn how do you wantcheckout
to work when branch name and table name are identical? - 481: go/go.mod: Upgrade dependencies.
- 480: /go/{go.mod, go.sum}: Update go.mod github.com/liquidata-inc/sqllogictest
- 478: execute saved query
Implements:Changesdolt sql -x <saved_query_name> dolt sql --list-saved
dolt sql -s <name> -q <query>
now saves the query with id = name
- 476: Zachmu/as of timestamp
Support for AS OF queries with a timestamp - 475: bump version
- 75: Added database qualifiers to view resolution.
- 74: Zachmu/datefns
Added support for DATETIME() and TIMESTAMP() functions - 73: Zachmu/as of
Support for pushing AS OF clauses down to tables in a view. Kind of janky, but works great! - 72: update vitess dep
Dolt 0.15.1 released
We are excited to announce the the release of Dolt 0.15.1.
AS OF
We now support AS OF
queries, similar to the Microsoft SQL Server implementation described here. Timestamps are not yet supported for AS OF
expressions, but users can use branch names, commit hashes, and other commits specs:
SELECT name FROM persons AS OF 'add-new-employees'
SELECT * FROM persons AS OF 'hvbsl13cbi03ptft78k0pgtkgpd68ehj'
SELECT * FROM persons AS OF 'HEAD~'
These queries will retrieve rows from the table as it existed at the named revision. Different tables in a join can use different AS OF
clauses:
SELECT name FROM persons as of 'HEAD~' NATURAL JOIN addresses AS OF 'HEAD~2'
Other
Elsewhere we continued to improve the performance and correctness of SQL, expand test coverage, and fix bugs.
Merged PRs
- 474: Fixed bug caused by overzealous refactoring
- 471: Zachmu/batch bug
This fixes #467.
The SQL script in question deleted and recreated a subset of the table, and should have resulted in no diff. Before this change, it resulted in some subset of rows being deleted. The issue was that DoltDatabase in batch mode was using mapEditor.Remove and mapEditor.Add for the same keys, which doesn't work in all (most) cases. The solution is to flush the cache before and after any non-insert statement when running in batch mode.
This change also makes the output for batch mode more sensible.
Brian to review, Andy and Aaron FYI. - 469: dolt sql-server bats test support
- 468: Zachmu/as of
Dolt support for AS OF queries.
This won't build until dolthub/go-mysql-server#71 is merged and dependencies updated. - 465: Fixed error where we weren'tlogging an error that resulted from flush…
…ing a batch SQL import - 461: add information_schema database
- 460: /go/libraries/doltcore/sqle/logictest/main/main.go: Add timeout result for sqllogictests
- 456: Andy/datetime fix
- 455: Fix the SQL
server command by providing it the appropriate variable when instantiating SQL server object. - 453: reorganized to create testcommands package
This PR is simply a reorganization to allow for thetestcommands
package, see go/libraries/doltcore/dtestutils/testcommands/command.go.
These sorts of end-to-end tests have been very useful so far in writing rebase and super schema, and I'd like to expand their use across the codebase. - 452: /bats/remotes-file-system.bats: Add skipped test for failed branch deletes after fetch
- 451: /bats/remotes-file-system.bats: Add skipped bats test for fetch display branch bug
- 449: adding skipped bats tests for table merge panics
- 447: First cut at generating CLI docs for docs site
Our CLI has help text, we also use that text to generate docs for our documentation site at (DoltHub docs)[dolthub.com/docs].
Generating docs and command line output from the same content entails three separate concerns:- the raw content
- modifying the content so the rendering is correct (in this case shell output and Gatsby build of
.mdx
files, JSX version of.md
) - IO for writing to console (CLI help text) and files (
.md
files for building docs)
The goal of this PR is to move us towards a clean separation of these three concerns using Go templates. Specifically
- implement helper types and methods for modifying content to render correctly in CLI output or
.mdx
- modify the raw content to the new data structures and text format that can be templated
- update markdown generation code to simply request a template, rather than building document manually
Future work will be to use templates for the CLI output.
- 446: go/store/nbs: s3_table_reader: Be certain to close body readers when reading from S3.
It is necessary and correct that we close these readers. Helps with persistent
connection reuse, accurate logging and timing metrics, timely resource
finalization, etc. - 443: Added a succeeding bats test for push --set-upstream.
Could not repro panic from #442. - 441: Added skipped bats test for update a datetime field
- 439: get rid of unique counts
- 438: Db/dolt sqllogic add version to DoltRecordResult
- 437: bumped version for release
- 436: pull stomp fix
- 71: Zachmu/as of
AS OF implementation.
This change also removes context.Context references from the core.go interfaces, replacing them with sql.Context to be consistent. - 69: added conversion logic to SetField expression
Closed Issues
Dolt 0.15.0 released
We are excited to announce the release of Dolt 0.15.0.
SQL Type System
Previously Dolt had a much narrower type system than MySQL. For ease of use reasons, we just mapped types that we did not support to their "super type", for example using the previous Dolt release:
doltsql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE, PRIMARY KEY (name));
doltsql> describe pet;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| name | LONGTEXT | NO | PRI | | |
| owner | LONGTEXT | YES | | | |
| species | LONGTEXT | YES | | | |
| sex | LONGTEXT | YES | | | |
| birth | DATETIME | YES | | | |
| death | DATETIME | YES | | | |
+---------+----------+------+-----+---------+-------+
Using this release of Dolt, we can see that richer type choices are respected:
doltsql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE, PRIMARY KEY (name));
doltsql> describe pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | VARCHAR(20) | NO | PRI | | |
| owner | VARCHAR(20) | YES | | | |
| species | VARCHAR(20) | YES | | | |
| sex | CHAR(1) | YES | | | |
| birth | DATE | YES | | | |
| death | DATE | YES | | | |
+---------+-------------+------+-----+---------+-------+
We hope this makes it easier for users to use Dolt in the context of their existing data infrastructure. This change is backward compatible. So old versions of Dolt can read repos written by new versions, and vice versa. That said, you should upgrade to the latest and greatest!
Unions
We also now support unions, a powerful tool for tabulating the results of analyses produced by different queries:
doltsql> (select 1 as this) union (select 2 as this);
+------+
| this |
+------+
| 1 |
| 2 |
+------+
Other
We also improved the performance of the Dolt log table, as well as making our usual assortment of bug fixes and improvements.
Merged PRs
- 435: /go/libraries/utils/iohelp/read_test.go: Skipping TestReadWithMinThroughput due to flakiness
- 434: Added skipped divide by zero bats test
- 432: go.mod: Bump go-mysql-server to support SQL UNION.
- 426: topo sort for log
- 424: Dolt log bats test rework
- 423: /go/libraries/doltcore/sqle/logictest/main/main.go: Add withdurations option
- 422: Made a file system remotes bats test file, added some tests, and move…
…d appropriate tests from remotes.bats. Added a skipped test in remotes.bats for dolt pull stomping a dirty working set - 419: add user agent to grpc calls
- 418: filter commits used by history table
replaces #409 - 417: optimize the map iterator used by the history table
- 416: bh/set-algebra
Package setalgebra provides the ability to perform algebraic set operations on mathematical sets built directly on noms
types. Unlike standard sets in computer science, which define a finitely sized collection of unordered unique values,
sets in mathematics are defined as a well-defined collection of distint objects. This can include infinitely sized
groupings such as the set of all real numbers greater than 0.
See https://en.wikipedia.org/wiki/Set_(mathematics)
There are 3 types of sets defined in this package: FiniteSet, Interval, and CompositeSet.
FiniteSet is your typical computer science set representing a finite number of unique objects stored in a map. An
example would be the set of strings {"red","blue","green"}, or the set of numbers {5, 73, 127}.
Interval is a set which can be written as an inequality such as {n | n > 0} (set of all numbers n such that n > 0) or a
chained comparison {n | 0.0 <= n <= 1.0 } (set of all floating point values between 0.0 and 1.0)
CompositeSet is a set which is made up of a FiniteSet and one or more non overlapping intervals such as
{n | n < 0 or n > 100} (set of all numbers n below 0 or greater than 100) this set contains 2 non overlapping intervals
and an empty finite set. Alternatively {n | n < 0 or {5,10,15}} (set of all numbers n below 0 or n equal to 5, 10 or 15)
which would be represented by one Interval and a FiniteSet containing 5,10, and 15.
There are 2 special sets also defined in this package: EmptySet, UniversalSet.
The EmptySet is a set that has no values in it. It has the property that when unioned with any set X, X will be the
result, and if intersected with any set X, EmptySet will be returned.
The UniversalSet is the set containing all values. It has the property that when unioned with any set X, UniversalSet is
returned and when intersected with any set X, X will be returned. - 415: publishrelease/install.sh: install -d /usr/local/bin if it does not exist.
- 414: added RepoStateReader interface
- 413: Added a couple more test cases in the limit test
- 412: Skipped bats test for DATE_ADD and DATE_SUB in the where clause
- 411: Added new test repository with TypeInfo changes
- 408: Added a group by bats test highlighting inconsistent behavior
- 406: Bumped version for release
- 404: iterate a map backward
How much do you hate this? - 403: Tim/dateformat bats
- 68: sql/{parse,plan}: Add support union parsing and execution.
This is still partial. We need type coercion and schema validation to be done
in the analysis phase. - 67: Zachmu/datemath
Fixed panic when using interval expressions in WHERE clauses. - 66: Negative Numbers
Somehow I was able to not only forget to include logic to handle negative numbers, but I forgot to also write a test for them too, and even implemented this library in dolt and didn't test for negative numbers there. I'm actually surprised. It wasn't even caught in peer review. It's the simplest things that we forget to check, and those are the ones that can cause the most havoc.
Closed Issues
- 420: Dolt log -n 10 returns wrong results. Dolt log produces correct result.
0.14.0
We are pleased to announce the release of Dolt version 0.14.0.
Query Catalog
The major new feature in this release is the query catalog, which is implemented via adding additional options to the dolt sql
command. Users can now pass --save
and --message
options to SQL queries to save and version them at the repo level:
-s <saved query name>, --save=<saved query name>
Used with --query, save the query to the query catalog with the name provided. Saved queries can be examined in the dolt_query_catalog system table.
-m <saved query description>, --message=<saved query description>
Used with --query and --save, saves the query with the descriptive message given. See also --name
This will allow users to document their data with versioned SQL queries. In the future we hope to make this a validation tool.
Assorted Fixes and Improvements
We continue to make progress on our SQL implementation, both in terms of correctness and performance. For example, GREATEST()
now supports timestamps. We are prioritizing correctness over performance, though we are making gains in performance.
As usual, if you see anything amiss, please don't hesitate to file an issue.
Merged PRs
- 401: Fixed arg-parsing.bats not working on Windows
- 400: Added 2 skipped argument parsing bats tests.
We don't support Nix style argument parsing completely right now - 399: Quote view name on create view
- 395: go/cmd/dolt/commands/sql.go: Always close row iters. Improves robustness when SQL returns an error.
- 394: Km/doc diff print bug
- 393: Bumped go-mysql-server version
Integrates dolthub/go-mysql-server#65 into dolt - 390: bats/sql.bats: Document some unsupported SQL features with some failing bats tests.
- 389: go.mod: Upgrade dependencies.
- 386: delete cell values on drop column
- 383: deadlock fix
- 382: README.md: Add sudo invocation to install instructions.
- 379: no whitespace column names
- 378: Bumped go-mysql-server version
- 376: Added skipped test for select as
- 375: Zachmu/query save feature
Implemented query saving via new dolt_query_catalog table, created by dolt sql -q -s.
Also:- Unified business logic for validating table names in every code path where a table is created
- Separated out read-only, read-write, and alterable SQL tables
- Refactored deeply nested error handling logic in mv and cp commands
- Refactored import command to separate validation from execution logic
- Added many tests
- 372: check for nil or empty column headers
@timsehn do we want to allow whitespace column names? - 371: unskip test after fixing query
- 369: fix metrics bug
- 368: chunk store metrics wrapper
- 367: Changed add all shortcut from lowercase a to uppercase A to match git.
Added corresponding bats test.
Fixes #345 - 366: name already existing file in error message
- 365: Bumped version for 0.13.2 release
- 364: Added a basic tests for dolt_diff_ and dolt_history_ system tables.
Found weird behavior in dolt_diff_. - 363: Fix error message when table doesn't exist
Fixes #275. - 65: Added DATETIME handling to GREATEST/LEAST functions
Fixes #380 - 63: sql/expression/function: Add UNIX_TIMESTAMP function.
- 62: Fix stupid compilation issue
- 61: small fixes
- 60: Fixed Bit type
- 59: Fixed a bug in drop table logic caused by variable shadowing. No test…
…s of this behavior because we don't have an easy way to make an operation like DropTable return an error in the in-memory database.
Closed Issues
0.13.2
The set of changes for this version are:
- Bug fixes and improvements
- Output query results in CSV format
- Standards compliant CSV exports
As usual, please let us know if you have any questions or concerns.
Merged PRs
- 362: Zachmu/sql csv
CSV output for SQL - 361: Added skipped bats test for REPLACE counting issue
- 360: Added three simple explain bats tests
- 355: Fixed dolt documentation and improved relevant bats test
- 354: fix casing issue
- 353: A start on system tables bats tests
@bheni will finish this and unskip the tests that are specced - 352: ls --system and --all flags
- 351: correct schema merge
- 349: go/cmd/dolt: commands/credcmds/use.go: Implement
dolt creds use
to select a credential. - 348: fixed panic on merge of non-existant branch
- 347: go/cmd/dolt: commands/credcmds/new: Use a newly created credential if there is no existing selected credential.
- 344: Bump go-mysql-server
- 343: Changed the install instructions on dolt README.
Install instructions now point to new install scripts. - 342: Zachmu/fix clone empty
Cloning an empty repo now works as expected. Fixes #217 - 341: Bumping version on tip of master to fix shell script
- 339: Added tags tests
- 338: fixed conditional that was preventing batching
Batching happens in two places: on initialization and each time the current batch is exhausted. Incorrect logic on lines 53 & 54 was preventing batching once the initial batch was exhausted. - 337: bats,{go/cmd/dolt/commands}: Hide doc schema for schema show w/no table args
- 57: Added ChangeCollation to StringType
Also renamedCreateBlob
andMustCreateBlob
toCreateBinary
andMustCreateBinary
because those names make more sense.