public abstract class Prepare
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Prepare.AbstractPreparingTable
Abstract implementation of
Prepare.PreparingTable with an implementation
for Prepare.AbstractPreparingTable.columnHasDefaultValue(org.apache.calcite.rel.type.RelDataType, int, org.apache.calcite.sql2rel.InitializerContext) . |
static interface |
Prepare.CatalogReader
Interface by which validator and planner can read table metadata.
|
static class |
Prepare.Materialization
Describes that a given SQL query is materialized by a given table.
|
static class |
Prepare.PreparedExplain
PreparedExplanation is a PreparedResult for an EXPLAIN PLAN statement.
|
static interface |
Prepare.PreparedResult
|
static class |
Prepare.PreparedResultImpl
Abstract implementation of
Prepare.PreparedResult . |
static interface |
Prepare.PreparingTable
Definition of a table, for the purposes of the validator and planner.
|
Modifier and Type | Field and Description |
---|---|
protected Prepare.CatalogReader |
catalogReader |
protected CalcitePrepare.Context |
context |
protected java.util.List<java.util.List<java.lang.String>> |
fieldOrigins |
protected static org.slf4j.Logger |
LOGGER |
protected RelDataType |
parameterRowType |
protected Convention |
resultConvention
Convention via which results should be returned by execution.
|
static TryThreadLocal<java.lang.Boolean> |
THREAD_EXPAND
Temporary, until
[CALCITE-1045]
Decorrelate sub-queries in Project and Join is fixed.
|
static TryThreadLocal<java.lang.Boolean> |
THREAD_TRIM |
protected CalciteTimingTracer |
timingTracer |
Constructor and Description |
---|
Prepare(CalcitePrepare.Context context,
Prepare.CatalogReader catalogReader,
Convention resultConvention) |
Modifier and Type | Method and Description |
---|---|
protected abstract Prepare.PreparedResult |
createPreparedExplanation(RelDataType resultType,
RelDataType parameterRowType,
RelRoot root,
SqlExplainFormat format,
SqlExplainLevel detailLevel) |
protected abstract RelNode |
decorrelate(SqlToRelConverter sqlToRelConverter,
SqlNode query,
RelNode rootRel) |
abstract RelNode |
flattenTypes(RelNode rootRel,
boolean restructure) |
protected RelTraitSet |
getDesiredRootTraitSet(RelRoot root) |
protected abstract java.util.List<CalciteSchema.LatticeEntry> |
getLattices() |
protected abstract java.util.List<Prepare.Materialization> |
getMaterializations() |
protected Program |
getProgram() |
protected abstract SqlToRelConverter |
getSqlToRelConverter(SqlValidator validator,
Prepare.CatalogReader catalogReader,
SqlToRelConverter.Config config)
Protected method to allow subclasses to override construction of
SqlToRelConverter.
|
protected abstract SqlValidator |
getSqlValidator() |
protected abstract Prepare.PreparedResult |
implement(RelRoot root)
Implements a physical query plan.
|
protected abstract void |
init(java.lang.Class runtimeContextClass) |
protected TableModify.Operation |
mapTableModOp(boolean isDml,
SqlKind sqlKind) |
protected RelRoot |
optimize(RelRoot root,
java.util.List<Prepare.Materialization> materializations,
java.util.List<CalciteSchema.LatticeEntry> lattices)
Optimizes a query plan.
|
Prepare.PreparedResult |
prepareSql(SqlNode sqlQuery,
java.lang.Class runtimeContextClass,
SqlValidator validator,
boolean needsValidation) |
Prepare.PreparedResult |
prepareSql(SqlNode sqlQuery,
SqlNode sqlNodeOriginal,
java.lang.Class runtimeContextClass,
SqlValidator validator,
boolean needsValidation) |
private boolean |
shouldTrim(RelNode rootRel) |
protected RelRoot |
trimUnusedFields(RelRoot root)
Walks over a tree of relational expressions, replacing each
RelNode with a 'slimmed down' relational
expression that projects
only the columns required by its consumer. |
protected static final org.slf4j.Logger LOGGER
protected final CalcitePrepare.Context context
protected final Prepare.CatalogReader catalogReader
protected final Convention resultConvention
protected CalciteTimingTracer timingTracer
protected java.util.List<java.util.List<java.lang.String>> fieldOrigins
protected RelDataType parameterRowType
public static final TryThreadLocal<java.lang.Boolean> THREAD_TRIM
public static final TryThreadLocal<java.lang.Boolean> THREAD_EXPAND
The default is false, meaning do not expand queries during sql-to-rel, but a few tests override and set it to true. After CALCITE-1045 is fixed, remove those overrides and use false everywhere.
public Prepare(CalcitePrepare.Context context, Prepare.CatalogReader catalogReader, Convention resultConvention)
protected abstract Prepare.PreparedResult createPreparedExplanation(RelDataType resultType, RelDataType parameterRowType, RelRoot root, SqlExplainFormat format, SqlExplainLevel detailLevel)
protected RelRoot optimize(RelRoot root, java.util.List<Prepare.Materialization> materializations, java.util.List<CalciteSchema.LatticeEntry> lattices)
root
- Root of relational expression treematerializations
- Tables known to be populated with a given querylattices
- Latticesprotected Program getProgram()
protected RelTraitSet getDesiredRootTraitSet(RelRoot root)
protected abstract Prepare.PreparedResult implement(RelRoot root)
root
- Root of the relational expression treepublic Prepare.PreparedResult prepareSql(SqlNode sqlQuery, java.lang.Class runtimeContextClass, SqlValidator validator, boolean needsValidation)
public Prepare.PreparedResult prepareSql(SqlNode sqlQuery, SqlNode sqlNodeOriginal, java.lang.Class runtimeContextClass, SqlValidator validator, boolean needsValidation)
protected TableModify.Operation mapTableModOp(boolean isDml, SqlKind sqlKind)
protected abstract SqlToRelConverter getSqlToRelConverter(SqlValidator validator, Prepare.CatalogReader catalogReader, SqlToRelConverter.Config config)
protected abstract RelNode decorrelate(SqlToRelConverter sqlToRelConverter, SqlNode query, RelNode rootRel)
protected abstract java.util.List<Prepare.Materialization> getMaterializations()
protected abstract java.util.List<CalciteSchema.LatticeEntry> getLattices()
protected RelRoot trimUnusedFields(RelRoot root)
RelNode
with a 'slimmed down' relational
expression that projects
only the columns required by its consumer.root
- Root of relational expression treeprivate boolean shouldTrim(RelNode rootRel)
protected abstract void init(java.lang.Class runtimeContextClass)
protected abstract SqlValidator getSqlValidator()
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.