Merged PRs
dolt
- 4675: deeper comparison for foregin key indexes
If we have committed tables before this change, where the tables have a foreign key that references an index that could've been replace with an existing primary key, apply those changes, and we drop and recreate the parent/child tables in exactly the same way, we stage the parent table, but not the child table, which causes our foreign keys to enter a bad state.
repro for clarity:You can see this by running// SWITCH TO DOLT v0.50.8 rm -rf .dolt dolt init dolt sql -q "create table payment(payment_id int primary key);" dolt sql -q "create table subscription(id int primary key, payment_id int);" dolt sql -q "alter table subscription add constraint subscription_pm_fk foreign key (payment_id) references payment(payment_id);" dolt add . dolt commit -m "commit from the past" // SWITCH TO MAIN dolt sql -q "drop table subscription"; dolt sql -q "drop table payment"; dolt sql -q "create table payment(payment_id int primary key);" dolt sql -q "create table subscription(id int primary key, payment_id int);" #A dolt sql -q "alter table subscription add constraint subscription_pm_fk foreign key (payment_id) references payment(payment_id);" #B dolt add . dolt commit -m "commit from the future"
dolt status
after line (A) and then line (B).
The fix was to have our DeepEquals comparison for foreign key definitions also check if the referencing table index names have changed, and hope that that doesn't break anything else. - 4672: liuliu/handle-nil-interface-value
fixes dolthub/dolthub-issues#352 - 4667: go/libraries/doltcore/sqle/cluster: interceptors.go: Add some initial support for server interceptor allowing non-cluster clients to access the remotesapi.
- 4629: Added database collation support
This allows setting the database collation, such that all newly created tables within a database (that do not explicitly set their collation) will inherit the database collation.
Builds on
go-mysql-server
- 1361: Fixed collation check on foreign key columns
- 1354: Bug fix for pushdownSort handling missing cols qualified with a table name
The Dolt bump for my GMS change to fix an alias issue in sort node pushdown triggered an error with matching missing column names now that we can include qualified column names.
This PR adds a repro for that case to GMS and fixes the issue by ensuring we create aUnresolvedQualifiedColumn
when the missing column is qualified with a table name. I've run Dolt tests locally and confirmed there shouldn't be any other test failures in the next bump. - 1351: Add support for database collations
This allows setting the database collation, such that all newly created tables within a database (that do not explicitly set their collation) will inherit the database collation.
Builds on dolthub/vitess#199
vitess
- 199: Added ALTER DATABASE parsing
Adds support for parsingALTER DATABASE
queries. - 196: allow
dual
only for select from statements if used without back-ticks
Closed Issues
- 4674: Add support for
DROP TABLE CASCADE
- 4376: DATE_ADD truncates time
- 4170: Create database with charset and collation not supported
- 4662: Very large storage footprint
- 1897: Addition of Docker image
- 4430: Feature request: add a progress bar to
dolt sql < file.sql
that shows the progress of a SQL load
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.76 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.18 | 4.65 | 3.9 |
index_join_scan | 1.14 | 3.89 | 3.4 |
index_scan | 30.81 | 53.85 | 1.7 |
oltp_point_select | 0.15 | 0.47 | 3.1 |
oltp_read_only | 2.97 | 8.74 | 2.9 |
select_random_points | 0.3 | 0.75 | 2.5 |
select_random_ranges | 0.35 | 1.12 | 3.2 |
table_scan | 30.81 | 63.32 | 2.1 |
types_table_scan | 69.29 | 186.54 | 2.7 |
reads_mean_multiplier | 2.6 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 2.91 | 10.84 | 3.7 |
oltp_insert | 1.39 | 2.76 | 2.0 |
oltp_read_write | 5.09 | 17.01 | 3.3 |
oltp_update_index | 1.44 | 4.82 | 3.3 |
oltp_update_non_index | 1.44 | 5.18 | 3.6 |
oltp_write_only | 2.22 | 8.13 | 3.7 |
types_delete_insert | 3.02 | 12.98 | 4.3 |
writes_mean_multiplier | 3.1 |
Overall Mean Multiple | 2.8 |
---|