mirror of
https://github.com/dolthub/dolt.git
synced 2025-12-16 19:36:23 -06:00
-
released this
2025-02-07 16:50:52 -06:00 | 3023 commits to main since this releaseMerged PRs
dolt
- 8831: Expand
ItemAccess::itemWidthto 32 bits
ItemAccessis a class used to read data out of prolly tree nodes. Because theitemWidthfield was limited to 16 bits, reading any value larger than 2^16 bytes would result in silent truncation.
We don't usually store values this large, although it should be safe to do so.
This issue was discovered because the new JSON chunker (introduced in https://github.com/dolthub/dolt/pull/7912) always stores embedded strings as a single chunk, so a document containing a string larger than 32KB would result in a node with a single value whose length didn't fit in 16 bits.
While we were investigating this issue, we created https://github.com/dolthub/dolt/pull/8723 to disable the new JSON chunker in the presence of these long strings. This PR partially reverts that one, resuming the smart chunking of JSON even in the presence of large embedded strings. - 8817: Bug fix for encoding extended types in keys
This PR allows certain Doltgres extended types to be correctly serialized as part of keys
go-mysql-server
- 2845: Added external function provider
This adds an external function provider, currently needed for Doltgres to get function creation working. This is intended to be a temporary measure until a more permanent solution is developed (which may involve modifying Dolt'sDatabaseProvider). - 2844: Correctly skip skipped assertions in transaction tests
- 2843: Replace
golang.org/x/expwith stdlib
These experimental packages are now available in the Go standard library.golang.org/x/exp/slices->slices(https://go.dev/doc/go1.21#slices)golang.org/x/exp/maps->maps(https://go.dev/doc/go1.21#maps)golang.org/x/exp/constraints->cmp(https://go.dev/doc/go1.21#cmp)golang.org/x/exp/rand->math/rand/v2(https://go.dev/doc/go1.22#math_rand_v2)
- 2842: fix panic when comparing system set type against other types
Comparison betweensystemSetTypesand other types is still not correct.
It appears that MySQL actually treats@@sql_modeas just a string.
This PR only fixes the panic - 2839: fix case insensitivity and return type for
str_to_date
This PR fixes an issue with thestr_to_datefunction where we wouldn't match string literals in the date with literals in the format, because we were improperly converting them to lowercase.
Additionally, this PR has it so thestr_to_datefunction returns atime.Timeinstead of a string. This gets us closer to MySQL behavior over the server.
fixes: https://github.com/dolthub/dolt/issues/8807 - 2833: refactor create procedure and call procedure
This PR refactors a ton of the stored procedure behavior to more closely match MySQL.
Changes:- properly error when creating procedures/triggers/events in other stored routines
- allow create procedure statements that reference symbols (tables, views, procedures, etc) that don't exist (yet).
- remove unnecessary analysis and building work
- simplify building
plan.Callnodes
Partially addresses: https://github.com/dolthub/dolt/issues/8053
Closed Issues
- 8807: Issue with "T" when using str_to_date
Performance
Read Tests MySQL Dolt Multiple covering_index_scan 1.89 0.65 0.34 groupby_scan 13.22 18.61 1.41 index_join 1.47 2.48 1.69 index_join_scan 1.44 1.47 1.02 index_scan 34.33 31.37 0.91 oltp_point_select 0.18 0.27 1.5 oltp_read_only 3.49 5.37 1.54 select_random_points 0.33 0.61 1.85 select_random_ranges 0.37 0.64 1.73 table_scan 34.33 33.72 0.98 types_table_scan 75.82 123.28 1.63 reads_mean_multiplier 1.33 Write Tests MySQL Dolt Multiple oltp_delete_insert 9.06 6.32 0.7 oltp_insert 4.1 3.13 0.76 oltp_read_write 9.06 11.65 1.29 oltp_update_index 4.18 3.19 0.76 oltp_update_non_index 4.18 3.07 0.73 oltp_write_only 5.77 6.32 1.1 types_delete_insert 8.43 6.67 0.79 writes_mean_multiplier 0.88 TPC-C TPS Tests MySQL Dolt Multiple tpcc-scale-factor-1 96.45 39.6 2.44 tpcc_tps_multiplier 2.44 Overall Mean Multiple 1.55 Downloads
- 8831: Expand