20779 Commits

Author SHA1 Message Date
coffeegoddd 346c41e428 [ga-bump-release] Update Dolt version to 1.83.2 and release v1.83.2 2026-03-05 00:30:54 +00:00
Aaron Son 39f37def67 Merge pull request #10629 from dolthub/aaron/optimize-dolt_backup-to-transfer-table-files
go: Optimize backups to more often transit existing table files instead of doing a merkle dag walk to push missing chunks.
2026-03-04 13:51:06 -08:00
Dustin Brown 41e6e98280 Merge pull request #10595 from dolthub/dependabot/go_modules/go/go.opentelemetry.io/otel/sdk-1.40.0
Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /go
2026-03-04 13:17:13 -08:00
Zach Musgrave 666fa5c756 Merge pull request #10617 from dolthub/zachmu/kill-types-6
[no-release-notes] Removed all the collection types from the types package, as well as related functionality
2026-03-04 11:49:38 -08:00
reltuk fb95c120bd [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh 2026-03-04 19:45:46 +00:00
Aaron Son a7848925be go: Optimize backups to more often transit existing table files instead of doing a merkle dag walk to push missing chunks.
There are two code paths for taking a logical backup of a Dolt database. One
pushes all the existing table files to the backup destination and then sets it
up so that it points at the same root value as the existing database. The other
code path does the merkle dag walk to push all the missing chunks to the
destination store, starting from the desired root value chunk.

If the destination store is missing a lot of data, this later path currently
requires a lot of bookkeeping to keep track of what has been pushed so far and
what still needs to be pushed. This is expensive in memory. It requires walking
large portions of the existing database, chunk by chunk, which can be expensive
in CPU and in I/O seeks.

This code change seeks to use the code path which uploads existing table files
more often when it is the best choice. In order to do so, the code path is now
willing to convert a journal file, which should never be pushed to a remote or
a backup, into a table file. It will do this on the fly, and will only upload
the resulting table file to the destination. The table file does not become
part of the source store, and this code path has no interaction with GC.

For now, there are some hardcoded heuristics for when to prefer pushing
existing table files rather than trying to build the upload chunk-by-chunk.
This PR uses existing table files when: the destination store is empty (has a
zero root hash value) and there is no existing journal file or the existing
journal file is less than 20% of the total repo size and the existing journal
file is less than 16GB.
2026-03-04 11:28:55 -08:00
Aaron Son 200141dfc7 go: store/chunks: Sources() returns a TableFileSources struct. 2026-03-04 11:25:25 -08:00
Aaron Son 6dbdc4711a Merge pull request #10626 from dolthub/aaron/clone-stats-cleanup
[no-release-notes] go: actions/remotes.go: SyncRoots: Pass a fully read chan pull.Stats, instead of trying to use Prog{Starter,Stopper}.
2026-03-04 11:25:06 -08:00
nullun 9f01761db6 Support staging new tables with dolt add -p (#10591)
* Support staging new tables with dolt add -p

When using 'dolt add -p' to stage rows from a new table (one that exists
in working but not in staging), the workspace table UPDATE mechanism
previously failed with 'table not found' because GetTableWriter looked
for the table in the staging root where it didn't exist yet.

This change adds ensureTableExistsInStaging() which:
1. Checks if the table exists in staging (fast path - no-op)
2. If not, checks if it exists in working
3. If yes, creates an empty table in staging with the same schema
4. Updates the session state to reflect the new staging root

The table is created empty (not copied with data) because 'dolt add -p'
allows partial staging - each row selected by the user will be inserted
individually into the staging table via the workspace table UPDATE.

Also adds unit tests and BATS integration tests for the new functionality.

* Update partial staging test to use correct column names and verify exact output

* Update failing test to use csv comparison

Locally dolt will render bool values as true/false, so the remote-engine
test fails because it shows 1/0. Additionally whitespace will probably
also an issue. Outputting in a csv format should result in the same data
to compare in both scenarios.

* pretty the other new tests

* force output to always be true/false
2026-03-04 11:04:45 -08:00
Aaron Son b27cc68621 Merge pull request #10624 from dolthub/aaron/readwithstats-idempotent-close
[no-release-notes] go: iohelp/read_with_stats.go: Make Close() idempotent so it does not panic if you call it twice.
2026-03-04 11:02:19 -08:00
dependabot[bot] 144ed4e630 Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /go
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 00:35:03 +00:00
Aaron Son dce56cf5ac [no-release-notes] go: actions/remotes.go: SyncRoots: Pass a fully read chan pull.Stats, instead of trying to use Prog{Starter,Stopper}.
Existing implementations of and uses of Prog{Starter,Stopper} are generally
incorrect.
2026-03-03 15:01:02 -08:00
Aaron Son d60b90b6d9 go: iohelp/read_with_stats.go: Make Close() idempotent so it does not panic if you call it twice. 2026-03-03 14:10:38 -08:00
Aaron Son 1806b54d7d go: remotesrv/http.go: Change it so the HTTP server for remotesrv can accept a written file without a content_hash parameter.
For now, there are some cases where we do not have a cheap MD5
sum of the contents of the file available when we are uploading it.
2026-03-03 14:01:59 -08:00
Jason Fulghum ba778b2027 Merge pull request #10621 from dolthub/fulghum/binlog_empty_text
Bug fix: binlog serialization of empty TEXT values
2026-03-03 09:36:14 -08:00
angelamayxie dab351a5eb Merge pull request #10620 from dolthub/angelamayxie-876f8cae
[auto-bump] [no-release-notes] dependency by angelamayxie
2026-03-02 18:52:46 -08:00
coffeegoddd 593ee49643 [ga-bump-release] Update Dolt version to 1.83.1 and release v1.83.1 2026-03-03 02:26:58 +00:00
Dustin Brown 5f7509ebf2 Merge pull request #10597 from dolthub/db/fixes-clean
go/store: fix push latency growth for git-backed remotes
2026-03-02 17:54:32 -08:00
Jason Fulghum 1283a8915d bug fix for binlog serialization of empty TEXT values 2026-03-02 17:45:52 -08:00
angelamayxie 1184f3a773 [ga-bump-dep] Bump dependency in Dolt by angelamayxie 2026-03-03 01:45:42 +00:00
zachmu 532c489a2a [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh 2026-03-03 01:39:54 +00:00
Zach Musgrave adc2aa8de5 updated licenses 2026-03-02 17:30:46 -08:00
coffeegoddd☕️✨ 272d08ee79 /go/{store,libraries}: pr feedback 2026-03-02 17:18:29 -08:00
Zach Musgrave 6e1e7473c6 cleanup 2026-03-02 17:18:05 -08:00
Zach Musgrave ca31644475 cleanup 2026-03-02 17:04:30 -08:00
Zach Musgrave 5319ab5370 fixed copyright header problems 2026-03-02 16:48:54 -08:00
Zach Musgrave ba94c7be54 deleted supertype and simplification code 2026-03-02 16:36:46 -08:00
Zach Musgrave 24d420a61a deleted tuples and json 2026-03-02 16:24:54 -08:00
Elian 8b3e5ff994 Merge pull request #10611 from dolthub/elian/10589
Fix Parquet `table import -u` to skip missing table columns and match CSV warning behavior
2026-03-02 16:15:43 -08:00
elianddb 86a1bd49cd fix parquet to succeed with warning when processing non-matching schema 2026-03-02 13:42:12 -08:00
nullun 1912c5a08d Fix nil pointer panic in workspace table Update and Delete methods (#10590)
When StatementBegin encounters an error (e.g., table not found in staging
root), it stores the error in wtu.err but leaves tableWriter as nil. The
Update and Delete methods were dereferencing tableWriter before checking
if it was nil, causing a panic.

This fix adds an early return to check for errors from StatementBegin
before attempting to use tableWriter, preventing the nil pointer
dereference.
2026-03-02 13:38:37 -08:00
coffeegoddd☕️✨ d8233e08b7 /go/cmd/dolt/doltversion/version.go: fix version 2026-03-02 13:05:19 -08:00
Zach Musgrave 3352544059 removed flatbuffers check 2026-03-02 13:04:45 -08:00
Zach Musgrave 2089af2795 removed unused json package 2026-03-02 13:03:59 -08:00
Zach Musgrave ec0cfb85e9 deleted struct 2026-03-02 12:48:33 -08:00
coffeegoddd 58ef8a9177 [ga-bump-release] Update Dolt version to 1.58.9 and release v1.58.9 2026-03-02 20:44:46 +00:00
Zach Musgrave 2bcc990731 first pass at deleting noms collection types 2026-03-02 12:12:17 -08:00
coffeegoddd☕️✨ a6a847d0d8 /go/{store,libraries}: cleanup 2026-02-28 16:13:38 -08:00
coffeegoddd☕️✨ 0f55ff4d9a /go/store/nbs: remove lazy nbs 2026-02-28 15:25:36 -08:00
coffeegoddd☕️✨ 942bc2457e /go/{libraries,store}: restore rebase 2026-02-28 14:41:09 -08:00
coffeegoddd☕️✨ 68fccc0c5b /go/store/nbs: fix test 2026-02-28 12:37:56 -08:00
coffeegoddd☕️✨ 411d2d3b00 /go/libraries/doltcore: only cache git remotes 2026-02-28 12:14:51 -08:00
coffeegoddd☕️✨ 8077ce20f1 /go/{cmd,store}: cleanup 2026-02-28 11:31:49 -08:00
zachmu 1dfb09ba33 [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh 2026-02-28 18:59:28 +00:00
Zach Musgrave 2b011ec803 removed defunct test 2026-02-28 10:50:27 -08:00
coffeegoddd☕️✨ 57fd4b43a0 /go/store: maybe more efficiencies 2026-02-28 10:37:00 -08:00
coffeegoddd☕️✨ 67f9187418 /go/store: maybe gc 2026-02-28 10:27:24 -08:00
coffeegoddd☕️✨ b3b91926ad /go/store: single blobstore persister 2026-02-28 10:18:29 -08:00
coffeegoddd☕️✨ c923d9fae4 /go/{store,libraries}: maybe fix push and cach opens 2026-02-28 09:24:14 -08:00
coffeegoddd☕️✨ 66c993075d /go/{store,libraries}: maybe reduce fetches 2026-02-28 08:31:13 -08:00