Class SubSchemaWrapper

java.lang.Object
org.apache.drill.exec.store.AbstractSchema
org.apache.drill.exec.store.SubSchemaWrapper
All Implemented Interfaces:
AutoCloseable, org.apache.calcite.schema.Schema, SchemaPartitionExplorer

public class SubSchemaWrapper extends AbstractSchema
  • Constructor Details

    • SubSchemaWrapper

      public SubSchemaWrapper(AbstractSchema innerSchema)
  • Method Details

    • showInInformationSchema

      public boolean showInInformationSchema()
      Description copied from class: AbstractSchema
      Reports whether to show items from this schema in INFORMATION_SCHEMA tables. (Controls ... TODO: Doc.: Mention what this typically controls or affects.)

      This base implementation returns true.

      Overrides:
      showInInformationSchema in class AbstractSchema
    • getSubPartitions

      public Iterable<String> getSubPartitions(String table, List<String> partitionColumns, List<String> partitionValues) throws PartitionNotFoundException
      Description copied from interface: SchemaPartitionExplorer
      Get a list of sub-partitions of a particular table and the partitions specified by partition columns and values. Individual storage plugins will assign specific meaning to the parameters and return values.

      For more info see docs in PartitionExplorer.

      Specified by:
      getSubPartitions in interface SchemaPartitionExplorer
      Overrides:
      getSubPartitions in class AbstractSchema
      partitionColumns - a list of partitions to match
      partitionValues - list of values of each partition (corresponding to the partition column list)
      Returns:
      list of sub-partitions, will be empty if a there is no further level of sub-partitioning below, i.e. hit a leaf partition
      Throws:
      PartitionNotFoundException - when the partition does not exist in the given workspace
    • getDefaultSchema

      public org.apache.calcite.schema.Schema 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 class AbstractSchema
      Returns:
      Return the default schema where tables are created or retrieved from.
    • createNewTable

      public CreateTableEntry createNewTable(String tableName, List<String> partitionColumns, StorageStrategy storageStrategy)
      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 class AbstractSchema
      Parameters:
      tableName - : new table name.
      partitionColumns - : list of partition columns. Empty list if there is no partition columns.
      storageStrategy - : storage strategy used to create table folder and files
      Returns:
      create table entry
    • createStatsTable

      public CreateTableEntry createStatsTable(String tableName)
      Description copied from class: AbstractSchema
      Create stats table entry for given tableName.
      Overrides:
      createStatsTable in class AbstractSchema
      Parameters:
      tableName - table name
      Returns:
      instance of create table entry
    • appendToStatsTable

      public CreateTableEntry appendToStatsTable(String tableName)
      Description copied from class: AbstractSchema
      Create an append statistics table entry for given tableName. If there is not existing statistics table, a new one is created.
      Overrides:
      appendToStatsTable in class AbstractSchema
      Parameters:
      tableName - table name
      Returns:
      instance of create table entry
    • getStatsTable

      public org.apache.calcite.schema.Table getStatsTable(String tableName)
      Description copied from class: AbstractSchema
      Get the statistics table for given tableName
      Overrides:
      getStatsTable in class AbstractSchema
      Parameters:
      tableName - table name
      Returns:
      instance of statistics table
    • getFunctions

      public Collection<org.apache.calcite.schema.Function> getFunctions(String name)
      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 interface org.apache.calcite.schema.Schema
      Overrides:
      getFunctions in class AbstractSchema
      Parameters:
      name - table name
      Returns:
      list of table functions
    • getFunctionNames

      public Set<String> getFunctionNames()
      Specified by:
      getFunctionNames in interface org.apache.calcite.schema.Schema
      Overrides:
      getFunctionNames in class AbstractSchema
    • getSubSchema

      public org.apache.calcite.schema.Schema getSubSchema(String name)
      Specified by:
      getSubSchema in interface org.apache.calcite.schema.Schema
      Overrides:
      getSubSchema in class AbstractSchema
    • getSubSchemaNames

      public Set<String> getSubSchemaNames()
      Specified by:
      getSubSchemaNames in interface org.apache.calcite.schema.Schema
      Overrides:
      getSubSchemaNames in class AbstractSchema
    • isMutable

      public boolean isMutable()
      Specified by:
      isMutable in interface org.apache.calcite.schema.Schema
      Overrides:
      isMutable in class AbstractSchema
    • getTable

      public org.apache.calcite.schema.Table getTable(String name)
      Specified by:
      getTable in interface org.apache.calcite.schema.Schema
      Overrides:
      getTable in class AbstractSchema
    • getTableNames

      public Set<String> getTableNames()
      Specified by:
      getTableNames in interface org.apache.calcite.schema.Schema
      Overrides:
      getTableNames in class AbstractSchema
    • getTypeName

      public String 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 class AbstractSchema
      Returns:
      schema type name