Class DatabaseImpl
- All Implemented Interfaces:
- AclSupport,- Database,- DatabaseInternal,- WritableDatabase
Database interface.- 
Field SummaryFields inherited from interface io.deephaven.enterprise.database.DatabasePARTITIONED_TABLE_INTERNAL_PARTITION_COLUMN
- 
Constructor SummaryConstructorsConstructorDescriptionDatabaseImpl(@NotNull TableDataService tableDataService, @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.schema.SchemaService schemaService, @NotNull GroupProvider groupProvider, @NotNull SourceAclProvider sourceAclProvider, @NotNull UserContext userContext, @NotNull AuditEventLogger auditEventLogger, @NotNull ProcessInfo processInfo) 
- 
Method SummaryModifier and TypeMethodDescriptionbooleanaddInputTableSchema(@NotNull String namespace, @NotNull String tableName, @NotNull TableDefinition prototype, @NotNull String... keyColNames) Add a new input table schema using theTableDefinitionand specified key column names.booleanaddInputTableSchema(@NotNull String namespace, @NotNull String tableName, @NotNull InputTableSpec inputTableSpec) Add a new input table schema using theInputTableSpec.booleanaddPartitionedTableSchema(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnName, @NotNull TableDefinition prototype) Adds a schema for a partitioned user table.voidaddTablePartition(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnValue, @NotNull Table table) Adds a single column partition of data to a partitioned user table.voidaddUnpartitionedTable(@NotNull String namespace, @NotNull String tableName, @NotNull Table table) Adds an unpartitioned user table.voidappendLiveTable(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnValue, @NotNull Table table) Appends all rows from a given table to a live user table partition.appendLiveTableIncremental(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnValue, @NotNull Table table) Appends all rows from a given table to a live user table partition.voidappendLiveTableInternal(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnValue, @NotNull Table table, @NotNull String internalPartitionValue, boolean targetInputTable) voidClear the location cache for all tables.voidclearLocationCache(@NotNull String namespace, @NotNull String tableName) Clear the location cache for the specified table.booleandeleteInputTable(@NotNull String namespace, @NotNull String tableName) Delete the input table given the namespace and table name.booleandeleteLiveTablePartition(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnValue) Delete a partition from a live user table.booleandeletePartitionedTable(@NotNull String namespace, @NotNull String tableName) Delete all partitions, whether direct or live, and the schema, from a partitioned user table.booleandeleteTablePartition(@NotNull String namespace, @NotNull String tableName, @NotNull String partitionColumnValue) Deletes a single column partition of data from a partitioned user table.booleandeleteUnpartitionedTable(@NotNull String namespace, @NotNull String tableName) Deletes an unpartitioned user table and the schema.Retrieve a table containing the tables that exist in this database.Get the available namespaces.getTableDefinition(@NotNull String namespace, @NotNull String tableName) Fetch aTableDefinitionfrom the database.getTableDefinitionTable(@NotNull String namespace, @NotNull String tableName) Fetch a table's definition table from the database.getTableNames(@Nullable String namespace) Get the tables within a namespace@NotNull UserContexthistoricalPartitionedTable(@NotNull String namespace, @NotNull String tableName, @NotNull TableOptions options) Retrieve the specified historical table as aPartitionedTablefrom the Database.historicalTable(@NotNull String namespace, @NotNull String tableName) Fetch a static historicalTablefrom the database.historicalTable(@NotNull String namespace, @NotNull String tableName, @NotNull TableOptions options) Fetch a static historicalTablefrom the database.inputTable(@NotNull String namespace, @NotNull String tableName) Retrieve the specified input table view.inputTableSpecFor(@NotNull String namespace, @NotNull String tableName) Retrieve the current InputTableSpec for the given namespace and table.inputTableUpdater(@NotNull String namespace, @NotNull String tableName) Retrieve the specifiedInputTableUpdater, which can be used to programmatically add or delete rows.booleanisInputTable(@NotNull String namespace, @NotNull String tableName) Determines whether a table is a Core+ input table.livePartitionedTable(@NotNull String namespace, @NotNull String tableName, @NotNull TableOptions options) Retrieve the specified live table as aPartitionedTablefrom the Database.Fetch the specified live (intraday) table.liveTable(@NotNull String namespace, @NotNull String tableName, @NotNull TableOptions options) Fetch a liveTablefor the specified namespace and table name.voidsetCatalog(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.databases.DatabaseCatalog databaseCatalog) booleanupdateInputTableSchema(@NotNull String namespace, @NotNull String tableName, InputTableSpec newInputTableSpec) Update an existing input table schema using the providedInputTableSpec.booleanupdatePartitionedTableSchema(@NotNull String namespace, @NotNull String tableName, @NotNull TableDefinition prototype) Updates a preexisting User table schema.voiduseLocationCaches(boolean useCaching) Set whether the database should cache the result of table location discovery and re-use them.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.enterprise.database.DatabasehistoricalPartitionedTable, livePartitionedTable, liveTable
- 
Constructor Details- 
DatabaseImplpublic DatabaseImpl(@NotNull @NotNull TableDataService tableDataService, @NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.schema.SchemaService schemaService, @NotNull @NotNull GroupProvider groupProvider, @NotNull @NotNull SourceAclProvider sourceAclProvider, @NotNull @NotNull UserContext userContext, @NotNull @NotNull AuditEventLogger auditEventLogger, @NotNull @NotNull ProcessInfo processInfo) 
 
- 
- 
Method Details- 
liveTablepublic Table liveTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options) Description copied from interface:DatabaseFetch a liveTablefor the specified namespace and table name.- Specified by:
- liveTablein interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- options- a- TableOptionsto set table options.
- Returns:
- a new live Tablefor the specified parameters.
 
- 
historicalTablepublic Table historicalTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options) Description copied from interface:DatabaseFetch a static historicalTablefrom the database.- Specified by:
- historicalTablein interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- options- a- TableOptionsto set table options.
- Returns:
- a new static Tablefor the specified parameters.
 
- 
getTableDefinitionpublic TableDefinition getTableDefinition(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:DatabaseFetch aTableDefinitionfrom the database.- Specified by:
- getTableDefinitionin interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- Returns:
- the TableDefinitionfor the specified parameters.
 
- 
getTableDefinitionTablepublic Table getTableDefinitionTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:DatabaseFetch a table's definition table from the database.- Specified by:
- getTableDefinitionTablein interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- Returns:
- a Tableof the column definitions for the specified parameters.
 
- 
getNamespacesDescription copied from interface:DatabaseGet the available namespaces.- Specified by:
- getNamespacesin interface- Database
- Returns:
- the list of namespaces
 
- 
getTableNamesDescription copied from interface:DatabaseGet the tables within a namespace- Specified by:
- getTableNamesin interface- Database
- Parameters:
- namespace- the namespace to interrogate
- Returns:
- the list of tables within namespace
 
- 
getCatalogTableDescription copied from interface:DatabaseRetrieve a table containing the tables that exist in this database.The returned table has a column for "Namespace", "Tablename" and "NamespaceSet". - Specified by:
- getCatalogTablein interface- Database
- Returns:
- a table containing the tables that exist in this database.
 
- 
setCatalogpublic void setCatalog(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.databases.DatabaseCatalog databaseCatalog) 
- 
liveTablepublic Table liveTable(@NotNull @NotNull String setNamespace, @NotNull @NotNull String setTableName, boolean isRefreshing) Description copied from interface:AclSupportFetch the specified live (intraday) table.- Specified by:
- liveTablein interface- AclSupport
- Parameters:
- setNamespace- the namespace of the table
- setTableName- the name of the table
- isRefreshing- if the returned table should be refreshing
- Returns:
- the table
 
- 
historicalTablepublic Table historicalTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:DatabaseFetch a static historicalTablefrom the database.- Specified by:
- historicalTablein interface- AclSupport
- Specified by:
- historicalTablein interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- Returns:
- a new static Tablefor the specified parameters.
 
- 
getUserContext- Specified by:
- getUserContextin interface- DatabaseInternal
 
- 
getGroupProvider- Specified by:
- getGroupProviderin interface- AclSupport
 
- 
clearLocationCachepublic void clearLocationCache()Description copied from interface:DatabaseClear the location cache for all tables. Use this method when some data has been replaced for a table to refresh the location cache and read the replaced data.Subsequent calls to Database.historicalTable(String, String),Database.liveTable(String, String)and their variants for all tables will repeat location discovery, which can have significant negative performance consequences.Note that you may also disable caching entirely using Database.useLocationCaches(boolean)- Specified by:
- clearLocationCachein interface- Database
 
- 
clearLocationCachepublic void clearLocationCache(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:DatabaseClear the location cache for the specified table. Use this method when some data has been replaced for a table to refresh the location cache and read the replaced data.Subsequent calls to Database.historicalTable(String, String),Database.liveTable(String, String)and their variants for this table will repeat location discovery, which can have significant negative performance consequencesNote that you may also disable caching entirely using Database.useLocationCaches(boolean)- Specified by:
- clearLocationCachein interface- Database
- Parameters:
- namespace- namespace of table to clear cache
- tableName- table name of table to clear cache
 
- 
useLocationCachespublic void useLocationCaches(boolean useCaching) Description copied from interface:DatabaseSet whether the database should cache the result of table location discovery and re-use them. This defaults totrue- Specified by:
- useLocationCachesin interface- Database
- Parameters:
- useCaching- if location caches should be used.
 
- 
livePartitionedTablepublic PartitionedTable livePartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options) Description copied from interface:DatabaseRetrieve the specified live table as aPartitionedTablefrom the Database. The partitioned table's key columns will be its column and internal partitions.- Specified by:
- livePartitionedTablein interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- options- a- TableOptionsto set table options.
- Returns:
- a new PartitionedTablefor the specified table
 
- 
historicalPartitionedTablepublic PartitionedTable historicalPartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options) Description copied from interface:DatabaseRetrieve the specified historical table as aPartitionedTablefrom the Database. The result'skey columnswill be derived from the table's partitioning columns as well as any internal partitions.- Specified by:
- historicalPartitionedTablein interface- Database
- Parameters:
- namespace- the Namespace in which the table exists
- tableName- the name of the table in the Namespace.
- options- a- TableOptionsto set table options.
- Returns:
- a new PartitionedTablefor the specified table
 
- 
addUnpartitionedTablepublic void addUnpartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull Table table) Description copied from interface:WritableDatabaseAdds an unpartitioned user table. Writes an unpartitioned user table to disk. If the namespace does not exist, then it is created. The schema must not already exist. If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- addUnpartitionedTablein interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- table- table that the definition and data will be based on
 
- 
deleteUnpartitionedTablepublic boolean deleteUnpartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:WritableDatabaseDeletes an unpartitioned user table and the schema.If the schema does not exist, then data is not deleted. If there is no data but the schema exists, then the schema is deleted. The namespace is not removed even if this is the last table in the namespace. If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- deleteUnpartitionedTablein interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- Returns:
- true if the data was deleted, false if there was no data or preexisting schema
 
- 
addPartitionedTableSchemapublic boolean addPartitionedTableSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String partitionColumnName, @NotNull @NotNull TableDefinition prototype) Description copied from interface:WritableDatabaseAdds a schema for a partitioned user table.The schema is derived from the prototype TableDefinitionand the partitionColumnName parameter. The prototype definition must not include a partitioning column.If the namespace does not exist, then it is created. If the schema already exists and it is identical (this is a stricter check than compatibility; all columns must be present in the same order with the same properties), then the method returns false. If the schema already exists and is not identical, then an error is thrown. - Specified by:
- addPartitionedTableSchemain interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- partitionColumnName- name of the partitioning column
- prototype- table definition to derive schema from
- Returns:
- true if the partitioned table schema was added, false if it already existed
 
- 
updatePartitionedTableSchemapublic boolean updatePartitionedTableSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableDefinition prototype) Description copied from interface:WritableDatabaseUpdates a preexisting User table schema.If the schema does not exist an error is thrown. Not all schema modifications are permitted. The partitioning column may not be changed. Existing columns may not have their type changed. Columns may be added or deleted. Note that no data is modified by this operation. Removed columns remain on persistent storage, and added columns are treated as null on read. Although each modification in isolation is verified for safety, a sequence of modifications to the schema may be unsafe. For example, deleting a column and adding it back with a new type results in unreadable data. - Specified by:
- updatePartitionedTableSchemain interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- prototype- table definition to derive schema from
- Returns:
- true if the partitioned table schema was updated, false if there was already an identical definition
 
- 
addTablePartitionpublic void addTablePartition(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String partitionColumnValue, @NotNull @NotNull Table table) Description copied from interface:WritableDatabaseAdds a single column partition of data to a partitioned user table.The data table must have a mutually compatible definitionwith the current schema. The data table must not have a column with the same name as the partitioning column.If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- addTablePartitionin interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- partitionColumnValue- value for the partitioning column, e.g. "2015-09-25" for "Date"
- table- table to write data from
 
- 
deleteTablePartitionpublic boolean deleteTablePartition(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String partitionColumnValue) Description copied from interface:WritableDatabaseDeletes a single column partition of data from a partitioned user table.If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- deleteTablePartitionin interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- partitionColumnValue- value for the partitioning column, e.g. "2015-09-25" for "Date"
- Returns:
- true if the partition was deleted, false if there was no partition or preexisting schema
 
- 
appendLiveTableInternal
- 
appendLiveTablepublic void appendLiveTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String partitionColumnValue, @NotNull @NotNull Table table) Description copied from interface:WritableDatabaseAppends all rows from a given table to a live user table partition.The data table must have a mutually compatible definitionwith the current schema. The data table must not have a column with the same name as the partitioning column.The specified column partition may already exist, or may be created by the system. This method is asynchronous. After returning, the data may not be immediately available. It is possible for the write to fail after this method has returned. When multiple workers append to a partition, ordering is imposed outside the worker by other system components. If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- appendLiveTablein interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- partitionColumnValue- value for the partitioning column, e.g. "2015-09-25" for "Date"
- table- table to append rows from
 
- 
appendLiveTableIncrementalpublic SafeCloseable appendLiveTableIncremental(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String partitionColumnValue, @NotNull @NotNull Table table) Description copied from interface:WritableDatabaseAppends all rows from a given table to a live user table partition. When rows are added to the table, they are additionally appended to the table.The input table updates can only have additions and shifts. No modifications or removals are permitted. The data table must have a mutually compatible definitionwith the current schema. The data table must not have a column with the same name as the partitioning column.The specified column partition may already exist, or may be created by the system. This method is asynchronous, after returning the data may not be immediately available. It is possible for the write to fail after this method has returned. When multiple workers append to a partition, ordering is imposed outside the worker by other system components. A reference must be maintained to the returned SafeCloseableto ensure expected functionality; callingSafeCloseable.close()will stop incremental appends, and clean up related resources.If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- appendLiveTableIncrementalin interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- partitionColumnValue- value for the partitioning column, e.g. "2015-09-25" for "Date"
- table- table to append updates from
- Returns:
- the Closeablereference used to ensure and stop expected functionality
 
- 
deleteLiveTablePartitionpublic boolean deleteLiveTablePartition(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String partitionColumnValue) Description copied from interface:WritableDatabaseDelete a partition from a live user table.If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- deleteLiveTablePartitionin interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- partitionColumnValue- value for the partitioning column, e.g. "2015-09-25" for "Date"
- Returns:
- true if the partition was deleted, false if there was no partition or preexisting schema
 
- 
deletePartitionedTablepublic boolean deletePartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:WritableDatabaseDelete all partitions, whether direct or live, and the schema, from a partitioned user table.All partitions from the table are deleted sequentially. If a partition cannot be deleted, then the operation fails but some data may have already been removed. After all partitions are deleted, then the schema is deleted. If the schema does not exist, then data is not deleted. If there is no data, but the schema exists, then the schema is deleted. The namespace is not removed, even if this is the last table in the namespace. If a UserTableIOExceptionis thrown, the state of the table is undefined.- Specified by:
- deletePartitionedTablein interface- WritableDatabase
- Parameters:
- namespace- table namespace
- tableName- table name
- Returns:
- true if data was deleted, false if there was no data or preexisting schema
 
- 
addInputTableSchemapublic boolean addInputTableSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull InputTableSpec inputTableSpec) Description copied from interface:WritableDatabaseAdd a new input table schema using theInputTableSpec.- Specified by:
- addInputTableSchemain interface- WritableDatabase
- Parameters:
- namespace- the namespace of the input table
- tableName- the name of the input table
- inputTableSpec- the input table specification
- Returns:
- true if the input table schema was added, false if the input table already exists with the same spec
 
- 
addInputTableSchemapublic boolean addInputTableSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableDefinition prototype, @NotNull @NotNull String... keyColNames) Description copied from interface:WritableDatabaseAdd a new input table schema using theTableDefinitionand specified key column names.- Specified by:
- addInputTableSchemain interface- WritableDatabase
- Parameters:
- namespace- the namespace of the input table
- tableName- the name of the input table
- prototype-- TableDefinitionto derive the input table spec from
- keyColNames- columns that should be keyed in the input table
- Returns:
- true if the input table schema was added, false if the input table already exists with the same spec
 
- 
updateInputTableSchemapublic boolean updateInputTableSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, InputTableSpec newInputTableSpec) Description copied from interface:WritableDatabaseUpdate an existing input table schema using the providedInputTableSpec.Retrieve and use a new InputTableUpdaterviaWritableDatabase.inputTableUpdater(String, String)after updating an input table's specification to ensure proper behavior.- Specified by:
- updateInputTableSchemain interface- WritableDatabase
- Parameters:
- namespace- the namespace of the input table
- tableName- the name of the input table
- newInputTableSpec- the new specification for the input table
- Returns:
- true if the input table schema was updated, false if the input table already exists with the same spec
 
- 
deleteInputTablepublic boolean deleteInputTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:WritableDatabaseDelete the input table given the namespace and table name.- Specified by:
- deleteInputTablein interface- WritableDatabase
- Parameters:
- namespace- the namespace of the input table
- tableName- the name of the input table
- Returns:
- true if the input table was deleted, false if there was no data or preexisting schema for the input table
 
- 
inputTableUpdaterpublic InputTableUpdater inputTableUpdater(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:WritableDatabaseRetrieve the specifiedInputTableUpdater, which can be used to programmatically add or delete rows.If the caller needs a consistent view between the returned InputTableUpdaterand an input table view, the input table view must be derived fromInputTableUpdater.table().- Specified by:
- inputTableUpdaterin interface- WritableDatabase
- Parameters:
- namespace- the namespace in which the table exists.
- tableName- the name of the table in the namespace.
- Returns:
- an InputTableUpdaterfor the specified input table.
 
- 
inputTableDescription copied from interface:WritableDatabaseRetrieve the specified input table view.If the caller needs a consistent view between the returned table and an InputTableUpdater, theInputTableUpdatermust be derived from theTable.INPUT_TABLE_ATTRIBUTEfrom the returned table. Callers may also get a consistent view by callingWritableDatabase.inputTableUpdater(String, String)and deriving the table fromInputTableUpdater.table().- Specified by:
- inputTablein interface- WritableDatabase
- Parameters:
- namespace- the namespace in which the table exists.
- tableName- the name of the table in the namespace.
- Returns:
- a table view for the specified input table.
 
- 
inputTableSpecForpublic InputTableSpec inputTableSpecFor(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:WritableDatabaseRetrieve the current InputTableSpec for the given namespace and table.- Specified by:
- inputTableSpecForin interface- WritableDatabase
- Parameters:
- namespace- the namespace of the input table
- tableName- the name of the input table
- Returns:
- the current input table specification for the given namespace and table
 
- 
isInputTableDescription copied from interface:WritableDatabaseDetermines whether a table is a Core+ input table.- Specified by:
- isInputTablein interface- WritableDatabase
- Parameters:
- namespace- the namespace of the input table
- tableName- the name of the input table
- Returns:
- true if the table is an input table, false if not
 
 
-