Merged PRs
dolt
- 10947: go/store: nbs,types: Fix some error paths in GC.
- If gcCopier.copyTablesToDir failed after its writer.Finish() call succeeded, it would cancel the writer but leave gcc.writer != nil. Then markAndSweeper.Close would call gcc.cancel and get a spurious error from the failed writer.Cancel call.
- ValueStore.gc would fail to Close MarkAndSweeper if Finalize returned an error. The contract was that Close needed to be called on all paths.
- markAndSweepChunks dropped an error from newRotatingGCCopier.
- markAndSweeper Close early returned on an error from gcc.cancel, failing to close and cleanup incrementalGcc in that case.
- 10750: Add incremental mode for garbage collection
This feature is enabled by providing the --incremental-file-size flag todolt gcorcall dolt_gc()with a positive value, and can be enabled for automatic GC with a setting in the server'sconfig.yaml, eg:
In this example, after GC has written 1000000 bytes of leaf chunks (chunks that do not reference other chunks), it will finish the chunk file and begin writing a new one.behavior: auto_gc_behavior: incremental_file_size: 1000000
There are two main reasons to do this:- Chunks written this way don't need to be tracked in the GC "visited set", reducing memory usage.
- If GC is interrupted (for instance, it may be terminated by the OS for using too much memory), the already-processed chunks will be preserved, and subsequent runs of GC will have less work to do and require less memory. This provides an escape hatch for the scenario where a user has not run GC in so long that GC requires more memory to run than is available.
go-mysql-server
- 3527: Truncate invalid UTF-8 on
INSERT IGNOREand warn onLIKEwith bad charset pattern - 3526: Update for functional expression index parser changes
Parser changes support multiple functional expressions, or a mix of columns and functional expressions in an index. GMS still restricts functional indexes to a single functional expression, but that restriction will be removed in the next PR.
Also includes a new test interface that Doltgres will use when integrating with functional indexes.
Depends on: dolthub/vitess#466
vitess
- 466: Add parser support for multiple functional expressions in an index
- 465: go.mod: Bump to golang 1.26.2.
- 462: Added context to Injectable
Needed for: