@Experimental public abstract class FullNameTableProvider extends java.lang.Object implements TableProvider, CustomTableResolver
Modifier | Constructor and Description |
---|---|
protected |
FullNameTableProvider() |
Modifier and Type | Method and Description |
---|---|
TableProvider |
getSubProvider(java.lang.String name)
Returns a sub-provider, e.g.
|
abstract Table |
getTableByFullName(TableName fullTableName) |
void |
registerKnownTableNames(java.util.List<TableName> tableNames)
Register the table names as extracted from the FROM clause.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
buildBeamSqlTable, createTable, dropTable, getSubProviders, getTable, getTables, getTableType
public void registerKnownTableNames(java.util.List<TableName> tableNames)
CustomTableResolver
Calcite doesn't provide these full names to table providers and queries them with individual parts of the identifiers without giving any extra context. So if a table provider needs to implement some custom table name resolution strategy it doesn't have information to do so. E.g. if you want to take the compound SQL identifiers that were originally split by dots, join them into a single string, and then query a back-end service, this interface makes this possible.
registerKnownTableNames
in interface CustomTableResolver
public TableProvider getSubProvider(java.lang.String name)
TableProvider
BeamCalciteSchema
.getSubProvider
in interface TableProvider