Package oracle.kv

Enum Class Value.Format

All Implemented Interfaces:
Serializable, Comparable<Value.Format>, Constable, oracle.kv.impl.util.FastExternalizable
Enclosing class:
Value

public static enum Value.Format extends Enum<Value.Format> implements oracle.kv.impl.util.FastExternalizable
Identifies the format of a value.
Since:
2.0
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    Deprecated.
    as of 4.0, use the table API instead.
    Format for multi-region table.
    The byte array format is not known to the store; the format is known only to the application.
    The byte array format that is used by table rows.
    Introduced at TABLE_V1 format: - An new serialization way for string value in JSON field.
    Format that contains: - 1st byte: format version - 2nd byte: bitset - bit 0: 1 if row has regionId, 0 otherwise - bit 1: 1 if row has row-metadata, 0 otherwise - bits 2-7: unused - if it has regionId next bytes are a packed int - if it has write metadata next bytes are the metadata string length and string - rest bytes are the row data
    Versioned Blocks with binary regionId and lastWriteMetadata followed by binary row data: - 1st byte: Value format version - next 1 to 4 bytes: number of blocks - packed integer - first block: - first 1 to 4 bytes: Block version - packed integer - next 1 to 4 bytes: Block size in bytes - packed integer n - next n bytes: - first byte: bitset - next few bytes: -regionId packed integer -rowMetadata: size packed integer + string - next rest bytes: binary row data - second block, - third block, etc Note: This is the format to be used for the foreseeable future.
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    isTableFormat(int firstByte)
     
    static boolean
    Returns true if the value format is for table.
    valueOf(int ordinal)
    Returns the enum constant of this class with the specified name.
    Returns the enum constant of this class with the specified name.
    static Value.Format[]
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface oracle.kv.impl.util.FastExternalizable

    deserializedForm
  • Enum Constant Details

    • NONE

      public static final Value.Format NONE
      The byte array format is not known to the store; the format is known only to the application. Values of format NONE are created with Value.createValue(byte[]). All values created using NoSQL DB version 1.x have format NONE.
    • AVRO

      @Deprecated public static final Value.Format AVRO
      Deprecated.
      as of 4.0, use the table API instead.
      The byte array format is Avro binary data along with an internal, embedded schema ID.
    • TABLE

      public static final Value.Format TABLE
      The byte array format that is used by table rows. Values with this format are never created by applications but non-table applications may accidentally see a table row. These Values cannot be deserialized by non-table applications.
    • TABLE_V1

      public static final Value.Format TABLE_V1
      Introduced at TABLE_V1 format: - An new serialization way for string value in JSON field.
    • MULTI_REGION_TABLE

      public static final Value.Format MULTI_REGION_TABLE
      Format for multi-region table. Values with this format have encoded information for multi-region table, including region id and tombstone.
    • TABLE_V5

      public static final Value.Format TABLE_V5
      Format that contains: - 1st byte: format version - 2nd byte: bitset - bit 0: 1 if row has regionId, 0 otherwise - bit 1: 1 if row has row-metadata, 0 otherwise - bits 2-7: unused - if it has regionId next bytes are a packed int - if it has write metadata next bytes are the metadata string length and string - rest bytes are the row data
    • TABLE_V6

      public static final Value.Format TABLE_V6
      Versioned Blocks with binary regionId and lastWriteMetadata followed by binary row data: - 1st byte: Value format version - next 1 to 4 bytes: number of blocks - packed integer - first block: - first 1 to 4 bytes: Block version - packed integer - next 1 to 4 bytes: Block size in bytes - packed integer n - next n bytes: - first byte: bitset - next few bytes: -regionId packed integer -rowMetadata: size packed integer + string - next rest bytes: binary row data - second block, - third block, etc Note: This is the format to be used for the foreseeable future. When adding new row level metadata or changing how current data is encoded this TABLE_V6 format should be used. This format is designed to allow new block versions and multiple blocks to encode same and extra data. All code versions of this class should be able to decode all block versions known up to this version and *SKIP* blocks of unknown future versions. Note: All blocks must start with their version, followed by their size and followed by their content. Note: When extra info needs to be added in the format, or change how a field is serialized, a new block TABLE_V6_BLOCK_V2(next) will be added that will contain only the new info. If new field is added: BLOCK_Vnext will contain only the new field. If field serialization is changed: BLOCK_V1(previous) will contain the default value of the field and BL0CK_V2(next) will contain the value using new serialization format. Note: The current kvstore/kvclient code assumes that row data is at the end of the encoded bytes. When adding a new block either fix code to use both offset and length or add new blocks before the block containing the row encoding. Note: Only one block of a certain version must be present. Note: When deprecating a block, the reading code must still be running. The writing code must throw an IllegalArgumentException. Note: Always use the smallest encoding. For each encoded new data use thoughtful default value that is not encoded. Default values *CANNOT* be changed in future versions!
  • Method Details

    • values

      public static Value.Format[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static Value.Format valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • valueOf

      public static Value.Format valueOf(int ordinal)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      ordinal - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • isTableFormat

      public static boolean isTableFormat(Value.Format format)
      Returns true if the value format is for table.
    • isTableFormat

      public static boolean isTableFormat(int firstByte)