You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add icebergUpdateSchema for schema evolution (#31)
Expose the existing add-schema / set-current-schema commit logic through a
stable public entry point so consumers can add nullable columns (or rename
columns, promote types) without recreating the table.
- icebergStageUpdateSchema: pure metadata-only stage with CAS requirements
(assert-current-schema-id, assert-last-assigned-field-id), validated
eagerly via applyUpdates
- icebergUpdateSchema: top-level commit through commitWithRetry, works for
file and REST catalogs
- StagedCommit supertype with optional snapshot for metadata-only commits
If the table is created with a `sortOrder`, `icebergAppend` orders the rows in each written file by that order (tightening per-file column bounds for scan pruning). `icebergRewrite` compacts the current snapshot — reading every live row (deletes applied), sorting globally, and rewriting into consolidated, non-overlapping files via a `replace` snapshot (v2 tables):
* Commit a `StagedUpdate` against a file-based catalog: verify requirements
11
+
* Commit a `StagedCommit` against a file-based catalog: verify requirements
12
12
* against the current metadata, apply updates, and write the next
13
13
* `vN.metadata.json` and `version-hint.text`.
14
14
*
@@ -30,7 +30,7 @@ import { validatePartitionSpecForWrite } from './partition.js'
30
30
* prior version so rollback / log walks land on a real file even when the
31
31
* prior writer used `NNNNN-<uuid>.metadata.json` instead of `vN.metadata.json`.
32
32
* @param {number} [options.currentVersion] - If known, the on-disk version of `metadata`. Bypasses deriving from `metadata-log`, which can be empty/stale on foreign-written tables.
33
-
* @param {StagedUpdate} options.staged
33
+
* @param {StagedCommit} options.staged
34
34
* @param {Resolver} options.resolver
35
35
* @param {boolean} [options.conditionalCommits] - When true, write the metadata file with `ifNoneMatch: '*'`.
36
36
* @returns {Promise<TableMetadata>} The new metadata, already persisted.
0 commit comments