Merged PRs
dolt
- 10538: fix git remote performance on dolt push
Prior to this change pushes that would take ~6s to DoltHub took ~70s to a Git remote. This pr removes fetch for non-manifest keys that are already in the cache on the read path which brings a push to a git remote down to around ~17s. One the write path, tablefiles are now only written to the remote at the same time the manifest is written, in a single commit and push call. This change brings the performance down to about ~8s in my testing. This optimization doesn't change the Blobstore interface, but does introduce a risk for a caller-side bug, by incorrectly calling Put(tf1), CheckAndPut(manifest_referencing_tf1_and_tf2), Put(tf2). This changes the visibility contract that a Put is already on the remote.
Also, fixes git fetch failures caused by stale remote-tracking refs: add --refmap="" so fetch only processes our explicit refspec and ignores the remote's default fetch refspecs, which can fail with ref directory/file conflicts unrelated to our ref. - 10532: Adding --continue flag to cherry-pick
Currently our workflow for dealing with conflicts in cherry-pick is todolt_addthendolt_commitwhich ends up losing commit data like the author and commit message.
This PR adds the--continueflag to cherry-pick (both stored procedure and CLI), which will preserve the commit metadata.
This flag exists ongit cherry-pick - 10529: Filter ignored tables from dolt_status and dolt_diff
Fixes #10524
Ignored tables (tables matching patterns in the dolt_ignore system table) are tables that aren't intended to be staged. We should exclude them fromdolt statusanddolt diffoutput unless specifically requested with flags.
There's one questionable part of this PR: how the system tables handle tables that match multiple conflicting patterns. Thedolt statusanddolt diffCLI commands detect this and display a warning, but there's not currently a way for thedolt_statusanddolt_diffsystem tables to signal these conflicts. So with this PR:- System tables treat tables that match conflicting patterns as not ignored
- CLI commands do an additional check in order to detect conflicts
This PR also removes most of the duplicate logic out of thedolt statuscommand in favor of thedolt_status_ignoredsystem table. We can't remove all the logic because of the aforemenentioned check.
go-mysql-server
- 3441: bug fix: allow
ALTER TABLE DROP CONSTRAINTto remove unique indexes
When adding a unique constraint to a table, it wasn't possible to remove it usingALTER TABLE DROP CONSTRAINT. This change allows unique indexes to be removed with this syntax.
Related to: dolthub/doltgresql#2359 - 3438: Implement
sql.StringTypeinterface forsystemStringType
fixes #10534
part of #10535
Closed Issues
- 10524: DOLT_DIFF and DOLT_STATUS should omit newly created tables that match DOLT_IGNORE patterns