Class IcebergDecoder<D>

java.lang.Object
org.apache.avro.message.MessageDecoder.BaseDecoder<D>
org.apache.iceberg.data.avro.IcebergDecoder<D>
All Implemented Interfaces:
org.apache.avro.message.MessageDecoder<D>

public class IcebergDecoder<D> extends org.apache.avro.message.MessageDecoder.BaseDecoder<D>
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.avro.message.MessageDecoder

    org.apache.avro.message.MessageDecoder.BaseDecoder<D extends Object>
  • Constructor Summary

    Constructors
    Constructor
    Description
    IcebergDecoder(Schema readSchema)
    Creates a new decoder that constructs datum instances described by an Iceberg schema.
    IcebergDecoder(Schema readSchema, org.apache.avro.message.SchemaStore resolver)
    Creates a new decoder that constructs datum instances described by an Iceberg schema.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addSchema(Schema writeSchema)
    Adds an Iceberg schema that can be used to decode buffers.
    decode(InputStream stream, D reuse)
     

    Methods inherited from class org.apache.avro.message.MessageDecoder.BaseDecoder

    decode, decode, decode, decode, decode

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • IcebergDecoder

      public IcebergDecoder(Schema readSchema)
      Creates a new decoder that constructs datum instances described by an Iceberg schema.

      The readSchema is as used the expected schema (read schema). Datum instances created by this class will are described by the expected schema.

      The schema used to decode incoming buffers is determined by the schema fingerprint encoded in the message header. This class can decode messages that were encoded using the readSchema and other schemas that are added using addSchema(org.apache.iceberg.Schema).

      Parameters:
      readSchema - the schema used to construct datum instances
    • IcebergDecoder

      public IcebergDecoder(Schema readSchema, org.apache.avro.message.SchemaStore resolver)
      Creates a new decoder that constructs datum instances described by an Iceberg schema.

      The readSchema is as used the expected schema (read schema). Datum instances created by this class will are described by the expected schema.

      The schema used to decode incoming buffers is determined by the schema fingerprint encoded in the message header. This class can decode messages that were encoded using the readSchema and other schemas that are added using addSchema(org.apache.iceberg.Schema).

      Schemas may also be returned from an Avro SchemaStore. Avro Schemas from the store must be compatible with Iceberg and should contain id properties and use only Iceberg types.

      Parameters:
      readSchema - the Schema used to construct datum instances
      resolver - a SchemaStore used to find schemas by fingerprint
  • Method Details