Repository navigation
dolt 2.4.1 - #315120
Merged
Merged
dolt 2.4.1#315120
Conversation
daeho-ro
approved these changes
Oct 3, 2026
Contributor
|
🤖 An automated task has requested bottles to be published to this PR. Caution Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Created by
brew bumpCreated with
brew bump-formula-pr.Details
release notes
Use the local database cache root, remote URL, and effective Git ref as the cache key so databases and custom refs cannot incorrectly share a remote handle. The SQL provider and Git remote factory share key construction, and remote opens and cache lookups share parameter construction.
Validated with all eight SQL Git-remote integration tests and targeted remote configuration, factory, and database provider Go tests.
Fixes #12011.
CREATE TABLErejected on the target branch of a nonlocal table rulecheckNonlocalTableNameforDatabase.CreateTableandDatabase.CreateIndexedTableto allow a table name where the nonlocal rule resolves it locally.Fix dolthub/dolt#11995
Add
git-remote.max-history-commitsandgit-remote.reset-history-on-prunesettings so users can trade disk usage for faster incremental transfers. Support local/globaldolt config, environment overrides, and typed options for embedders.Defaults remain unchanged. A history limit of
0means unlimited; disabling prune-triggered resets allows obsolete data to remain reachable until the history limit is reached.Preserve a persistent Git fetch anchor during teardown so subsequent pulls can negotiate incremental transfers instead of re-downloading the database. Compare-and-swap protects the anchor from overlapping sessions while allowing private refs to be cleaned up.
With these optimizations,
dolt logis now anO(N)operation rather than anO(N^2).Optimizations:
dolt_branches,dolt_tags,dolt_log()once instead of for every commitCommitInfois passed as a pointerPotential improvements:
Before:
Fixes:
dolt logtakes really long time. dolthub/dolt#9315Newly persisted Git-backed tables and conjoin input reads bypassed NBS spooling, causing redundant Git reads and decompression. This change spools persisted tables from bytes already in memory and makes conjoin reuse existing source readers.
Adds regression coverage for chunk correctness, blob read counts, and spool cleanup. Full NBS tests and focused race tests pass.
Fixes #11916.
Adds CSV import regression coverage for update triggers alongside Execute duplicate-key update triggers dolthub/go-mysql-server#3947 and Adapt to duplicate update expression nodes dolthub/doltgresql#3469.
Fixes Update triggers do not fire on
INSERT INTO...ON DUPLICATE KEY UPDATE...dolthub/dolt#5925Bumps google.golang.org/grpc from 1.83.1 to 1.83.2.
Release notes
Sourced from google.golang.org/grpc's releases.
Commits
030ee8bUpdate version to 1.83.2 (#9375)8668b69cherry-pick #9365 to v1.83.x (#9366)a3e952dcherry-pick #9346 to v1.83.x and update x/net dependency (#9369)58f8fd9Change version to 1.83.2-dev (#9337)go-mysql-server
Preserves exact decimal values and result types in GREATEST and LEAST.
Fixes
GREATESTandLEASTfunctions should return decimal type when args are decimal types dolthub/dolt#10567Adds regression coverage for NOT EXISTS and multiple window functions inside EXISTS subqueries.
Fixes Dolt raises an internal row-index error for
EXISTSwith a window expression. dolthub/dolt#11421Adds regression coverage for EXISTS and NOT EXISTS over scalar SUM aggregates with empty inputs and grouped controls.
Fixes Silent data loss: EXISTS/NOT EXISTS over an un-grouped aggregate subquery corrupts DELETE/UPDATE/INSERT-SELECT/CREATE-TABLE-AS write paths (uncorrelated form deletes the whole table) dolthub/dolt#11489
Adds regression coverage for TCP and Unix listener shutdown races and Accept after Close.
ALTER rewrites starting from persisted schema could reclassify literal defaults as expressions, causing datetime COLUMN_DEFAULT values to gain quotes after subsequent column changes. Resolve defaults in the current schema before rewriting, preserving literal metadata and existing multi-column ALTER behavior.
Adds shared engine coverage for metadata, SHOW CREATE, and default insertion. All 50 Dolt default-value BATS cases, Dolt MODIFY tests, and relevant GMS suites pass; expectations were checked against MySQL 8.4.11.
Addresses the Lambda BATS failure in Dolt #11994.
Add an engine override to support PostgreSQL UPDATE row count behavior, where all matched rows are counted. Also simplifies INSERT ON DUPLICATE UPDATE handling.
Addresses UPDATE metadata semantics incorrect dolthub/doltgresql#3113.
Doltgres PR: Report PostgreSQL UPDATE row counts dolthub/doltgresql#3468.
INexpr: compare every element of the right tuplethis changes the previous assumption of all tuple elements being of the same type.
Fixes: dolthub/dolt#11968
Returns NULL with a warning for INET_NTOA arguments outside the IPv4 range.
Fixes
INET_NTOAcorrupts valid IPv4 values above signed 32-bit dolthub/dolt#11510Validates twelve-hour STR_TO_DATE inputs and normalizes midnight and noon consistently with MySQL.
Fixes Dolt ignores the PM marker in STR_TO_DATE dolthub/dolt#11544
Reinitializes disposed regular expressions when they are reused across window partitions.
Fixes Dolt returns a wrong result for REGEXP_LIKE across partitions dolthub/dolt#11550
Clamps unsigned MEDIUMINT serialization to 16777215.
Stores binary collation metadata explicitly instead of deriving it from collation names.
Fixes Add explicit metadata flag on
Collationfor binary collations dolthub/go-mysql-server#3838Avoids lookup and merge joins that discard NULL semantics in nullable NOT IN subqueries.
Recomputes stored generated columns and their dependents when MODIFY or CHANGE alters their definitions.
Fixes ALTER TABLE MODIFY COLUMN does not recompute a STORED generated column, leaving rows and indexes stale dolthub/dolt#11781
Returns NULL with a warning when CONVERT USING utf8mb4 receives malformed UTF-8.
Fixes Emit
ER_INVALID_CHARACTER_STRINGon malformed multi-byte character strings instead of returningErrCollationMalformedStringdolthub/go-mysql-server#3837Reinterprets BIGINT UNSIGNED values as signed integers when evaluating CAST AS SIGNED.
Fixes Incorrect CAST from BIGINT UNSIGNED to SIGNED dolthub/dolt#11906
Preserves negation on residual NOT IN predicates when sibling subqueries become anti joins.
Fixes Planner drops the NOT from the first of two ANDed NOT IN (subquery) predicates when its subquery is a UNION — query returns exactly the excluded rows dolthub/dolt#11913
Accepts binary and numeric arguments to STR_TO_DATE using MySQL-compatible string conversion.
Fixes STR_TO_DATE() with BLOB argument errors with "invalid type: []uint8" dolthub/dolt#11919
Cancels blocked grouping producers when the grouping consumer returns an error.
Allows column-free expressions and correlated subqueries that reference only grouped columns under ONLY_FULL_GROUP_BY.
Tracks COUNT DISTINCT allocations through the session memory manager after the grouping cancellation fix in #3954.
Validates temporal cast precision before constructing the target type.
Preserves correlated subquery column dependencies when grouping over joins.
Returns an empty iterator when column statistics are queried without initialized session privileges.
TIMEwith precisionImplement conversion for numeric types to
TIMEincluding precision parameters.Also includes conversion logic for
booleantypes and small fixes for string conversions.Executes duplicate-key update triggers, with import regression coverage in Test update triggers during CSV imports dolthub/dolt#11980 and DoltgreSQL compatibility changes in Adapt to duplicate update expression nodes dolthub/doltgresql#3469.
Fixes Update triggers do not fire on
INSERT INTO...ON DUPLICATE KEY UPDATE...dolthub/dolt#5925Fixes a bug where subqueries could bypass permissions in some instances (test cases are now returning errors), and also adds an interface for:
INSERT ... ON DUPLICATE KEY UPDATE could rewrite rows without UPDATE privileges. Require UPDATE authorization and return the MySQL-compatible error code when access is denied.
LIKEwildcard in analyzer prefix extraction and pattern matchingFix dolthub/dolt#11903
Fix dolthub/dolt#11910
Blocked by dolthub/vitess#497
Block dolthub/dolt#11937
Close dolthub/go-mysql-server#3972
vitess
CTEs are properly handled in GMS now, so this removes the check. Is a dependency of:
Parses DOLT executable comments for the SQL integration in Enable Dolt executable comments in SQL scripts dolthub/dolt#11851.
Fixes Dolt should support it's own flavor of special comments. dolthub/dolt#3096
Closed Issues
--refshare one ref — a push from one database overwrites another database's dataINSERT INTO...ON DUPLICATE KEY UPDATE...GREATESTandLEASTfunctions should return decimal type when args are decimal typesdolt logtakes really long time.Collationfor binary collationsER_INVALID_CHARACTER_STRINGon malformed multi-byte character strings instead of returningErrCollationMalformedStringView the full release notes at https://github.com/dolthub/dolt/releases/tag/v2.4.1.