0.7.0
版本发布时间: 2020-10-29 11:20:15
dolthub/go-mysql-server最新发布版本:v0.18.1(2024-04-10 00:31:02)
This release includes many new query features and bug fixes, most notably trigger execution, and includes the new github org name.
Merged PRs
- 218: Fix unit tests to run with -race.
- 217: validate auto_increment on in-line and out-of-line PR defs
- 216: Updated sql.MergeableIndexLookup interface
- 215: memory: *_index.go: Construct sql equality evaluations with accurate types in the literals.
- 214: Andy/auto increment
- 213: Zachmu/triggers bugfix Fixed bug in insert triggers, which couldn't handle out-of-order column insertions. Fixes https://github.com/dolthub/dolt/issues/950
- 212: sql/analyzer: pushdown.go: Allow pushdown on Update, RowUpdateAccumulator and DeleteFrom plan nodes.
- 211: Zachmu/join bugs
-
210: sql/plan: {update,insert,update,process}.go: Fix some potential issues with context lifecycle and reuse.
- insert, update, delete: Only call underlying table editors with our captured
context once when we are Close(). Return a
nil
error after that. - process: Change to only call
onDone
when the rowTrackingIter is Closed. - process: Change to call childIter.Close() before
onDone
is called. Child iterators have a right to Close() before the context in which they are running is canceled.
- insert, update, delete: Only call underlying table editors with our captured
context once when we are Close(). Return a
- 208: Create UNIQUE index if present in column definition
-
207: Pushdown and plan decoration
Two major changes:
- Changes to pushdown operation, to push table predicates below join nodes and to fix many bugs and deficiencies. Also large refactoring.
- Added DecoratedNodes to query plans to illustrate when indexes are being used to access tables outside the context of a join
- 206: Zachmu/inserts More trigger tests, and support for more kinds of SELECT statements as part of an INSERT
- 205: Implemented drop trigger As discussed, we disallow dropping any triggers that are referenced in other triggers.
- 204: Added trigger statements
- 203: Zachmu/triggers 6
-
202: Zachmu/triggers 5
Added additional validation for trigger creation and execution:
- Use of NEW / OLD row references
- Circular trigger chains
- 200: Zachmu/triggers 4 Support for DELETE and UPDATE triggers
- 199: Reference new org name
- 198: Added proper support for SET NAMES, and also turned off strict checki… …ng for setting unknown system variables. Signed-off-by: Zach Musgrave zach@liquidata.co
- 197: Zachmu/user vars User vars now working. Can stomp on a system var of the same name, as before my last batch of changes.
- 196: Allow CREATE TABLE LIKE to reference different databases
-
195: Zachmu/triggers 3
This gets
SET new.x = foo
expressions working for triggers. This required totally rewriting how we were handling setting system variable as well, since these two kinds of statements are equivalent in the parser. Also deletes the convert_dates analyzer rule, which impacts 0 engine tests. - 194: No longer return span iters from most nodes by default. Signed-off-by: Zach Musgrave zach@liquidata.co
- 193: Implemented CREATE TABLE LIKE and updated information_schema Tests will come in a separate PR
- 192: Zachmu/set exprs Updated to latest vitess, fixed a couple bugs with new UPDATE implementation
- 190: Harrison pr https://github.com/liquidata-inc/go-mysql-server/pull/189/files and a couple fixes
-
188: Zachmu/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.
- 187: Additions to utc_timestamp and timediff
- 186: Db/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
- 182: Zachmu/trigger integration Simple integration point for trigger definitions
- 180: Zachmu/triggers
-
178: Column Defaults Implementation Part 2
Here is a comprehensive set of tests for default logic. Practically everything that was added in https://github.com/liquidata-inc/go-mysql-server/pull/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 tes
t 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. - 168: Zachmu/sql correctness Fixed two bugs: NULL semantics in IN expressions, and backward indexes for Ascend / Descend indexes on multi-column indexes.
- 166: Handle exchange nodes
- 165: Don't set default max connections to 1 Signed-off-by: Zach Musgrave zach@liquidata.co
- 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. Signed-off-by: Zach Musgrave zach@liquidata.co
- 161: Zachmu/show tables as of Implemented SHOW TABLES AS OF support
- 36: Added trigger statements
- 35: Reference new org name
- 34: Zachmu/prune All the changes from https://github.com/liquidata-inc/vitess/pull/33, but then also removed all go code that wasn't needed by the parser or the mysql server (most of it). #33 has tests that don't compile that are removed in this PR.
- 33: Zachmu/set Killed off UpdateExpr in favor of SetExpr, and made SetExpr handle all the same objects that UpdateExpr can. This unification was necessary when adding support for statements like 'set new.x = 1' in trigger bodies -- generates a parser conflict otherwise.
- 32: Added better error message support for parse errors Signed-off-by: Zach Musgrave zach@liquidata.co
- 31: Zachmu/stored procedures CREATE TRIGGER and BEGIN .. END block support in the parser.
- 30: Added support for SHOW TABLES AS OF statements Signed-off-by: Zach Musgrave zach@liquidata.co