This is an automated email from the ASF dual-hosted git repository. chunwei pushed a change to branch site in repository https://gitbox.apache.org/repos/asf/calcite.git.
from 92309ed Add 1.24.0 release announcement add 0fdf185 [CALCITE-4141] Make checkstyle tasks relocatable to support Gradle build cache add b7e2454 [CALCITE-4129] Support deep equality check for RelNode add 27c067a Add back API annotation in AbstractRelNode add 4625280 [CALCITE-4111] Remove VolcanoPlannerPhase in Planner (Jiatao Tao) add 4d345a6 [CALCITE-4115] Improve the prompt of using SQL keywords for sql parses (part2) add 8a459d9 [CALCITE-4022] Support unparse special syntax for INSERT (Xu Zhaohui) add a412ac1 [CALCITE-4114] Remove method CalciteAssert.forceDecorrelate (Jiatao Tao) add b306668 [CALCITE-2854] Codegen compile error when implementing unary minus function with data type BigDecimal (Qi Yu) add f03b455 Remove duplicate codes and fix typos (Auxten, Chunwei Lei) add b7aad0b [CALCITE-4139] Prevent NPE in ListTransientTable add 998cd83 [CALCITE-3923] Refactor how planner rules are parameterized add 8151c6f [CALCITE-4079] Dialect constants in SqlDialect can cause class initialization deadlock add a1bdba6 [CALCITE-4137] Checkstyle should ensure that every class has a Javadoc comment add 0431498 [CALCITE-4080] Allow character literals as column aliases, if SqlConformance.allowCharLiteralAlias() add e17a5c9 In SqlReturnType, add methods orElse and andThen add 03c76a7 [CALCITE-4134] Interval expressions add 9b678f1 [CALCITE-4128] Remove dependency of File adapter on Example CSV adapter add 19edf52 [CALCITE-2569] UDFs that are table functions must implement SqlTableFunction and have CURSOR as their return type add 885a3da [CALCITE-2160] Spatial: Add functions ST_MakeGrid and ST_MakeGridPoints add c52f0e5 [CALCITE-4145] Exception when query from UDF field with structured type add ce2ae64 [CALCITE-4102] Some improvements to aggregate related operations (Liya Fan) add 553a256 Site: update howto.md and revise the wrong issue link No new revisions were added by this update. Summary of changes: build.gradle.kts | 14 +- .../adapter/cassandra/CassandraEnumerator.java | 2 +- .../calcite/adapter/cassandra/CassandraRules.java | 181 +++-- .../calcite/adapter/cassandra/CassandraSchema.java | 7 +- .../adapter/cassandra/CassandraSchemaFactory.java | 2 +- .../calcite/adapter/cassandra/CassandraTable.java | 2 +- .../CassandraToEnumerableConverterRule.java | 27 +- .../apache/calcite/test/CassandraExtension.java | 9 +- core/src/main/codegen/templates/Parser.jj | 202 ++++- .../calcite/adapter/enumerable/EnumUtils.java | 27 +- .../enumerable/EnumerableAggregateRule.java | 16 +- .../EnumerableBatchNestedLoopJoinRule.java | 68 +- .../adapter/enumerable/EnumerableBindable.java | 26 +- .../adapter/enumerable/EnumerableCalcRule.java | 26 +- .../adapter/enumerable/EnumerableCollectRule.java | 16 +- .../enumerable/EnumerableCorrelateRule.java | 26 +- .../adapter/enumerable/EnumerableFilterRule.java | 23 +- .../enumerable/EnumerableFilterToCalcRule.java | 37 +- .../enumerable/EnumerableInterpreterRule.java | 25 +- .../enumerable/EnumerableIntersectRule.java | 16 +- .../adapter/enumerable/EnumerableJoinRule.java | 19 +- .../adapter/enumerable/EnumerableLimitRule.java | 28 +- .../adapter/enumerable/EnumerableMatchRule.java | 14 +- .../enumerable/EnumerableMergeJoinRule.java | 15 +- .../adapter/enumerable/EnumerableMinusRule.java | 16 +- .../adapter/enumerable/EnumerableProjectRule.java | 23 +- .../enumerable/EnumerableProjectToCalcRule.java | 36 +- .../enumerable/EnumerableRepeatUnionRule.java | 20 +- .../adapter/enumerable/EnumerableRules.java | 126 ++- .../adapter/enumerable/EnumerableSortRule.java | 14 +- .../enumerable/EnumerableSortedAggregateRule.java | 14 +- .../EnumerableTableFunctionScanRule.java | 40 +- .../enumerable/EnumerableTableModifyRule.java | 28 +- .../enumerable/EnumerableTableScanRule.java | 36 +- .../enumerable/EnumerableTableSpoolRule.java | 15 +- .../enumerable/EnumerableUncollectRule.java | 16 +- .../adapter/enumerable/EnumerableUnionRule.java | 16 +- .../adapter/enumerable/EnumerableValuesRule.java | 25 +- .../adapter/enumerable/EnumerableWindowRule.java | 16 +- .../calcite/adapter/enumerable/JavaRowFormat.java | 2 +- .../adapter/enumerable/NestedBlockBuilder.java | 3 +- .../adapter/enumerable/NestedBlockBuilderImpl.java | 3 +- .../ReflectiveCallNotNullImplementor.java | 5 +- .../calcite/adapter/enumerable/RexImpTable.java | 28 +- .../adapter/enumerable/RexToLixTranslator.java | 2 +- .../enumerable/impl/AggResetContextImpl.java | 2 +- .../enumerable/impl/AggResultContextImpl.java | 2 +- .../calcite/adapter/java/ReflectiveSchema.java | 2 +- .../calcite/adapter/jdbc/JdbcImplementor.java | 1 + .../org/apache/calcite/adapter/jdbc/JdbcRules.java | 282 ++++--- .../apache/calcite/adapter/jdbc/JdbcSchema.java | 2 +- .../jdbc/JdbcToEnumerableConverterRule.java | 19 +- .../calcite/config/CalciteConnectionConfig.java | 67 +- .../calcite/config/CalciteSystemProperty.java | 5 +- .../org/apache/calcite/interpreter/Bindables.java | 270 ++++--- .../interpreter/NoneToBindableConverterRule.java | 25 +- .../java/org/apache/calcite/interpreter/Row.java | 5 +- .../apache/calcite/jdbc/ContextSqlValidator.java | 5 +- .../org/apache/calcite/model/ModelHandler.java | 6 +- .../apache/calcite/plan/AbstractRelOptPlanner.java | 9 +- .../apache/calcite/plan/CommonRelSubExprRule.java | 23 +- .../java/org/apache/calcite/plan/Convention.java | 5 +- .../org/apache/calcite/plan/RelOptCluster.java | 1 + .../java/org/apache/calcite/plan/RelOptCost.java | 22 +- .../apache/calcite/plan/RelOptMaterialization.java | 4 +- .../org/apache/calcite/plan/RelOptPlanner.java | 8 +- .../java/org/apache/calcite/plan/RelOptRule.java | 38 +- .../org/apache/calcite/plan/RelOptRuleCall.java | 4 +- .../org/apache/calcite/plan/RelOptRuleOperand.java | 4 +- .../calcite/plan/RelOptRuleOperandChildren.java | 5 +- .../java/org/apache/calcite/plan/RelOptRules.java | 5 +- .../java/org/apache/calcite/plan/RelOptTable.java | 2 +- .../java/org/apache/calcite/plan/RelOptUtil.java | 47 +- .../main/java/org/apache/calcite/plan/RelRule.java | 324 ++++++++ .../java/org/apache/calcite/plan/RelTraitDef.java | 10 +- .../java/org/apache/calcite/plan/RelTraitSet.java | 2 +- .../org/apache/calcite/plan/TableAccessMap.java | 4 +- .../apache/calcite/plan/VisitorDataContext.java | 2 +- .../org/apache/calcite/plan/hep/HepPlanner.java | 3 +- .../apache/calcite/plan/hep/HepProgramBuilder.java | 3 +- .../org/apache/calcite/plan/hep/HepRelVertex.java | 6 +- .../org/apache/calcite/plan/hep/HepRuleCall.java | 3 +- .../calcite/plan/volcano/AbstractConverter.java | 44 +- .../ChainedPhaseRuleMappingInitializer.java | 68 -- .../calcite/plan/volcano/IterativeRuleDriver.java | 45 +- .../calcite/plan/volcano/IterativeRuleQueue.java | 137 +--- .../org/apache/calcite/plan/volcano/RelSet.java | 6 +- .../org/apache/calcite/plan/volcano/RelSubset.java | 38 +- .../calcite/plan/volcano/TopDownRuleDriver.java | 6 +- .../calcite/plan/volcano/VolcanoPlanner.java | 12 +- .../calcite/plan/volcano/VolcanoPlannerPhase.java | 26 - .../VolcanoPlannerPhaseRuleMappingInitializer.java | 49 -- .../calcite/plan/volcano/VolcanoRuleCall.java | 3 +- .../calcite/prepare/CalciteCatalogReader.java | 11 +- .../org/apache/calcite/prepare/PlannerImpl.java | 5 +- .../org/apache/calcite/rel/AbstractRelNode.java | 143 ++-- .../main/java/org/apache/calcite/rel/RelNode.java | 143 +--- .../java/org/apache/calcite/rel/RelWriter.java | 4 +- .../org/apache/calcite/rel/convert/Converter.java | 2 +- .../apache/calcite/rel/convert/ConverterRule.java | 100 ++- .../calcite/rel/convert/TraitMatchingRule.java | 77 +- .../org/apache/calcite/rel/core/Aggregate.java | 29 +- .../java/org/apache/calcite/rel/core/Calc.java | 6 + .../org/apache/calcite/rel/core/CorrelationId.java | 2 +- .../java/org/apache/calcite/rel/core/Filter.java | 20 +- .../java/org/apache/calcite/rel/core/Join.java | 30 +- .../java/org/apache/calcite/rel/core/Project.java | 18 +- .../org/apache/calcite/rel/core/RelFactories.java | 17 +- .../org/apache/calcite/rel/core/RepeatUnion.java | 2 +- .../java/org/apache/calcite/rel/core/Snapshot.java | 6 - .../java/org/apache/calcite/rel/core/Sort.java | 34 +- .../apache/calcite/rel/core/TableFunctionScan.java | 4 - .../org/apache/calcite/rel/core/TableScan.java | 6 - .../apache/calcite/rel/logical/LogicalFilter.java | 8 +- .../apache/calcite/rel/logical/LogicalJoin.java | 8 +- .../apache/calcite/rel/logical/LogicalProject.java | 8 +- .../calcite/rel/metadata/RelColumnOrigin.java | 12 +- .../calcite/rel/metadata/RelMdPredicates.java | 1 + .../org/apache/calcite/rel/metadata/RelMdUtil.java | 23 +- .../apache/calcite/rel/mutable/MutableCalc.java | 2 +- .../calcite/rel/mutable/MutableMultiRel.java | 2 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 32 +- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 10 +- .../rel/rules/AbstractJoinExtractFilterRule.java | 22 +- .../rel/rules/AbstractMaterializedViewRule.java | 48 -- .../rel/rules/AggregateCaseToFilterRule.java | 34 +- .../AggregateExpandDistinctAggregatesRule.java | 62 +- .../rel/rules/AggregateExtractProjectRule.java | 61 +- .../rel/rules/AggregateFilterTransposeRule.java | 58 +- .../rel/rules/AggregateJoinJoinRemoveRule.java | 66 +- .../calcite/rel/rules/AggregateJoinRemoveRule.java | 51 +- .../rel/rules/AggregateJoinTransposeRule.java | 79 +- .../calcite/rel/rules/AggregateMergeRule.java | 48 +- .../rel/rules/AggregateProjectMergeRule.java | 46 +- .../rules/AggregateProjectPullUpConstantsRule.java | 71 +- .../rel/rules/AggregateProjectStarTableRule.java | 78 ++ .../rel/rules/AggregateReduceFunctionsRule.java | 132 +-- .../calcite/rel/rules/AggregateRemoveRule.java | 52 +- .../calcite/rel/rules/AggregateStarTableRule.java | 62 +- .../rel/rules/AggregateUnionAggregateRule.java | 89 +- .../rel/rules/AggregateUnionTransposeRule.java | 48 +- .../calcite/rel/rules/AggregateValuesRule.java | 53 +- .../apache/calcite/rel/rules/CalcMergeRule.java | 46 +- .../apache/calcite/rel/rules/CalcRemoveRule.java | 50 +- .../apache/calcite/rel/rules/CalcSplitRule.java | 36 +- .../apache/calcite/rel/rules/CoerceInputsRule.java | 87 +- .../org/apache/calcite/rel/rules/CoreRules.java | 470 ++++------- .../apache/calcite/rel/rules/DateRangeRules.java | 68 +- .../rel/rules/ExchangeRemoveConstantKeysRule.java | 199 ++--- .../rel/rules/FilterAggregateTransposeRule.java | 72 +- .../calcite/rel/rules/FilterCalcMergeRule.java | 57 +- .../calcite/rel/rules/FilterCorrelateRule.java | 59 +- .../apache/calcite/rel/rules/FilterJoinRule.java | 195 +++-- .../apache/calcite/rel/rules/FilterMergeRule.java | 44 +- .../rel/rules/FilterMultiJoinMergeRule.java | 61 +- .../rel/rules/FilterProjectTransposeRule.java | 153 +++- .../rules/FilterRemoveIsNotDistinctFromRule.java | 46 +- .../rel/rules/FilterSetOpTransposeRule.java | 47 +- .../rules/FilterTableFunctionTransposeRule.java | 42 +- .../calcite/rel/rules/FilterTableScanRule.java | 74 +- .../apache/calcite/rel/rules/FilterToCalcRule.java | 42 +- .../calcite/rel/rules/IntersectToDistinctRule.java | 43 +- .../rel/rules/JoinAddRedundantSemiJoinRule.java | 46 +- .../calcite/rel/rules/JoinAssociateRule.java | 51 +- .../apache/calcite/rel/rules/JoinCommuteRule.java | 86 +- .../calcite/rel/rules/JoinExtractFilterRule.java | 38 +- .../rel/rules/JoinProjectTransposeRule.java | 266 +++--- .../calcite/rel/rules/JoinPushExpressionsRule.java | 47 +- .../calcite/rel/rules/JoinPushThroughJoinRule.java | 87 +- .../rules/JoinPushTransitivePredicatesRule.java | 66 +- .../calcite/rel/rules/JoinToCorrelateRule.java | 71 +- .../calcite/rel/rules/JoinToMultiJoinRule.java | 72 +- .../calcite/rel/rules/JoinUnionTransposeRule.java | 65 +- .../org/apache/calcite/rel/rules/LoptJoinTree.java | 4 +- .../apache/calcite/rel/rules/LoptMultiJoin.java | 224 +++--- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 54 +- .../calcite/rel/rules/LoptSemiJoinOptimizer.java | 10 +- .../org/apache/calcite/rel/rules/MatchRule.java | 32 +- .../rel/rules/MaterializedViewFilterScanRule.java | 61 +- .../org/apache/calcite/rel/rules/MultiJoin.java | 26 +- .../rel/rules/MultiJoinOptimizeBushyRule.java | 36 +- .../rel/rules/MultiJoinProjectTransposeRule.java | 87 +- .../calcite/rel/rules/ProjectCalcMergeRule.java | 60 +- .../rel/rules/ProjectCorrelateTransposeRule.java | 129 +-- .../rel/rules/ProjectFilterTransposeRule.java | 163 ++-- .../rel/rules/ProjectJoinJoinRemoveRule.java | 67 +- .../calcite/rel/rules/ProjectJoinRemoveRule.java | 56 +- .../rel/rules/ProjectJoinTransposeRule.java | 124 +-- .../apache/calcite/rel/rules/ProjectMergeRule.java | 99 ++- .../rel/rules/ProjectMultiJoinMergeRule.java | 61 +- .../calcite/rel/rules/ProjectRemoveRule.java | 46 +- .../rel/rules/ProjectSetOpTransposeRule.java | 101 +-- .../rel/rules/ProjectSortTransposeRule.java | 85 -- .../calcite/rel/rules/ProjectTableScanRule.java | 77 +- .../calcite/rel/rules/ProjectToCalcRule.java | 44 +- .../calcite/rel/rules/ProjectToWindowRule.java | 119 +-- .../rel/rules/ProjectWindowTransposeRule.java | 61 +- .../apache/calcite/rel/rules/PruneEmptyRules.java | 425 ++++++---- .../apache/calcite/rel/rules/PushProjector.java | 10 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 136 ++-- .../calcite/rel/rules/ReduceExpressionsRule.java | 286 +++++-- .../rel/rules/SemiJoinFilterTransposeRule.java | 55 +- .../rel/rules/SemiJoinJoinTransposeRule.java | 91 ++- .../rel/rules/SemiJoinProjectTransposeRule.java | 62 +- .../calcite/rel/rules/SemiJoinRemoveRule.java | 45 +- .../org/apache/calcite/rel/rules/SemiJoinRule.java | 131 +-- .../apache/calcite/rel/rules/SortJoinCopyRule.java | 48 +- .../calcite/rel/rules/SortJoinTransposeRule.java | 51 +- .../rel/rules/SortProjectTransposeRule.java | 85 +- .../rel/rules/SortRemoveConstantKeysRule.java | 30 +- .../apache/calcite/rel/rules/SortRemoveRule.java | 38 +- .../calcite/rel/rules/SortUnionTransposeRule.java | 82 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 241 +++--- .../apache/calcite/rel/rules/TableScanRule.java | 35 +- .../calcite/rel/rules/UnionEliminatorRule.java | 45 +- .../apache/calcite/rel/rules/UnionMergeRule.java | 79 +- .../rel/rules/UnionPullUpConstantsRule.java | 50 +- .../calcite/rel/rules/UnionToDistinctRule.java | 54 +- .../apache/calcite/rel/rules/ValuesReduceRule.java | 113 ++- .../materialize/MaterializedViewAggregateRule.java | 138 ++-- .../materialize/MaterializedViewJoinRule.java | 28 +- .../MaterializedViewOnlyAggregateRule.java | 63 +- .../MaterializedViewOnlyFilterRule.java | 40 +- .../materialize/MaterializedViewOnlyJoinRule.java | 40 +- .../MaterializedViewProjectAggregateRule.java | 67 +- .../MaterializedViewProjectFilterRule.java | 44 +- .../MaterializedViewProjectJoinRule.java | 44 +- .../rules/materialize/MaterializedViewRule.java | 79 +- .../rules/materialize/MaterializedViewRules.java | 34 +- .../org/apache/calcite/rel/stream/StreamRules.java | 293 ++++--- .../org/apache/calcite/rel/type/RelDataType.java | 23 +- .../calcite/rel/type/RelDataTypeFactory.java | 4 +- .../java/org/apache/calcite/rex/RexBuilder.java | 15 +- .../org/apache/calcite/rex/RexFieldAccess.java | 13 +- .../java/org/apache/calcite/rex/RexLiteral.java | 6 +- .../org/apache/calcite/rex/RexMultisetUtil.java | 4 +- .../org/apache/calcite/rex/RexPatternFieldRef.java | 2 +- .../java/org/apache/calcite/rex/RexProgram.java | 2 +- .../org/apache/calcite/rex/RexProgramBuilder.java | 6 +- .../java/org/apache/calcite/rex/RexShuttle.java | 8 - .../java/org/apache/calcite/rex/RexSimplify.java | 4 +- .../rex/RexSqlReflectiveConvertletTable.java | 2 +- .../java/org/apache/calcite/rex/RexSubQuery.java | 16 +- .../org/apache/calcite/rex/RexTableInputRef.java | 3 +- .../main/java/org/apache/calcite/rex/RexUtil.java | 6 +- .../calcite/runtime/CalciteContextException.java | 15 +- .../apache/calcite/runtime/CalciteResource.java | 6 + .../org/apache/calcite/runtime/Enumerables.java | 2 +- .../apache/calcite/runtime/EnumeratorCursor.java | 3 +- .../org/apache/calcite/runtime/GeoFunctions.java | 96 +++ .../main/java/org/apache/calcite/runtime/Hook.java | 3 + .../java/org/apache/calcite/runtime/Matcher.java | 2 +- .../java/org/apache/calcite/runtime/Pattern.java | 6 +- .../calcite/runtime/ResultSetEnumerable.java | 4 +- .../apache/calcite/runtime/SocketFactoryImpl.java | 24 +- .../org/apache/calcite/runtime/SqlFunctions.java | 6 +- .../calcite/runtime/TrustAllSslSocketFactory.java | 2 + .../java/org/apache/calcite/runtime/Utilities.java | 1 + .../calcite/schema/impl/ListTransientTable.java | 2 +- .../schema/impl/ReflectiveFunctionBase.java | 10 +- .../calcite/schema/impl/ScalarFunctionImpl.java | 31 + .../org/apache/calcite/sql/JoinConditionType.java | 10 +- .../java/org/apache/calcite/sql/SqlAccessEnum.java | 2 +- .../java/org/apache/calcite/sql/SqlAccessType.java | 4 +- .../java/org/apache/calcite/sql/SqlAsOperator.java | 2 +- .../apache/calcite/sql/SqlBasicTypeNameSpec.java | 2 +- .../org/apache/calcite/sql/SqlBinaryOperator.java | 70 +- .../apache/calcite/sql/SqlBinaryStringLiteral.java | 12 +- .../main/java/org/apache/calcite/sql/SqlCall.java | 4 +- .../org/apache/calcite/sql/SqlCallBinding.java | 86 +- .../apache/calcite/sql/SqlCharStringLiteral.java | 11 +- .../java/org/apache/calcite/sql/SqlCollation.java | 6 +- .../java/org/apache/calcite/sql/SqlDelete.java | 4 +- .../java/org/apache/calcite/sql/SqlDialect.java | 14 +- .../apache/calcite/sql/SqlExecutableStatement.java | 32 - .../java/org/apache/calcite/sql/SqlExplain.java | 10 +- .../java/org/apache/calcite/sql/SqlFunction.java | 15 +- .../java/org/apache/calcite/sql/SqlInsert.java | 20 +- .../apache/calcite/sql/SqlIntervalQualifier.java | 7 +- .../apache/calcite/sql/SqlJdbcFunctionCall.java | 10 +- .../calcite/sql/SqlJsonConstructorNullClause.java | 2 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 461 ++++------- .../java/org/apache/calcite/sql/SqlLiteral.java | 62 +- .../main/java/org/apache/calcite/sql/SqlMerge.java | 25 +- .../main/java/org/apache/calcite/sql/SqlNode.java | 12 + .../java/org/apache/calcite/sql/SqlOperator.java | 27 +- .../org/apache/calcite/sql/SqlOperatorBinding.java | 24 +- .../org/apache/calcite/sql/SqlOverOperator.java | 2 +- ...perandCountRange.java => SqlTableFunction.java} | 24 +- .../java/org/apache/calcite/sql/SqlUpdate.java | 16 +- .../main/java/org/apache/calcite/sql/SqlUtil.java | 34 +- .../java/org/apache/calcite/sql/SqlWindow.java | 1 + .../apache/calcite/sql/SqlWindowTableFunction.java | 91 ++- .../apache/calcite/sql/SqlWithinGroupOperator.java | 4 +- .../org/apache/calcite/sql/advise/SqlAdvisor.java | 45 +- .../apache/calcite/sql/advise/SqlAdvisorHint2.java | 2 +- .../apache/calcite/sql/advise/SqlSimpleParser.java | 27 +- .../org/apache/calcite/sql/ddl/SqlDdlNodes.java | 2 +- .../calcite/sql/dialect/BigQuerySqlDialect.java | 12 +- .../apache/calcite/sql/dialect/Db2SqlDialect.java | 2 +- .../calcite/sql/dialect/MssqlSqlDialect.java | 2 +- .../sql/fun/SqlArgumentAssignmentOperator.java | 2 +- .../java/org/apache/calcite/sql/fun/SqlCase.java | 2 +- .../calcite/sql/fun/SqlCoalesceFunction.java | 3 +- .../sql/fun/SqlCollectionTableOperator.java | 2 +- .../apache/calcite/sql/fun/SqlGeoFunctions.java | 134 ++++ .../calcite/sql/fun/SqlIntervalOperator.java | 83 ++ .../calcite/sql/fun/SqlJsonDepthFunction.java | 3 +- .../calcite/sql/fun/SqlJsonExistsFunction.java | 5 +- .../calcite/sql/fun/SqlJsonKeysFunction.java | 10 +- .../calcite/sql/fun/SqlJsonLengthFunction.java | 3 +- .../calcite/sql/fun/SqlJsonPrettyFunction.java | 9 +- .../calcite/sql/fun/SqlJsonQueryFunction.java | 7 +- .../calcite/sql/fun/SqlJsonRemoveFunction.java | 13 +- .../sql/fun/SqlJsonStorageSizeFunction.java | 10 +- .../calcite/sql/fun/SqlJsonTypeFunction.java | 12 +- .../sql/fun/SqlJsonValueExpressionOperator.java | 5 +- .../calcite/sql/fun/SqlLeadLagAggFunction.java | 25 +- .../sql/fun/SqlLibraryOperatorTableFactory.java | 4 +- .../calcite/sql/fun/SqlLibraryOperators.java | 105 ++- .../calcite/sql/fun/SqlLiteralChainOperator.java | 2 +- .../calcite/sql/fun/SqlRegexpReplaceFunction.java | 14 +- .../calcite/sql/fun/SqlStdOperatorTable.java | 17 +- .../apache/calcite/sql/fun/SqlTrimFunction.java | 8 +- .../apache/calcite/sql/parser/SqlParserPos.java | 22 +- .../apache/calcite/sql/parser/SqlParserUtil.java | 47 +- .../calcite/sql/type/FamilyOperandTypeChecker.java | 18 +- .../sql/type/MultisetOperandTypeChecker.java | 4 +- .../org/apache/calcite/sql/type/OperandTypes.java | 30 +- .../org/apache/calcite/sql/type/ReturnTypes.java | 120 +-- .../calcite/sql/type/SqlOperandTypeChecker.java | 6 +- .../calcite/sql/type/SqlOperandTypeInference.java | 2 + .../calcite/sql/type/SqlReturnTypeInference.java | 17 +- .../sql/type/SqlReturnTypeInferenceChain.java | 7 +- .../org/apache/calcite/sql/type/SqlTypeFamily.java | 13 +- .../org/apache/calcite/sql/type/SqlTypeName.java | 16 +- .../apache/calcite/sql/type/SqlTypeTransform.java | 2 + .../calcite/sql/type/SqlTypeTransformCascade.java | 10 +- .../apache/calcite/sql/type/SqlTypeTransforms.java | 2 +- .../org/apache/calcite/sql/type/SqlTypeUtil.java | 172 ++-- .../org/apache/calcite/sql/util/SqlVisitor.java | 2 +- .../apache/calcite/sql/validate/AggVisitor.java | 22 +- .../sql/validate/AggregatingSelectScope.java | 13 +- .../calcite/sql/validate/ProcedureNamespace.java | 27 +- .../apache/calcite/sql/validate/SelectScope.java | 4 +- .../sql/validate/SqlAbstractConformance.java | 4 + .../calcite/sql/validate/SqlConformance.java | 19 + .../calcite/sql/validate/SqlConformanceEnum.java | 14 + .../apache/calcite/sql/validate/SqlMoniker.java | 2 +- .../sql/validate/SqlUserDefinedTableFunction.java | 40 +- .../sql/validate/SqlUserDefinedTableMacro.java | 135 +--- .../apache/calcite/sql/validate/SqlValidator.java | 16 +- .../sql/validate/SqlValidatorCatalogReader.java | 5 +- .../calcite/sql/validate/SqlValidatorImpl.java | 39 +- .../calcite/sql/validate/SqlValidatorScope.java | 2 + .../calcite/sql/validate/SqlValidatorTable.java | 2 +- .../sql/validate/SqlValidatorWithHints.java | 4 +- .../calcite/sql/validate/TableNamespace.java | 4 +- .../sql/validate/implicit/TypeCoercionImpl.java | 7 +- .../calcite/sql2rel/ReflectiveConvertletTable.java | 4 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 348 +++++--- .../calcite/sql2rel/SqlNodeToRexConverterImpl.java | 9 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 17 +- .../calcite/sql2rel/StandardConvertletTable.java | 20 +- .../apache/calcite/sql2rel/SubQueryConverter.java | 4 +- .../org/apache/calcite/tools/FrameworkConfig.java | 2 +- .../org/apache/calcite/tools/PigRelBuilder.java | 4 +- .../java/org/apache/calcite/tools/Planner.java | 1 + .../java/org/apache/calcite/tools/Programs.java | 3 +- .../java/org/apache/calcite/tools/RelBuilder.java | 15 +- .../java/org/apache/calcite/util/BlackholeMap.java | 2 +- .../src/main/java/org/apache/calcite/util/Bug.java | 3 +- .../org/apache/calcite/util/BuiltInMethod.java | 4 +- .../java/org/apache/calcite/util/CancelFlag.java | 4 +- .../org/apache/calcite/util/ConversionUtil.java | 4 +- .../apache/calcite/util/DateTimeStringUtils.java | 3 +- .../org/apache/calcite/util/ImmutableBeans.java | 2 +- .../org/apache/calcite/util/ImmutableBitSet.java | 13 + .../java/org/apache/calcite/util/NumberUtil.java | 6 +- .../main/java/org/apache/calcite/util/Sources.java | 7 +- .../java/org/apache/calcite/util/StackWriter.java | 16 +- .../main/java/org/apache/calcite/util/Util.java | 12 +- .../java/org/apache/calcite/util/XmlOutput.java | 29 +- .../util/graph/AttributedDirectedGraph.java | 1 + .../util/mapping/AbstractSourceMapping.java | 4 +- .../util/mapping/AbstractTargetMapping.java | 4 +- .../apache/calcite/util/trace/CalciteLogger.java | 24 +- .../calcite/runtime/CalciteResource.properties | 2 + .../calcite/adapter/enumerable/TypeFinderTest.java | 3 +- .../calcite/jdbc/CalciteRemoteDriverTest.java | 4 +- .../apache/calcite/jdbc/JavaTypeFactoryTest.java | 4 +- .../materialize/NormalizationTrimFieldTest.java | 23 +- .../org/apache/calcite/plan/RelOptUtilTest.java | 133 ++- .../org/apache/calcite/plan/RelWriterTest.java | 13 +- .../plan/volcano/CollationConversionTest.java | 58 +- .../apache/calcite/plan/volcano/ComboRuleTest.java | 62 +- .../apache/calcite/plan/volcano/PlannerTests.java | 73 +- .../calcite/plan/volcano/TraitConversionTest.java | 55 +- .../calcite/plan/volcano/TraitPropagationTest.java | 130 +-- .../calcite/plan/volcano/VolcanoPlannerTest.java | 321 +++++--- .../plan/volcano/VolcanoPlannerTraitTest.java | 182 +++-- .../rel/logical/ToLogicalConverterTest.java | 27 + .../rel/rel2sql/RelToSqlConverterStructsTest.java | 22 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 19 +- .../calcite/rel/rules/SortRemoveRuleTest.java | 3 +- .../org/apache/calcite/rex/RexBuilderTest.java | 10 +- .../org/apache/calcite/rex/RexProgramTest.java | 7 +- .../org/apache/calcite/rex/RexProgramTestBase.java | 5 +- .../runtime/DeterministicAutomatonTest.java | 2 +- .../apache/calcite/sql/parser/SqlParserTest.java | 205 ++++- .../apache/calcite/sql/test/AbstractSqlTester.java | 2 +- .../calcite/sql/test/SqlOperatorBaseTest.java | 2 +- .../java/org/apache/calcite/sql/test/SqlTests.java | 4 +- .../calcite/sql/type/RelDataTypeSystemTest.java | 2 +- .../calcite/sql2rel/RelFieldTrimmerTest.java | 1 + .../calcite/test/AbstractMaterializedViewTest.java | 4 +- .../org/apache/calcite/test/BookstoreSchema.java | 15 +- .../org/apache/calcite/test/CalciteAssert.java | 79 +- .../java/org/apache/calcite/test/DiffTestCase.java | 9 +- .../org/apache/calcite/test/HepPlannerTest.java | 36 +- .../org/apache/calcite/test/HierarchySchema.java | 4 +- .../org/apache/calcite/test/JdbcAdapterTest.java | 5 +- .../apache/calcite/test/JdbcFrontLinqBackTest.java | 12 +- .../java/org/apache/calcite/test/JdbcTest.java | 43 +- .../java/org/apache/calcite/test/LatticeTest.java | 10 +- .../calcite/test/LogicalProjectDigestTest.java | 4 +- .../java/org/apache/calcite/test/Matchers.java | 4 +- .../org/apache/calcite/test/MockRelOptPlanner.java | 3 +- .../apache/calcite/test/MockSqlOperatorTable.java | 139 ++-- .../org/apache/calcite/test/MutableRelTest.java | 6 +- .../apache/calcite/test/ReflectiveSchemaTest.java | 28 +- .../org/apache/calcite/test/RelBuilderTest.java | 8 +- .../test/RelMdPercentageOriginalRowsTest.java | 43 - .../org/apache/calcite/test/RelOptRulesTest.java | 892 +++++++++++---------- .../org/apache/calcite/test/RelOptTestBase.java | 1 + .../org/apache/calcite/test/RexShuttleTest.java | 2 +- .../apache/calcite/test/SqlHintsConverterTest.java | 60 +- .../calcite/test/SqlOperatorBindingTest.java | 89 +- .../apache/calcite/test/SqlToRelConverterTest.java | 155 ++-- .../org/apache/calcite/test/SqlValidatorTest.java | 191 +++-- .../apache/calcite/test/StatesTableFunction.java | 121 +++ .../org/apache/calcite/test/TableFunctionTest.java | 32 +- .../org/apache/calcite/test/TypeCoercionTest.java | 2 +- .../org/apache/calcite/test/catalog/Fixture.java | 2 +- .../calcite/test/catalog/MockCatalogReader.java | 2 +- .../test/concurrent/ConcurrentTestCommand.java | 2 +- .../concurrent/ConcurrentTestCommandExecutor.java | 2 +- .../concurrent/ConcurrentTestCommandGenerator.java | 10 +- .../concurrent/ConcurrentTestCommandScript.java | 6 +- .../test/concurrent/ConcurrentTestPlugin.java | 2 +- .../EnumerableBatchNestedLoopJoinTest.java | 2 +- .../test/enumerable/EnumerableCalcTest.java | 2 +- .../test/enumerable/EnumerableCorrelateTest.java | 11 +- .../test/enumerable/EnumerableRepeatUnionTest.java | 23 + .../enumerable/EnumerableSortedAggregateTest.java | 5 +- .../test/enumerable/EnumerableUncollectTest.java | 1 + .../calcite/test/fuzzer/RexProgramFuzzyTest.java | 2 +- .../org/apache/calcite/tools/FrameworksTest.java | 31 +- .../java/org/apache/calcite/tools/PlannerTest.java | 173 ++-- .../java/org/apache/calcite/util/BitSetsTest.java | 4 +- .../apache/calcite/util/ImmutableBitSetTest.java | 20 + .../test/java/org/apache/calcite/util/Smalls.java | 12 +- .../java/org/apache/calcite/util/SourceTest.java | 2 +- .../java/org/apache/calcite/util/TestUtilTest.java | 2 +- .../apache/calcite/test/SqlToRelConverterTest.xml | 24 +- core/src/test/resources/sql/misc.iq | 27 + core/src/test/resources/sql/spatial.iq | 96 ++- .../adapter/druid/BinaryOperatorConversion.java | 3 +- .../adapter/druid/CeilOperatorConversion.java | 3 +- .../calcite/adapter/druid/ComplexMetric.java | 12 +- .../calcite/adapter/druid/DruidDateTimeUtils.java | 8 +- .../calcite/adapter/druid/DruidExpressions.java | 16 +- .../calcite/adapter/druid/DruidJsonFilter.java | 70 +- .../apache/calcite/adapter/druid/DruidQuery.java | 75 +- .../apache/calcite/adapter/druid/DruidRules.java | 462 +++++------ .../adapter/druid/DruidSqlCastConverter.java | 3 +- .../adapter/druid/DruidSqlOperatorConverter.java | 3 +- .../apache/calcite/adapter/druid/DruidTable.java | 13 +- .../apache/calcite/adapter/druid/DruidType.java | 13 +- .../adapter/druid/ExtractOperatorConversion.java | 12 +- .../adapter/druid/ExtractionDimensionSpec.java | 6 +- .../adapter/druid/FloorOperatorConversion.java | 3 +- .../adapter/druid/NaryOperatorConverter.java | 3 +- .../adapter/druid/SubstringOperatorConversion.java | 2 +- .../adapter/druid/TimeExtractionFunction.java | 8 +- .../druid/UnaryPrefixOperatorConversion.java | 3 +- .../druid/UnarySuffixOperatorConversion.java | 3 +- .../calcite/adapter/druid/VirtualColumn.java | 2 +- .../org/apache/calcite/test/DruidAdapter2IT.java | 127 ++- .../org/apache/calcite/test/DruidAdapterIT.java | 195 ++--- .../elasticsearch/ElasticsearchConstants.java | 3 +- .../adapter/elasticsearch/ElasticsearchJson.java | 31 +- .../adapter/elasticsearch/ElasticsearchRules.java | 68 +- .../adapter/elasticsearch/ElasticsearchSchema.java | 2 +- .../elasticsearch/ElasticsearchSchemaFactory.java | 3 +- .../elasticsearch/ElasticsearchSearchResult.java | 6 +- .../ElasticsearchToEnumerableConverterRule.java | 26 +- .../elasticsearch/ElasticsearchTransport.java | 3 +- .../adapter/elasticsearch/PredicateAnalyzer.java | 26 +- .../adapter/elasticsearch/QueryBuilders.java | 7 +- .../calcite/adapter/elasticsearch/Scrolling.java | 5 +- .../adapter/elasticsearch/AggregationTest.java | 10 +- .../adapter/elasticsearch/BooleanLogicTest.java | 3 +- .../elasticsearch/ElasticSearchAdapterTest.java | 14 +- .../elasticsearch/ElasticsearchVersionTest.java | 2 +- .../elasticsearch/EmbeddedElasticsearchNode.java | 13 +- .../elasticsearch/EmbeddedElasticsearchPolicy.java | 1 + .../calcite/adapter/elasticsearch/MatchTest.java | 5 +- .../adapter/elasticsearch/Projection2Test.java | 6 +- .../adapter/elasticsearch/ProjectionTest.java | 2 +- .../adapter/elasticsearch/QueryBuildersTest.java | 3 +- .../apache/calcite/test/ElasticsearchChecker.java | 2 +- example/csv/build.gradle.kts | 1 + .../calcite/adapter/csv/CsvFilterableTable.java | 7 +- .../adapter/csv/CsvProjectTableScanRule.java | 39 +- .../org/apache/calcite/adapter/csv/CsvRules.java | 4 +- .../calcite/adapter/csv/CsvScannableTable.java | 7 +- .../org/apache/calcite/adapter/csv/CsvSchema.java | 1 + .../calcite/adapter/csv/CsvSchemaFactory.java | 4 - .../adapter/csv/CsvStreamScannableTable.java | 7 +- .../org/apache/calcite/adapter/csv/CsvTable.java | 2 + .../apache/calcite/adapter/csv/CsvTableScan.java | 3 +- .../calcite/adapter/csv/CsvTranslatableTable.java | 9 +- .../apache/calcite/test/ExampleFunctionTest.java | 2 +- file/build.gradle.kts | 4 +- .../calcite/adapter/file}/CsvEnumerator.java | 85 +- .../apache/calcite/adapter/file}/CsvFieldType.java | 4 +- .../adapter/file}/CsvProjectTableScanRule.java | 41 +- .../calcite/adapter/file}/CsvStreamReader.java | 2 +- .../org/apache/calcite/adapter/file}/CsvTable.java | 5 +- .../calcite/adapter/file}/CsvTableFactory.java | 8 +- .../apache/calcite/adapter/file}/CsvTableScan.java | 8 +- .../adapter/file}/CsvTranslatableTable.java | 18 +- .../org/apache/calcite/adapter/file/FileRules.java | 12 +- .../apache/calcite/adapter/file/FileSchema.java | 55 +- .../calcite/adapter/file/FileSchemaFactory.java | 20 +- .../calcite/adapter/file}/JsonEnumerator.java | 2 +- .../calcite/adapter/file}/JsonScannableTable.java | 2 +- .../apache/calcite/adapter/file}/JsonTable.java | 4 +- .../calcite/adapter/file/FileAdapterTest.java | 727 +++++++---------- .../calcite/adapter/file/FileAdapterTests.java | 222 +++++ .../calcite/adapter/file/FileReaderTest.java | 2 +- .../org/apache/calcite/adapter/file/SqlTest.java | 419 ---------- {example/csv => file}/src/test/resources/bug.json | 2 +- {example/csv => file}/src/test/resources/bug.yaml | 0 .../src/test/resources/bug/ARCHERS.json | 0 .../test/resources/{sales-json => bug}/DATE.csv | 0 .../src/test/resources/bug/LONG_EMPS.csv | 0 .../src/test/resources/bug/WACKY_COLUMN_NAMES.csv | 0 .../src/test/resources/filterable-model.json | 2 +- file/src/test/resources/geo/states.json | 168 ++++ .../test/resources/model-with-custom-table.json | 2 +- .../csv => file}/src/test/resources/model.json | 2 +- .../test/resources/{sales-csv => sales}/DEPTS.csv | 0 .../resources/{sales-csv => sales}/EMPS.csv.gz | Bin .../csv => file}/src/test/resources/smart.json | 2 +- .../calcite/adapter/geode/rel/GeodeFilter.java | 14 +- .../calcite/adapter/geode/rel/GeodeRules.java | 104 ++- .../calcite/adapter/geode/rel/GeodeTable.java | 2 +- .../geode/rel/GeodeToEnumerableConverterRule.java | 12 +- .../calcite/adapter/geode/rel/package-info.java | 2 +- .../geode/simple/GeodeSimpleScannableTable.java | 2 +- .../calcite/adapter/geode/simple/package-info.java | 2 +- .../calcite/adapter/geode/util/GeodeUtils.java | 2 +- .../calcite/adapter/geode/util/package-info.java | 2 +- .../adapter/geode/rel/GeodeAllDataTypesTest.java | 4 +- .../adapter/geode/simple/BookMasterRegionTest.java | 2 +- .../adapter/kafka/KafkaMessageEnumerator.java | 5 +- .../calcite/adapter/kafka/KafkaRowConverter.java | 8 +- .../adapter/kafka/KafkaRowConverterImpl.java | 11 +- .../adapter/kafka/KafkaRowConverterTest.java | 12 +- .../apache/calcite/linq4j/EnumerableDefaults.java | 39 +- .../linq4j/tree/ArrayLengthRecordField.java | 2 +- .../apache/calcite/linq4j/tree/BlockBuilder.java | 6 +- .../apache/calcite/linq4j/tree/BlockStatement.java | 4 +- .../linq4j/tree/ConstructorDeclaration.java | 4 +- .../linq4j/tree/DeterministicCodeOptimizer.java | 2 +- .../calcite/linq4j/tree/ForEachStatement.java | 4 +- .../apache/calcite/linq4j/tree/ForStatement.java | 4 +- .../calcite/linq4j/tree/FunctionExpression.java | 4 +- .../calcite/linq4j/tree/MethodCallExpression.java | 4 +- .../calcite/linq4j/tree/NewArrayExpression.java | 4 +- .../apache/calcite/linq4j/tree/NewExpression.java | 4 +- .../calcite/linq4j/tree/OptimizeShuttle.java | 5 +- .../org/apache/calcite/linq4j/tree/Primitive.java | 4 +- .../calcite/linq4j/tree/ReflectedPseudoField.java | 3 +- .../calcite/linq4j/MemoryEnumerableTest.java | 2 +- .../calcite/linq4j/test/BlockBuilderBase.java | 2 +- .../calcite/linq4j/test/BlockBuilderTest.java | 13 +- .../calcite/linq4j/test/CorrelateJoinTest.java | 2 +- .../calcite/linq4j/test/DeterministicTest.java | 8 +- .../calcite/linq4j/test/JoinPreserveOrderTest.java | 4 +- .../calcite/adapter/mongodb/MongoEnumerator.java | 4 +- .../apache/calcite/adapter/mongodb/MongoRules.java | 61 +- .../mongodb/MongoToEnumerableConverterRule.java | 24 +- .../calcite/adapter/mongodb/MongoAdapterTest.java | 2 +- .../apache/calcite/adapter/pig/PigAggregate.java | 11 +- .../org/apache/calcite/adapter/pig/PigFilter.java | 6 +- .../org/apache/calcite/adapter/pig/PigRules.java | 74 +- .../adapter/pig/PigToEnumerableConverterRule.java | 12 +- .../calcite/test/PigRelBuilderStyleTest.java | 23 +- .../org/apache/calcite/piglet/PigConverter.java | 3 +- .../org/apache/calcite/piglet/PigRelBuilder.java | 6 +- .../org/apache/calcite/piglet/PigRelExVisitor.java | 8 +- .../calcite/piglet/PigRelOpInnerVisitor.java | 1 + .../org/apache/calcite/piglet/PigRelOpVisitor.java | 6 +- .../org/apache/calcite/piglet/PigRelSqlUdfs.java | 8 +- .../calcite/piglet/PigRelToSqlConverter.java | 1 + .../calcite/piglet/PigToSqlAggregateRule.java | 97 ++- .../calcite/piglet/PigUserDefinedFunction.java | 4 +- .../calcite/chinook/ChosenCustomerEmail.java | 2 +- .../org/apache/calcite/chinook/CodesFunction.java | 2 +- .../apache/calcite/chinook/ConnectionFactory.java | 4 +- .../apache/calcite/chinook/EnvironmentFairy.java | 2 +- .../calcite/chinook/StringConcatFunction.java | 2 +- .../RemotePreparedStatementParametersTest.java | 3 +- .../apache/calcite/adapter/redis/package-info.java | 6 +- site/_docs/history.md | 2 +- site/_docs/howto.md | 121 ++- site/_docs/reference.md | 8 +- site/_docs/tutorial.md | 50 +- site/_posts/2020-07-24-release-1.24.0.md | 2 +- .../spark/EnumerableToSparkConverterRule.java | 56 -- .../adapter/spark/JdbcToSparkConverterRule.java | 20 +- .../calcite/adapter/spark/SparkHandlerImpl.java | 2 +- .../apache/calcite/adapter/spark/SparkRules.java | 98 ++- .../calcite/adapter/splunk/SplunkPushDownRule.java | 96 ++- src/main/config/checkstyle/checker.xml | 26 +- .../enumerable/CodeGenerationBenchmark.java | 2 +- .../calcite/adapter/enumerable/package-info.java | 2 +- .../benchmarks/DefaultDirectedGraphBenchmark.java | 3 +- .../apache/calcite/benchmarks/ParserBenchmark.java | 2 +- .../calcite/benchmarks/PreconditionTest.java | 2 +- .../apache/calcite/benchmarks/package-info.java | 2 +- 634 files changed, 14026 insertions(+), 10161 deletions(-) create mode 100644 core/src/main/java/org/apache/calcite/plan/RelRule.java delete mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/ChainedPhaseRuleMappingInitializer.java delete mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlannerPhase.java delete mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlannerPhaseRuleMappingInitializer.java delete mode 100644 core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java create mode 100644 core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectStarTableRule.java delete mode 100644 core/src/main/java/org/apache/calcite/rel/rules/ProjectSortTransposeRule.java delete mode 100644 core/src/main/java/org/apache/calcite/sql/SqlExecutableStatement.java copy core/src/main/java/org/apache/calcite/sql/{SqlOperandCountRange.java => SqlTableFunction.java} (64%) create mode 100644 core/src/main/java/org/apache/calcite/sql/fun/SqlGeoFunctions.java create mode 100644 core/src/main/java/org/apache/calcite/sql/fun/SqlIntervalOperator.java delete mode 100644 core/src/test/java/org/apache/calcite/test/RelMdPercentageOriginalRowsTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/StatesTableFunction.java rename {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvEnumerator.java (81%) rename {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvFieldType.java (97%) copy {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvProjectTableScanRule.java (74%) rename {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvStreamReader.java (99%) copy {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvTable.java (94%) copy {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvTableFactory.java (89%) copy {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvTableScan.java (97%) copy {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/CsvTranslatableTable.java (88%) copy example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvRules.java => file/src/main/java/org/apache/calcite/adapter/file/FileRules.java (79%) rename {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/JsonEnumerator.java (99%) rename {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/JsonScannableTable.java (97%) rename {example/csv/src/main/java/org/apache/calcite/adapter/csv => file/src/main/java/org/apache/calcite/adapter/file}/JsonTable.java (94%) copy example/csv/src/test/java/org/apache/calcite/test/CsvTest.java => file/src/test/java/org/apache/calcite/adapter/file/FileAdapterTest.java (59%) create mode 100644 file/src/test/java/org/apache/calcite/adapter/file/FileAdapterTests.java delete mode 100644 file/src/test/java/org/apache/calcite/adapter/file/SqlTest.java copy {example/csv => file}/src/test/resources/bug.json (93%) copy {example/csv => file}/src/test/resources/bug.yaml (100%) copy {example/csv => file}/src/test/resources/bug/ARCHERS.json (100%) copy file/src/test/resources/{sales-json => bug}/DATE.csv (100%) copy {example/csv => file}/src/test/resources/bug/LONG_EMPS.csv (100%) copy {example/csv => file}/src/test/resources/bug/WACKY_COLUMN_NAMES.csv (100%) copy {example/csv => file}/src/test/resources/filterable-model.json (94%) create mode 100644 file/src/test/resources/geo/states.json copy {example/csv => file}/src/test/resources/model-with-custom-table.json (94%) copy {example/csv => file}/src/test/resources/model.json (93%) copy file/src/test/resources/{sales-csv => sales}/DEPTS.csv (100%) copy file/src/test/resources/{sales-csv => sales}/EMPS.csv.gz (100%) copy {example/csv => file}/src/test/resources/smart.json (95%) delete mode 100644 spark/src/main/java/org/apache/calcite/adapter/spark/EnumerableToSparkConverterRule.java