Skip to content

1.45.1

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 26 Dec 22:40

Merged PRs

dolt

  • 8699: [sqle] Fix diff table merge join bugs
    Inappropriately using kv merge join, in several ways. No diff table support both for kvexec and diff table indexes aren't sorted, so default merge also fails. Test suite was also being skipped.
    GMS side here: dolthub/go-mysql-server#2803
    fixes: #8700
  • 8698: Replace cespare/xxhash with cespare/xxhash/v2
    Currently, we are using two versions of the same package for xxHash:
    https://github.com/dolthub/dolt/blob/d98baafd3e8248a9818e21442f4dfbdeffe78ac4/go/go.mod#L56-L57
    github.com/cespare/xxhash/v2 is the latest version, which includes bug fixes and improvements. This PR updates the codebase to replace github.com/cespare/xxhash with github.com/cespare/xxhash/v2.
    No breaking changes, see https://go.dev/play/p/ZXuwERoBlEi.
  • 8691: cache charset bump
  • 8684: [stats] stats table name sensitivity tests
    Fix bugs related to table casing, loading deleted tables, and making sure we're using the appropriate branch root when updating statistics.

go-mysql-server

  • 2803: [memo] merge joins must use globally sorted indexes
  • 2802: exempt processlist column renaming through aliases
    needed for dolphie to work; extension of dolthub/go-mysql-server#2764
  • 2799: pool wire write buffer
    BytesBuffer is a class that lets us avoid most allocations for spooling values to wire. Notably, the object is responsible for doubling the backing array size when appropriate, and a Grow(n int) interface is necessary to track when this should happen. Letting the runtime do all of this would be preferable, but the runtime doubles based on slice size, and the refactors required to make that workable are more invasive. We pay for 2 mallocs on doubling, because the first one is never big enough. Not calling Grow after allocing, or growing by too small of length compared to the allocations used will stomp previously written memory.
    As long as we track bytes used with the Grow interface this works smoothly and shaves ~30% off of tablescans.
    perf here: #8693
  • 2798: cache session charset
    perf: #8691
  • 2796: apply table projections through Distinct nodes
    We weren't pruning table columns when there was a distinct clause over the projections, this resulted the deserialization of every column, even if they weren't going to make it to the result. This is bad for performance, especially if the unread columns are of TEXT, LONGTEXT, 'BLOB, LONGBLOB` type as those are stored out of band, and take longer to deserialize.
    fixes: #8689
  • 2795: allow using function as table function

vitess

  • 390: Minor bug fixes for caching_sha2_password auth logic
    For accounts without passwords, we need to account for the client sending the null byte when the server re-requests the client auth data, and then skip the AuthMoreDataPacket, and CachingSha2FastAuth packets. Otherwise the mysql client errors with "Malformed packet".
    handleConnectionError is used to report stats about failed connection attempts, but wasn't being called in the correct spot. The previous spot was over counting failed connection attempts, since it was called as part of the auth renegotiation flow. It has been moved to be called whenever we return an error or exit the function without a successful connection.

Closed Issues

  • 8700: Panic in join against diff table
  • 8689: Prune columns from select distinct
  • 8688: P
  • 2790: Any plan to make a new patch release?