Merged PRs
dolt
- 12025: Fixed foreign keys referencing a renamed index
This fixes the issue presented in:- dolthub/doltgresql#3517
This moves the index renaming logic so that it also coversALTER INDEXinstead of onlyRENAME INDEX.
- dolthub/doltgresql#3517
- 12024: Quoted dolt_blame view identifiers with the engine's schema formatter
This moves quoting for thedolt_blame_*tables to use the quoting function so that Doltgres uses its quotes. Previously we were hardcoding MySQL quotes, which caused parsing errors on Doltgres. - 12023: docs: document the NBS storage lock contract
Closes #11262
go/store/nbs/README.mddescribed NBS's on-disk layout but never mentioned the advisory file lock, so operators had nothing to read when a restart raced a running server.
The new "Storage locking" section documents the lock's path (<database dir>/.dolt/noms/LOCK), that it goes throughgithub.com/dolthub/file-locks(flock(2)on unix,LockFileExon Windows), and that it is advisory. It covers the lifetime (newJournalLockacquires,NomsBlockStore.Closereleases; there is no maximum hold time), the 100 mslockFileTimeoutand what happens after it (a silent read-only open by default,ErrDatabaseLockedwithfail_on_journal_lock_timeout, a single non-blocking attempt withskip_journal_lock_timeout), that akill -9cannot leave a stale lock because the kernel releases flocks, that theLOCKfile itself always remains and its presence says nothing about lock state, and that deleting theLOCKfile while a process holds the lock silently breaks mutual exclusion.
Everything stated here was read out ofgo/store/nbs/file_manifest.go,go/store/nbs/journal_manifest.goand thegithub.com/dolthub/file-locksAPI (lockFileTimeout,ErrDatabaseLocked, thefail_on_journal_lock_timeout/skip_journal_lock_timeoutoptions). The caveat that the guarantees are only as good as the mount over NFS/SMB is stated as such rather than as a tested claim.
Documentation only - no Go code changed.This pull request was prepared with the assistance of an AI coding agent and
has not yet been reviewed by a human. - 12018: Allow schema overrides with ignored nonlocal tables
Nonlocal tables now retain their own schema when absent from the schema-override commit. Existing overrides still apply, and ordinary local lookups remain strict.
Resolve nonlocal targets through user-table lookup and keep conflict backing tables on the same root, preventing conflict updates from being redirected to another branch. Adds focused regression coverage for ignored tables, cross-branch aliases, committed targets, and conflict updates.
Validated normal/prepared nonlocal and rebase engine suites, plus schema-override suites with standard and adaptive encoding.
Fixes #11997
go-mysql-server
- 3971: Delegate
INelement evaluation to comparison expressions and apply coercibility to HashInTuple
INpredicates respect character set and collation comparison rules (such as accent-insensitivity inutf8mb4_unicode_ciandutf8mb4_0900_ai_ci) for both sequential tuple evaluations and in-memory hash lookups.
Fix #11907 - 3947: Execute duplicate-key update triggers
Executes duplicate-key update triggers, with import regression coverage in #11980 and DoltgreSQL compatibility changes in dolthub/doltgresql#3469.
Fixes #5925 - 3936: Convert
ANY_VALUEfrom an aggregate to a scalar function
Unaggregated queries containingANY_VALUEno longer synthesize a whole-tableGroupBynode or collapse rows, and windows invocations likeANY_VALUE(a) OVER ()are properly rejected as a syntax error.- Add
function.AnyValueas a scalarsql.FunctionExpressionto avoid artificialGroupBynode and collapsing rows. - Remove aggregate and window patches now that there's no aggregate function nesting errors.
- Exempt
ANY_VALUEarguments fromONLY_FULL_GROUP_BYvalidation invalidateGroupBy.
Fix #11911
Fix #3944
- Add
Closed Issues
- 11262: Document the noms LOCK contract (<data_dir>//.dolt/noms/LOCK): acquire timeout, lifetime/staleness, external-waiter flock safety
- 11739: conjoin opens unbounded concurrent connections — exceeds sshd MaxStartups on git+ssh remotes, so conjoin never completes
- 11997: unable to find global table at overridden schema root
- 3944:
ErrIndexOutOfBoundsevaluating correlated scalar subquery in joinedGROUP BY