public class RelBuilderTest extends Object
RelBuilder
.
Tasks:
RelBuilder.filter(org.apache.calcite.rex.RexNode...)
does not create a filter if the
predicates optimize to trueRelBuilder.filter(org.apache.calcite.rex.RexNode...)
DOES create a filter if the
predicates optimize to false. (Creating an empty Values seems too
devious.)RelBuilder.scan(java.lang.Iterable<java.lang.String>)
throws good error if table not
foundRelBuilder.scan(java.lang.Iterable<java.lang.String>)
obeys case-sensitivityRelBuilder.join(JoinRelType, String...)
obeys
case-sensitivityRelBuilder.field(String)
obeys case-sensitivityRelBuilder.alias(RexNode, String)
is removed if not a top-level
projectRelBuilder.aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)
with grouping setsRelBuilder.aggregateCall(org.apache.calcite.sql.SqlAggFunction, boolean, org.apache.calcite.rex.RexNode, java.lang.String, org.apache.calcite.rex.RexNode...)
with filterTableFunctionScan
Window
TableModify
Exchange
Correlate
AggregateCall
with filterConstructor and Description |
---|
RelBuilderTest() |
public static Frameworks.ConfigBuilder config()
public void testScan()
public void testScanQualifiedTable()
public void testScanInvalidTable()
public void testScanInvalidSchema()
public void testScanInvalidQualifiedTable()
public void testScanValidTableWrongCase()
public void testScanFilterTrue()
public void testScanFilterTriviallyFalse()
public void testScanFilterEquals()
public void testScanFilterOr()
public void testScanFilterOr2()
public void testScanFilterAndFalse()
public void testScanFilterAndTrue()
public void testBadFieldName()
public void testBadFieldOrdinal()
public void testBadType()
public void testProject()
public void testProject2()
public void testProjectIdentity()
public void testProjectIdentityWithFieldsRename()
public void testProjectIdentityWithFieldsRenameFilter()
testProjectIdentityWithFieldsRename()
: don't use a
table alias, and make sure the field names propagate through a filter.public void testProjectLeadingEdge()
public void testRename()
public void testRenameValues()
public void testPermute()
public void testConvert()
public void testConvertRename()
public void testAggregate()
public void testAggregate2()
public void testAggregate3()
public void testAggregate4()
testAggregate3()
but with Filter.public void testAggregateFilter()
public void testAggregateFilterFails()
public void testAggregateFilterNullable()
public void testAggregateProjectWithAliases()
Now, the alias does not cause a new expression to be added to the input, but causes the referenced fields to be renamed.
public void testAggregateProjectWithExpression()
public void testAggregateGroupingKeyOutOfRangeFails()
public void testAggregateGroupingSetNotSubsetFails()
public void testAggregateGroupingSetDuplicateIgnored()
public void testAggregateGrouping()
public void testAggregateGroupingWithDistinctFails()
public void testAggregateGroupingWithFilterFails()
public void testDistinct()
public void testDistinctAlready()
public void testDistinctEmpty()
public void testUnion()
public void testBadUnionArgsErrorMessage()
public void testUnion3()
public void testUnion1()
public void testIntersect()
public void testIntersect3()
public void testExcept()
public void testJoin()
public void testJoinUsing()
testJoin()
using USING.public void testJoin2()
public void testJoinCartesian()
public void testCorrelationFails()
public void testCorrelationWithCondition()
public void testAlias()
public void testAlias2()
public void testAliasSort()
public void testAliasLimit()
public void testAliasProject()
public void testAliasAggregate()
public void testProjectJoin()
public void testMultiLevelAlias()
public void testUnionAlias()
public void testAliasPastTop()
public void testAliasPastTop2()
public void testEmpty()
public void testValues()
public void testValuesNullable()
public void testValuesBadNullFieldNames()
public void testValuesBadNoFields()
public void testValuesBadNoValues()
public void testValuesBadOddMultiple()
public void testValuesBadAllNull()
public void testValuesAllNull()
public void testSort()
public void testTrivialSort()
public void testSortDuplicate()
public void testSortByExpression()
public void testLimit()
public void testSortLimit()
public void testSortLimit0()
public void testSortOverProjectSort()
public void testSortThenLimit()
In general a relational operator cannot rely on the order of its input, but it is reasonable to merge sort and limit if they were created by consecutive builder operations. And clients such as Piglet rely on it.
public void testSortExpThenLimit()
public void testRunValues() throws Exception
RelRunner
for a VALUES query.Exception
public void testRun() throws Exception
RelRunner
for a table scan + filter
query.Exception
public void testTypeInferenceValidation()
public void testMatchRecognize()
public void testFilterCastAny()
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.