Merge remote-tracking branch 'apach/master' into site
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/245525d9 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/245525d9 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/245525d9 Branch: refs/heads/site Commit: 245525d92410e5e312ab35f8ceae7d8f1f28f2c0 Parents: 2ae60eb 8a32357 Author: Michael Mior <[email protected]> Authored: Fri Jul 20 13:36:08 2018 -0400 Committer: Michael Mior <[email protected]> Committed: Fri Jul 20 13:36:08 2018 -0400 ---------------------------------------------------------------------- .travis.yml | 1 + README | 2 +- babel/pom.xml | 241 ++ babel/src/main/codegen/config.fmpp | 86 + babel/src/main/codegen/includes/parserImpls.ftl | 25 + .../org/apache/calcite/sql/babel/Babel.java | 26 + .../apache/calcite/sql/babel/package-info.java | 26 + .../apache/calcite/test/BabelParserTest.java | 47 + .../apache/calcite/test/BabelQuidemTest.java | 193 + .../java/org/apache/calcite/test/BabelTest.java | 56 + babel/src/test/resources/sql/dummy.iq | 27 + babel/src/test/resources/sql/select.iq | 63 + cassandra/pom.xml | 4 +- .../adapter/cassandra/CassandraRules.java | 42 +- .../adapter/cassandra/CassandraSchema.java | 21 +- .../adapter/cassandra/CassandraTable.java | 51 +- .../CassandraToEnumerableConverter.java | 8 +- .../CassandraToEnumerableConverterRule.java | 4 +- core/pom.xml | 12 +- core/src/main/codegen/config.fmpp | 5 + core/src/main/codegen/templates/Parser.jj | 77 +- .../calcite/adapter/clone/ArrayTable.java | 8 +- .../calcite/adapter/clone/CloneSchema.java | 34 +- .../calcite/adapter/clone/ColumnLoader.java | 37 +- .../apache/calcite/adapter/clone/ListTable.java | 3 +- .../AbstractElasticsearchTable.java | 128 - .../elasticsearch/ElasticsearchFilter.java | 297 -- .../elasticsearch/ElasticsearchMethod.java | 50 - .../elasticsearch/ElasticsearchProject.java | 98 - .../adapter/elasticsearch/ElasticsearchRel.java | 58 - .../elasticsearch/ElasticsearchRules.java | 238 -- .../elasticsearch/ElasticsearchSchema.java | 33 - .../elasticsearch/ElasticsearchSort.java | 104 - .../elasticsearch/ElasticsearchTableScan.java | 90 - .../ElasticsearchToEnumerableConverter.java | 124 - .../ElasticsearchToEnumerableConverterRule.java | 54 - .../MapProjectionFieldVisitor.java | 42 - .../adapter/elasticsearch/package-info.java | 26 - .../calcite/adapter/enumerable/EnumUtils.java | 12 +- .../adapter/enumerable/EnumerableAggregate.java | 3 +- .../adapter/enumerable/EnumerableBindable.java | 20 +- .../adapter/enumerable/EnumerableCalc.java | 14 +- .../adapter/enumerable/EnumerableCalcRule.java | 10 +- .../enumerable/EnumerableCorrelateRule.java | 4 +- .../adapter/enumerable/EnumerableFilter.java | 18 +- .../enumerable/EnumerableFilterRule.java | 9 +- .../enumerable/EnumerableInterpreterRule.java | 4 +- .../adapter/enumerable/EnumerableLimit.java | 16 +- .../adapter/enumerable/EnumerableMergeJoin.java | 2 +- .../enumerable/EnumerableMergeJoinRule.java | 9 +- .../adapter/enumerable/EnumerableProject.java | 20 +- .../enumerable/EnumerableProjectRule.java | 9 +- .../adapter/enumerable/EnumerableRel.java | 26 +- .../enumerable/EnumerableRelImplementor.java | 50 +- .../EnumerableTableFunctionScanRule.java | 4 +- .../enumerable/EnumerableTableModifyRule.java | 4 +- .../adapter/enumerable/EnumerableTableScan.java | 17 +- .../enumerable/EnumerableTableScanRule.java | 4 +- .../adapter/enumerable/EnumerableUncollect.java | 2 +- .../adapter/enumerable/EnumerableValues.java | 15 +- .../enumerable/EnumerableValuesRule.java | 4 +- .../adapter/enumerable/EnumerableWindow.java | 203 +- .../enumerable/NestedBlockBuilderImpl.java | 6 +- .../adapter/enumerable/PhysTypeImpl.java | 24 +- .../calcite/adapter/enumerable/RexImpTable.java | 387 +- .../adapter/enumerable/RexToLixTranslator.java | 45 +- .../enumerable/impl/WinAggAddContextImpl.java | 10 +- .../impl/WinAggResultContextImpl.java | 13 +- .../apache/calcite/adapter/jdbc/JdbcRules.java | 102 +- .../apache/calcite/adapter/jdbc/JdbcSchema.java | 19 +- .../apache/calcite/adapter/jdbc/JdbcTable.java | 25 +- .../jdbc/JdbcToEnumerableConverterRule.java | 4 +- .../apache/calcite/adapter/jdbc/JdbcUtils.java | 43 +- .../calcite/config/CalciteConnectionConfig.java | 2 + .../config/CalciteConnectionConfigImpl.java | 6 +- .../config/CalciteConnectionProperty.java | 4 + .../calcite/interpreter/AggregateNode.java | 164 +- .../apache/calcite/interpreter/Bindables.java | 54 +- .../calcite/interpreter/InterpretableRel.java | 8 +- .../apache/calcite/interpreter/Interpreter.java | 6 +- .../calcite/interpreter/JaninoRexCompiler.java | 19 +- .../apache/calcite/interpreter/JoinNode.java | 4 +- .../NoneToBindableConverterRule.java | 4 +- .../apache/calcite/interpreter/SortNode.java | 34 +- .../calcite/interpreter/TableScanNode.java | 41 +- .../apache/calcite/interpreter/UnionNode.java | 4 +- .../apache/calcite/interpreter/ValuesNode.java | 4 +- .../calcite/jdbc/CachingCalciteSchema.java | 37 +- .../calcite/jdbc/CalciteConnectionImpl.java | 70 +- .../calcite/jdbc/CalciteJdbc41Factory.java | 3 +- .../apache/calcite/jdbc/CalciteMetaImpl.java | 197 +- .../org/apache/calcite/jdbc/CalcitePrepare.java | 13 +- .../calcite/jdbc/CalcitePreparedStatement.java | 2 +- .../apache/calcite/jdbc/CalciteResultSet.java | 13 +- .../org/apache/calcite/jdbc/CalciteSchema.java | 123 +- .../apache/calcite/jdbc/CalciteStatement.java | 15 +- .../java/org/apache/calcite/jdbc/Driver.java | 8 + .../org/apache/calcite/jdbc/JavaRecordType.java | 4 +- .../calcite/jdbc/JavaTypeFactoryImpl.java | 15 +- .../org/apache/calcite/jdbc/MetadataSchema.java | 27 +- .../calcite/jdbc/SimpleCalciteSchema.java | 23 +- .../CachingLatticeStatisticProvider.java | 10 +- .../org/apache/calcite/materialize/Lattice.java | 98 +- .../materialize/LatticeStatisticProvider.java | 3 +- .../materialize/MaterializationActor.java | 10 +- .../materialize/MaterializationService.java | 46 +- .../ProfilerLatticeStatisticProvider.java | 88 +- .../SqlLatticeStatisticProvider.java | 24 +- .../calcite/materialize/TileSuggester.java | 12 +- .../org/apache/calcite/model/JsonMapSchema.java | 9 + .../java/org/apache/calcite/model/JsonRoot.java | 1 + .../java/org/apache/calcite/model/JsonType.java | 49 + .../apache/calcite/model/JsonTypeAttribute.java | 36 + .../org/apache/calcite/model/ModelHandler.java | 37 +- .../calcite/plan/AbstractRelOptPlanner.java | 11 +- .../java/org/apache/calcite/plan/Contexts.java | 9 +- .../apache/calcite/plan/ConventionTraitDef.java | 9 +- .../apache/calcite/plan/RelCompositeTrait.java | 6 +- .../org/apache/calcite/plan/RelOptCluster.java | 7 +- .../calcite/plan/RelOptMaterialization.java | 18 +- .../calcite/plan/RelOptMaterializations.java | 31 +- .../calcite/plan/RelOptPredicateList.java | 13 +- .../org/apache/calcite/plan/RelOptRule.java | 62 +- .../org/apache/calcite/plan/RelOptRuleCall.java | 2 +- .../apache/calcite/plan/RelOptRuleOperand.java | 9 +- .../calcite/plan/RelOptRuleOperandChildren.java | 4 +- .../calcite/plan/RelOptSamplingParameters.java | 2 +- .../org/apache/calcite/plan/RelOptUtil.java | 119 +- .../java/org/apache/calcite/plan/RelTrait.java | 2 +- .../org/apache/calcite/plan/RelTraitDef.java | 7 +- .../org/apache/calcite/plan/RelTraitSet.java | 4 +- .../calcite/plan/RexImplicationChecker.java | 12 +- .../java/org/apache/calcite/plan/Strong.java | 4 +- .../calcite/plan/SubstitutionVisitor.java | 49 +- .../org/apache/calcite/plan/hep/HepPlanner.java | 4 +- .../plan/hep/HepRelMetadataProvider.java | 21 +- .../apache/calcite/plan/volcano/RelSubset.java | 17 +- .../apache/calcite/plan/volcano/RuleQueue.java | 49 +- .../calcite/plan/volcano/VolcanoPlanner.java | 37 +- .../volcano/VolcanoRelMetadataProvider.java | 103 +- .../calcite/plan/volcano/VolcanoRuleCall.java | 2 +- .../calcite/plan/volcano/package-info.java | 2 +- .../calcite/prepare/CalciteCatalogReader.java | 106 +- .../calcite/prepare/CalciteMaterializer.java | 4 +- .../calcite/prepare/CalcitePrepareImpl.java | 81 +- .../calcite/prepare/LixToRelTranslator.java | 4 +- .../org/apache/calcite/prepare/PlannerImpl.java | 23 +- .../org/apache/calcite/prepare/Prepare.java | 12 +- .../apache/calcite/prepare/RelOptTableImpl.java | 54 +- .../apache/calcite/profile/ProfilerImpl.java | 65 +- .../apache/calcite/profile/SimpleProfiler.java | 26 +- .../org/apache/calcite/rel/RelCollations.java | 10 +- .../apache/calcite/rel/RelDistributions.java | 3 +- .../apache/calcite/rel/RelFieldCollation.java | 6 +- .../java/org/apache/calcite/rel/RelRoot.java | 4 +- .../calcite/rel/convert/ConverterRule.java | 25 +- .../org/apache/calcite/rel/core/Aggregate.java | 51 +- .../apache/calcite/rel/core/AggregateCall.java | 5 +- .../org/apache/calcite/rel/core/Correlate.java | 3 +- .../org/apache/calcite/rel/core/EquiJoin.java | 7 +- .../org/apache/calcite/rel/core/Exchange.java | 5 +- .../java/org/apache/calcite/rel/core/Join.java | 6 +- .../org/apache/calcite/rel/core/JoinInfo.java | 9 +- .../java/org/apache/calcite/rel/core/Match.java | 12 +- .../org/apache/calcite/rel/core/Project.java | 9 +- .../apache/calcite/rel/core/RelFactories.java | 3 +- .../org/apache/calcite/rel/core/SemiJoin.java | 5 +- .../java/org/apache/calcite/rel/core/SetOp.java | 9 +- .../apache/calcite/rel/core/SortExchange.java | 4 +- .../calcite/rel/core/TableFunctionScan.java | 2 +- .../apache/calcite/rel/core/TableModify.java | 5 +- .../org/apache/calcite/rel/core/Uncollect.java | 15 +- .../org/apache/calcite/rel/core/Values.java | 86 +- .../apache/calcite/rel/logical/LogicalCalc.java | 15 +- .../calcite/rel/logical/LogicalFilter.java | 26 +- .../apache/calcite/rel/logical/LogicalJoin.java | 14 +- .../calcite/rel/logical/LogicalProject.java | 12 +- .../calcite/rel/logical/LogicalTableScan.java | 17 +- .../calcite/rel/logical/LogicalValues.java | 12 +- .../calcite/rel/logical/LogicalWindow.java | 20 +- .../metadata/CachingRelMetadataProvider.java | 18 +- .../metadata/ChainedRelMetadataProvider.java | 23 +- .../rel/metadata/JaninoRelMetadataProvider.java | 12 +- .../rel/metadata/MetadataFactoryImpl.java | 23 +- .../calcite/rel/metadata/NullSentinel.java | 6 +- .../metadata/ReflectiveRelMetadataProvider.java | 137 +- .../rel/metadata/RelMdAllPredicates.java | 23 +- .../calcite/rel/metadata/RelMdCollation.java | 9 +- .../rel/metadata/RelMdColumnUniqueness.java | 10 - .../rel/metadata/RelMdDistinctRowCount.java | 6 +- .../rel/metadata/RelMdExpressionLineage.java | 37 +- .../rel/metadata/RelMdPopulationSize.java | 2 +- .../calcite/rel/metadata/RelMdPredicates.java | 72 +- .../apache/calcite/rel/metadata/RelMdSize.java | 8 +- .../rel/metadata/RelMdTableReferences.java | 4 +- .../calcite/rel/metadata/RelMetadataQuery.java | 24 +- .../calcite/rel/metadata/UnboundMetadata.java | 1 + .../calcite/rel/mutable/MutableMultiRel.java | 8 +- .../apache/calcite/rel/mutable/MutableRel.java | 8 +- .../apache/calcite/rel/mutable/MutableRels.java | 17 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 19 +- .../calcite/rel/rel2sql/SqlImplementor.java | 8 +- .../rel/rules/AbstractMaterializedViewRule.java | 31 +- .../AggregateExpandDistinctAggregatesRule.java | 6 +- .../rel/rules/AggregateExtractProjectRule.java | 27 +- .../rel/rules/AggregateFilterTransposeRule.java | 11 +- .../rel/rules/AggregateJoinTransposeRule.java | 49 +- .../rel/rules/AggregateProjectMergeRule.java | 6 +- .../AggregateProjectPullUpConstantsRule.java | 2 +- .../rel/rules/AggregateReduceFunctionsRule.java | 11 +- .../rel/rules/AggregateStarTableRule.java | 26 +- .../rel/rules/AggregateUnionAggregateRule.java | 2 +- .../rel/rules/AggregateUnionTransposeRule.java | 6 +- .../calcite/rel/rules/AggregateValuesRule.java | 7 +- .../calcite/rel/rules/CalcRelSplitter.java | 2 +- .../calcite/rel/rules/DateRangeRules.java | 41 +- .../rel/rules/FilterAggregateTransposeRule.java | 6 +- .../calcite/rel/rules/FilterJoinRule.java | 18 +- .../calcite/rel/rules/FilterTableScanRule.java | 30 +- .../calcite/rel/rules/JoinAssociateRule.java | 9 +- .../rel/rules/JoinProjectTransposeRule.java | 2 +- .../calcite/rel/rules/JoinToMultiJoinRule.java | 20 +- .../apache/calcite/rel/rules/LoptJoinTree.java | 13 +- .../apache/calcite/rel/rules/LoptMultiJoin.java | 5 +- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 8 +- .../rel/rules/LoptSemiJoinOptimizer.java | 2 +- .../rules/MaterializedViewFilterScanRule.java | 2 +- .../rel/rules/MultiJoinOptimizeBushyRule.java | 19 +- .../rules/ProjectCorrelateTransposeRule.java | 211 + .../rel/rules/ProjectFilterTransposeRule.java | 6 +- .../rel/rules/ProjectJoinTransposeRule.java | 3 +- .../calcite/rel/rules/ProjectRemoveRule.java | 15 +- .../rel/rules/ProjectSetOpTransposeRule.java | 4 +- .../calcite/rel/rules/ProjectTableScanRule.java | 26 +- .../calcite/rel/rules/ProjectToWindowRule.java | 35 +- .../calcite/rel/rules/PruneEmptyRules.java | 42 +- .../apache/calcite/rel/rules/PushProjector.java | 76 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 3 +- .../rel/rules/ReduceExpressionsRule.java | 14 +- .../apache/calcite/rel/rules/SemiJoinRule.java | 36 +- .../rel/rules/SortJoinTransposeRule.java | 1 - .../rel/rules/SortProjectTransposeRule.java | 2 +- .../rel/rules/SortRemoveConstantKeysRule.java | 86 + .../calcite/rel/rules/SubQueryRemoveRule.java | 685 +-- .../rel/rules/UnionPullUpConstantsRule.java | 2 +- .../calcite/rel/rules/ValuesReduceRule.java | 6 +- .../apache/calcite/rel/stream/StreamRules.java | 9 +- .../calcite/rel/type/DelegatingTypeSystem.java | 99 + .../calcite/rel/type/DynamicRecordTypeImpl.java | 5 +- .../calcite/rel/type/RelDataTypeFactory.java | 14 +- .../rel/type/RelDataTypeFactoryImpl.java | 41 +- .../calcite/rel/type/RelDataTypeField.java | 14 +- .../calcite/rel/type/RelDataTypeHolder.java | 6 +- .../calcite/rel/type/RelDataTypeImpl.java | 36 +- .../calcite/rel/type/RelDataTypeSystem.java | 4 + .../calcite/rel/type/RelDataTypeSystemImpl.java | 4 + .../apache/calcite/rel/type/RelRecordType.java | 5 +- .../org/apache/calcite/rex/RexAnalyzer.java | 142 + .../java/org/apache/calcite/rex/RexBuilder.java | 30 +- .../java/org/apache/calcite/rex/RexCall.java | 6 +- .../apache/calcite/rex/RexCorrelVariable.java | 4 +- .../org/apache/calcite/rex/RexExecutorImpl.java | 7 +- .../org/apache/calcite/rex/RexInterpreter.java | 354 ++ .../java/org/apache/calcite/rex/RexLiteral.java | 28 +- .../org/apache/calcite/rex/RexMultisetUtil.java | 8 +- .../java/org/apache/calcite/rex/RexOver.java | 3 +- .../calcite/rex/RexPermuteInputsShuttle.java | 2 +- .../java/org/apache/calcite/rex/RexProgram.java | 7 +- .../apache/calcite/rex/RexProgramBuilder.java | 7 +- .../java/org/apache/calcite/rex/RexShuttle.java | 9 +- .../org/apache/calcite/rex/RexSimplify.java | 350 +- .../rex/RexSqlStandardConvertletTable.java | 80 +- .../org/apache/calcite/rex/RexSubQuery.java | 4 +- .../java/org/apache/calcite/rex/RexUtil.java | 262 +- .../apache/calcite/runtime/BinarySearch.java | 8 +- .../apache/calcite/runtime/CalciteResource.java | 6 + .../org/apache/calcite/runtime/Enumerables.java | 32 +- .../org/apache/calcite/runtime/FlatLists.java | 56 +- .../apache/calcite/runtime/GeoFunctions.java | 7 +- .../java/org/apache/calcite/runtime/Hook.java | 85 +- .../org/apache/calcite/runtime/HttpUtils.java | 9 +- .../apache/calcite/runtime/PredicateImpl.java | 3 + .../calcite/runtime/ResultSetEnumerable.java | 138 +- .../apache/calcite/runtime/SqlFunctions.java | 167 +- .../calcite/schema/FunctionParameter.java | 8 - .../java/org/apache/calcite/schema/Schema.java | 16 + .../org/apache/calcite/schema/SchemaPlus.java | 4 + .../java/org/apache/calcite/schema/Schemas.java | 65 +- .../org/apache/calcite/schema/Statistics.java | 12 +- .../java/org/apache/calcite/schema/Table.java | 6 +- .../calcite/schema/impl/AbstractSchema.java | 27 +- .../schema/impl/AggregateFunctionImpl.java | 6 +- .../calcite/schema/impl/DelegatingSchema.java | 9 + .../schema/impl/MaterializedViewTable.java | 5 +- .../schema/impl/ModifiableViewTable.java | 4 +- .../apache/calcite/schema/impl/StarTable.java | 4 +- .../java/org/apache/calcite/sql/JoinType.java | 23 + .../org/apache/calcite/sql/SqlBasicCall.java | 7 +- .../calcite/sql/SqlBinaryStringLiteral.java | 14 +- .../java/org/apache/calcite/sql/SqlCall.java | 2 +- .../org/apache/calcite/sql/SqlCallBinding.java | 26 +- .../calcite/sql/SqlCharStringLiteral.java | 13 +- .../org/apache/calcite/sql/SqlDataTypeSpec.java | 65 +- .../java/org/apache/calcite/sql/SqlDdl.java | 4 +- .../apache/calcite/sql/SqlDescribeSchema.java | 2 +- .../apache/calcite/sql/SqlDescribeTable.java | 2 +- .../java/org/apache/calcite/sql/SqlDialect.java | 51 +- .../org/apache/calcite/sql/SqlFunction.java | 14 +- .../org/apache/calcite/sql/SqlIdentifier.java | 28 +- .../calcite/sql/SqlIntervalQualifier.java | 8 +- .../apache/calcite/sql/SqlJdbcFunctionCall.java | 4 +- .../java/org/apache/calcite/sql/SqlJoin.java | 14 +- .../java/org/apache/calcite/sql/SqlKind.java | 16 + .../apache/calcite/sql/SqlMatchRecognize.java | 19 +- .../java/org/apache/calcite/sql/SqlNode.java | 5 +- .../org/apache/calcite/sql/SqlNodeList.java | 2 +- .../org/apache/calcite/sql/SqlOperator.java | 2 +- .../java/org/apache/calcite/sql/SqlSelect.java | 15 +- .../org/apache/calcite/sql/SqlSetOption.java | 5 +- .../apache/calcite/sql/SqlSpecialOperator.java | 2 +- .../apache/calcite/sql/SqlUnnestOperator.java | 17 +- .../java/org/apache/calcite/sql/SqlUtil.java | 140 +- .../apache/calcite/sql/advise/SqlAdvisor.java | 19 +- .../sql/advise/SqlAdvisorGetHintsFunction.java | 14 +- .../calcite/sql/advise/SqlAdvisorHint.java | 2 +- .../calcite/sql/dialect/HiveSqlDialect.java | 4 + .../sql/dialect/JethroDataSqlDialect.java | 8 +- .../calcite/sql/dialect/MssqlSqlDialect.java | 2 - .../calcite/sql/dialect/MysqlSqlDialect.java | 6 +- .../sql/dialect/PostgresqlSqlDialect.java | 24 + .../calcite/sql/fun/OracleSqlOperatorTable.java | 27 +- .../calcite/sql/fun/SqlAnyValueAggFunction.java | 54 + .../apache/calcite/sql/fun/SqlCaseOperator.java | 4 +- .../calcite/sql/fun/SqlCoalesceFunction.java | 4 +- .../sql/fun/SqlDatetimePlusOperator.java | 18 +- .../sql/fun/SqlDatetimeSubtractionOperator.java | 2 - .../calcite/sql/fun/SqlLeadLagAggFunction.java | 26 +- .../calcite/sql/fun/SqlNthValueAggFunction.java | 38 + .../calcite/sql/fun/SqlQuantifyOperator.java | 4 +- .../calcite/sql/fun/SqlStdOperatorTable.java | 88 +- .../sql/fun/SqlTimestampAddFunction.java | 62 +- .../sql/fun/SqlTimestampDiffFunction.java | 28 +- .../sql/parser/SqlAbstractParserImpl.java | 4 +- .../apache/calcite/sql/parser/SqlParser.java | 25 +- .../apache/calcite/sql/parser/SqlParserPos.java | 12 +- .../calcite/sql/parser/SqlParserUtil.java | 73 +- .../calcite/sql/pretty/SqlPrettyWriter.java | 2 +- .../apache/calcite/sql/type/ArraySqlType.java | 4 +- .../sql/type/ComparableOperandTypeChecker.java | 4 +- .../sql/type/CompositeOperandTypeChecker.java | 6 +- .../sql/type/FamilyOperandTypeChecker.java | 6 +- .../org/apache/calcite/sql/type/InferTypes.java | 87 +- .../calcite/sql/type/IntervalSqlType.java | 10 +- .../apache/calcite/sql/type/OperandTypes.java | 18 +- .../apache/calcite/sql/type/ReturnTypes.java | 576 ++- .../sql/type/SqlTypeAssignmentRules.java | 16 +- .../sql/type/SqlTypeExplicitPrecedenceList.java | 10 +- .../calcite/sql/type/SqlTypeFactoryImpl.java | 18 +- .../calcite/sql/type/SqlTypeTransforms.java | 94 +- .../apache/calcite/sql/type/SqlTypeUtil.java | 149 +- .../org/apache/calcite/sql/util/SqlShuttle.java | 2 +- .../apache/calcite/sql/validate/AggChecker.java | 2 +- .../apache/calcite/sql/validate/AggVisitor.java | 5 +- .../sql/validate/AggregatingSelectScope.java | 29 +- .../calcite/sql/validate/CatalogScope.java | 22 +- .../calcite/sql/validate/DelegatingScope.java | 2 +- .../apache/calcite/sql/validate/EmptyScope.java | 4 +- .../sql/validate/IdentifierNamespace.java | 6 +- .../apache/calcite/sql/validate/JoinScope.java | 8 + .../apache/calcite/sql/validate/ListScope.java | 8 +- .../sql/validate/MatchRecognizeScope.java | 6 +- .../calcite/sql/validate/SchemaNamespace.java | 4 +- .../apache/calcite/sql/validate/ScopeChild.java | 15 - .../sql/validate/SqlAbstractConformance.java | 12 + .../calcite/sql/validate/SqlConformance.java | 66 + .../sql/validate/SqlConformanceEnum.java | 54 +- .../sql/validate/SqlIdentifierMoniker.java | 5 +- .../calcite/sql/validate/SqlMonikerImpl.java | 3 +- .../calcite/sql/validate/SqlNameMatcher.java | 9 + .../calcite/sql/validate/SqlNameMatchers.java | 19 + .../sql/validate/SqlUserDefinedAggFunction.java | 14 +- .../sql/validate/SqlUserDefinedFunction.java | 3 +- .../sql/validate/SqlUserDefinedTableMacro.java | 21 +- .../calcite/sql/validate/SqlValidatorImpl.java | 394 +- .../calcite/sql/validate/SqlValidatorScope.java | 39 +- .../calcite/sql/validate/SqlValidatorUtil.java | 84 +- .../calcite/sql/validate/TableNamespace.java | 25 +- .../apache/calcite/sql/validate/TableScope.java | 30 +- .../calcite/sql/validate/UnnestNamespace.java | 30 +- .../sql2rel/ReflectiveConvertletTable.java | 57 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 128 +- .../apache/calcite/sql2rel/RelFieldTrimmer.java | 9 +- .../sql2rel/RelStructuredTypeFlattener.java | 28 +- .../calcite/sql2rel/SqlToRelConverter.java | 155 +- .../sql2rel/StandardConvertletTable.java | 352 +- .../org/apache/calcite/tools/Frameworks.java | 19 +- .../java/org/apache/calcite/tools/Programs.java | 177 +- .../org/apache/calcite/tools/RelBuilder.java | 145 +- .../java/org/apache/calcite/util/BitSets.java | 28 +- .../main/java/org/apache/calcite/util/Bug.java | 12 + .../org/apache/calcite/util/BuiltInMethod.java | 18 + .../org/apache/calcite/util/CancelFlag.java | 5 +- .../org/apache/calcite/util/Compatible.java | 96 +- .../apache/calcite/util/CompatibleGuava11.java | 31 +- .../java/org/apache/calcite/util/Glossary.java | 150 +- .../apache/calcite/util/ImmutableBitSet.java | 70 +- .../apache/calcite/util/ImmutableIntList.java | 9 + .../calcite/util/ImmutableNullableList.java | 6 +- .../apache/calcite/util/IntegerIntervalSet.java | 20 +- .../java/org/apache/calcite/util/NameSet.java | 17 +- .../main/java/org/apache/calcite/util/Pair.java | 255 +- .../calcite/util/PartiallyOrderedSet.java | 41 +- .../calcite/util/PrecedenceClimbingParser.java | 10 +- .../org/apache/calcite/util/ReflectUtil.java | 4 +- .../java/org/apache/calcite/util/Sources.java | 7 +- .../org/apache/calcite/util/StackWriter.java | 2 +- .../org/apache/calcite/util/TryThreadLocal.java | 12 +- .../calcite/util/UnmodifiableArrayList.java | 5 +- .../main/java/org/apache/calcite/util/Util.java | 183 +- .../java/org/apache/calcite/util/XmlOutput.java | 4 +- .../util/graph/BreadthFirstIterator.java | 6 +- .../util/graph/DefaultDirectedGraph.java | 2 +- .../apache/calcite/util/graph/DefaultEdge.java | 6 +- .../calcite/util/graph/DepthFirstIterator.java | 8 +- .../util/graph/TopologicalOrderIterator.java | 6 +- .../calcite/util/javac/JavaCompilerArgs.java | 6 +- .../apache/calcite/util/mapping/Mappings.java | 60 +- .../apache/calcite/util/trace/CalciteTrace.java | 6 +- .../calcite/runtime/CalciteResource.properties | 2 + core/src/test/codegen/config.fmpp | 5 + .../calcite/jdbc/CalciteRemoteDriverTest.java | 192 +- .../org/apache/calcite/plan/RelOptUtilTest.java | 7 +- .../org/apache/calcite/plan/RelWriterTest.java | 100 +- .../calcite/plan/volcano/ComboRuleTest.java | 1 - .../plan/volcano/TraitConversionTest.java | 1 - .../plan/volcano/TraitPropagationTest.java | 9 +- .../prepare/LookupOperatorOverloadsTest.java | 2 +- .../apache/calcite/profile/ProfilerTest.java | 378 +- .../apache/calcite/rel/RelCollationTest.java | 9 +- .../rel/rel2sql/RelToSqlConverterTest.java | 174 +- .../calcite/rel/rules/DateRangeRulesTest.java | 20 +- .../org/apache/calcite/rex/RexBuilderTest.java | 14 + .../org/apache/calcite/rex/RexExecutorTest.java | 302 +- .../calcite/runtime/BinarySearchTest.java | 4 +- .../apache/calcite/runtime/EnumerablesTest.java | 79 +- .../calcite/sql/parser/SqlParserTest.java | 79 +- .../calcite/sql/test/DefaultSqlTestFactory.java | 36 +- .../apache/calcite/sql/test/SqlAdvisorTest.java | 1 + .../calcite/sql/test/SqlOperatorBaseTest.java | 649 ++- .../apache/calcite/sql/test/SqlTesterImpl.java | 78 +- .../org/apache/calcite/sql/test/SqlTests.java | 21 +- .../calcite/sql/type/SqlTypeFactoryTest.java | 45 +- .../apache/calcite/sql/type/SqlTypeFixture.java | 65 + .../calcite/sql/type/SqlTypeUtilTest.java | 114 + .../sql/validate/SqlValidatorUtilTest.java | 15 + .../org/apache/calcite/test/CalciteAssert.java | 766 ++-- .../org/apache/calcite/test/CalciteSuite.java | 3 + .../apache/calcite/test/CollectionTypeTest.java | 3 +- .../calcite/test/ExceptionMessageTest.java | 7 +- .../test/FoodMartLatticeStatisticProvider.java | 8 +- .../calcite/test/InduceGroupingTypeTest.java | 29 +- .../apache/calcite/test/InterpreterTest.java | 33 +- .../apache/calcite/test/JdbcAdapterTest.java | 218 +- .../calcite/test/JdbcFrontJdbcBackTest.java | 129 +- .../calcite/test/JdbcFrontLinqBackTest.java | 57 +- .../java/org/apache/calcite/test/JdbcTest.java | 1473 ++++--- .../org/apache/calcite/test/LatticeTest.java | 103 +- .../calcite/test/LinqFrontJdbcBackTest.java | 3 +- .../java/org/apache/calcite/test/Matchers.java | 37 +- .../calcite/test/MaterializationTest.java | 90 +- .../apache/calcite/test/MockCatalogReader.java | 56 +- .../apache/calcite/test/MockRelOptPlanner.java | 6 +- .../java/org/apache/calcite/test/ModelTest.java | 16 + .../calcite/test/MultiJdbcSchemaJoinTest.java | 3 +- .../org/apache/calcite/test/MutableRelTest.java | 4 +- .../org/apache/calcite/test/QuidemTest.java | 100 +- .../calcite/test/ReflectiveSchemaTest.java | 209 +- .../org/apache/calcite/test/RelBuilderTest.java | 2 +- .../apache/calcite/test/RelMetadataTest.java | 209 +- .../apache/calcite/test/RelOptRulesTest.java | 357 +- .../org/apache/calcite/test/RelOptTestBase.java | 101 +- .../calcite/test/RexImplicationCheckerTest.java | 53 +- .../org/apache/calcite/test/RexProgramTest.java | 301 +- .../apache/calcite/test/ScannableTableTest.java | 19 +- .../apache/calcite/test/SqlFunctionsTest.java | 52 + .../org/apache/calcite/test/SqlLineTest.java | 2 +- .../org/apache/calcite/test/SqlTestGen.java | 2 +- .../test/SqlToRelConverterExtendedTest.java | 39 +- .../calcite/test/SqlToRelConverterTest.java | 170 +- .../apache/calcite/test/SqlToRelTestBase.java | 64 +- .../apache/calcite/test/SqlValidatorTest.java | 249 +- .../calcite/test/SqlValidatorTestCase.java | 38 +- .../org/apache/calcite/test/StreamTest.java | 147 +- .../apache/calcite/test/TableFunctionTest.java | 116 +- .../java/org/apache/calcite/test/UdfTest.java | 69 +- .../java/org/apache/calcite/test/UdtTest.java | 63 + .../ConcurrentTestTimedCommandGenerator.java | 10 +- .../calcite/test/concurrent/package-info.java | 2 +- .../enumerable/EnumerableCorrelateTest.java | 6 +- .../apache/calcite/tools/FrameworksTest.java | 158 +- .../org/apache/calcite/tools/PlannerTest.java | 252 +- .../org/apache/calcite/util/BitSetsTest.java | 9 +- .../org/apache/calcite/util/ChunkListTest.java | 199 +- .../calcite/util/ImmutableBitSetTest.java | 13 +- .../calcite/util/PartiallyOrderedSetTest.java | 142 +- .../calcite/util/PermutationTestCase.java | 1 - .../util/PrecedenceClimbingParserTest.java | 11 +- .../java/org/apache/calcite/util/Smalls.java | 62 +- .../java/org/apache/calcite/util/UtilTest.java | 226 +- .../calcite/util/graph/DirectedGraphTest.java | 20 +- .../calcite/util/mapping/MappingTest.java | 2 +- .../org/apache/calcite/test/RelOptRulesTest.xml | 387 +- .../calcite/test/SqlToRelConverterTest.xml | 194 +- core/src/test/resources/sql/agg.iq | 107 + core/src/test/resources/sql/blank.iq | 2 +- core/src/test/resources/sql/join.iq | 55 +- core/src/test/resources/sql/lateral.iq | 52 +- core/src/test/resources/sql/misc.iq | 62 +- core/src/test/resources/sql/operator.iq | 99 + core/src/test/resources/sql/sub-query.iq | 1322 +++++- core/src/test/resources/sql/winagg.iq | 25 + druid/pom.xml | 4 +- .../adapter/druid/CeilOperatorConversion.java | 13 +- .../adapter/druid/DefaultDimensionSpec.java | 6 +- .../adapter/druid/DruidConnectionImpl.java | 6 +- .../adapter/druid/DruidDateTimeUtils.java | 154 +- .../calcite/adapter/druid/DruidExpressions.java | 42 +- .../calcite/adapter/druid/DruidJsonFilter.java | 46 +- .../calcite/adapter/druid/DruidQuery.java | 114 +- .../calcite/adapter/druid/DruidRules.java | 23 +- .../calcite/adapter/druid/DruidSchema.java | 39 +- .../adapter/druid/DruidSqlCastConverter.java | 52 +- .../calcite/adapter/druid/DruidTable.java | 16 +- .../adapter/druid/DruidTableFactory.java | 27 +- .../druid/ExtractOperatorConversion.java | 9 +- .../adapter/druid/ExtractionDimensionSpec.java | 6 +- .../adapter/druid/FloorOperatorConversion.java | 13 +- .../calcite/adapter/druid/Granularities.java | 8 +- .../adapter/druid/NaryOperatorConverter.java | 7 +- .../adapter/druid/TimeExtractionFunction.java | 40 +- .../calcite/adapter/druid/VirtualColumn.java | 6 +- .../adapter/druid/DruidQueryFilterTest.java | 4 +- .../org/apache/calcite/test/DruidAdapterIT.java | 462 +- .../apache/calcite/test/DruidAdapterIT2.java | 3958 ++++++++++++++++++ .../calcite/test/DruidDateRangeRulesTest.java | 4 +- .../druid-foodmart-model-timestamp.json | 153 + .../test/resources/druid-foodmart-model.json | 5 +- elasticsearch/pom.xml | 187 + .../AbstractElasticsearchTable.java | 150 + .../elasticsearch/ElasticsearchConstants.java | 49 + .../elasticsearch/ElasticsearchEnumerators.java | 111 + .../elasticsearch/ElasticsearchFilter.java | 339 ++ .../elasticsearch/ElasticsearchMethod.java | 50 + .../elasticsearch/ElasticsearchProject.java | 113 + .../adapter/elasticsearch/ElasticsearchRel.java | 58 + .../elasticsearch/ElasticsearchRules.java | 240 ++ .../elasticsearch/ElasticsearchSchema.java | 114 + .../ElasticsearchSchemaFactory.java | 94 + .../ElasticsearchSearchResult.java | 173 + .../elasticsearch/ElasticsearchSort.java | 104 + .../elasticsearch/ElasticsearchTable.java | 136 + .../elasticsearch/ElasticsearchTableScan.java | 89 + .../ElasticsearchToEnumerableConverter.java | 123 + .../ElasticsearchToEnumerableConverterRule.java | 54 + .../elasticsearch/ElasticsearchVersion.java | 58 + .../ExpressionNotAnalyzableException.java | 29 + .../MapProjectionFieldVisitor.java | 43 + .../elasticsearch/PredicateAnalyzer.java | 929 ++++ .../adapter/elasticsearch/QueryBuilders.java | 423 ++ .../adapter/elasticsearch/package-info.java | 26 + .../adapter/elasticsearch/BooleanLogicTest.java | 152 + .../elasticsearch/ElasticSearchAdapterTest.java | 378 ++ .../elasticsearch/ElasticsearchVersionTest.java | 66 + .../EmbeddedElasticsearchNode.java | 161 + .../EmbeddedElasticsearchPolicy.java | 193 + .../adapter/elasticsearch/ProjectionTest.java | 96 + .../elasticsearch/QueryBuildersTest.java | 122 + .../calcite/test/ElasticsearchChecker.java | 47 + elasticsearch/src/test/resources/log4j2.xml | 32 + elasticsearch/src/test/resources/zips-mini.json | 149 + elasticsearch2/pom.xml | 148 - .../Elasticsearch2Enumerator.java | 152 - .../elasticsearch2/Elasticsearch2Schema.java | 134 - .../Elasticsearch2SchemaFactory.java | 63 - .../elasticsearch2/Elasticsearch2Table.java | 66 - .../adapter/elasticsearch2/package-info.java | 26 - .../calcite/test/Elasticsearch2AdapterIT.java | 270 -- .../resources/elasticsearch-zips-model.json | 50 - .../src/test/resources/log4j.properties | 24 - elasticsearch5/pom.xml | 153 - .../Elasticsearch5Enumerator.java | 154 - .../elasticsearch5/Elasticsearch5Schema.java | 138 - .../Elasticsearch5SchemaFactory.java | 63 - .../elasticsearch5/Elasticsearch5Table.java | 86 - .../adapter/elasticsearch5/package-info.java | 26 - .../calcite/test/Elasticsearch5AdapterIT.java | 270 -- .../resources/elasticsearch-zips-model.json | 50 - .../src/test/resources/log4j.properties | 24 - example/csv/pom.xml | 4 +- .../calcite/adapter/csv/CsvEnumerator.java | 4 +- .../apache/calcite/adapter/csv/CsvSchema.java | 14 +- .../java/org/apache/calcite/test/CsvTest.java | 134 +- example/function/pom.xml | 4 +- .../org/apache/calcite/example/maze/Maze.java | 26 +- .../apache/calcite/example/maze/MazeTable.java | 7 +- example/pom.xml | 4 +- file/pom.xml | 4 +- .../calcite/adapter/file/FileRowConverter.java | 6 +- .../apache/calcite/adapter/file/FileSchema.java | 14 +- .../apache/calcite/adapter/file/SqlTest.java | 80 +- geode/pom.xml | 4 +- .../calcite/adapter/geode/rel/GeodeRules.java | 13 +- .../adapter/geode/rel/GeodeSchemaFactory.java | 2 +- .../geode/rel/GeodeToEnumerableConverter.java | 8 +- .../geode/util/JavaTypeFactoryExtImpl.java | 1 - .../adapter/geode/rel/BaseGeodeAdapterIT.java | 32 +- linq4j/pom.xml | 4 +- .../apache/calcite/linq4j/DefaultQueryable.java | 2 +- .../calcite/linq4j/EnumerableDefaults.java | 157 +- .../org/apache/calcite/linq4j/Extensions.java | 111 +- .../org/apache/calcite/linq4j/GroupingImpl.java | 7 +- .../java/org/apache/calcite/linq4j/Linq4j.java | 16 +- .../org/apache/calcite/linq4j/LookupImpl.java | 3 +- .../java/org/apache/calcite/linq4j/Ord.java | 36 +- .../calcite/linq4j/QueryableDefaults.java | 4 +- .../calcite/linq4j/QueryableRecorder.java | 16 +- .../calcite/linq4j/function/Function1.java | 6 +- .../calcite/linq4j/function/Functions.java | 69 +- .../calcite/linq4j/function/Predicate1.java | 12 +- .../calcite/linq4j/function/Predicate2.java | 12 +- .../linq4j/tree/ClassDeclarationFinder.java | 32 +- .../calcite/linq4j/tree/ConstantExpression.java | 29 +- .../linq4j/tree/ConstructorDeclaration.java | 18 +- .../linq4j/tree/DeterministicCodeOptimizer.java | 2 +- .../apache/calcite/linq4j/tree/Expressions.java | 16 +- .../calcite/linq4j/tree/FunctionExpression.java | 38 +- .../calcite/linq4j/tree/MethodDeclaration.java | 8 +- .../calcite/linq4j/tree/TryStatement.java | 6 +- .../org/apache/calcite/linq4j/tree/Types.java | 6 +- .../test/java/com/example/Linq4jExample.java | 27 +- .../calcite/linq4j/function/FunctionTest.java | 61 +- .../calcite/linq4j/test/CorrelateJoinTest.java | 42 +- .../calcite/linq4j/test/DeterministicTest.java | 67 +- .../calcite/linq4j/test/ExpressionTest.java | 27 +- .../apache/calcite/linq4j/test/Linq4jSuite.java | 2 +- .../apache/calcite/linq4j/test/Linq4jTest.java | 727 +--- .../calcite/linq4j/test/LookupImplTest.java | 65 + mongodb/pom.xml | 20 +- .../adapter/mongodb/MongoEnumerator.java | 28 +- .../calcite/adapter/mongodb/MongoSchema.java | 19 +- .../calcite/adapter/mongodb/MongoTable.java | 5 + .../mongodb/MongoToEnumerableConverter.java | 15 +- .../mongodb/MongoToEnumerableConverterRule.java | 4 +- .../adapter/mongodb/MongoAdapterTest.java | 752 ++++ .../adapter/mongodb/MongoDatabasePolicy.java | 83 + .../org/apache/calcite/test/MongoAdapterIT.java | 829 +--- .../apache/calcite/test/MongoAssertions.java | 107 + .../test/resources/mongo-foodmart-model.json | 221 - mongodb/src/test/resources/mongo-model.json | 70 + .../src/test/resources/mongo-zips-model.json | 41 - mongodb/src/test/resources/zips-mini.json | 149 + pig/pom.xml | 4 +- .../calcite/adapter/pig/PigAggregate.java | 12 +- .../apache/calcite/adapter/pig/PigFilter.java | 4 +- .../org/apache/calcite/adapter/pig/PigRel.java | 4 +- .../calcite/adapter/pig/PigTableScan.java | 4 +- .../org/apache/calcite/test/PigAdapterTest.java | 21 +- piglet/pom.xml | 4 +- .../java/org/apache/calcite/piglet/Ast.java | 22 +- piglet/src/main/javacc/PigletParser.jj | 13 +- .../java/org/apache/calcite/test/Fluent.java | 50 +- plus/pom.xml | 32 +- .../calcite/adapter/os/DuTableFunction.java | 9 +- .../apache/calcite/adapter/os/Processes.java | 3 +- .../org/apache/calcite/adapter/os/SqlShell.java | 57 +- .../calcite/adapter/tpcds/TpcdsSchema.java | 215 +- .../adapter/tpcds/TpcdsSchemaFactory.java | 7 +- .../calcite/chinook/ChosenCustomerEmail.java | 30 + .../calcite/chinook/EnvironmentFairy.java | 7 +- .../calcite/chinook/StringConcatFunction.java | 30 + plus/src/main/resources/chinook/chinook.json | 18 + .../calcite/adapter/os/OsAdapterTest.java | 205 +- .../apache/calcite/adapter/tpcds/TpcdsTest.java | 186 +- .../apache/calcite/adapter/tpch/TpchTest.java | 15 +- plus/src/test/resources/sql/functions.iq | 41 + pom.xml | 110 +- server/pom.xml | 4 +- server/src/main/codegen/config.fmpp | 7 + .../src/main/codegen/includes/parserImpls.ftl | 78 +- .../calcite/sql/ddl/SqlAttributeDefinition.java | 93 + .../calcite/sql/ddl/SqlCreateForeignSchema.java | 3 +- .../sql/ddl/SqlCreateMaterializedView.java | 6 +- .../apache/calcite/sql/ddl/SqlCreateSchema.java | 7 +- .../apache/calcite/sql/ddl/SqlCreateTable.java | 21 +- .../apache/calcite/sql/ddl/SqlCreateType.java | 113 + .../apache/calcite/sql/ddl/SqlCreateView.java | 6 +- .../org/apache/calcite/sql/ddl/SqlDdlNodes.java | 20 + .../apache/calcite/sql/ddl/SqlDropObject.java | 13 +- .../org/apache/calcite/sql/ddl/SqlDropType.java | 37 + .../apache/calcite/test/ServerParserTest.java | 30 + .../org/apache/calcite/test/ServerTest.java | 44 + .../src/test/resources/sql/materialized_view.iq | 4 +- server/src/test/resources/sql/schema.iq | 2 +- server/src/test/resources/sql/type.iq | 57 + site/.gitignore | 1 + site/Gemfile | 8 +- site/README.md | 43 +- site/_docs/druid_adapter.md | 5 +- site/_docs/history.md | 221 +- site/_docs/howto.md | 31 +- site/_docs/model.md | 32 +- site/_docs/reference.md | 51 +- site/_posts/2018-07-20-release-1.17.0.md | 40 + site/docker-compose.yml | 40 + site/downloads/index.md | 3 + spark/pom.xml | 12 +- .../spark/EnumerableToSparkConverterRule.java | 4 +- .../calcite/adapter/spark/HttpServer.java | 22 +- .../adapter/spark/JdbcToSparkConverter.java | 2 +- .../adapter/spark/JdbcToSparkConverterRule.java | 4 +- .../calcite/adapter/spark/SparkHandlerImpl.java | 43 +- .../calcite/adapter/spark/SparkRules.java | 48 +- splunk/pom.xml | 4 +- .../apache/calcite/test/SplunkAdapterTest.java | 68 +- sqlsh | 2 +- src/main/config/assemblies/source-assembly.xml | 1 - src/main/config/forbidden-apis/signatures.txt | 35 + ubenchmark/pom.xml | 11 +- 728 files changed, 29476 insertions(+), 16408 deletions(-) ----------------------------------------------------------------------
