Merged PRs
dolt
- 7407: Bug fix: Unresolved FK fields were not included in the FK's hash
A bug inForeignKey.HashOf()
was silently ignoring theUnresolvedFKDetails
fields, due to using the wrong API to write the string values to thebytes.Buffer
. Usingbinary.Write
for a string (instead ofbytes.Buffer.Write
) was resulting in an error, but the error was not captured, so it was silently ignored. This led to FK name collisions when@@FOREIGN_KEY_CHECKS
was disabled and the resolved column information wasn't populated to ensure a unique hash.
Fixing this bug required several tests to be updated with new hash values. I also turned back on the unit tests inforeign_key_test.go
, which had been skipped since the storage engine migration. I tried unsetting theUnresolvedFKDetails
fields when the FK is resolved, but that broke many tests – it seems that the code still relies on theUnresolvedFKDetails
fields being populated even when the FK is resolved.
Related to: #7384 - 7405: /go/performance/utils/{sysbench_runner,tpcc_runner}: use temp dir in tpcc
- 7400: dolt backup restore --force: Add a --force option to dolt backup restore, which allows restoring into an already existing database.
go-mysql-server
- 2285: Avoid generating SemiJoins when the subquery contains an OFFSET expression, as doing say may generate incorrect results.
- 2281: groupby and having getfield index fixes
Implementing more groupby and having strangeness from MySQL, and fixing some getfield indexing errors.
Aliases in the projection scope were always added as new columns in the having scope; this led to getfields with indexes that were invalid in aggregation functions. Now, we don't add the alias to the scope if the alias overlaps with a column that is used in an aggregation.
There is also a small fix to rewriting planbuilder tests to have proper tabbing, write skipped queries, and removed some random new lines.
There are still some issues, left as skipped tests:- We incorrectly disallow aliases from the projection scope in aggregations
- Columns that are aliased and used in group by should not be visible to having clauses; so, we should throw an error.
Correctness: #7382
Closed Issues
- 7388: Cannot use column names containing spaces or uppercase characters as a generated primary key
- 7313: sql server panic when uploading table
- 6903: allow multiple keys on same column
- 7395:
id serial primary key
SQL created by Drizzle in MySQL mode. Dolt can't execute.
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 2.86 | 1.4 |
groupby_scan | 13.46 | 17.32 | 1.3 |
index_join | 1.32 | 5.0 | 3.8 |
index_join_scan | 1.25 | 2.18 | 1.7 |
index_scan | 33.72 | 62.19 | 1.8 |
oltp_point_select | 0.17 | 0.46 | 2.7 |
oltp_read_only | 3.36 | 7.98 | 2.4 |
select_random_points | 0.32 | 0.74 | 2.3 |
select_random_ranges | 0.39 | 0.9 | 2.3 |
table_scan | 34.33 | 63.32 | 1.8 |
types_table_scan | 74.46 | 173.58 | 2.3 |
reads_mean_multiplier | 2.2 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 5.57 | 5.88 | 1.1 |
oltp_insert | 2.71 | 2.91 | 1.1 |
oltp_read_write | 7.3 | 15.0 | 2.1 |
oltp_update_index | 2.81 | 3.02 | 1.1 |
oltp_update_non_index | 2.86 | 2.97 | 1.0 |
oltp_write_only | 4.03 | 7.3 | 1.8 |
types_delete_insert | 5.37 | 6.55 | 1.2 |
writes_mean_multiplier | 1.3 |
Overall Mean Multiple | 1.7 |
---|