public abstract class CalciteSchema
extends java.lang.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. |
static class |
CalciteSchema.TypeEntry
Membership of a type in a schema.
|
static class |
CalciteSchema.TypeEntryImpl
Implementation of
CalciteSchema.TypeEntry
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 |
java.lang.String |
name |
protected NameMap<CalciteSchema.FunctionEntry> |
nullaryFunctionMap |
private CalciteSchema |
parent |
private java.util.List<? extends java.util.List<java.lang.String>> |
path |
Schema |
schema |
protected NameMap<CalciteSchema> |
subSchemaMap |
protected NameMap<CalciteSchema.TableEntry> |
tableMap
Tables explicitly defined in this schema.
|
protected NameMap<CalciteSchema.TypeEntry> |
typeMap |
Modifier | Constructor and Description |
---|---|
protected |
CalciteSchema(CalciteSchema parent,
Schema schema,
java.lang.String name,
NameMap<CalciteSchema> subSchemaMap,
NameMap<CalciteSchema.TableEntry> tableMap,
NameMap<CalciteSchema.LatticeEntry> latticeMap,
NameMap<CalciteSchema.TypeEntry> typeMap,
NameMultimap<CalciteSchema.FunctionEntry> functionMap,
NameSet functionNames,
NameMap<CalciteSchema.FunctionEntry> nullaryFunctionMap,
java.util.List<? extends java.util.List<java.lang.String>> path) |
Modifier and Type | Method and Description |
---|---|
private CalciteSchema.FunctionEntry |
add(java.lang.String name,
Function function) |
private CalciteSchema.LatticeEntry |
add(java.lang.String name,
Lattice lattice) |
CalciteSchema.TypeEntry |
add(java.lang.String name,
RelProtoDataType type)
Defines a type within this schema.
|
abstract CalciteSchema |
add(java.lang.String name,
Schema schema)
Adds a child schema of this schema.
|
CalciteSchema.TableEntry |
add(java.lang.String tableName,
Table table)
Defines a table within this schema.
|
CalciteSchema.TableEntry |
add(java.lang.String tableName,
Table table,
com.google.common.collect.ImmutableList<java.lang.String> sqls)
Defines a table within this schema.
|
protected abstract void |
addImplicitFuncNamesToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<java.lang.String> builder)
Adds implicit function names to a builder.
|
protected abstract void |
addImplicitFunctionsToBuilder(com.google.common.collect.ImmutableList.Builder<Function> builder,
java.lang.String name,
boolean caseSensitive)
Adds implicit functions to a builder.
|
protected abstract void |
addImplicitSubSchemaToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<java.lang.String,CalciteSchema> builder)
Adds implicit sub-schemas to a builder.
|
protected abstract void |
addImplicitTablesBasedOnNullaryFunctionsToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<java.lang.String,Table> builder)
Adds implicit table functions to a builder.
|
protected abstract void |
addImplicitTableToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<java.lang.String> builder)
Adds implicit tables to a builder.
|
protected abstract void |
addImplicitTypeNamesToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<java.lang.String> builder)
Adds implicit type names 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,
java.lang.String name)
Creates a root schema.
|
static CalciteSchema |
createRootSchema(boolean addMetadataSchema,
boolean cache,
java.lang.String name,
Schema schema) |
CalciteSchema |
createSnapshot(SchemaVersion version)
Creates a snapshot of this CalciteSchema as of the specified time.
|
protected static <V> java.util.NavigableMap<java.lang.String,V> |
find(java.util.NavigableMap<java.lang.String,V> map,
java.lang.String s)
Deprecated.
use NameMap
|
protected static java.lang.Iterable<java.lang.String> |
find(java.util.NavigableSet<java.lang.String> set,
java.lang.String name)
Deprecated.
use NameSet
|
static CalciteSchema |
from(SchemaPlus plus) |
java.util.NavigableSet<java.lang.String> |
getFunctionNames()
Returns the list of function names in this schema, both implicit and
explicit, never null.
|
java.util.Collection<Function> |
getFunctions(java.lang.String name,
boolean caseSensitive)
Returns a collection of all functions, explicit and implicit, with a given
name.
|
protected abstract CalciteSchema |
getImplicitSubSchema(java.lang.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(java.lang.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(java.lang.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. |
protected abstract CalciteSchema.TypeEntry |
getImplicitType(java.lang.String name,
boolean caseSensitive)
Returns a type with a given name that is defined implicitly
(that is, by the underlying
Schema object, not explicitly
by a call to add(String, RelProtoDataType) ), or null. |
java.util.NavigableMap<java.lang.String,CalciteSchema.LatticeEntry> |
getLatticeMap()
Returns a collection of lattices.
|
java.lang.String |
getName() |
java.util.List<? extends java.util.List<java.lang.String>> |
getPath()
Returns the default path resolving functions from this schema.
|
CalciteSchema |
getSubSchema(java.lang.String schemaName,
boolean caseSensitive) |
java.util.NavigableMap<java.lang.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(java.lang.String tableName,
boolean caseSensitive)
Returns a table with the given name.
|
CalciteSchema.TableEntry |
getTableBasedOnNullaryFunction(java.lang.String tableName,
boolean caseSensitive)
Returns a tables derived from explicit and implicit functions
that take zero parameters.
|
CalciteSchema.TableEntry |
getTableBySql(java.lang.String sql)
Returns a table that materializes the given SQL statement.
|
java.util.NavigableSet<java.lang.String> |
getTableNames()
Returns the set of all table names.
|
java.util.NavigableMap<java.lang.String,Table> |
getTablesBasedOnNullaryFunctions()
Returns tables derived from explicit and implicit functions
that take zero parameters.
|
CalciteSchema.TypeEntry |
getType(java.lang.String name,
boolean caseSensitive)
Returns a type, explicit and implicit, with a given
name.
|
java.util.NavigableSet<java.lang.String> |
getTypeNames()
Returns the set of all types names.
|
protected abstract boolean |
isCacheEnabled() |
boolean |
isRoot()
Returns whether this is a root schema.
|
java.util.List<java.lang.String> |
path(java.lang.String name)
Returns the path of an object in this schema.
|
SchemaPlus |
plus() |
boolean |
removeFunction(java.lang.String name) |
boolean |
removeSubSchema(java.lang.String name) |
boolean |
removeTable(java.lang.String name) |
boolean |
removeType(java.lang.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(java.lang.String name,
Table table)
Creates a TableEntryImpl with no SQLs.
|
protected CalciteSchema.TypeEntryImpl |
typeEntry(java.lang.String name,
RelProtoDataType relProtoDataType)
Creates a TableEntryImpl with no SQLs.
|
private final CalciteSchema parent
public final Schema schema
public final java.lang.String name
protected final NameMap<CalciteSchema.TableEntry> tableMap
schema
.protected final NameMultimap<CalciteSchema.FunctionEntry> functionMap
protected final NameMap<CalciteSchema.TypeEntry> typeMap
protected final NameMap<CalciteSchema.LatticeEntry> latticeMap
protected final NameSet functionNames
protected final NameMap<CalciteSchema.FunctionEntry> nullaryFunctionMap
protected final NameMap<CalciteSchema> subSchemaMap
private java.util.List<? extends java.util.List<java.lang.String>> path
protected CalciteSchema(CalciteSchema parent, Schema schema, java.lang.String name, NameMap<CalciteSchema> subSchemaMap, NameMap<CalciteSchema.TableEntry> tableMap, NameMap<CalciteSchema.LatticeEntry> latticeMap, NameMap<CalciteSchema.TypeEntry> typeMap, NameMultimap<CalciteSchema.FunctionEntry> functionMap, NameSet functionNames, NameMap<CalciteSchema.FunctionEntry> nullaryFunctionMap, java.util.List<? extends java.util.List<java.lang.String>> path)
protected abstract CalciteSchema getImplicitSubSchema(java.lang.String schemaName, boolean caseSensitive)
Schema
object, not explicitly
by a call to add(String, Schema)
), or null.protected abstract CalciteSchema.TableEntry getImplicitTable(java.lang.String tableName, boolean caseSensitive)
Schema
object, not explicitly
by a call to add(String, Table)
), or null.protected abstract CalciteSchema.TypeEntry getImplicitType(java.lang.String name, boolean caseSensitive)
Schema
object, not explicitly
by a call to add(String, RelProtoDataType)
), or null.protected abstract CalciteSchema.TableEntry getImplicitTableBasedOnNullaryFunction(java.lang.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<java.lang.String,CalciteSchema> builder)
protected abstract void addImplicitTableToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<java.lang.String> builder)
protected abstract void addImplicitFunctionsToBuilder(com.google.common.collect.ImmutableList.Builder<Function> builder, java.lang.String name, boolean caseSensitive)
protected abstract void addImplicitFuncNamesToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<java.lang.String> builder)
protected abstract void addImplicitTypeNamesToBuilder(com.google.common.collect.ImmutableSortedSet.Builder<java.lang.String> builder)
protected abstract void addImplicitTablesBasedOnNullaryFunctionsToBuilder(com.google.common.collect.ImmutableSortedMap.Builder<java.lang.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(java.lang.String name, Table table)
protected CalciteSchema.TypeEntryImpl typeEntry(java.lang.String name, RelProtoDataType relProtoDataType)
public CalciteSchema.TableEntry add(java.lang.String tableName, Table table)
public CalciteSchema.TableEntry add(java.lang.String tableName, Table table, com.google.common.collect.ImmutableList<java.lang.String> sqls)
public CalciteSchema.TypeEntry add(java.lang.String name, RelProtoDataType type)
private CalciteSchema.FunctionEntry add(java.lang.String name, Function function)
private CalciteSchema.LatticeEntry add(java.lang.String name, Lattice lattice)
public CalciteSchema root()
public boolean isRoot()
public java.util.List<java.lang.String> path(java.lang.String name)
public final CalciteSchema getSubSchema(java.lang.String schemaName, boolean caseSensitive)
public abstract CalciteSchema add(java.lang.String name, Schema schema)
public final CalciteSchema.TableEntry getTableBySql(java.lang.String sql)
public final CalciteSchema.TableEntry getTable(java.lang.String tableName, boolean caseSensitive)
public java.lang.String getName()
public SchemaPlus plus()
public static CalciteSchema from(SchemaPlus plus)
public java.util.List<? extends java.util.List<java.lang.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 java.util.NavigableMap<java.lang.String,CalciteSchema> getSubSchemaMap()
add(String, org.apache.calcite.schema.Schema)
) and implicit
(defined using Schema.getSubSchemaNames()
and Schema.getSubSchema(String)
).public java.util.NavigableMap<java.lang.String,CalciteSchema.LatticeEntry> getLatticeMap()
All are explicit (defined using add(String, Lattice)
).
public final java.util.NavigableSet<java.lang.String> getTableNames()
public final java.util.NavigableSet<java.lang.String> getTypeNames()
public final CalciteSchema.TypeEntry getType(java.lang.String name, boolean caseSensitive)
public final java.util.Collection<Function> getFunctions(java.lang.String name, boolean caseSensitive)
public final java.util.NavigableSet<java.lang.String> getFunctionNames()
public final java.util.NavigableMap<java.lang.String,Table> getTablesBasedOnNullaryFunctions()
public final CalciteSchema.TableEntry getTableBasedOnNullaryFunction(java.lang.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 version@Deprecated protected static <V> java.util.NavigableMap<java.lang.String,V> find(java.util.NavigableMap<java.lang.String,V> map, java.lang.String s)
@Deprecated protected static java.lang.Iterable<java.lang.String> find(java.util.NavigableSet<java.lang.String> set, java.lang.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 SimpleCalciteSchema
public static CalciteSchema createRootSchema(boolean addMetadataSchema, boolean cache, java.lang.String name)
addMetadataSchema
- Whether to add a "metadata" schema containing
definitions of tables, columns etc.cache
- If true create CachingCalciteSchema
;
if false create SimpleCalciteSchema
name
- Schema namepublic static CalciteSchema createRootSchema(boolean addMetadataSchema, boolean cache, java.lang.String name, Schema schema)
public boolean removeSubSchema(java.lang.String name)
public boolean removeTable(java.lang.String name)
public boolean removeFunction(java.lang.String name)
public boolean removeType(java.lang.String name)
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.