Class DatabaseWrapper

java.lang.Object
com.illumon.iris.db.tables.databases.BaseDatabase
com.illumon.iris.db.tables.databases.DatabaseWrapper
All Implemented Interfaces:
Database
Direct Known Subclasses:
ReplayDatabase

public class DatabaseWrapper
extends BaseDatabase
Re-usable base class for wrapper databases.
  • Field Details

  • Constructor Details

  • Method Details

    • getSchemaService

      public SchemaService getSchemaService()
      Description copied from interface: Database
      Get the SchemaService for retrieving Schemas from which TableDefinitions can be retrieved.
      Returns:
      The SchemaService that this Database was created with.
    • addTablePartition

      public void addTablePartition​(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)
      Description copied from interface: Database
      Adds a single table partition (e.g. one date) to a partitioned table.

      Requires that a suitable TableDefinition has already been added.

      Throws an exception if the partition already exists.

      Parameters:
      namespace - table namespace
      tableName - table name
      internalPartitionValue - internal (not user-visible) partition value.
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      data - data for this partition. Must *not* contain the partitioning column.
      storageFormat - the format used for storage
    • addTable

      public void addTable​(String namespace, String tableName, Table table, Database.StorageFormat storageFormat)
      Description copied from interface: Database
      Adds a non-partitioned table by name to the specified namespace.
      Parameters:
      namespace - table namespace
      tableName - table name
      table - table to add
      storageFormat - the storage format to use (ex DeephavenV1 or Parquet)
    • addTableDefinition

      public void addTableDefinition​(String namespace, String tableName, TableDefinition tableDefinition)
      Description copied from interface: Database
      Adds a table definition to the specified namespace. Throws an exception if the table definition already exists.
      Parameters:
      namespace - table namespace
      tableName - table name
      tableDefinition - table definition to add
    • appendCentral

      public void appendCentral​(String namespace, String tableName, String columnPartitionValue, Table table, boolean flush) throws IOException
      Description copied from interface: Database
      Append to a table via a centralized table appender.

      Note: The table data is appended to a system-defined internal partition, and the specified column partition value.

      Parameters:
      namespace - table namespace
      tableName - table name
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - new data
      flush - true to flush the table to disk; false to wait for flushing (if the implementation supports waiting)
      Throws:
      IOException - problem appending
    • appendCentral

      public void appendCentral​(String namespace, String tableName, Table table, boolean flush) throws IOException
      Description copied from interface: Database
      Append to a table via a centralized table appender.

      This variant implicitly uses a default partitioning column value set by the iris.defaultColumnPartitionNamingFunction function.

      Specified by:
      appendCentral in interface Database
      Overrides:
      appendCentral in class BaseDatabase
      Parameters:
      namespace - table namespace
      tableName - table name
      table - new data
      flush - true to flush the table to disk; false to wait for flushing (if the implementation supports waiting)
      Throws:
      IOException - problem appending
    • appendTablePartition

      public void appendTablePartition​(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data)
      Description copied from interface: Database
      Adds or appends to a single table location (e.g. one date) to a partitioned table.

      Requires that a suitable TableDefinition has already been added.

      Parameters:
      namespace - table namespace
      tableName - table name
      internalPartitionValue - internal (not user-visible) partition value.
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      data - data to append to this partition. Must *not* contain the partitioning column.
    • appendTable

      public void appendTable​(String namespace, String tableName, Table table)
      Description copied from interface: Database
      Appends to a non-partitioned table, or adds the table if it is not present. Adds a TableDefinition if necessary.
      Parameters:
      namespace - table namespace
      tableName - table name
      table - data to add or append
    • deleteMatchingTables

      public void deleteMatchingTables​(String namespace, String tableNameRegex)
      Description copied from interface: Database
      Delete all files related to the set of tables whose names match the supplied regular expression.

      Note: This only works for tables that still have a definition file, although it need not be readable.

      Note: This is a dangerous API - don't use it if you don't fully understand the implications.

      Parameters:
      namespace - table namespace
      tableNameRegex - table names in the given namespace that match this regular expression will be cleaned up.
    • deleteNamespace

      public void deleteNamespace​(String namespace)
      Description copied from interface: Database
      Delete all files related to the specified namespace.

      Note: This is a dangerous API - don't use it if you don't fully understand the implications.

      Parameters:
      namespace - namespace to be deleted.
    • deleteTables

      public void deleteTables​(String namespace, String... tableNames)
      Description copied from interface: Database
      Delete all files related to a set of tables. Database.removeTable(String, String) is a better option, unless the underlying table is damaged.
      Parameters:
      namespace - table namespace
      tableNames - table names to delete
    • closeAndDeleteCentral

      public void closeAndDeleteCentral​(@NotNull String namespace, @NotNull String tableName) throws IOException
      Description copied from interface: Database
      Close all logger connections to the centralized logging for the specified table, and then atomically delete all centrally logged table data for this namespace and table name. Remove all local table data also, as with Database.removeTable(String, String).

      USE WITH EXTREME CAUTION!!!

      Parameters:
      namespace - table namespace
      tableName - table name
      Throws:
      IOException - problems encountered
    • closeAndDeleteCentral

      public void closeAndDeleteCentral​(@NotNull String namespace, @NotNull String tableName, @Nullable String columnPartitionValue) throws IOException
      Description copied from interface: Database
      Close all logger connections to the centralized logging for the specified table, and then atomically delete all centrally logged table data for this namespace and table name, restricted to the column partition value if provided.

      USE WITH EXTREME CAUTION!!!

      Parameters:
      namespace - table namespace
      tableName - table name
      columnPartitionValue - optional column partition value
      Throws:
      IOException - problems encountered
    • executeQuery

      public <T> T executeQuery​(RemoteQuery<T> remoteQuery, Class<?>... additionalClasses) throws IOException
      Description copied from interface: Database
      Executes a DB query.
      Type Parameters:
      T - return type
      Parameters:
      remoteQuery - query to execute
      additionalClasses - additional classes to use during the query
      Returns:
      result of the query (must be serializable)
      Throws:
      IOException - problems executing the query or transmitting results
    • gc

      public void gc()
      Description copied from interface: Database
      Invoke the garbage collector for this database.
    • getClientHost

      public String getClientHost()
      Description copied from interface: Database
      Gets a client hostname.
      Returns:
      client hostname
    • getColumnPartitionTableWriter

      public TableWriter getColumnPartitionTableWriter​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, TableDefinition tableDefinition, boolean append)
      Description copied from interface: Database
      Gets a table writer for a partitioned table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      tableDefinition - table definition
      append - true to append to an existing partition; false to overwrite an existing partition.
      Returns:
      table writer
    • getErrorLog

      public Table getErrorLog() throws Exception
      Description copied from interface: Database
      Get an error log for the DB. This is a real-time table.
      Returns:
      error log
      Throws:
      Exception - problems retrieving the error log.
    • getIntradayPartitions

      public List<String> getIntradayPartitions​(String namespace, String tableName)
      Description copied from interface: Database
      Get a list of all internal partition values available for the specified intraday table.
      Parameters:
      namespace - The namespace of the table
      tableName - The table name to examine in the intraday data space
      Returns:
      A list of internal partition values for top-level partitioning of the intraday table. Typically represents one partition per source.
    • getIntradayPartitionsAsTable

      public Table getIntradayPartitionsAsTable​(String namespace, String tableName)
      Description copied from interface: Database
      Get all internal partition values available for the specified intraday table, returned as table.
      Parameters:
      namespace - The namespace of the table
      tableName - The table name to examine in the intraday data space
      Returns:
      A table containing the internal partition values for top-level partitioning of the intraday table. Typically represents one partition per source.
    • getIntradayTableV2

      public Table getIntradayTableV2​(String namespace, String tableName, boolean live)
      Description copied from interface: Database
      Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables.
      Parameters:
      namespace - namespace of the table
      tableName - name of the table
      live - true if the table should be live/updating; false otherwise
      Returns:
      intraday table
    • getIntradayTableV2

      public Table getIntradayTableV2​(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)
      Description copied from interface: Database
      Retrieves the specified internal partitions of the specified intraday table. The result may contain locations for multiple column partition values, and so a subsequent filter (e.g. on "Date") will often be desired.

      Throws exceptions for unknown tables.

      Parameters:
      namespace - namespace of the table
      tableName - name of the table
      internalPartitionValues - locations will be restricted to these internal partition values
      live - true if the table should be live/updating; false otherwise
      Returns:
      single partition intraday table
    • getLastByTable

      public Table getLastByTable​(String namespace, String tableName)
      Description copied from interface: Database
      Retrieves an intraday last-by table by namespace and name.

      Throws exceptions for unknown tables.

      Always provides a live result.

      This may not be configured on your system.

      Parameters:
      namespace - namespace of the table
      tableName - name of the table
      Returns:
      live intraday last-by table
    • getNamespaces

      public List<String> getNamespaces()
      Description copied from interface: Database
      Retrieves all namespace names from the database.
      Returns:
      The list of namespace names
    • getReplayer

      public ReplayerInterface getReplayer​(DBDateTime time, DBDateTime endTime, long interval) throws Exception
      Description copied from interface: Database
      Creates a data replayer.
      Parameters:
      time - replay start time
      endTime - replay end time
      interval - replay step size
      Returns:
      replayer
      Throws:
      IOException - problems creating the replayer
      Exception
    • getReplayer

      public ReplayerInterface getReplayer​(String timeStart, String timeEnd, String interval) throws Exception
      Description copied from interface: Database
      Creates a data replayer.
      Parameters:
      timeStart - replay start time
      timeEnd - replay end time
      interval - replay step size
      Returns:
      replayer
      Throws:
      IOException - problems creating the replayer
      Exception
    • getReplayer

      public ReplayerInterface getReplayer​(DBDateTime timeStart, DBDateTime timeEnd, String interval) throws Exception
      Description copied from interface: Database
      Creates a data replayer.
      Parameters:
      timeStart - replay start time
      timeEnd - replay end time
      interval - replay step size
      Returns:
      replayer
      Throws:
      IOException - problems creating the replayer
      Exception
    • getReplayer

      public ReplayerInterface getReplayer​(DBDateTime timeStart, DBDateTime timeEnd) throws IOException
      Description copied from interface: Database
      Creates a data replayer.
      Parameters:
      timeStart - replay start time
      timeEnd - replay end time
      Returns:
      replayer
      Throws:
      IOException - problems creating the replayer
    • getReplayer

      public ReplayerInterface getReplayer​(String timeStart, String timeEnd) throws IOException
      Description copied from interface: Database
      Creates a data replayer.
      Parameters:
      timeStart - replay start time
      timeEnd - replay end time
      Returns:
      replayer
      Throws:
      IOException - problems creating the replayer
    • getServerHost

      public String getServerHost()
      Description copied from interface: Database
      Gets the server hostname.
      Returns:
      server hostname.
    • getSystemNamespaces

      public List<String> getSystemNamespaces()
      Description copied from interface: Database
      Retrieves system namespace names from the database.
      Returns:
      The list of namespace names
    • getTableNames

      public List<String> getTableNames​(String namespace)
      Description copied from interface: Database
      Gets all table names from the specified namespace.
      Parameters:
      namespace - The namespace to list the contents of
      Returns:
      The list of table names
    • getTableV2

      public Table getTableV2​(String namespace, String tableName)
      Description copied from interface: Database
      Retrieves a table by namespace and name. Throws exceptions for unknown tables.
      Parameters:
      namespace - namespace of the table
      tableName - name of the table
      Returns:
      table in "v2" format
    • getTableWriter

      public TableWriter getTableWriter​(String namespace, String tableName, TableDefinition tableDefinition, boolean append) throws IOException
      Description copied from interface: Database
      Gets a table writer for an unpartitioned table.
      Parameters:
      namespace - table namespace
      tableName - table name
      tableDefinition - table definition
      append - true to append to an existing partition; false to overwrite an existing partition.
      Returns:
      table writer
      Throws:
      IOException
    • getUserContext

      public com.fishlib.auth.UserContext getUserContext() throws IOException
      Description copied from interface: Database
      Gets the user authentication context.
      Returns:
      user authentication context
      Throws:
      IOException - problem retrieving the context
    • getUserNamespaces

      public List<String> getUserNamespaces()
      Description copied from interface: Database
      Retrieves user namespace names from the database.
      Returns:
      The list of namespace names
    • getWorkerName

      public String getWorkerName()
      Description copied from interface: Database
      Gets the worker name.
      Returns:
      worker name
    • getProcessInfoId

      public String getProcessInfoId()
      Description copied from interface: Database
      Gets the unique processInfoId of the worker.
      Returns:
      process info id
    • hasImportedData

      public boolean hasImportedData​(String namespace, String tableName, String columnPartitionValue)
      Description copied from interface: Database
      Determines if the historical table's column partition is present in the DB.
      Parameters:
      namespace - namespace
      tableName - table name
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      Returns:
      true if the table's column partition exists; false otherwise.
    • hasIntradayData

      public boolean hasIntradayData​(String namespace, String tableName, String columnPartitionValue)
      Description copied from interface: Database
      Determines if the intraday table's column partition is present in the DB.
      Parameters:
      namespace - namespace
      tableName - table name
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      Returns:
      true if the intraday table's column partition exists; false otherwise.
    • hasIntradayTable

      public boolean hasIntradayTable​(String namespace, String tableName)
      Description copied from interface: Database
      Determines if the table is present in the DB and currently has intraday data.
      Parameters:
      namespace - namespace
      tableName - table name
      Returns:
      true if the table exists and has intraday data; false otherwise.
    • hasNamespace

      public boolean hasNamespace​(String namespace)
      Description copied from interface: Database
      Determines if the namespace is present in the DB.
      Parameters:
      namespace - namespace
      Returns:
      true if the namespace exists; false otherwise.
    • getCatalog

      public Table getCatalog()
      Description copied from interface: Database
      Gets a table containing information on all tables in the DB.
      Returns:
      table containing information on all tables in the DB
    • hasTable

      public boolean hasTable​(String namespace, String tableName)
      Description copied from interface: Database
      Determines if the table is defined in the DB.
      Parameters:
      namespace - namespace
      tableName - table name
      Returns:
      true if the table definition exists; false otherwise.
    • importClass

      public void importClass​(Class classToImport)
      Description copied from interface: Database
      Imports a class for use in a query. For example:
       db.importClass(X.class)
       t=db.t(namespace,tablename).where("X.func(A)")
       
      Parameters:
      classToImport - the class
    • importStatic

      public void importStatic​(Class classToImport)
      Description copied from interface: Database
      Imports the static methods from a class for use in a query. For example:
       db.importStaticClass(X.class)
       t=db.t(namespace,tablename).where("staticFunc(A)")
       

      where staticFunc is a static function of X.

      Parameters:
      classToImport - The class
    • logPartitionTableIncremental

      public Database.LogHandle logPartitionTableIncremental​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, boolean append) throws IOException
      Description copied from interface: Database
      Writes all changes in a table to a centrally managed table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - table to log (does not contain the partition column)
      append - true to append to an existing partition; false to replace the existing partition.
      Returns:
      log handle
      Throws:
      IOException - problems
    • logPartitionTableIncremental

      public Database.LogHandle logPartitionTableIncremental​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, ReplayerInterface replayer, boolean append) throws IOException
      Description copied from interface: Database
      Writes all changes in a table to a centrally managed table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - table to log (does not contain the partition column)
      replayer - data replayer
      append - true to append to an existing partition; false to replace the existing partition.
      Returns:
      log handle
      Throws:
      IOException - problems
    • logPartitionTableSnapshot

      public Database.LogHandle logPartitionTableSnapshot​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, boolean append) throws Exception
      Description copied from interface: Database
      Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - table to snapshot and log (does not contain the partition column)
      logInterval - interval to log snapshots at
      append - true to append to an existing partition; false to replace the existing partition.
      Returns:
      log handle
      Throws:
      Exception - problems
    • logPartitionTableSnapshot

      public Database.LogHandle logPartitionTableSnapshot​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, ReplayerInterface replayer, boolean append) throws Exception
      Description copied from interface: Database
      Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - table to snapshot and log (does not contain the partition column)
      logInterval - interval to log snapshots at
      replayer - data replayer
      append - true to append to an existing partition; false to replace the existing partition.
      Returns:
      log handle
      Throws:
      Exception - problems
    • logPartitionTableSnapshot

      public Database.LogHandle logPartitionTableSnapshot​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, boolean append) throws IOException
      Description copied from interface: Database
      Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - table to snapshot and log (does not contain the partition column)
      logIntervalMillis - interval in milliseconds to log snapshots at
      append - true to append to an existing partition; false to replace the existing partition.
      Returns:
      log handle
      Throws:
      IOException - problems
    • logPartitionTableSnapshot

      public Database.LogHandle logPartitionTableSnapshot​(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, ReplayerInterface replayer, boolean append) throws IOException
      Description copied from interface: Database
      Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.
      Parameters:
      namespace - table namespace
      tableName - table name
      partitioningColumnName - name of the partitioning column
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      table - table to snapshot and log (does not contain the partition column)
      logIntervalMillis - interval in milliseconds to log snapshots at
      replayer - data replayer
      append - true to append to an existing partition; false to replace the existing partition.
      Returns:
      log handle
      Throws:
      IOException - problems
    • makeRemote

      public Table makeRemote​(Table value)
      Description copied from interface: Database
      Make a copy of a local table on a remote server.
      Parameters:
      value - local table
      Returns:
      remote table.
    • mr

      public Table mr​(Table value)
      Description copied from interface: Database
      Convenience method for Database.makeRemote(Table).
      Make a copy of a local table on a remote server.
      Parameters:
      value - local table
      Returns:
      remote table.
    • reloadData

      public void reloadData()
      Description copied from interface: Database
      Reload any internally-cached data.
    • removeTablePartition

      public void removeTablePartition​(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue)
      Description copied from interface: Database
      Removes a single table location (e.g. one date) from a partitioned table. Requires that a suitable TableDefinition still exists.
      Parameters:
      namespace - table namespace
      tableName - table name
      internalPartitionValue - internal (not user-visible) partition value.
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
    • removeTable

      public void removeTable​(String namespace, String tableName)
      Description copied from interface: Database
      Removes a table. This method is a better choice than Database.deleteTables(String, String...), unless the underlying table no longer has consistent metadata. Throws an exception for tables that don't exist.
      Parameters:
      namespace - table namespace
      tableName - table name
    • removeTableDefinition

      @Deprecated public void removeTableDefinition​(String namespace, String tableName)
      Deprecated.
      Description copied from interface: Database
      Removes a table definition.
      Parameters:
      namespace - table namespace
      tableName - table name
    • replaceTablePartition

      public void replaceTablePartition​(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)
      Description copied from interface: Database
      Replaces a single table location (e.g. one date) from/to a partitioned table.

      Requires that a suitable TableDefinition has already been added.

      Not guaranteed to be atomic in the case of failures.

      Parameters:
      namespace - table namespace
      tableName - table name
      internalPartitionValue - internal (not user-visible) partition value.
      columnPartitionValue - column partition value (e.g. "2015-09-25" for a Date partitioning column).
      data - data to replace this partition. Must *not* contain the partitioning column.
      storageFormat - the storage format to use (ex DeephavenV1 or Parquet)
    • replaceTable

      public void replaceTable​(String namespace, String tableName, Table table, Database.StorageFormat storageFormat)
      Description copied from interface: Database
      Replaces a non-partitioned table with a new table, or adds the table, if it is not already present. Not guaranteed to be atomic in the case of failures.
      Parameters:
      namespace - table namespace
      tableName - table name
      table - data for the replacement table
      storageFormat - the storage format to use (ex DeephavenV1 or Parquet)
    • replaceTableDefinition

      public void replaceTableDefinition​(String namespace, String tableName, TableDefinition tableDefinition)
      Description copied from interface: Database
      Replaces a user table definition.

      Not guaranteed to be atomic in the case of failures.

      Does not throw an exception for tables that don't exist.

      Parameters:
      namespace - table namespace
      tableName - table name
      tableDefinition - table definition for the replacement
    • setWatchdogMillis

      public int setWatchdogMillis​(int millis) throws IOException
      Description copied from interface: Database
      Sets monitoring of delays in the LiveTableMonitor refresh loop. If the LiveTableMonitor refresh loop takes longer than the specified amount of time, the watchdog timeout procedure is executed. The watchdog timeout procedure is specified by calling Database.setWatchdogTimeoutProcedure(LongConsumer).
      Parameters:
      millis - if LiveTableMonitor refresh loop takes longer than this amount of time, the watchdog timeout procedure will be called.
      Returns:
      the new value of the watchdog timer, in ms
      Throws:
      IOException - problems setting the monitor interval
    • setWatchdogTimeoutProcedure

      public void setWatchdogTimeoutProcedure​(LongConsumer watchdogTimeoutProcedure) throws IOException
      Description copied from interface: Database
      Set the watchdog timeout procedure. If LiveTableMonitor refresh loop takes longer than the amount of time specified via Database.setWatchdogMillis(int), the timeout procedure is called.
      Parameters:
      watchdogTimeoutProcedure - the procedure called when the LiveTableMonitor refresh loop takes longer than watchdogMillis.
      Throws:
      IOException
    • shutdown

      public void shutdown()
      Description copied from interface: Database
      Shuts this database down.
    • startup

      public void startup()
      Description copied from interface: Database
      Starts this database up.
    • timeTable

      public Table timeTable​(String period) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval.
      Parameters:
      period - time interval between new row additions.
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(String period, ReplayerInterface replayer) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval. For use with data replay.
      Parameters:
      period - time interval between new row additions
      replayer - data replayer
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(DBDateTime startTime, String period) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time.
      Parameters:
      startTime - start time for adding new rows
      period - time interval between new row additions
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(DBDateTime startTime, String period, ReplayerInterface replayer) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.
      Parameters:
      startTime - start time for adding new rows
      period - time interval between new row additions
      replayer - data replayer
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(String startTime, String period) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time.
      Parameters:
      startTime - start time for adding new rows
      period - time interval between new row additions
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(String startTime, String period, ReplayerInterface replayer) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.
      Parameters:
      startTime - start time for adding new rows
      period - time interval between new row additions
      replayer - data replayer
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(long periodValue) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval.
      Parameters:
      periodValue - time interval between new row additions in nanoseconds.
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(long periodValue, ReplayerInterface replayer) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval. For use with data replay.
      Parameters:
      periodValue - time interval between new row additions in nanoseconds.
      replayer - data replayer
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(DBDateTime startTime, long periodValue) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time.
      Parameters:
      startTime - start time for adding new rows
      periodValue - time interval between new row additions in nanoseconds.
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(DBDateTime startTime, long periodValue, ReplayerInterface replayer) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.
      Parameters:
      startTime - start time for adding new rows
      periodValue - time interval between new row additions in nanoseconds.
      replayer - data replayer
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(String startTime, long periodValue) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time.
      Parameters:
      startTime - start time for adding new rows
      periodValue - time interval between new row additions in nanoseconds.
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • timeTable

      public Table timeTable​(String startTime, long periodValue, ReplayerInterface replayer) throws Exception
      Description copied from interface: Database
      Creates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.
      Parameters:
      startTime - start time for adding new rows
      periodValue - time interval between new row additions in nanoseconds.
      replayer - data replayer
      Returns:
      time table
      Throws:
      Exception - problem creating the time table
    • getTableDefinition

      public TableDefinition getTableDefinition​(String namespace, String tableName)
      Description copied from interface: Database
      Retrieves a table definition by namespace and name, generally from the schema service.
      Parameters:
      namespace - The namespace of the definition to retrieve
      tableName - The table name of the definition to retrieve
      Returns:
      The table definition retrieved, null if not found