Class ManifestWriter<F extends ContentFile<F>>

  • Type Parameters:
    F - Java class of files written to the manifest, either DataFile or DeleteFile.
    All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, FileAppender<F>

    public abstract class ManifestWriter<F extends ContentFile<F>>
    extends java.lang.Object
    implements FileAppender<F>
    Writer for manifest files.
    • Method Detail

      • prepare

        protected abstract org.apache.iceberg.ManifestEntry<F> prepare​(org.apache.iceberg.ManifestEntry<F> entry)
      • add

        public void add​(F addedFile)
        Add an added entry for a file.

        The entry's snapshot ID will be this manifest's snapshot ID. The data and file sequence numbers will be assigned at commit.

        Specified by:
        add in interface FileAppender<F extends ContentFile<F>>
        Parameters:
        addedFile - a data file
      • add

        public void add​(F addedFile,
                        long dataSequenceNumber)
        Add an added entry for a file with a specific sequence number.

        The entry's snapshot ID will be this manifest's snapshot ID. The entry's data sequence number will be the provided data sequence number. The entry's file sequence number will be assigned at commit.

        Parameters:
        addedFile - a data file
        dataSequenceNumber - a data sequence number for the file
      • existing

        public void existing​(F existingFile,
                             long fileSnapshotId,
                             long dataSequenceNumber,
                             java.lang.Long fileSequenceNumber)
        Add an existing entry for a file.

        The original data and file sequence numbers, snapshot ID, which were assigned at commit, must be preserved when adding an existing entry.

        Parameters:
        existingFile - a file
        fileSnapshotId - snapshot ID when the data file was added to the table
        dataSequenceNumber - a data sequence number of the file (assigned when the file was added)
        fileSequenceNumber - a file sequence number (assigned when the file was added)
      • delete

        public void delete​(F deletedFile,
                           long dataSequenceNumber,
                           java.lang.Long fileSequenceNumber)
        Add a delete entry for a file.

        The entry's snapshot ID will be this manifest's snapshot ID. However, the original data and file sequence numbers of the file must be preserved when the file is marked as deleted.

        Parameters:
        deletedFile - a file
        dataSequenceNumber - a data sequence number of the file (assigned when the file was added)
        fileSequenceNumber - a file sequence number (assigned when the file was added)
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException