Merged
Conversation
botantony
approved these changes
Jan 23, 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
fixes #10353
MySQL allows creating temporary tables with the same names as existing non-temporary tables and creating non-temporary tables with the same names as existing temporary tables. However, temporary tables cannot have the same name as other temporary tables.
Our previous implementation seemed to have assumed temporary tables with the same names were allowed. Each session had a map of db names to an array of tables, and new temporary tables were added to the end of the array, without checking if there was a table with an existing name. When fetching or dropping a temporary table, we iterated through the array and returned/dropped the first table with a matching name; this meant even though we allowed temporary tables with the same name, we only ever operated on whichever one was created first.
Since temporary tables with the same names are actually not allowed, the array of temporary tables was replaced with a name-to-table map to make fetching a temporary table with
GetTemporaryTablefaster. This also makesDropTemporaryTablefaster. This does makeGetAllTemporaryTablesslower since we now have to iterate over the mappings to create an array for temporary tables, butGetAllTemporaryTablesdoesn't seem to be called as frequently asGetTemporaryTable.Hold over from the original impl of rebase now addressed!
dolt stash applyAdds #10131
Adds
dolt stash apply. Functions similar todropandpopin usage: accepts no argument for most recent stash, orintorstash@{int}for non-top stashes. i.e.dolt stash apply 2ordolt stash apply stash@{2}.Summary
Adds a newdolt_status_ignoredsystem table that extendsdolt_statusfunctionality by including anignoredcolumn to identify which unstaged tables match patterns defined indolt_ignore. This provides a SQL interface equivalent todolt status --ignored.Changes
New System Table
dolt_status_ignored- Same schema asdolt_statusplus anignoredcolumn:table_name(text): Name of the tablestaged(boolean): Whether the table is stagedstatus(text): Status of the table (e.g., "new table", "modified", "conflict")ignored(boolean): Whether the table matches adolt_ignorepatternImplementation Details
The implementation started with logic similar tostatus_table.goand was then refactored to share common code between both tables while adding the ignore-checking functionality.go/libraries/doltcore/doltdb/system_table.go
StatusIgnoredTableNameconstantGeneratedSystemTableNames()andDoltGeneratedTableNamesgo/libraries/doltcore/sqle/database.go
StatusIgnoredTableNameingetTableInsensitiveWithRoot()getStatusTableRootsProvider()helper to eliminate duplicate logic betweendolt_statusanddolt_status_ignoredswitch casesgo/libraries/doltcore/sqle/dtables/status_table.go
getStatusRowsData()function using existingstatusTableRowstruct to share status collection logic between both tablesnewStatusItr()to use shared functiongo/libraries/doltcore/sqle/dtables/status_ignored_table.go (new file)
StatusIgnoredTableandStatusIgnoredItrgetStatusRowsData()fromstatus_table.goDoltTableAdapterRegistrysimilar toStatusTablegetIgnorePatterns(): Fetches patterns fromdolt_ignorebuildUnstagedTableNameSet(): Creates set for quick lookupcheckIfIgnored(): Checks if table matches ignore pattern (returns error on failure)Behavior
ignored=1if table name matches a pattern indolt_ignore,ignored=0otherwiseignored=0(staging overrides ignore patterns, matching git behavior)ignored=0Tests
BATS integration tests
integration-tests/bats/system-tables.bats:ignoredcolumn correctly identifies ignored tables while non-ignored tables haveignored=0ignored=0regardless of ignore patternsdolt ls --systemintegration-tests/bats/ls.bats:
dolt_status_ignored(27 tables instead of 26)Go enginetests
go/libraries/doltcore/sqle/enginetest/dolt_queries.go:Closes #5862
go-mysql-server
strings.ToLowercalls ingatherTableAliasbenchmarks: tolower bump dolthub/dolt#10355 (comment)
transform.InspectWithOpaquefunctionThis changes
transform.Inspectto not apply the helper function on children ofsql.OpaqueNodes.Additionally, it adds a
transform.InspectWithOpaquethat does.This is to match
transform.Nodeandtransform.NodeWithOpaque.There are still some inconsistencies between the different transform helper functions:
convertLeftAndRightThis PR removes
c.convertLeftAndRight, which avoids calls toc.Left().Type()andc.Right().Type().Not entirely sure why receiver methods would impact performance this much, but benchmarks say so.
Benchmarks: test revert compare dolthub/dolt#10342 (comment)
Closed Issues
dolt_statussystem table that includes tables ignored by system_ignoreView the full release notes at https://github.com/dolthub/dolt/releases/tag/v1.81.2.