public abstract class CalciteSchema extends Object
Wrapper around user-defined schema used internally.
| Modifier and Type | Class and Description |
|---|---|
static class |
CalciteSchema.Entry
Entry in a schema, such as a table or sub-schema.
|
static class |
CalciteSchema.FunctionEntry
Membership of a function in a schema.
|
static class |
CalciteSchema.FunctionEntryImpl
Implementation of
CalciteSchema.FunctionEntry
where all properties are held in fields. |
static class |
CalciteSchema.LatticeEntry
Membership of a lattice in a schema.
|
static class |
CalciteSchema.LatticeEntryImpl
Implementation of
CalciteSchema.LatticeEntry
where all properties are held in fields. |
private class |
CalciteSchema.SchemaPlusImpl
Implementation of
SchemaPlus based on a
CalciteSchema. |
static class |
CalciteSchema.TableEntry
Membership of a table in a schema.
|
static class |
CalciteSchema.TableEntryImpl
Implementation of
CalciteSchema.TableEntry
where all properties are held in fields. |
| Modifier and Type | Field and Description |
|---|---|
protected NameMultimap<CalciteSchema.FunctionEntry> |
functionMap |
protected NameSet |
functionNames |
protected NameMap<CalciteSchema.LatticeEntry> |
latticeMap |
String |
name |
protected NameMap<CalciteSchema.FunctionEntry> |
nullaryFunctionMap |
private CalciteSchema |
parent |
private List<? extends List<String>> |
path |
Schema |
schema |
protected NameMap<CalciteSchema> |
subSchemaMap |
protected NameMap<CalciteSchema.TableEntry> |
tableMap
Tables explicitly defined in this schema.
|
| Modifier | Constructor and Description |
|---|---|
protected |
CalciteSchema(CalciteSchema parent,
Schema schema,
String name,
NameMap<CalciteSchema> subSchemaMap,
NameMap<CalciteSchema.TableEntry> tableMap,
NameMap<CalciteSchema.LatticeEntry> latticeMap,
NameMultimap<CalciteSchema.FunctionEntry> functionMap,
NameSet functionNames,
NameMap<CalciteSchema.FunctionEntry> nullaryFunctionMap,
List<? extends List<String>> path) |
| Modifier and Type | Method and Description |
|---|---|
private CalciteSchema.FunctionEntry |
add(String name,
Function function) |
private CalciteSchema.LatticeEntry |
add(String name,
Lattice lattice) |
abstract CalciteSchema |
add(String name,
Schema schema)
Adds a child schema of this schema.
|
CalciteSchema.TableEntry |
add(String tableName,
Table table)
Defines a table within this schema.
|
CalciteSchema.TableEntry |
add(String tableName,
Table table,
com.google.common.collect.ImmutableList<String> sqls)
Defines a table within this schema.
|
protected abstract void |
addImplicitFuncNamesToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<String> builder)
Adds implicit function names to a builder.
|
protected abstract void |
addImplicitFunctionsToBuilder(com.google.common.collect.ImmutableList.Builder<Function> builder,
String name,
boolean caseSensitive)
Adds implicit functions to a builder.
|
protected abstract void |
addImplicitSubSchemaToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<String,CalciteSchema> builder)
Adds implicit sub-schemas to a builder.
|
protected abstract void |
addImplicitTablesBasedOnNullaryFunctionsToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<String,Table> builder)
Adds implicit table functions to a builder.
|
protected abstract void |
addImplicitTableToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<String> builder)
Adds implicit tables to a builder.
|
static CalciteSchema |
createRootSchema(boolean addMetadataSchema)
Creates a root schema.
|
static CalciteSchema |
createRootSchema(boolean addMetadataSchema,
boolean cache)
Creates a root schema.
|
static CalciteSchema |
createRootSchema(boolean addMetadataSchema,
boolean cache,
String name)
Creates a root schema.
|
CalciteSchema |
createSnapshot(SchemaVersion version)
Creates a snapshot of this CalciteSchema as of the specified time.
|
protected static <V> NavigableMap<String,V> |
find(NavigableMap<String,V> map,
String s)
Returns a subset of a map whose keys match the given string
case-insensitively.
|
protected static Iterable<String> |
find(NavigableSet<String> set,
String name)
Returns a subset of a set whose values match the given string
case-insensitively.
|
static CalciteSchema |
from(SchemaPlus plus) |
NavigableSet<String> |
getFunctionNames()
Returns the list of function names in this schema, both implicit and
explicit, never null.
|
Collection<Function> |
getFunctions(String name,
boolean caseSensitive)
Returns a collection of all functions, explicit and implicit, with a given
name.
|
protected abstract CalciteSchema |
getImplicitSubSchema(String schemaName,
boolean caseSensitive)
Returns a sub-schema with a given name that is defined implicitly
(that is, by the underlying
Schema object, not explicitly
by a call to add(String, Schema)), or null. |
protected abstract CalciteSchema.TableEntry |
getImplicitTable(String tableName,
boolean caseSensitive)
Returns a table with a given name that is defined implicitly
(that is, by the underlying
Schema object, not explicitly
by a call to add(String, Table)), or null. |
protected abstract CalciteSchema.TableEntry |
getImplicitTableBasedOnNullaryFunction(String tableName,
boolean caseSensitive)
Returns table function with a given name and zero arguments that is
defined implicitly (that is, by the underlying
Schema object,
not explicitly by a call to add(String, Function)), or null. |
NavigableMap<String,CalciteSchema.LatticeEntry> |
getLatticeMap()
Returns a collection of lattices.
|
String |
getName() |
List<? extends List<String>> |
getPath()
Returns the default path resolving functions from this schema.
|
CalciteSchema |
getSubSchema(String schemaName,
boolean caseSensitive) |
NavigableMap<String,CalciteSchema> |
getSubSchemaMap()
Returns a collection of sub-schemas, both explicit (defined using
add(String, org.apache.calcite.schema.Schema)) and implicit
(defined using Schema.getSubSchemaNames()
and Schema.getSubSchema(String)). |
CalciteSchema.TableEntry |
getTable(String tableName,
boolean caseSensitive)
Returns a table with the given name.
|
CalciteSchema.TableEntry |
getTableBasedOnNullaryFunction(String tableName,
boolean caseSensitive)
Returns a tables derived from explicit and implicit functions
that take zero parameters.
|
CalciteSchema.TableEntry |
getTableBySql(String sql)
Returns a table that materializes the given SQL statement.
|
NavigableSet<String> |
getTableNames()
Returns the set of all table names.
|
NavigableMap<String,Table> |
getTablesBasedOnNullaryFunctions()
Returns tables derived from explicit and implicit functions
that take zero parameters.
|
protected abstract boolean |
isCacheEnabled() |
boolean |
isRoot()
Returns whether this is a root schema.
|
List<String> |
path(String name)
Returns the path of an object in this schema.
|
SchemaPlus |
plus() |
boolean |
removeFunction(String name) |
boolean |
removeSubSchema(String name) |
boolean |
removeTable(String name) |
CalciteSchema |
root() |
abstract void |
setCache(boolean cache) |
protected abstract CalciteSchema |
snapshot(CalciteSchema parent,
SchemaVersion version)
Returns a snapshot representation of this CalciteSchema.
|
protected CalciteSchema.TableEntryImpl |
tableEntry(String name,
Table table)
Creates a TableEntryImpl with no SQLs.
|
private final CalciteSchema parent
public final Schema schema
public final String name
protected final NameMap<CalciteSchema.TableEntry> tableMap
schema.protected final NameMultimap<CalciteSchema.FunctionEntry> functionMap
protected final NameMap<CalciteSchema.LatticeEntry> latticeMap
protected final NameSet functionNames
protected final NameMap<CalciteSchema.FunctionEntry> nullaryFunctionMap
protected final NameMap<CalciteSchema> subSchemaMap
protected CalciteSchema(CalciteSchema parent, Schema schema, String name, NameMap<CalciteSchema> subSchemaMap, NameMap<CalciteSchema.TableEntry> tableMap, NameMap<CalciteSchema.LatticeEntry> latticeMap, NameMultimap<CalciteSchema.FunctionEntry> functionMap, NameSet functionNames, NameMap<CalciteSchema.FunctionEntry> nullaryFunctionMap, List<? extends List<String>> path)
protected abstract CalciteSchema getImplicitSubSchema(String schemaName, boolean caseSensitive)
Schema object, not explicitly
by a call to add(String, Schema)), or null.protected abstract CalciteSchema.TableEntry getImplicitTable(String tableName, boolean caseSensitive)
Schema object, not explicitly
by a call to add(String, Table)), or null.protected abstract CalciteSchema.TableEntry getImplicitTableBasedOnNullaryFunction(String tableName, boolean caseSensitive)
Schema object,
not explicitly by a call to add(String, Function)), or null.protected abstract void addImplicitSubSchemaToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<String,CalciteSchema> builder)
protected abstract void addImplicitTableToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<String> builder)
protected abstract void addImplicitFunctionsToBuilder(com.google.common.collect.ImmutableList.Builder<Function> builder, String name, boolean caseSensitive)
protected abstract void addImplicitFuncNamesToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<String> builder)
protected abstract void addImplicitTablesBasedOnNullaryFunctionsToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<String,Table> builder)
protected abstract CalciteSchema snapshot(CalciteSchema parent, SchemaVersion version)
protected abstract boolean isCacheEnabled()
public abstract void setCache(boolean cache)
protected CalciteSchema.TableEntryImpl tableEntry(String name, Table table)
public CalciteSchema.TableEntry add(String tableName, Table table)
public CalciteSchema.TableEntry add(String tableName, Table table, com.google.common.collect.ImmutableList<String> sqls)
private CalciteSchema.FunctionEntry add(String name, Function function)
private CalciteSchema.LatticeEntry add(String name, Lattice lattice)
public CalciteSchema root()
public boolean isRoot()
public final CalciteSchema getSubSchema(String schemaName, boolean caseSensitive)
public abstract CalciteSchema add(String name, Schema schema)
public final CalciteSchema.TableEntry getTableBySql(String sql)
public final CalciteSchema.TableEntry getTable(String tableName, boolean caseSensitive)
public String getName()
public SchemaPlus plus()
public static CalciteSchema from(SchemaPlus plus)
public List<? extends List<String>> getPath()
The path consists is a list of lists of strings. Each list of strings represents the path of a schema from the root schema. For example, [[], [foo], [foo, bar, baz]] represents three schemas: the root schema "/" (level 0), "/foo" (level 1) and "/foo/bar/baz" (level 3).
public final NavigableMap<String,CalciteSchema> getSubSchemaMap()
add(String, org.apache.calcite.schema.Schema)) and implicit
(defined using Schema.getSubSchemaNames()
and Schema.getSubSchema(String)).public NavigableMap<String,CalciteSchema.LatticeEntry> getLatticeMap()
All are explicit (defined using add(String, Lattice)).
public final NavigableSet<String> getTableNames()
public final Collection<Function> getFunctions(String name, boolean caseSensitive)
public final NavigableSet<String> getFunctionNames()
public final NavigableMap<String,Table> getTablesBasedOnNullaryFunctions()
public final CalciteSchema.TableEntry getTableBasedOnNullaryFunction(String tableName, boolean caseSensitive)
public CalciteSchema createSnapshot(SchemaVersion version)
Schema.snapshot(SchemaVersion).
Snapshots of explicit sub schemas will be created and copied recursively.
Currently, to accommodate the requirement of creating tables on the fly for materializations, the snapshot will still use the same table map and lattice map as in the original CalciteSchema instead of making copies.
version - The current schema versionprotected static <V> NavigableMap<String,V> find(NavigableMap<String,V> map, String s)
protected static Iterable<String> find(NavigableSet<String> set, String name)
public static CalciteSchema createRootSchema(boolean addMetadataSchema)
When addMetadataSchema argument is true adds a "metadata"
schema containing definitions of tables, columns etc. to root schema.
By default, creates a CachingCalciteSchema.
public static CalciteSchema createRootSchema(boolean addMetadataSchema, boolean cache)
addMetadataSchema - Whether to add a "metadata" schema containing
definitions of tables, columns etc.cache - If true create CachingCalciteSchema;
if false create SimpleCalciteSchemapublic static CalciteSchema createRootSchema(boolean addMetadataSchema, boolean cache, String name)
addMetadataSchema - Whether to add a "metadata" schema containing
definitions of tables, columns etc.cache - If true create CachingCalciteSchema;
if false create SimpleCalciteSchemaname - Schema namepublic boolean removeSubSchema(String name)
public boolean removeTable(String name)
public boolean removeFunction(String name)
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.