This is patch release, containing bug fixes and performance improvements.
- Better retries for push and pull
- Allow system variables related to replication to be set globally, or on the session
- Performance fix for covering indexes on the primary key
- Better schema validation for
auto_increment
columns - Better support for
ALTER TABLE
statements that include multiple clauses - Bug fix for dropping creating or dropping triggers or stored procedures in other databases
- Bug fix for the output schema of
show tables
statement - Trigger creation times in
information_schema
now supported - Bug fix for incorrect results from some indexed joins
show create procedure
now supportedshow function status
now supported- Bug fix for
CREATE VIEW
statements inside MySQL special comments
Merged PRs
dolt
- 3108: DoltChunkStore: Table file uploads now retry both the GetUploadLocations call and the PUT call
For each table file upload, we now call GetUploadLocations for that a single table file, and upload it in the same retriable
operation. - 3106: Make
dolt_replicate_heads
anddolt_replicate_all_heads
both Global and Session variable
Fix for #3104 - 3098: Enable the primary key to act as a proper covering index
This pr ensures that the primary key can appropriately be used as a covering index when selected. - 3095: go/libraries/doltcore: Fix bad upload table file retries
Fixes #2183 - 3090: go/libraries/doltcore/schema: Added auto increment validation to schema serialization
- 3083: Build Dolt against GMS to test multi-alter DDL changes
Bump GMS to fit in multi-alter ddl changes. - 3080: go/libraries/doltcore/dbfactory: Thread memory quota provider through store layer to onHeapTableIndex
This PR allows creators of noms block stores to manage memory resources related to them. - 3032: go/libraries/doltcore/sqle: Refactored Auto Increment
companion PR - 2998: Added clarifying test for AS OF behavior in view definitions
go-mysql-server
- 918: Multi Alter Add/Drop Columns
This pr does the following- Modifies Add/Drop/Rename/Modify columns to pull the relevant table fresh from the database
- Adds error checks in validate_create_table to make sure that invalid columns are detected at analyze time
This pr does not: - Address multi-alter ddls and edge cases with default values. I found a ton of small errors while working through edge cases here that I think there is a good amount of work separate from the immediate multi-alter ddl needs. This pr is enough to get us unblocked on panics that used occur when mass add/drop pairs were created.
- 915: fix create/drop
TRIGGER
parsing to support database name specific query - 910: Ensure that the local index map uses the computed id
We should use the computed id of index as key for the index map of the memory table. Previously we were using the given index name which would conflict when multiple indexes were assigned the empty string. - 909: fix create/drop procedure parsing to support database name specific query
- 907: Add db name to the column name for
show tables
statement- Database name is now included in column name in SHOW TABLES statement
- Fixed
cardinality
column ofinformation_schema.statistics
table returned wrong type before
- 906: Store the creation time for trigger statements
Will have changes to Dolt side to store this for Dolt Databases.
MySQL has nanosecond precision, which we wont have here.
I mimicked stored procedure behavior creation time formysqlshim
: https://github.com/dolthub/go-mysql-server/blob/main/enginetest/mysqlshim/database.go#L169 - 904: IndexedJoins mark handled filters
Applying an indexed join inapplyJoinPlan
should apply equality
lookup expressions, but currently do not.pushdown
mistakenly
marked those expressions as handled and eliminated necessary filters.
This PR preventsIndexedJoinAccess
with nil lookups from marking
filters as handled.
A future improvement could the pushdown range logic
to opportunistically apply lookups inapplyJoinPlan
, and let
pushdown
mark those as handled. This would improve perf by both
removing both a table scan and filter from some index joins. - 903: support
show create procedure
- 898: Improve MultiAlters error handling with Alter Primary Key, Alter Index, Alter Default, Alter AutoIncrement
This pr does the following- Improves MultiAlter DDL analyzer by checking for failure modes in adding/dropping pks, adding/dropping indexes, adding/dropping defaults
- Pushes the table resolution of AlterPk, AlterIndex, AlterDefault,Alter AutoIncrement at execution time. This is due to the fact that the node should know whether columns were added or dropped in previous steps of a MultiAlter DDL.
- Adds a small bug fix with how columns were being dropped in the validate_create_table
- This pr does not include changes to multialters with ADD/DROP constraints due to additional complexity.
- 890: support
SHOW FUNCTION STATUS
functionality
SHOW FUNCTION STATUS
result is queried fromINFORMATION_SCHEMA
.ROUTINES
table - 886: Auto Increment Refactor
vitess
- 149: add db name specification to create/drop TRIGGER statements
- 148: add db name specification to create/drop procedure statements
Database name is case sensitive but procedure name is not, so TableIdent and ColIdent structs are used for defining db and procedure names, respectively. - 147: Have
SHOW CREATE PROCEDURE <procedure_name>
parse
TODO: need changes in GMS to handleshow create procedure
logic. - 144: Fix of View, Trigger, Procedure position params when used in MySQL special comments
Closed Issues
- 2980: Dolt Panic when creating view
- 3102: Truncated time strings are not parsed correctly
- 3075: Bad foreign key error message
- 3104: dolt_replicate_heads should be available as a global var
- 3071: dolt errors and crashes when trying to use DBeaver
- 2183:
unknown push error
When pushing a branch with a single commit to DoltHub - 3065: WHERE statement has no effect when joining multiple tables
- 2325: Support Compound Primary Key Change Statements
- 3046: Adding/changing PK through TablePlus display fails
- 2999: Dolt uses current view definition even with AS OF
- 2804: Support SHOW FUNCTION STATUS syntax
- 3048: Procedures do not show on Tableplus display
- 894: when is version 1.0 api standard set?
- 900: Does go-mysql-server support create database and table from SQL file?
- 901: ERROR 1105 (HY000): Error: index already exists