Class ManifestWriter<F extends ContentFile<F>>

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

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

    • prepare

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

      protected abstract FileAppender<org.apache.iceberg.ManifestEntry<F>> newAppender(PartitionSpec spec, OutputFile outputFile)
    • content

      protected ManifestContent content()
    • 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, 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, 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)
    • metrics

      public Metrics metrics()
      Description copied from interface: FileAppender
      Returns Metrics for this file. Only valid after the file is closed.
      Specified by:
      metrics in interface FileAppender<F extends ContentFile<F>>
    • length

      public long length()
      Description copied from interface: FileAppender
      Returns the length of this file.
      Specified by:
      length in interface FileAppender<F extends ContentFile<F>>
    • toManifestFile

      public ManifestFile toManifestFile()
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException