public class BaseRewriteManifests extends java.lang.Object implements RewriteManifests
| Modifier and Type | Method and Description |
|---|---|
Snapshot |
apply()
Apply the pending changes and return the uncommitted changes for validation.
|
java.util.List<ManifestFile> |
apply(TableMetadata base)
Apply the update's changes to the base table metadata and return the new manifest list.
|
protected void |
cleanAll() |
protected void |
cleanUncommitted(java.util.Set<ManifestFile> committed)
Clean up any uncommitted manifests that were created.
|
RewriteManifests |
clusterBy(java.util.function.Function<DataFile,java.lang.Object> func)
Groups an existing
DataFile by a cluster key produced by a function. |
void |
commit()
Apply the pending changes and commit.
|
protected void |
deleteFile(java.lang.String path) |
ThisT |
deleteWith(java.util.function.Consumer<java.lang.String> deleteCallback)
Set a callback to delete files instead of the table's default.
|
protected OutputFile |
manifestListPath() |
protected OutputFile |
manifestPath(int manifestNumber) |
protected java.lang.String |
operation()
A string that describes the action that produced the new snapshot.
|
RewriteManifests |
rewriteIf(java.util.function.Predicate<ManifestFile> pred)
Determines which existing
ManifestFile for the table should be rewritten. |
protected RewriteManifests |
self() |
RewriteManifests |
set(java.lang.String property,
java.lang.String value)
Set a summary property in the snapshot produced by this update.
|
protected long |
snapshotId() |
ThisT |
stageOnly()
Called to stage a snapshot in table metadata, but not update the current snapshot id.
|
protected java.util.Map<java.lang.String,java.lang.String> |
summary() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdeleteWith, stageOnlyapply, commitprotected RewriteManifests self()
protected java.lang.String operation()
public RewriteManifests set(java.lang.String property, java.lang.String value)
SnapshotUpdateset in interface SnapshotUpdate<RewriteManifests>property - a String property namevalue - a String property valueprotected java.util.Map<java.lang.String,java.lang.String> summary()
public RewriteManifests clusterBy(java.util.function.Function<DataFile,java.lang.Object> func)
RewriteManifestsDataFile by a cluster key produced by a function. The cluster key
will determine which data file will be associated with a particular manifest. All data files
with the same cluster key will be written to the same manifest (unless the file is large and
split into multiple files).clusterBy in interface RewriteManifestsfunc - Function used to cluster data files to manifests.public RewriteManifests rewriteIf(java.util.function.Predicate<ManifestFile> pred)
RewriteManifestsManifestFile for the table should be rewritten. Manifests
that do not match the predicate are kept as-is. If this is not called and no predicate is set, then
all manifests will be rewritten.rewriteIf in interface RewriteManifestspred - Predicate used to determine which manifests to rewrite. If true then the manifest
file will be included for rewrite. If false then then manifest is kept as-is.public java.util.List<ManifestFile> apply(TableMetadata base)
base - the base table metadata to apply changes toprotected void cleanUncommitted(java.util.Set<ManifestFile> committed)
Manifests may not be committed if apply is called more because a commit conflict has occurred. Implementations may keep around manifests because the same changes will be made by both apply calls. This method instructs the implementation to clean up those manifests and passes the paths of the manifests that were actually committed.
committed - a set of manifest paths that were actually committedpublic ThisT stageOnly()
SnapshotUpdatestageOnly in interface SnapshotUpdate<ThisT>public ThisT deleteWith(java.util.function.Consumer<java.lang.String> deleteCallback)
SnapshotUpdatedeleteWith in interface SnapshotUpdate<ThisT>deleteCallback - a String consumer used to delete locations.public Snapshot apply()
PendingUpdateThis does not result in a permanent update.
apply in interface PendingUpdate<Snapshot>PendingUpdate.commit()public void commit()
PendingUpdateChanges are committed by calling the underlying table's commit method.
Once the commit is successful, the updated table will be refreshed.
commit in interface PendingUpdate<Snapshot>protected void cleanAll()
protected void deleteFile(java.lang.String path)
protected OutputFile manifestListPath()
protected OutputFile manifestPath(int manifestNumber)
protected long snapshotId()