com.streambase.sb.operator

## Interface TableAccessor

-     public interface TableAccessor

  A handle for accessing a table. Retrieve an instance in an Operator via `Operator.getTableAccessor(String)`.
  Since:
    7.2

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `QUERY_ARGUMENT_QUALIFIER`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Tuple` | `createRow()`
    `Tuple` | `delete(Tuple pkey)` Delete a row in the table based on primary key.
    `List<Schema.Field>` | `getPrimaryKeyFields()` The fields from the schema which make up the primary key.
    `Schema` | `getSchema()` The schema for rows in this table.
    `void` | `insert(Tuple row)` Insert a new row into the table.
    `PreparedQuery` | `prepare(String predicate, Schema args)` Prepare an index-accessing query.
    `Tuple` | `readPrimary(Tuple pkey)` Read a row from the table by primary key.
    `Tuple` | `replace(Tuple row)` Replace a row in the table, or insert if there is no existing row with matching primary key.
    `long` | `size(boolean slowAndAccurate)` Return the number of rows in the table
    `void` | `truncate()` Truncate the table, by removing all rows

- - ### Field Detail

    - #### QUERY_ARGUMENT_QUALIFIER

          static final String QUERY_ARGUMENT_QUALIFIER

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getSchema

          Schema getSchema()

      The schema for rows in this table.
      Returns:
        Table schema

    - #### getPrimaryKeyFields

          List<Schema.Field> getPrimaryKeyFields()

      The fields from the schema which make up the primary key.
      Returns:
        Primary key fields

    - #### createRow

          Tuple createRow()

      Returns:
        a new row object suitable for adding to or querying from the table.

    - #### readPrimary

          Tuple readPrimary(Tuple pkey)
                     throws StreamBaseException

      Read a row from the table by primary key. The row is read only, and valid until the table is modified.
      Parameters:
        `pkey` - row object with primary key material populated.
      Returns:
        The matching table row if any, or null.
      Throws:
        `StreamBaseException` - if the key is invalid

    - #### prepare

          PreparedQuery prepare(String predicate,
                                Schema args)
                         throws StreamBaseException

      Prepare an index-accessing query.
      Parameters:
        `predicate` - Predicate which may reference table fields and fields present in `args`. Table fields may be referenced unqualified (as defined in the table), `args` fields may be referenced by the "input" prefix.
        `args` - Schema for tuples that will be an argument to this prepared query. May be null if not needed.
      Returns:
        A prepared query object which may be used to execute queries as long as this table is around.
      Throws:
        `StreamBaseException` - if the predicate fails to parse or there is some other issue with preparing the query
      See Also:
        `PreparedQuery`

    - #### insert

          void insert(Tuple row)
               throws StreamBaseException

      Insert a new row into the table. Data will be copied into the table, the row object can be reused after the row is inserted.
      Parameters:
        `row` - Row values to insert into the able. Should not collide with existing row.
      Throws:
        `StreamBaseException` - If the table is read only or if the row collides with another row.

    - #### replace

          Tuple replace(Tuple row)
                 throws StreamBaseException

      Replace a row in the table, or insert if there is no existing row with matching primary key. Data will be copied into the table, the row object can be reused after the row is inserted.
      Parameters:
        `row` - Row to replace with.
      Returns:
        The previous row, or null if there was no previous row. The row is read only.
      Throws:
        `StreamBaseException` - if the table is read only

    - #### delete

          Tuple delete(Tuple pkey)
                throws StreamBaseException

      Delete a row in the table based on primary key.
      Parameters:
        `pkey` - Row object to use for primary key data.
      Returns:
        Deleted row or null if there was no matching row. The row is read only.
      Throws:
        `StreamBaseException` - if the table is read only

    - #### truncate

          void truncate()
                 throws StreamBaseException

      Truncate the table, by removing all rows
      Throws:
        `StreamBaseException` - Truncation failed

    - #### size

          long size(boolean slowAndAccurate)

      Return the number of rows in the table
      Parameters:
        `slowAndAccurate` - For some table implementations accurate results can be expensive. For in-memory query tables, exact results are inexpensive and always returned.
      Returns:
        The number of rows in the table
      Since:
        7.2.5

Copyright © 2015–2018 Cloud Software Group, Inc.. All rights reserved.