Merged PRs
dolt
- 9393: Fix 483 - rm already covered bats
Fixes #483
Removed extra bats test - 9388: Ensure error checking is performed when generating statistics template
- 9384: Bh/copilot test
- 9383: go: clone: Fix dolt clone to work even when dolt startup logic detects that TMPDIR is not renamable to the local directory and it creates a .dolt/tmp directory.
- 9382: contribution test
Copy of #9349 - 9379: Fix 8853 warn local user persists
Fixes: #8853
On sql-server restart__dolt_local_user__
is dropped if persistent
If the__dolt_local_user__
is persistent on restart it's logged with a warning and dropped - 9376: 9374 support mysql user mysql password env vars
Fixes: #9374
Add support for MYSQL_USER/MYSQL_PASSWORD environment variables - 9371: Fix 483 unable to checkout table(s)/branch(s) with same name
Fixes: #483
Local/remote refs take priority in Do What I Mean (DWIM) scenarios wheredolt
has to interpret ambiguous input incheckout
.
If a table and tracking branch share the same name, but local does not exist an error will occur.
--
can now be used to clear up ambiguity.
case 1:dolt checkout <ref> -- [<tables>]
<ref>
must be a singular valid tree, everything else after '--' must be a table.
case 2:dolt checkout -- [<tables>]
This is case 1 but without<ref>
.
case 3:git checkout <something> [--]
(a) If is a commit switch to branch.
(b) If isn’t a commit, and either "--" is present or isn’t a table, no -t or -b is given, and there’s a tracking branch named on exactly one remote (or on the specified remote), then this acts as shorthand to fork local from that remote-tracking branch.
(c) Otherwise, if "--" is present, treat it like case 1.
(d) Otherwise, if a ref treat it like case 1. If a table treat like case 2. If neither fail.
case 4:git checkout <something> <tables>
The first argument must not be ambiguous. If a<ref>
follow case 1, if a table follow case 2. Otherwise, fail. - 9369: Dolt Stash CLI Migration
Part 2 of #7623
Migratesdolt stash
cli command to usedolt_stash
stored procedure - 9361: Implemented
dolt_history_dolt_schemas
anddolt_diff_dolt_schemas
Fixes: #9360 - 9349: feat(import): validate primary keys early
NOTE: currently this is just checking primary keys, but the related issue also mentioned in #1083 references issues with number of args. I'm wondering if I should split that into two separate PRs, or if it's fine to do both - currently I only have the PK validation in place? Personally I would argue to separate them since they are slightly different, albeit similar. But happy to take either path.
Add early validation to check if specified primary keys exist in the import file's schema before processing rows. This prevents users from waiting for large files to be processed only to discover that their primary key column names are invalid.
Changes:- Add validatePrimaryKeysAgainstSchema function to check primary key existence against file schema
- Integrate validation into newImportDataReader for create operations
- Provide helpful error messages listing available columns when primary keys are not found
- Add unit tests covering various validation scenarios
- Add BATS integration tests for CSV, PSV, and large file scenarios
The validation only runs for create operations when primary keys are explicitly specified and no schema file is provided. This ensures fast failure while maintaining backward compatibility.
Before: Users waited minutes for large files to process before seeing "provided primary key not found" errors
After: Users get immediate feedback with helpful column suggestions
Closes: #1083
- 9339: Utility method to list all system tables in a schema
Needed for doltgres, to put generated system tables in pg_catalog tables.
go-mysql-server
- 3043: fix missed case for nullable enums
This PR adds a missed edge case from this: dolthub/go-mysql-server#2985
We were incorrectly making nullable enum columns take the first value. - 3040: backtick column names in check constraints
MySQL backticks any column names within a check expression preventing any parser errors when round tripping tables, so we should do the same.
fixes: #9343 - 3038: Fix schema for call to
hash.HashOf()
inHashLookups
The incorrect schema was used in thehash.HashOf()
function.
n.Schema()
is the schema of the entire JoinNode; we just needed the schema of the key.'
Test bump: https://github.com/dolthub/ld/pull/20634 - 3037: Apply foreign key constraints to
UPDATE JOIN
Modified UpdateJoin to be able to apply foreign key constraints
Part of #9356 - 3036: Cache
REGEX
We should be able to avoid recompiling the regex if the pattern and flags are static.
Addresses: #9366
Other reasons for potential slowness:- REGEXP is more correct; it takes into account collations
- Variable-length TextStorage requires unwrapping
- 3034: Allow
drop trigger ...
when trigger is invalid
We should ignore parser errors when trying to drop triggers that are invalid.
fixes: #9359 - 3027: make
sql.HashOf()
collation aware
This PR adds type/collation information toHashOf
.
Additionally, it refactorsHashOf
to avoid import cycles and hasgroupingKey
use the function.
fix for: #9049
doltgres fix: dolthub/doltgresql#1548
Closed Issues
- 9360: add
dolt_history_dolt_schemas
anddolt_diff_dolt_schemas
- 483: Unable to checkout table if branch name and table name are identical
- 4205: Preview conflicts without running
dolt merge
- 1083: validate all import args before reading import rows
- 9343: Check constraint with column named
order
breaks inserts, updates, other operations - 8853: Warn if Dolt can't create
__dolt_local_user__
account on startup - 9374: Support MYSQL_USER and MYSQL_PASSWORD environment variables in Dolt Docker image
- 9049:
IN (SUBQUERY)
expressions ignore collation - 9368:
dolt reset --hard
does not resetdolt_schemas
- 9366: REGEXP performance regression
- 3039: server package usage issues