Merged PRs
dolt
- 11310: cluster: wait for outstanding DROP DATABASE replication during graceful transition to standby
dolt_cluster_transition_to_standby determines whether a standby replica is fully caught up by waiting on three replication subsystems: per-database commit hooks, users/grants, and branch control. It never accounted for outstanding DROP DATABASE replications, which are tracked separately in Controller.outstandingDropDatabases and driven by independent fire-and-forget goroutines.
As a result, the transition could report a standby as fully caught up and succeed while a DROP DATABASE had not yet replicated to it. This PR makes it so that dolt_cluster_transition_to_standby also waits for outstanding DROP DATABASE statements to replicate. - 11308: go.mod: bump eventsapi_schema to latest revision
go-mysql-server
- 3626: Prevent index offset when comparing rows in
topRowsIter
Fixes #11300
Appending the row order number to the end of asql.Rowduring a Top-N Heap Sort intopRowsIterwas causing an index offset when evaluating SortFields that were subqueries, thus resulting in incorrect result.
This PR- modifies
topRowsHeapto instead take arowWithOrderstruct that separates out thesql.Rowfrom the order number while still taking the order number into account when sorting the heap. - refactoring
Sorter.LesserRowlogic into a newCompareRowsfunction to allow checking for row equality - moves top row(s) iterators to its own file as part of an effort to make our iterators more organized (#3620). This file also includes
topRowsHeapsince it is only ever used bytopRowIter(see dolthub/go-mysql-server#3622 (comment) for next steps) - removes
ValueRowSortersince it's actually never used anywhere and doesn't even fully implementsort.Interface
- modifies
- 3621: bug fix: honor named window reference
An existing bug in GMS was not properly applying a named window reference. We had enginetests for named window references, but they weren't sufficient to catch this because the aggregate function they used produced identical values in both cases. New enginetest cases are added to prevent a regression.
These two issues were identified by Ito automated review, in dolthub/doltgresql#2913 - 3619: sql: Fix ALTER USER to allow the Identity field of the User record to be updated.
CREATE USER ... IDENTITY WITH <plugin> AS '<identity>'correctly parsed and persisted the Identity field.ALTER USERcorrectly parsed the Identity field but failed to persist the changes. The end result is that GMS had a bug where attempt to alter the identity field on an existing user seemed to succeed but was not reflected in the data going forward.
Fix the bug so that updates to Identity are reflected and persisted going forward.
Closed Issues
- 11300: ORDER BY subquery loses effect as soon as LIMIT and OFFSET become involved