| Package | Description |
|---|---|
| org.apache.calcite.plan |
Defines interfaces for constructing rule-based optimizers of
relational expressions.
|
| org.apache.calcite.rel.core |
Defines core relational expressions.
|
| org.apache.calcite.rel.logical |
Defines logical relational expressions.
|
| org.apache.calcite.rel.mutable |
Defines mutable relational expressions.
|
| org.apache.calcite.rel.rules |
Provides a core set of planner rules.
|
| org.apache.calcite.sql2rel |
Translates a SQL parse tree to relational expression.
|
| org.apache.calcite.tools |
Provides utility classes.
|
| Modifier and Type | Field and Description |
|---|---|
protected RelBuilder |
SubstitutionVisitor.relBuilder
Factory for a builder for relational expressions.
|
| Modifier and Type | Method and Description |
|---|---|
RelBuilder |
RelOptRuleCall.builder()
Creates a
RelBuilder to be used by
code within the call. |
| Modifier and Type | Method and Description |
|---|---|
static RelNode |
RelOptUtil.createProject(RelNode child,
List<? extends RexNode> exprs,
List<String> fieldNames,
boolean optimize,
RelBuilder relBuilder)
Creates a relational expression which projects an array of expressions,
and optionally optimizes.
|
static RelNode |
RelOptUtil.pushDownJoinConditions(Join originalJoin,
RelBuilder relBuilder)
Pushes down expressions in "equal" join condition.
|
private static void |
SubstitutionVisitor.reverseSubstitute(RelBuilder relBuilder,
Holder query,
List<List<SubstitutionVisitor.Replacement>> matches,
List<RelNode> sub,
int replaceCount,
int maxCount) |
| Modifier and Type | Method and Description |
|---|---|
RelNode |
TableScan.project(ImmutableBitSet fieldsUsed,
Set<RelDataTypeField> extraFields,
RelBuilder relBuilder)
Projects a subset of the fields of the table, and also asks for "extra"
fields that were not included in the table's official type.
|
| Modifier and Type | Method and Description |
|---|---|
static RelNode |
LogicalWindow.create(RelOptCluster cluster,
RelTraitSet traitSet,
RelBuilder relBuilder,
RelNode child,
RexProgram program)
Creates a LogicalWindow by parsing a
RexProgram. |
| Modifier and Type | Method and Description |
|---|---|
static RelNode |
MutableRels.fromMutable(MutableRel node,
RelBuilder relBuilder) |
private static List<RelNode> |
MutableRels.fromMutables(List<MutableRel> nodes,
RelBuilder relBuilder) |
| Modifier and Type | Field and Description |
|---|---|
protected RelBuilder |
CalcRelSplitter.relBuilder |
private RelBuilder |
PushProjector.relBuilder |
| Modifier and Type | Method and Description |
|---|---|
private RelBuilder |
AggregateExpandDistinctAggregatesRule.convertMonopole(RelBuilder relBuilder,
Aggregate aggregate,
List<Integer> argList,
int filterArg)
Converts an aggregate relational expression that contains just one
distinct aggregate function (or perhaps several over the same arguments)
and no non-distinct aggregate functions.
|
private RelBuilder |
AggregateExpandDistinctAggregatesRule.convertSingletonDistinct(RelBuilder relBuilder,
Aggregate aggregate,
Set<Pair<List<Integer>,Integer>> argLists)
Converts an aggregate with one distinct aggregate and one or more
non-distinct aggregates to multi-phase aggregates (see reference example
below).
|
private RelBuilder |
AggregateExpandDistinctAggregatesRule.createSelectDistinct(RelBuilder relBuilder,
Aggregate aggregate,
List<Integer> argList,
int filterArg,
Map<Integer,Integer> sourceOf)
Given an
Aggregate
and the ordinals of the arguments to a
particular call to an aggregate function, creates a 'select distinct'
relational expression which projects the group columns and those
arguments but nothing else. |
| Modifier and Type | Method and Description |
|---|---|
private void |
LoptOptimizeJoinRule.addAdditionalFilters(RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptJoinTree left,
LoptJoinTree right,
List<RexNode> filtersToAdd)
Determines whether any additional filters are applicable to a join tree.
|
private LoptJoinTree |
LoptOptimizeJoinRule.addFactorToTree(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
LoptJoinTree joinTree,
int factorToAdd,
BitSet factorsNeeded,
List<RexNode> filtersToAdd,
boolean selfJoin)
Adds a new factor into the current join tree.
|
private LoptJoinTree |
LoptOptimizeJoinRule.addToTop(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
LoptJoinTree joinTree,
int factorToAdd,
List<RexNode> filtersToAdd,
boolean selfJoin)
Creates a join tree with the new factor added to the top of the tree
|
protected RexNode |
SubQueryRemoveRule.apply(RexSubQuery e,
Set<CorrelationId> variablesSet,
RelOptUtil.Logic logic,
RelBuilder builder,
int inputCount,
int offset) |
protected abstract AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.compensateViewPartial(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelMetadataQuery mq,
RelNode input,
Project topProject,
RelNode node,
Set<RexTableInputRef.RelTableRef> queryTableRefs,
AbstractMaterializedViewRule.EquivalenceClasses queryEC,
Project topViewProject,
RelNode viewNode,
Set<RexTableInputRef.RelTableRef> viewTableRefs)
It checks whether the query can be rewritten using the view even though the
query uses additional tables.
|
protected AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.MaterializedViewJoinRule.compensateViewPartial(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelMetadataQuery mq,
RelNode input,
Project topProject,
RelNode node,
Set<RexTableInputRef.RelTableRef> queryTableRefs,
AbstractMaterializedViewRule.EquivalenceClasses queryEC,
Project topViewProject,
RelNode viewNode,
Set<RexTableInputRef.RelTableRef> viewTableRefs) |
protected AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.compensateViewPartial(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelMetadataQuery mq,
RelNode input,
Project topProject,
RelNode node,
Set<RexTableInputRef.RelTableRef> queryTableRefs,
AbstractMaterializedViewRule.EquivalenceClasses queryEC,
Project topViewProject,
RelNode viewNode,
Set<RexTableInputRef.RelTableRef> viewTableRefs) |
private RelBuilder |
AggregateExpandDistinctAggregatesRule.convertMonopole(RelBuilder relBuilder,
Aggregate aggregate,
List<Integer> argList,
int filterArg)
Converts an aggregate relational expression that contains just one
distinct aggregate function (or perhaps several over the same arguments)
and no non-distinct aggregate functions.
|
private RelBuilder |
AggregateExpandDistinctAggregatesRule.convertSingletonDistinct(RelBuilder relBuilder,
Aggregate aggregate,
Set<Pair<List<Integer>,Integer>> argLists)
Converts an aggregate with one distinct aggregate and one or more
non-distinct aggregates to multi-phase aggregates (see reference example
below).
|
private LoptJoinTree |
LoptOptimizeJoinRule.createJoinSubtree(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptJoinTree left,
LoptJoinTree right,
RexNode condition,
JoinRelType joinType,
List<RexNode> filtersToAdd,
boolean fullAdjust,
boolean selfJoin)
Creates a LogicalJoin given left and right operands and a join condition.
|
private LoptJoinTree |
LoptOptimizeJoinRule.createOrdering(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
int firstFactor)
Generates a join tree with a specific factor as the first factor in the
join tree
|
private LoptJoinTree |
LoptOptimizeJoinRule.createReplacementJoin(RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
LoptJoinTree currJoinTree,
int leftIdx,
int factorToAdd,
ImmutableIntList newKeys,
Integer[] replacementKeys,
List<RexNode> filtersToAdd)
Creates a replacement join, projecting either dummy columns or
replacement keys from the factor that doesn't actually need to be joined.
|
private LoptJoinTree |
LoptOptimizeJoinRule.createReplacementSemiJoin(RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
LoptJoinTree factTree,
int dimIdx,
List<RexNode> filtersToAdd)
In the event that a dimension table does not need to be joined because of
a semijoin, this method creates a join tree that consists of a projection
on top of an existing join tree.
|
private RelBuilder |
AggregateExpandDistinctAggregatesRule.createSelectDistinct(RelBuilder relBuilder,
Aggregate aggregate,
List<Integer> argList,
int filterArg,
Map<Integer,Integer> sourceOf)
Given an
Aggregate
and the ordinals of the arguments to a
particular call to an aggregate function, creates a 'select distinct'
relational expression which projects the group columns and those
arguments but nothing else. |
private RelNode |
LoptOptimizeJoinRule.createTopProject(RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptJoinTree joinTree,
List<String> fieldNames)
Creates the topmost projection that will sit on top of the selected join
ordering.
|
protected abstract RelNode |
AbstractMaterializedViewRule.createUnion(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelNode topProject,
RelNode unionInputQuery,
RelNode unionInputView)
If the view will be used in a union rewriting, this method is responsible for
generating the union and any other operator needed on top of it, e.g., a Project
operator.
|
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewJoinRule.createUnion(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelNode topProject,
RelNode unionInputQuery,
RelNode unionInputView) |
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.createUnion(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelNode topProject,
RelNode unionInputQuery,
RelNode unionInputView) |
private void |
AggregateExpandDistinctAggregatesRule.doRewrite(RelBuilder relBuilder,
Aggregate aggregate,
int n,
List<Integer> argList,
int filterArg,
List<RexInputRef> refs)
Converts all distinct aggregate calls to a given set of arguments.
|
private RexInputRef |
SubQueryRemoveRule.field(RelBuilder builder,
int inputCount,
int offset)
Returns a reference to a particular field, by offset, across several
inputs on a
RelBuilder's stack. |
private static List<RexNode> |
SubQueryRemoveRule.fields(RelBuilder builder,
int fieldCount)
Returns a list of expressions that project the first
fieldCount
fields of the top input on a RelBuilder's stack. |
private void |
LoptOptimizeJoinRule.findBestOrderings(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
RelOptRuleCall call)
Generates N optimal join orderings.
|
protected RelNode |
CalcRelSplitter.RelType.makeRel(RelOptCluster cluster,
RelTraitSet traitSet,
RelBuilder relBuilder,
RelNode input,
RexProgram program) |
protected void |
AggregateReduceFunctionsRule.newAggregateRel(RelBuilder relBuilder,
Aggregate oldAggregate,
List<AggregateCall> newCalls)
Do a shallow clone of oldAggRel and update aggCalls.
|
private LoptJoinTree |
LoptOptimizeJoinRule.pushDownFactor(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
LoptJoinTree joinTree,
int factorToAdd,
BitSet factorsNeeded,
List<RexNode> filtersToAdd,
boolean selfJoin)
Creates a join tree where the new factor is pushed down one of the
operands of the current join tree
|
protected abstract Pair<RelNode,RelNode> |
AbstractMaterializedViewRule.pushFilterToOriginalViewPlan(RelBuilder builder,
RelNode topViewProject,
RelNode viewNode,
RexNode cond)
Once we create a compensation predicate, this method is responsible for pushing
the resulting filter through the view nodes.
|
Pair<RelNode,RelNode> |
AbstractMaterializedViewRule.MaterializedViewJoinRule.pushFilterToOriginalViewPlan(RelBuilder builder,
RelNode topViewProject,
RelNode viewNode,
RexNode cond) |
Pair<RelNode,RelNode> |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.pushFilterToOriginalViewPlan(RelBuilder builder,
RelNode topViewProject,
RelNode viewNode,
RexNode cond) |
protected abstract RelNode |
AbstractMaterializedViewRule.rewriteQuery(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
RexNode compensationColumnsEquiPred,
RexNode otherCompensationPred,
Project topProject,
RelNode node,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> viewToQueryTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses viewEC,
AbstractMaterializedViewRule.EquivalenceClasses queryEC)
If the view will be used in a union rewriting, this method is responsible for
rewriting the query branch of the union using the given compensation predicate.
|
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewJoinRule.rewriteQuery(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
RexNode compensationColumnsEquiPred,
RexNode otherCompensationPred,
Project topProject,
RelNode node,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> viewToQueryTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses viewEC,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.rewriteQuery(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
RexNode compensationColumnsEquiPred,
RexNode otherCompensationPred,
Project topProject,
RelNode node,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses viewEC,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
protected abstract RelNode |
AbstractMaterializedViewRule.rewriteView(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
AbstractMaterializedViewRule.MatchModality matchModality,
boolean unionRewriting,
RelNode input,
Project topProject,
RelNode node,
Project topViewProject,
RelNode viewNode,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses queryEC)
This method is responsible for rewriting the query using the given view query.
|
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewJoinRule.rewriteView(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
AbstractMaterializedViewRule.MatchModality matchModality,
boolean unionRewriting,
RelNode input,
Project topProject,
RelNode node,
Project topViewProject,
RelNode viewNode,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.rewriteView(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
AbstractMaterializedViewRule.MatchModality matchModality,
boolean unionRewriting,
RelNode input,
Project topProject,
RelNode node,
Project topViewProject,
RelNode viewNode,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
private static AggregateCall |
AggregateStarTableRule.rollUp(int groupCount,
RelBuilder relBuilder,
AggregateCall aggregateCall,
TileKey tileKey) |
| Constructor and Description |
|---|
CalcRelSplitter(Calc calc,
RelBuilder relBuilder,
CalcRelSplitter.RelType[] relTypes)
Constructs a CalcRelSplitter.
|
PushProjector(Project origProj,
RexNode origFilter,
RelNode childRel,
PushProjector.ExprCondition preserveExprCondition,
RelBuilder relBuilder)
Creates a PushProjector object for pushing projects past a RelNode.
|
WindowedAggRelSplitter(Calc calc,
RelBuilder relBuilder) |
| Modifier and Type | Field and Description |
|---|---|
private RelBuilder |
RelDecorrelator.relBuilder |
private RelBuilder |
RelFieldTrimmer.relBuilder |
private RelBuilder |
SqlToRelConverter.relBuilder |
| Constructor and Description |
|---|
RelFieldTrimmer(SqlValidator validator,
RelBuilder relBuilder)
Creates a RelFieldTrimmer.
|
| Modifier and Type | Class and Description |
|---|---|
class |
PigRelBuilder
Extension to
RelBuilder for Pig relational operators. |
| Modifier and Type | Method and Description |
|---|---|
RelBuilder |
RelBuilder.aggregate(RelBuilder.GroupKey groupKey,
Iterable<RelBuilder.AggCall> aggCalls)
Creates an
Aggregate with a list of
calls. |
RelBuilder |
RelBuilder.aggregate(RelBuilder.GroupKey groupKey,
List<AggregateCall> aggregateCalls) |
RelBuilder |
RelBuilder.aggregate(RelBuilder.GroupKey groupKey,
RelBuilder.AggCall... aggCalls)
Creates an
Aggregate with an array of
calls. |
RelBuilder |
PigRelBuilder.as(String alias)
As super-class method, but also retains alias for naming of aggregates.
|
RelBuilder |
RelBuilder.as(String alias)
Assigns a table alias to the top entry on the stack.
|
RelBuilder |
RelBuilder.convert(RelDataType castRowType,
boolean rename)
Creates a projection that converts the current relational expression's
output to a desired row type.
|
static RelBuilder |
RelBuilder.create(FrameworkConfig config)
Creates a RelBuilder.
|
RelBuilder |
RelBuilderFactory.create(RelOptCluster cluster,
RelOptSchema schema)
Creates a RelBuilder.
|
RelBuilder |
RelBuilder.distinct()
Creates an
Aggregate that makes the
relational expression distinct on all fields. |
RelBuilder |
RelBuilder.empty()
Creates a relational expression that reads from an input and throws
all of the rows away.
|
RelBuilder |
RelBuilder.filter(Iterable<? extends RexNode> predicates)
Creates a
Filter of a list of
predicates. |
RelBuilder |
RelBuilder.filter(RexNode... predicates)
Creates a
Filter of an array of
predicates. |
RelBuilder |
RelBuilder.intersect(boolean all)
Creates an
Intersect of the two most
recent relational expressions on the stack. |
RelBuilder |
RelBuilder.intersect(boolean all,
int n)
Creates an
Intersect of the n
most recent relational expressions on the stack. |
RelBuilder |
RelBuilder.join(JoinRelType joinType,
Iterable<? extends RexNode> conditions)
Creates a
Join with multiple
conditions. |
RelBuilder |
RelBuilder.join(JoinRelType joinType,
RexNode condition) |
RelBuilder |
RelBuilder.join(JoinRelType joinType,
RexNode condition0,
RexNode... conditions)
Creates a
Join. |
RelBuilder |
RelBuilder.join(JoinRelType joinType,
RexNode condition,
Set<CorrelationId> variablesSet)
Creates a
Join with correlating
variables. |
RelBuilder |
RelBuilder.join(JoinRelType joinType,
String... fieldNames)
Creates a
Join using USING syntax. |
RelBuilder |
RelBuilder.limit(int offset,
int fetch)
Creates a limit without a sort.
|
RelBuilder |
RelBuilder.match(RexNode pattern,
boolean strictStart,
boolean strictEnd,
Map<String,RexNode> patternDefinitions,
Iterable<? extends RexNode> measureList,
RexNode after,
Map<String,? extends SortedSet<String>> subsets,
boolean allRows,
Iterable<? extends RexNode> partitionKeys,
Iterable<? extends RexNode> orderKeys,
RexNode interval)
Creates a
Match. |
RelBuilder |
RelBuilder.minus(boolean all)
Creates a
Minus of the two most recent
relational expressions on the stack. |
RelBuilder |
RelBuilder.minus(boolean all,
int n)
Creates a
Minus of the n
most recent relational expressions on the stack. |
RelBuilder |
RelBuilder.permute(Mapping mapping) |
RelBuilder |
RelBuilder.project(Iterable<? extends RexNode> nodes)
Creates a
Project of the given list
of expressions. |
RelBuilder |
RelBuilder.project(Iterable<? extends RexNode> nodes,
Iterable<String> fieldNames)
Creates a
Project of the given list
of expressions and field names. |
RelBuilder |
RelBuilder.project(Iterable<? extends RexNode> nodes,
Iterable<String> fieldNames,
boolean force)
Creates a
Project of the given list
of expressions, using the given names. |
RelBuilder |
RelBuilder.project(RexNode... nodes)
Creates a
Project of the given
expressions. |
RelBuilder |
RelBuilder.push(RelNode node)
Adds a relational expression to be the input to the next relational
expression constructed.
|
RelBuilder |
RelBuilder.pushAll(Iterable<? extends RelNode> nodes)
Pushes a collection of relational expressions.
|
RelBuilder |
RelBuilder.rename(List<String> fieldNames)
Ensures that the field names match those given.
|
RelBuilder |
RelBuilder.scan(Iterable<String> tableNames)
Creates a
TableScan of the table
with a given name. |
RelBuilder |
RelBuilder.scan(String... tableNames)
Creates a
TableScan of the table
with a given name. |
RelBuilder |
RelBuilder.semiJoin(Iterable<? extends RexNode> conditions)
Creates a
SemiJoin. |
RelBuilder |
RelBuilder.semiJoin(RexNode... conditions)
Creates a
SemiJoin. |
private RelBuilder |
RelBuilder.setOp(boolean all,
SqlKind kind,
int n) |
RelBuilder |
RelBuilder.sort(int... fields)
Creates a
Sort by field ordinals. |
RelBuilder |
RelBuilder.sort(Iterable<? extends RexNode> nodes)
Creates a
Sort by expressions. |
RelBuilder |
RelBuilder.sort(RexNode... nodes)
Creates a
Sort by expressions. |
RelBuilder |
RelBuilder.sortLimit(int offset,
int fetch,
Iterable<? extends RexNode> nodes)
Creates a
Sort by a list of expressions, with limit and offset. |
RelBuilder |
RelBuilder.sortLimit(int offset,
int fetch,
RexNode... nodes)
Creates a
Sort by expressions, with limit and offset. |
RelBuilder |
RelBuilder.union(boolean all)
Creates a
Union of the two most recent
relational expressions on the stack. |
RelBuilder |
RelBuilder.union(boolean all,
int n)
Creates a
Union of the n
most recent relational expressions on the stack. |
RelBuilder |
RelBuilder.values(Iterable<? extends List<RexLiteral>> tupleList,
RelDataType rowType)
Creates a
Values with a specified row type. |
RelBuilder |
RelBuilder.values(RelDataType rowType)
Creates a
Values with a specified row type and
zero rows. |
RelBuilder |
RelBuilder.values(RelDataType rowType,
Object... columnValues)
Creates a
Values with a specified row type. |
RelBuilder |
RelBuilder.values(String[] fieldNames,
Object... values)
Creates a
Values. |
RelBuilder |
RelBuilder.variable(Holder<RexCorrelVariable> v)
Creates a correlation variable for the current input, and writes it into
a Holder.
|
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.