Class BaseRowDelta

    • Constructor Detail

      • BaseRowDelta

        public BaseRowDelta​(java.lang.String tableName,
                            TableOperations ops)
    • Method Detail

      • operation

        protected java.lang.String operation()
        A string that describes the action that produced the new snapshot.
        Returns:
        a string operation
      • addRows

        public RowDelta addRows​(DataFile inserts)
        Description copied from interface: RowDelta
        Add a DataFile to the table.
        Specified by:
        addRows in interface RowDelta
        Parameters:
        inserts - a data file of rows to insert
        Returns:
        this for method chaining
      • addDeletes

        public RowDelta addDeletes​(DeleteFile deletes)
        Description copied from interface: RowDelta
        Add a DeleteFile to the table.
        Specified by:
        addDeletes in interface RowDelta
        Parameters:
        deletes - a delete file of rows to delete
        Returns:
        this for method chaining
      • set

        public ThisT set​(java.lang.String property,
                         java.lang.String value)
        Description copied from interface: SnapshotUpdate
        Set a summary property in the snapshot produced by this update.
        Parameters:
        property - a String property name
        value - a String property value
        Returns:
        this for method chaining
      • addedFiles

        protected java.util.List<DataFile> addedFiles()
      • failAnyDelete

        protected void failAnyDelete()
      • failMissingDeletePaths

        protected void failMissingDeletePaths()
      • deleteByRowFilter

        protected void deleteByRowFilter​(Expression expr)
        Add a filter to match files to delete. A file will be deleted if all of the rows it contains match this or any other filter passed to this method.
        Parameters:
        expr - an expression to match rows.
      • dropPartition

        protected void dropPartition​(StructLike partition)
        Add a partition tuple to drop from the table during the delete phase.
      • delete

        protected void delete​(DataFile file)
        Add a specific data file to be deleted in the new snapshot.
      • delete

        protected void delete​(DeleteFile file)
        Add a specific delete file to be deleted in the new snapshot.
      • delete

        protected void delete​(java.lang.CharSequence path)
        Add a specific data path to be deleted in the new snapshot.
      • add

        protected void add​(DataFile file)
        Add a data file to the new snapshot.
      • add

        protected void add​(DeleteFile file)
        Add a delete file to the new snapshot.
      • add

        protected void add​(ManifestFile manifest)
        Add all files in a manifest to the new snapshot.
      • summary

        protected java.util.Map<java.lang.String,​java.lang.String> summary()
      • apply

        public java.util.List<ManifestFile> apply​(TableMetadata base)
        Apply the update's changes to the base table metadata and return the new manifest list.
        Parameters:
        base - the base table metadata to apply changes to
        Returns:
        a manifest list for the new snapshot.
      • updateEvent

        public java.lang.Object updateEvent()
        Description copied from interface: PendingUpdate
        Generates update event to notify about metadata changes
        Returns:
        the generated event
      • cleanUncommitted

        protected void cleanUncommitted​(java.util.Set<ManifestFile> committed)
        Clean up any uncommitted manifests that were created.

        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.

        Parameters:
        committed - a set of manifest paths that were actually committed
      • stageOnly

        public ThisT stageOnly()
        Description copied from interface: SnapshotUpdate
        Called to stage a snapshot in table metadata, but not update the current snapshot id.
        Specified by:
        stageOnly in interface SnapshotUpdate<ThisT>
        Returns:
        this for method chaining
      • deleteWith

        public ThisT deleteWith​(java.util.function.Consumer<java.lang.String> deleteCallback)
        Description copied from interface: SnapshotUpdate
        Set a callback to delete files instead of the table's default.
        Specified by:
        deleteWith in interface SnapshotUpdate<ThisT>
        Parameters:
        deleteCallback - a String consumer used to delete locations.
        Returns:
        this for method chaining
      • apply

        public Snapshot apply()
        Description copied from interface: PendingUpdate
        Apply the pending changes and return the uncommitted changes for validation.

        This does not result in a permanent update.

        Specified by:
        apply in interface PendingUpdate<ThisT>
        Returns:
        the uncommitted changes that would be committed by calling PendingUpdate.commit()
      • commit

        public void commit()
        Description copied from interface: PendingUpdate
        Apply the pending changes and commit.

        Changes are committed by calling the underlying table's commit method.

        Once the commit is successful, the updated table will be refreshed.

        Specified by:
        commit in interface PendingUpdate<ThisT>
      • cleanAll

        protected void cleanAll()
      • deleteFile

        protected void deleteFile​(java.lang.String path)
      • manifestListPath

        protected OutputFile manifestListPath()
      • newManifestOutput

        protected OutputFile newManifestOutput()
      • snapshotId

        protected long snapshotId()