Package org.apache.drill.exec.store.jdbc
Class CapitalizingJdbcSchema
java.lang.Object
org.apache.drill.exec.store.AbstractSchema
org.apache.drill.exec.store.jdbc.CapitalizingJdbcSchema
- All Implemented Interfaces:
AutoCloseable
,org.apache.calcite.schema.Schema
,SchemaPartitionExplorer
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.calcite.schema.Schema
org.apache.calcite.schema.Schema.TableType
-
Field Summary
Fields inherited from class org.apache.drill.exec.store.AbstractSchema
name, SCHEMA_SEPARATOR, schemaPath
-
Constructor Summary
ConstructorDescriptionCapitalizingJdbcSchema
(List<String> parentSchemaPath, String name, DataSource dataSource, org.apache.calcite.sql.SqlDialect dialect, DrillJdbcConvention convention, String catalog, String schema, boolean caseSensitive) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Indicates if table names in schema are case sensitive.createNewTable
(String tableName, List<String> partitionColumns, StorageStrategy strategy) Creates table entry using table name, list of partition columns and storage strategy used to create table folder and filesvoid
The schema can be a top level schema which doesn't have its own tables, but refers to one of the default sub schemas for table look up.Collection<org.apache.calcite.schema.Function>
getFunctions
(String name) For the given table names returns list of acceptable table functions which are common for all Drill schemas.getSubSchema
(String name) org.apache.calcite.schema.Table
Returns string describing schema type which shows where the schema came from.boolean
modifyTable
(String tableName) Returns table entry using table name to insert records into the table.Methods inherited from class org.apache.drill.exec.store.AbstractSchema
appendToStatsTable, applyFunctionParameters, close, createNewTable, createStatsTable, createView, dropView, getExpression, getFullSchemaName, getFunctionParameters, getName, getSchemaPath, getStatsTable, getSubPartitions, getTableNamesAndTypes, getTablesByNames, getType, getTypeMap, getTypeNames, getUser, needToImpersonateReadingData, showInInformationSchema, snapshot, toString
-
Constructor Details
-
CapitalizingJdbcSchema
public CapitalizingJdbcSchema(List<String> parentSchemaPath, String name, DataSource dataSource, org.apache.calcite.sql.SqlDialect dialect, DrillJdbcConvention convention, String catalog, String schema, boolean caseSensitive)
-
-
Method Details
-
getTypeName
Description copied from class:AbstractSchema
Returns string describing schema type which shows where the schema came from. Good practice here is to return json type name of storage plugin's config.- Specified by:
getTypeName
in classAbstractSchema
- Returns:
- schema type name
-
getFunctions
Description copied from class:AbstractSchema
For the given table names returns list of acceptable table functions which are common for all Drill schemas. When overriding this method, parent functions must be included first to be evaluated first. If not included, parent functions won't be taken into account when creating table instance.- Specified by:
getFunctions
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
getFunctions
in classAbstractSchema
- Parameters:
name
- table name- Returns:
- list of table functions
-
getFunctionNames
- Specified by:
getFunctionNames
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
getFunctionNames
in classAbstractSchema
-
getSubSchema
- Specified by:
getSubSchema
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
getSubSchema
in classAbstractSchema
-
getSubSchemaNames
- Specified by:
getSubSchemaNames
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
getSubSchemaNames
in classAbstractSchema
-
getTableNames
- Specified by:
getTableNames
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
getTableNames
in classAbstractSchema
-
createNewTable
public CreateTableEntry createNewTable(String tableName, List<String> partitionColumns, StorageStrategy strategy) Description copied from class:AbstractSchema
Creates table entry using table name, list of partition columns and storage strategy used to create table folder and files- Overrides:
createNewTable
in classAbstractSchema
- Parameters:
tableName
- : new table name.partitionColumns
- : list of partition columns. Empty list if there is no partition columns.strategy
- : storage strategy used to create table folder and files- Returns:
- create table entry
-
modifyTable
Description copied from class:AbstractSchema
Returns table entry using table name to insert records into the table.- Overrides:
modifyTable
in classAbstractSchema
- Parameters:
tableName
- : new table name.- Returns:
- insert table entry
-
dropTable
- Overrides:
dropTable
in classAbstractSchema
-
isMutable
public boolean isMutable()- Specified by:
isMutable
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
isMutable
in classAbstractSchema
-
getTable
- Specified by:
getTable
in interfaceorg.apache.calcite.schema.Schema
- Overrides:
getTable
in classAbstractSchema
-
areTableNamesCaseSensitive
public boolean areTableNamesCaseSensitive()Description copied from class:AbstractSchema
Indicates if table names in schema are case sensitive. By default they are. If schema implementation claims its table names are case insensitive, it is responsible for making case insensitive look up by table name.- Overrides:
areTableNamesCaseSensitive
in classAbstractSchema
- Returns:
- true if table names are case sensitive
-
getDefaultSchema
Description copied from class:AbstractSchema
The schema can be a top level schema which doesn't have its own tables, but refers to one of the default sub schemas for table look up.Default implementation returns itself.
Ex. "dfs" schema refers to the tables in "default" workspace when querying for tables in "dfs" schema.
- Overrides:
getDefaultSchema
in classAbstractSchema
- Returns:
- Return the default schema where tables are created or retrieved from.
-