Merged PRs
dolt
- 8831: Expand
ItemAccess::itemWidth
to 32 bits
ItemAccess
is a class used to read data out of prolly tree nodes. Because theitemWidth
field 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 #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 #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/exp
with 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 betweensystemSetTypes
and other types is still not correct.
It appears that MySQL actually treats@@sql_mode
as 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_date
function 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_date
function returns atime.Time
instead of a string. This gets us closer to MySQL behavior over the server.
fixes: #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.Call
nodes
Partially addresses: #8053
Closed Issues
- 8807: Issue with "T" when using str_to_date