Package oracle.kv.hadoop.table

# Class TableRecordReader

java.lang.Object
org.apache.hadoop.mapreduce.RecordReader<K,V>
oracle.kv.hadoop.table.TableRecordReader

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class TableRecordReader extends RecordReader<K,V>
Concrete implementation of TableRecordReaderBase that reads table rows from an InputSplit using a PrimaryKey.

Since:
  3.1

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Row`
  `current`
  `protected static final String`
  `USER_SECURITY_DIR`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TableRecordReader()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Close the record reader.
  `PrimaryKey`
  `getCurrentKey()`
  Get the current key.
  `Row`
  `getCurrentValue()`
  Get the current value.
  `Table`
  `getKvTable()`
  `float`
  `getProgress()`
  The current progress of the record reader through its data.
  `void`
  `initialize(InputSplit split, TaskAttemptContext context)`
  Called once at initialization.
  `boolean`
  `nextKeyValue()`
  Reads the next key/value pair as a `Row` and then processes the contents of the row.
  `void`
  `setIndexKey(IndexKey key)`
  `void`
  `setIterFailHook(oracle.kv.impl.test.TestHook<RecordValue> iterFailHook)`
  Used only when testing.
  `void`
  `setMultiRowOptions(FieldRange fieldRange)`
  `void`
  `setPrimaryKey(PrimaryKey key)`
  `void`
  `setQueryInfo(int newQueryBy, String newWhereClause)`
  `void`
  `setStore(KVStore testStore)`
  For testing only; to support the use of a mocked store.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### USER_SECURITY_DIR

    protected static final String USER_SECURITY_DIR

  - ### current

    protected Row current

- ## Constructor Details

  - ### TableRecordReader

    public TableRecordReader()

- ## Method Details

  - ### getCurrentKey

    public PrimaryKey getCurrentKey() throws IOException, InterruptedException
    Get the current key.
    Specified by:
      `getCurrentKey` in class `RecordReader<PrimaryKey,Row>`
    Returns:
      the current key or null if there is no current key
    Throws:
      `IOException` - if an I/O error occurs
      `InterruptedException` - if the operation is interrupted

  - ### getCurrentValue

    public Row getCurrentValue() throws IOException, InterruptedException
    Get the current value.
    Specified by:
      `getCurrentValue` in class `RecordReader<PrimaryKey,Row>`
    Returns:
      the object that was read
    Throws:
      `IOException` - if an I/O error occurs
      `InterruptedException` - if the operation is interrupted

  - ### initialize

    public void initialize(InputSplit split, TaskAttemptContext context) throws IOException, InterruptedException
    Called once at initialization.
    Specified by:
      `initialize` in class `RecordReader<K,V>`
    Parameters:
      `split` - the split that defines the range of records to read
      `context` - the information about the task
    Throws:
      `IOException` - if an I/O error occurs
      `InterruptedException` - if the operation is interrupted

  - ### nextKeyValue

    public boolean nextKeyValue() throws IOException
    Reads the next key/value pair as a `Row` and then processes the contents of the row.
    Specified by:
      `nextKeyValue` in class `RecordReader<K,V>`
    Returns:
      `true` when a key/value pair was successfully read and processed; otherwise, returns `false` when EOF is encountered.
    Throws:
      `IOException` - when `IOException` occurs during processing. When any other type of exception is encountered during processing, throws that exception wrapped in `IOException`; to be consistent with the Hadoop `RecordReader` interface implemented by this class. See SR25870 for more details.

  - ### getProgress

    public float getProgress()
    The current progress of the record reader through its data.
    Specified by:
      `getProgress` in class `RecordReader<K,V>`
    Returns:
      a number between 0.0 and 1.0 that is the fraction of the data read

  - ### close

    public void close() throws IOException
    Close the record reader.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Specified by:
      `close` in class `RecordReader<K,V>`
    Throws:
      `IOException`

  - ### getKvTable

    public Table getKvTable()

  - ### setIndexKey

    public void setIndexKey(IndexKey key)

  - ### setPrimaryKey

    public void setPrimaryKey(PrimaryKey key)

  - ### setMultiRowOptions

    public void setMultiRowOptions(FieldRange fieldRange)

  - ### setStore

    public void setStore(KVStore testStore)
    For testing only; to support the use of a mocked store.

  - ### setQueryInfo

    public void setQueryInfo(int newQueryBy, String newWhereClause)

  - ### setIterFailHook

    public void setIterFailHook(oracle.kv.impl.test.TestHook<RecordValue> iterFailHook)
    Used only when testing. See SR25870.