Releases: dolthub/dolt
0.19.2
Merged PRs
- 886: no parallelism if GOMAXPROCS == 1
- 885: cpp mysql client tests
- 883: mysql client tests install golang
- 878: Go MySQL client test
- 877: validate ref strings when resolving ref specs
fix for #874 - 875: go: Changes to support some commit walks used in Dolthub diffs when the commits come from different repositories.
- 874: Added skip bats test for ref spec panic on diff
- 873: Fixed ActionExecutor causing duplicate key error loop
- 870: Fixed bug with diffing column defaults
- 869: update vitess
- 868: Added perl mysql client tests
- 867: Added Python SQLAlchemy test to mysql-client-tests
- 190: Harrison pr
https://github.com/liquidata-inc/go-mysql-server/pull/189/files and a couple fixes - 188: triggers 2
Insert triggers working for the following cases:- Insert some rows
- Delete some rows
- Update some rows
Missing, needs to be added: set new.x = blah
as part of a BEFORE INSERT trigger. Need to rewrite the SET handling parser logic for that.- error testing for bad triggers (like inserting on the same table the trigger is defined on)
As part of this, I rewrote the execution logic for Update, Delete, and Insert entirely.
0.19.1
Merged PRs
- 862: /go/{go.mod, go.sum}: Update go.mod with go-mysql-server@master
- 861: dotnet mysql client test
- 860: Fixed column renaming breaking default values
- 859: mysql client test c
- 187: Additions to utc_timestamp and timediff
- 186: fix collations
- 185: Fixed bug with column renames breaking default values
- 184: /sql/expression/function/{date.go, date_test.go, registery.go}: Add utc_timestamp
- 183: Fixes for bugs found during integration of column defaults
- 180: triggers
- 178: Column Defaults Implementation Part 2
Here is a comprehensive set of tests for default logic. Practically everything that was added in dolthub/go-mysql-server#174 is covered here, including some edge cases. In addition, the memory table implementation was broken/insufficient in a few ways, so I patched those up.
The biggest change besides the tests is the additional pass when projecting expressions. This is required in order for defaults that reference other columns (especially those that come after) to be able to pull the correct value. This was something I noticed only after I wrote a test that wasn't behaving as expected (compared to the MySQL client). In fact, all of the changes outside ofenginetests
were due to fixing bugs that were found from testing. - 176: Add import statements to readme example
The example in the readme has no import statements, so it's unclear to someone new to the project. So I added some import statements! - 174: Column Defaults Implementation Part 1
This is missing basically all of the new tests, which will come in a separate PR. Proper expressions -> string behavior will also come in a separate PR. Besides that, this is pretty much most of it barring additional bug fixes. All existing tests (some of which use defaults already) pass.
For integrators, they'll make use of the newengine.ApplyDefaults
method.
Closed Issues
0.19.0
We are excited to announce the release of a minor version of Dolt, going from 0.18.4 to 0.19.0, prompted by the addition of tags, modeled on Git, and read-tables
, a command that provides a form of shallow clone operation that clones only the data at a given commit or branch on a remote.
Tags
We are excited about Dolt as a data distribution format, and we want to provide tools for folks distributing data to robustly version their releases. Tags enable data publishers to signal discrete data releases to their users. Users can diff between two tags to compare changes.
dolt read-tables
In discussions with some of our users we found that they were excited about using Dolt as a format for collaborating on data, but needed to then use that data in automated settings where it would be unacceptable to clone the whole history on every clone, for example ephemeral compute resources that use the data for automated jobs. We provided read-tables
as a way to obtain the Dolt database at a given commit, or branch.
Other
As usual we include in this release bug fixes and performance improvements. In this release we particularly emphasized fixes to go-mysql-server
that is becoming an increasingly important interface for many of our users.
Merged PRs
- 858: Push/Pull Tags
- 851: tag redesign
- 850: Db/containerize mysql test env
- 849: /mysql-client-tests/{node/, MySQLDockerfile}: POC dockerizing test env
so the docker container seems to work with the following changes... my JS/Node is kinda wack these days too...
so this can run like this:$ cd mysql-client-tests $ docker build -t mysql-tests -f MySQLDockerfile . $ docker run -it --rm mysql-tests:latest /bin/bash root@e1fbe3c4579f:/mysql-client-tests# bats mysql-client-tests.bats ✓ python mysql.connector client ✓ python pymysql client ✓ mysql-connector-java client ✓ node mysql client 4 tests, 0 failures root@e1fbe3c4579f:/mysql-client-tests# exit
- 848: MySQL Client Tests
This PR will contain the MySQL client tests in each language. I've chosen BATS as the framework to drive the testing because I'm familiar with it. We can swap that out if necessary. - 847: add ReadAheadTableReader.go
The pipeline framework already handles this, but when reading outside a pipeline it can have performance benefit to having a go routine reading the data than the go routine that is processing it. - 844: go 1.15 fixes
- 843: partitioning of dolt tables
- 842: Tie Dolt commit struct fields to Noms commit struct fields
As far as I can tell, the constants indoltdb/Commit.go
only work because they match the constants here
Also, there is currently a mismatch betweendoltdb.parentListField
anddatas.ParentListField
which should cause the list of parents to never be found - 841: parallelism
- 840: query differ patch
- 839: Bug fix for reverse sequence cursor.
Not sufficient to just mark a cursor reverse after the fact, need to initialize cursors at all levels of the tree as reverse as well. Still needs tests, but fixes panics in sqllogictest. - 162: Changed the test data for one_pk, two_pk to be able to differentiate …
…between the various columns. This gives us more confidence that we're choosing the right field index in subqueries.
0.18.3
We are releasing Dolt 0.18.3 with a host of bug fixes and performance improvements. In particular:
SHOW TABLES
now supportsAS OF
syntax, which can point at a timestamp or branch- subqueries can now reference their surrounding outer scope, bringing them into line with MySQL subqueries
- substantial memory footprint improvements, particularly when importing data
Merged PRs
- 837: /{.github, go}: remove check-committers check from ci
- 835: Updated go-mysql-server, added test for SHOW TABLES AS OF
- 834: Andy/release tags
First pass at implementingdolt tag
. Basic functionality to create, list, and delete tags. For now the command is hidden. At the Noms layer, tags are implemented as commits. Still todo:- Checkout a tag (Git does this via detached head)
- Push/Pull tags to/from a remote
- 831: Updated to hard fork of vitess
- 829: Zachmu/mysql update
Fixed compile errors and problems in query differ in latest go-mysql-server (not checked in yet). Will update go-mysql-server in go.mod before checking this in. Tests will fail until then. - 827: add --show-current option to dolt branch
I added --show-current option to dolt branch cli.
ref. #818 - 826: shallow clone
- 825: Updated version for release of version 0.18.2
- 159: Updated references for hard fork of vitess
- 158: Fixed panic when using non-literals as column defaults
This fixes #104 - 157: Fixed the run script and a couple of the integrations
- 156: Bug fix for issue 152
This fixes #152 - 155: Zachmu/delete js
Deleted JS integration and unused theme files. - 154: Zachmu/analyzer scope 5
Final-ish solution for subquery expression analysis. Haven't yet merged the original PR since I still haven't fixed dolt to work with this. - 151: Zachmu/analyzer scope 3
Partial implementation of subqueries with outer scope resolution. Not every subquery works yet, but I believe that this is strictly additive in terms of capabilities: no query that worked before is broken by this change, and many now pass. I want to get this merged in since it includes a few large interface changes and file moves that could conflict with other work. I will verify that this increases pass rates in sqllogictest before merging.
Closed Issues
0.18.2
We have released Dolt 0.18.2 with bug fixes, performance improvements (mainly around memory usage), and improvements to the way we handle merges.
Merged PRs
- 824: /.github/workflows/ci-bats-tests.yaml: revert changes now that breaki…
fixed here https://github.community/t/github-action-environment-variable-missing-breaking-issue/125913 - 823: /.github/workflows/ci-bats-tests.yaml: Skip aws remotes bats tests
- 822: /go/go.mod: update eventsapi generated types
related to #816 - 820: foreign keys can use primary keys as parent table indexes
This change makes a special case for foreign keys that reference primary key(s) in the parent table. If all of the parent table columns are primary keys, we create an index to use for the foreign key.
Ideally we'd make use of the existing clustered index as the parent table index. Because we will soon be adding keyless tables and allowing primary key changes, I'm punting, for now, on a more elegant implementation. - 814: Fixed memory leak when running sqllogictests
Performance seems roughly the same compared to the pre-FK changes from my testing. Perhaps not the best solution, but it fixes the leak while preserving performance. - 813: Foreign Key, Index changes
- Added
diff
support for foreign keys and indexes - Updated commit, stage, and reset logic to match tables based on column tags instead of table names
- Added
- 812: Andy/range reader empty map
- 811: Andy/foreign key changes
- 807: ALTER TABLE x ADD INDEX unnamed
- 805: Added support and tests for CREATE TABLE INDEX
- 804: Resolved memory leak
Fixes a memory leak that was observed during a large import. It appears that the primary key tuples were never deallocating, although I could not pinpoint what's holding on to the tuples. ThetableEditAccumulator
seems to be the only place, and it is discarded after it goes throughflushEditAccumulator
, so that doesn't seem to be it. However, setting its fields tonil
fixes the leak, indicating that there is somewhere holding on to oldtableEditAccumulator
s. I also checked ifasync.ActionExecutor
was the culprit, but manual debugging and testing showed that it wasn't holding on to any references once they went through thework
method. This isn't a true fix, as there is still technically a leak for whatever is holding on to thetableEditAccumulator
, but it's a leak of mere kilobytes per hour rather than megabytes per minute.
Here is an image frompprof
from before.
Same query, but with the changes. Will not be equal to zero as the tuples (returned from here) are still stored in memory before being written to disk, so this is what we'd expect/desire.
Also verified each by watching memory usage in Task Manager (Windows 10). - 800: Updated version for release of version 0.18.1
- 149: Added indexes to CREATE TABLE
- 147: create parent table indexes for foreign keys
0.18.1
We are pleased to announce a patch release with bug fixes and performance improvements, specifically:
- SQL Alchemy Python library could not parse
SHOW CREATE
statements from Dolt because the datatypes came back upper case (valid SQL, but breaks a hashtable look up in SQL Alchemy metadata parsing) - Fix the
dolt_history_<table>
tables, which had broken commit filtering - fix error when attempting to create a commit with unresolved conflicts still in the working set
Merged PRs
- 799: go/libraries/doltcore/env/actions: commit.go: Error when attempting to create a commit with unresolved conflicts still in the working set.
I realized when working on a blog post thatdolt commit
will currently go ahead and create the merge commit even if there are unstaged conflicts in one of the merged tables. This is not the behavior we want.
Currently, we do not allow staging tables that have conflicts. This change makes it sodolt commit
also fails if there are any conflicts in any of the tables in the working set. - 796: Andy/history table bug
- 795: go/libraries/doltcore/doltdb: Use parentsList in a Commit if it is available.
- 794: uncommenting tests
- 793: Zachmu/analyzer update
Upgraded to latest go-mysql-server, fixed breaking changes from analyzer renamings / signature changes. - 789: schema merge
Foreign Key merge is somewhat incomplete here, hence the skipped BATS. I'm going to implement the FK changes we discussed earlier this week in order to finish FK merge. - 788: Db/fix ci checkfmt
Not really sure what's going on here... I reran you branch, which seems to consistently fail thego/utils/repofmt/checkfmt.sh
... That script usesgoimports
(go install golang.org/x/tools/cmd/goimports
) to check the import order of the file... Not really sure why this works.
Alternative I could separate each script into its ownrun
step in the workflow... - 787: go/store/datas: commit.go: Start storing commit parents as a List instead of a Set.
Commit parent order has meaning in our use case. The branch that gets merged
into is always the first commit in the parents list. Up until this change, the
noms layer stores commit parents as a Set, which is unordered and orders the
parents based on their commit hash.
This changes commit struct to carry both parents Set and parentsList List.
CommitOptions supplies a ParentsList, but both get stored for backwards
compatibility with existing dolt clients.
This change does not include changes to start using the stored parentsList in
things like ancestor traversal ordolt log
. The intended migration is that
the read logic will read fromparentsList
in a commit if it is present, and
will fall back to theparents
Set if it is not.
Eventually we will be able to migrate to not writingparents
Set anymore.
There is no current plan to drop support for readingparents
Set when
parentsList
is not available. - 786: go/libraries/doltcore/doltdb: commit_spec.go: Make CommitSpec internal state unexported.
- 785: go/cmd/dolt/commands: merge.go: Make merge operate on commit specs, not branch refs directly.
- 784: go/cmd/dolt: Change commit spec handling so that abbreviated forms of remotes are supported.
This changesdoltdb.CommitSpec
to carry the original input in therefs
case, instead of trying to add a prefix or anything else. Instead,doltdb.Resolve()
takes the currentHEAD
ref, and fully resolves theCommitSpec
itself.
There was some confusion in usage across the code base withNewCommitSpec
. In particular, there was a lot ofNewCommitSpec("HEAD", "some-branch-name-that-is-not-CWB")
in order to getNewCommitSpec("some-branch-name-that-is-not-CWB", "")
. This collapsed all such uses to the same syntax."HEAD"
is only used for resolving the CWB now.
In places where the CommitSpec was statically known to not beHEAD
, I've not bothered to always thread theCWBRef
to theResolve
call.
This change will breakld
Dolt usage, but I will follow up there when this lands inmaster
. - 782: go/libraries/doltcore/merge: resolve.go: Fix panic when resolve conflicts for a deleted-in-our-branch row.
- 781: Zachmu/show foreign keys
Implemented new foreign key interfaces for go-mysql-server, and upgrade to latest vitess and go-mysql-server - 780: Release
- 145: Zachmu/analyzer scope
Refactoring / renaming, method comments, and new tests related to analyzer deep dive. Added a new Scope param to every analyzer function (not yet used). - 144: Lower-case types in SHOW CREATE TABLE and DESCRIBE TABLE output.
This matches MySQL behavior, and is required by at least one third-party tool (SqlAlchemy) - 143: Zachmu/fk bugfix
Fixed a couple issues in test setup revealed by testing foreign keys with dolt - 142: Formatted the repo
- 141: Zachmu/desc table
Added key info to output of DESCRIBE TABLE / SHOW COLUMNS - 140: Zachmu/show create foreign keys
Support for foreign keys in SHOW CREATE TABLE statements, and engine tests of the same.
0.18.0
We are excited to announce the release of significant enhancements to Dolt's SQL implementation, as well as a new feature, prompting a minor version bump to 0.18.0.
Diffable Queries
Dolt's diff
command now supports a -q
flag which will evaluate the results of a query at two commits and compare them:
dolt diff -q <query>
This gives users a richer programmatic interface into analyzing the impact of changes through time by showing them the exact changes in, potentially complex, queries at various points in the commit graph. For example, consider the National Vulnerabilities Database on DoltHub:
%dolt diff p30hoseurm9qfl7jhb9t4l7jfnshk6v9 -q 'select floor(impact_score), count(*) from cve group by floor(impact_score)'
+-----+-------------------------+----------+
| | FLOOR(CVE.impact_score) | COUNT(*) |
+-----+-------------------------+----------+
| < | <NULL> | 8468 |
| > | <NULL> | 8428 |
| < | 1 | 3125 |
| > | 1 | 3124 |
| < | 2 | 41465 |
| > | 2 | 41668 |
| < | 3 | 14324 |
| > | 3 | 14318 |
| < | 4 | 5385 |
| > | 4 | 5418 |
| < | 5 | 22039 |
| > | 5 | 22034 |
| < | 6 | 33798 |
| > | 6 | 33890 |
| < | 9 | 282 |
| > | 9 | 283 |
| < | 10 | 16798 |
| > | 10 | 16864 |
+-----+-------------------------+----------+
This shows the changes in the counts of various vulnerabilities across a range of impact score buckets. We are excited to continue enhancing the richness of the programmatic interfaces we provide into Dolt's commit graph to facilitate more robust automated interactions.
Foreign Keys
Many of the major use-cases identified for Dolt involve the need to sync with existing RDBMS systems. With this in mind we are committed to moving towards total SQL compatibility as quickly as possible. A major piece of this is foreign keys. Many application servers use foreign keys to maintain valid structure around their data, and not supporting those constructs would make it tough to replicate an existing table structure that used them without manual schema manipulation.
In this release we now support inter-table foreign keys. We do not yet support intra-table foreign keys (i.e. a constraint on a table against the same table), which is less common, though allowed in the standard. We will support such constraints in a future release.
New SQL functions
We added support for the list of functions below. You can see an index of functions that we support relative to the MySQL standard in our docs.
GET_LOCK
IS_FREE_LOCK
IS_USED_LOCK
RELEASE_LOCK
RELEASE_ALL_LOCKS
ASCII
BIN
BIT_LENGTH
SIGN
UCASE
UNHEX
ACOS
ASIN
ATAN
CRC32
COS
COT
HEX
DEGREES
RADIANS
SIN
TAN
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DAYNAME
MICROSECOND
MONTHNAME
TIME_TO_SEC
WEEKOFYEAR
DATE_FORMAT
WEEK
Merged PRs
- 778: Bh/update gms
- 777: Merge Block
As discussed (and in relation to #773), we will fail on all merges where the schemas are not the same. As a result, one index bats test no longer makes sense, and all other tests that rely on the behavior have been skipped/commented out. - 776: moved query_diff to diff -q
- 774: Foreign Keys Part 3 Episode 2
The last bit of things to add for foreign keys! - 772: Zachmu/show indexes
Implemented new interface methods needed by latest go-mysql-server - 771: Foreign Keys Part 3 Episode 1
Here are the merge changes along with somebats
tests - 770: /Jenkinsfile: Remove stages that are now in github actions
- 769: /.github/workflows/ci-compatibility-tests.yaml: Add compatibility test github actions
- 768: Added GROUP BY support, tests to dolt query_diff
- 767: /.github/workflows/ci-check-repo.yaml: Iterating on github actions check repo
looking into fixing this: https://github.com/liquidata-inc/dolt/pull/767/checks?check_run_id=808971285#step:4:296the2020/06/25 21:04:02 Error running `git merge-base remotes/origin/db/ci-github-actions-check-repo remotes/origin/master` to find merge parent: exit status 128 exit status 1
exit status 128
is from//go/utils/checkcommiters/main.go
... im thinking could be the go version? i had to use1.13
here to get past the error that occurred when i used go version^1.13
regarding the-mod=readonly
flag.... - 766: Andy/json dates
fix addressing #755 - 764: /.github/workflows/ci-bats-tests.yaml: Add dolt bats tests ci github actions
Seems to run the tests for bothlinux
andmacos
... need to fix the broken tests that have specific dependency issues - 762: Db/ci GitHub actions go
Run go tests fordolt
on PRs - 760: /.github/workflows/bump-brew-formula.yml: Attempt to fix syntax and dispell yaml syntax error
My best guess at the correct syntax... not a huge fan of actions rn lol - 758: Added skipped test for json DATETIME bug.
Also, added || false on some regexes to create deterministic behavior in old versions of bash. - 757: .gitmodules,proto/third_party/golang-protobuf: Remove unused golang-protobuf submodule.
- 754: proto/{third_party,Makefile}: Adopt protobuf-go and grpc-go for protobuf message generation.
- 753: Foreign Keys Part 3
This PR implements the commit functionality, along withcommit --force
. - 750: bats/remotes.bats: Add bats tests, some skipped, for some remote branch ref handling tests.
- 749: go/go.mod: go get -u ./....
- 747: bats: Change remotesrv pid handling to capture pid of background process.
- 746: query_diff via lazy projections
Another iteration ofquery-diff
. The methodology is:- Generate a query plan at each
RootValue
from & to - Alter the query plan to lazily evaluate projections. This allows access to any column that is used in ordering the query results
- Determine the order of the query results by extracting all primary key columns and
SortFields
- Iterate over the modified query plans, diffing their results by comparing row order. Then evaluate the projections to produce the final diff
This version does not yet incorporate Noms layer diffing. It also does not yet handle aggregate functions.
depends on dolthub/go-mysql-server#127
- Generate a query plan at each
- 745: README.md: Correct GOROOT to GOPATH in installation instructions.
- 743: Upgraded go-mysql-server and vitess
- 740: /benchmark/sql_regressions/run_regressions.sh: Iterating on timing commands
spits out timing info for these different commands - 738: go/store/datas: FindCommonAncestor: Fix potential for explosive growth if RefsByHeight queues if the same references are visited multiple times.
- 737: First draft of GitHub Action for bumping homebrew on tag
This relies on us being able to keep a private secret on this repo. I know the repo is public but I believe we can keep a token private to repo admins and then provide access to that to the GitHub Action so that it can raise a PR against the Homebrew repository? - 735: Release
- 139: Added format script
- 138: Andy/query diff 4
- 135: Zachmu/show create indexes
Added non-primary keys to SHOW CREATE TABLE output - 134: test fix
- 133: Zachmu/show indexes
Fixed show index statements to work with native indexes. Added several new methods to Index interface, which will break existing integrators. - 130: more functions
- 129: pow fix: these children aren't twins
- 128: Zachmu/wsl fix
Added WSL-checking to socket checking code for linux, as it appears to be broken. In this case, don't do socket polling, same as Windows and Darwin. Also added additional trace logging to handler.go, and moved the socket polling goroutine to its own method. - [127](https://github.com/d...
0.17.2
A patch release containing bug fixes and performance improvements, in particular we are focused on reducing the number of skipped BATS tests.
Merged PRs
- 733: go/libraries: sqle: history_table: Thread context on row iterators.
- 729: Zachmu/engine test
Run the go-mysql-server engine tests on dolt. - 728: added --with-tags flag to schema export
I only changeddolt schema export
. Other commands likedolt show tables
ordolt diff --sql
still output tags. This is easy to change on case by case basis. - 724: Bh/conflicts table3
- 723: Bh/conflicts table2
- 115: Zachmu/engine test dolt
Modified test harness and data to work with doltdb - 113: Zachmu/test harness 2
Rewrote engine tests to use a harness, so that integrators can run them against their own implementation. In the process, broke the giant engine_test.go into many smaller files.
Closed Issues
- 726: The apache license is missing the certain copyright owner
0.17.1
We are excited to announce the release of Dolt 0.17.1.
In this lease we extend the index support we discussed in the prior release to UNIQUE
indexes. Our type inference now also supports DATE
, TIME
, and DATETIME
types.
Merged PRs
- 713: removed pkg resultset
- 710: New TableEditor, thread-safety, and table import
So I created a newTableEditor
underdoltdb
, similar to theIndexEditor
. I renamed the old editor tosqlTableEditor
, and it's now usingTableEditor
underneath. It's just to comply with the SQL interfaces.
Perhaps one of the most striking changes are the synchronization changes. The motivation was from a comment from @zachmu , which implied that some of the write paths are parallelized for performance, and the old editor was not thread-safe by any means. In order to support these new write paths, it was necessary to makeTableEditor
thread-safe. Because of this,IndexEditor
also received the same changes. I verified that there was a lack of data races usinggo test -race
, and also ran the concurrency tests with thousands more iterations and edits (they're lower now so that we're not spending an hour in Jenkins). Just to verify that my tests also worked, I made temporary intentional changes that would allow for data races, and the tests caught them, andgo test -race
also caught them.
In addition to the above changes,dolt table import
anddolt table cp
both use theTableEditor
now. Due to the concerns mentioned in the previous paragraph, I decided to benchmark a few metrics to get an idea of the performance impact of these two major changes.
To measure just the impact of the threading changes, I imported 1,000,000 rows through SQL and timed the results:The result is close enough that it's within the margin of error, so it's safe to say that newBefore: 67.074s After: 67.363s
TableEditor
is just as performant as the old implementation.
Thetable import
is a different story though. This time, I imported a 10,000,000 row.psv
, with the results being:It takes roughly twice as long now, which is slower, but not tragically so. Primarily, the difference in speed is that the old code just wrote directly to the edit accumulator, where as theBefore: 53.521s After: 107.816s
TableEditor
does a ton more bookkeeping, being a generalized editor. - 709: testing large numeric types
- 708: Extra BATS for
table import
&schema import
- 707: validates index columns
- 706: reset hard fixes
- 705: always calculate merge stats
- 703: Zachmu/indexes
Killed off index driver and let tables declare indexes natively. - 702: create table bats
- 701: Bh/remotes bat fixes
- 700: swish
- 699: Andy/arg parsing
- 698: fixed some bats tests
- 697: support HEAD and ancestor spec syntax
- 694: fixing zach's bats
- 693: optimize diff and hist tables
- 692: floats literals can be used in int columns in mysql 8
- 691: quoting time types
- 690: fix panic for
select 1/0 from dual
depends on go-mysql-server PR - 689: fixed panic for empty string args
one down - 688: o/libraries/doltcore/remotestorage/events_interceptor.go: Add missing ADD_TABLE_FILES instrumentation.
- 687: go/{store/nbs,libraries/doltcore/remotestorage}: Expose repository size as Size() on TableFileSource.
- 686: go/libraries/doltcore/remotestorage: Move retrying and metrics instrumentation for doltremoteapi interactions to grpc client interceptors.
- 685: go/store/nbs/table.go: Thread ctx at Open() for table file pull interface.
- 684: proto: remoatesapi: GetRepoMetadataResponse: Add repository_size field for communicating approximate repository size.
- 683: Added UNIQUE constraint
Largest change you'll see here is that I've extracted the index changes intable_editor.go
into its own file and built upon it. I've also changed everything that modifies indexes, from rebuilding the indexes to the SQL path, to make use of the new index editor. - 682: table import inferrence
- 681: Diff SQL handles escape sequences
- 679: Index performance improvements
- 678: diff v2
- 677: Updated version for release of version 0.17.0
- 110: Zachmu/index refactor
Rewrote index interfaces. Indexes are now available either through a driver, or natively via the table implementations themselves.
Also re-enabled auth tests for windows by removing the pilosa dependency, and fixed several test suites that were broken on Linux. - 109: 1.0/0.0 == NULL, 1 div 0 == NULL
- 108: Andy/div by zero
This fixes a panic forselect 1/0 from dual
MySQL also errors on divide by zero in at least some configs
I can change this to returnNULL
if that's preferable. - 107: sql/session.go: Use new view and index registries per sql.Context, instead of global ones.
- 106: Zachmu/table naming regression
Fixed regression caused by update to alias handling. Removed a couple places that allowed aliased tables to be referred to by their unaliased names, which is an error.
0.17.0
We are excited to announce the release of Dolt 0.17.0!
Dolt now supports the main index statements, that is CREATE INDEX
, DROP INDEX
, and all ALTER TABLE
commands involving an index. Some less common types of index types that are not supported are PARTIAL
, UNIQUE
, SPATIAL
, and FULLTEXT
. Finally, SHOW INDEX
is not yet supported.
As usual, please file an issue if you find any bugs, or have a feature request.
Merged PRs
- 676: Db/tester fix
- 674: SELECT comparisons and BETWEEN now use indexes
SELECT
<
,<=
,>
,>=
, andBETWEEN
all now use indexes. Previously, only=
used indexes or primary keys, so this should be a pretty huge win. - 673: Andy/baseball databank fix
Baseball databank was breaking the previous migration because it has null values in primary keys
(see tableallstarfull
) - 671: Fix issue with renaming temp files across volumes
- 668: Added partial key lookups for indexes and primary keys
- 665: Zachmu/case insensitive
Updated tests for new case-insensitivity improvements in go-mysql-server. Relies on dolthub/go-mysql-server#102, which is not on master yet. - 664: hotfix
not sure why Jenkins didn't catch these on #658 but it's fixed - 663: Verify System Table Tag Constants
Tags for Dolt system tables are defined withconst
definitions and need to be consistent across Dolt versions. Usingiota
within const definitions can lead to unexpected results:const ( name = "Andy" mood = "ugh" a = iota + 1 b c ) func main() { fmt.Println(a) fmt.Println(b) fmt.Println(c) }
These unit tests lock these constants in place.3 4 5
- 662: Updated version for release of version 0.16.4
- 103: Zachmu/user privileges
Adds an empty user_privileges table to the information_schema database. This is necessary for the latest version of datagrip.
Stacked on top of #102. - 102: Zachmu/case sensitivity
Better (but not perfect) case insensitivity for table, alias and column names. Better enforcement of unique table / alias names in queries.
Closed Issues
- 672: Installation script quietly fails