Backwards Incompatible Changes
There has been a type change on the dolt_diff
system table with provides more precision and alignment with the dolt_diff_{table}
system table. There is a remote possibility that this could impact existing applications, and client code may require updates to remain consistent.
Per Dolt’s versioning policy, this is a minor version bump because these changes may impact existing applications. Please reach out to us on GitHub or Discord if you have questions or need help with any of these changes.
Merged PRs
dolt
- 9129: More precision on the date column in the dolt_diff table
Use higher precision date type in thedolt_diff
table - matchingdolt_diff_{table}
now
Fixes: #9126
go-mysql-server
- 2943: refactor and implement
TimestampAdd()
This PR implements the TimestampAdd; it is treated as basically an alias forDateAdd()
.
mysql docs: https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_timestampadd
fix: #9117 - 2940: Bug fix: ensure
DropCheck.IfExists
gets copied over to new instances
This change doesn't affect Dolt, but is needed by Doltgres to make sureIF EXISTS
logic for dropping a constraint is correctly executed.
vitess
- 412: allow trim, cast, and position as nonkeywords
This PR adds makes it so thatTRIM
,CAST
andPOSITION
are usable as table and column names without backquotes.
fixes: #9123 - 410: fix
ntile
syntax
This PR implements the correct syntax forNTILE()
mysql docs: https://dev.mysql.com/doc/refman/8.4/en/window-function-descriptions.html#function_ntile
syntax for: #9087
Closed Issues
- 9126: dolt_diff vs dolt_diff_ - commit time precision differs
- 9123: BUG: Dolt treats
position
as a reserved keyword - 9117: BUG: Panic in GMS when using TIMESTAMPADD()
- 6901: sql
TIME
type is not supported in Dolt
Performance
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.86 | 0.67 | 0.36 |
groupby_scan | 13.22 | 17.63 | 1.33 |
index_join | 1.47 | 2.39 | 1.63 |
index_join_scan | 1.42 | 1.47 | 1.04 |
index_scan | 34.33 | 30.26 | 0.88 |
oltp_point_select | 0.17 | 0.26 | 1.53 |
oltp_read_only | 3.36 | 5.18 | 1.54 |
select_random_points | 0.33 | 0.6 | 1.82 |
select_random_ranges | 0.36 | 0.62 | 1.72 |
table_scan | 34.33 | 32.53 | 0.95 |
types_table_scan | 75.82 | 125.52 | 1.66 |
reads_mean_multiplier | 1.31 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
oltp_delete_insert | 8.9 | 6.32 | 0.71 |
oltp_insert | 4.03 | 3.07 | 0.76 |
oltp_read_write | 8.74 | 11.45 | 1.31 |
oltp_update_index | 4.1 | 3.19 | 0.78 |
oltp_update_non_index | 4.1 | 3.07 | 0.75 |
oltp_write_only | 5.67 | 6.32 | 1.11 |
types_delete_insert | 8.28 | 6.67 | 0.81 |
writes_mean_multiplier | 0.89 |
TPC-C TPS Tests | MySQL | Dolt | Multiple |
---|---|---|---|
tpcc-scale-factor-1 | 97.45 | 39.27 | 2.48 |
tpcc_tps_multiplier | 2.48 |
Overall Mean Multiple | 1.56 |
---|