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.
discard 8ce5300 Site: Remove '(for Calcite committers)' suffix from headers in section dedicated to committers discard a171fe4 Site: Add instructions for managing Calcite repos through GitHub discard 50a2f95 Add 1.23.0 release announcement discard d0ee89a Improve 1.23.0 release note and document add 090154a Improve 1.23.0 release note and document add 4346321 Prepare for next development iteration add dfea387 Add 1.23.0 release announcement add 4a2e923 Doc: Update site README.md add 2ba5519 [CALCITE-3985] Simplify grouped window function in parser (Rui Wang) add 7952cd5 [CALCITE-3988] Intersect in RelMdRowCount doesn't take into account 'intersect all' (Xu Zhaohui) add 39cb3e36 [CALCITE-3910] Enhance ProjectJoinTransposeRule to support SemiJoin and AntiJoin (Liya Fan) add 258f791 [CALCITE-3999] Simplify DialectPool implementation using Guava cache add 4fbb930 [CALCITE-3478] Restructure tests for materialized views (Jin Xing) add b9a2075 [CALCITE-3950] Doc of SqlGroupingFunction contradicts its behavior add 2b1254b [CALCITE-4009] Remove traitset remapping in ProjectJoinTransposeRule add b166b9a [CALCITE-4004] Show RelOptRuleOperand description in debugger to facilitate debugging add ada6cc4 [CALCITE-3972] Allow RelBuilder to create RelNode with convention (Xiening Dai) add 2851e16 Remove "no valid plugin descriptors were found" build-time warning add abe7720 [CALCITE-4019] Visit SqlInsert with SqlShuttle cause NullPointerException (Xu ZhaoHui) add 0af3fd1 [CALCITE-4011] Support trait propagation for EnumerableProject and EnumerableFilter (Rui Wang) add af976e9 [CALCITE-3993] Add utility methods to RelTrait, RelTraitSet and RelCollation add 61bba25 [CALCITE-4031] Remove code to be removed before 1.24 add 2fb963c [CALCITE-4023] Deprecate ProjectSortTransposeRule add 6273b92 Oops! add 0275a1f In preparation for [CALCITE-3946], move org.apache.calcite.sql.ddl package from server to core add c0f102d Refactor DDL execution code out of SqlNode sub-classes and into DdlExecutor add 8daba77 [CALCITE-3946] Add parser support for MULTISET/SET and VOLATILE modifiers in CREATE TABLE statements (Drew Schmitt) add 0d5e4bc Refactor SqlToRelConverterTest to configure by transforming ConfigBuilder whenever possible add 3fa29e1 [CALCITE-2997] In SqlToRelConverter and RelBuilder, add option to avoid pushing down join condition add 29f798f [CALCITE-4032] Mark CalcMergeRule as TransformationRule add df5f447 [CALCITE-3981] Volcano.register should not return stale subset (Botong Huang) add 2f68352 [CALCITE-3991] The required should always be provided in RelSet.getOrCreateSubset() (Botong Huang) add 0148847 [CALCITE-4043] Improve IllegalArgumentException message in RelBuilder#field add 721ac8c [CALCITE-4042] JoinCommuteRule must not match SEMI / ANTI join add feae6fb [CALCITE-4030] Reinstate assertion check for trait derivation in OptimizeTask add fde9697 [CALCITE-4040] An aggregate function that does not support roll up throws an exception when it is rolled up (Xu Zhaohui) add eedd40b [CALCITE-4012] Support trait propagation for EnumerableHashJoin and EnumerableNestedLoopJoin (Rui Wang) add dcc76ce [CALCITE-4007] MergeJoin collation check should not be limited to join key's order add 61cf2bf [CALCITE-4041] Support trait propagation for EnumerableCorrelate add d98f6c7 Reformat test output xml file add 8dec7ba Following CALCITE-4031, some code style promotion add f9e8413 [CALCITE-4049] Reduce the time complexity of getting shortest distances add 0c8d0fe [CALCITE-4003] Disallow cross convention matching and generation in TransformationRule add 7c5c7e3 [CALCITE-4018] Support trait propagation for EnumerableValues add ac51ce7 [CALCITE-4053] RexSimplify should not pass exprs containing non-const subExprs to RexExecutor (Shuo Cheng) add f577b7e [CALCITE-3724] Presto dialect implementation add 59d6eb8 [CALCITE-4038] Refactor RexVisitor, RexBiVisitor, RelOptUtil.InputFinder add eb22c01867 [CALCITE-3975] Add options to ProjectFilterTransposeRule to push down project and filter expressions whole, not just field references add 7c2f677 [CALCITE-4055] RelFieldTrimmer loses hints add 3c317b6 [CALCITE-4016] Support trait propagation for EnumerableCalc add bb22d47 [CALCITE-4061] Build should fail if Calcite code uses deprecated APIs add 978bb7e [CALCITE-4057] Support trait propagation for EnumerableBatchNestedLoopJoin (Rui Wang) add 69f2586 [CALCITE-3786] Add Digest interface to enable efficient hashCode(equals) for RexNode and RelNode add b00c1fd [CALCITE-4056] Remove Digest from RelNode and RexCall add a551d4b Revert "[CALCITE-4056] Remove Digest from RelNode and RexCall" add d7eb31b [CALCITE-4020] Support Calc operator in RelFieldTrimmer (Xu Zhaohui) add 72f3322 [CALCITE-4060] Supports implicit type coercion for "NOT IN". add fa83490 [CALCITE-3951] Support different string comparison based on SqlCollation add 3e98d75 [CALCITE-3907] Use username and password parameters on delegation add 797b487 [CALCITE-4063] Unnest an array of single-item structs causes ClassCastException add b184707 [CALCITE-3786] Add Digest interface to enable efficient hashCode(equals) for RexNode and RelNode (part2) add 4389a9c [CALCITE-4019] Visit SqlInsert with SqlShuttle cause NullPointerException (Xu ZhaoHui) add c823343 [CALCITE-4075] Mock table 'EMPNULLABLES' should allow nulls in all non-pk columns add 1736242 [CALCITE-3786] Rework digest for RelNode and RexCall add 0769a8b [CALCITE-4083] RelTraitSet failed to canonize traits add b0b435c [CALCITE-4086] Upgrade Avatica version to 1.17.0 add af3bca3 [CALCITE-3786] Make digestEquals and digestHash available to be overridden add 6f90aca [CALCITE-4087] Hoist, a utility to replace literals in a SQL string with placeholders add dae53ef [CALCITE-3224] New implementation of RexNode-to-Expression code generation add d839a57 [CALCITE-4089] In Babel, allow 'CAST(integer AS DATE)' even though it is illegal in Calcite SQL add 7e55739 [CALCITE-4090] When generating SQL for DB2, a complex SELECT above a sub-query generates a bad table alias (Steven Talbot) add d8e5590 [CALCITE-4062] Support deserialize UDF array type from json string (Xu Zhaohui) add da89b41 Site: Add Tencent and TBDS logo in powered-by image add 057186d [CALCITE-3941] Add the default strict mode to the path in the Json functions add da71139 [CALCITE-3929] When deserialize UDAF aggregate call from json string, throws NPE (Xu Zhaohui) add bf9ff00 [CALCITE-4008] Implement Code generation for EnumerableSortedAggregate (Rui Wang). add bd121aa [CALCITE-4049] Improve the implementation of the shortest-path algorithm add 3e7349f Site: Add instructions for managing Calcite repos through GitHub add 2d6e57f [CALCITE-4033] Does not produce parenthesized table expressions for UNNEST (Rui Wang) add 640da7c [CALCITE-4097] Avoid requesting unnecessary trait request when deriving traits add c2df42e [CALCITE-4077] Exception when joined with built-in table functions add 2ef46dc [CALCITE-4026] CassandraFilter has generated wrong condition expression for filter with non string literal (Wenhui Tang) add a329e88 [CALCITE-4059] SqlTypeUtil#equalSansNullability consider Array/Map type (Jiatao Tao) add 8db7c9d [CALCITE-4066] SqlTypeUtil#convertTypeToSpec cover Array/Multiset/Row types (Jiatao Tao) add 32fc1f4 [CALCITE-4098] Remove redundant code in RelJson.toJson(RelDistribution) (Jiatao Tao) add e7aca69 [CALCITE-4101] Calcite PR CI often failed due to `elasticsearch:test`, disable the related tests first (Jiatao Tao) add 113892e Site: Remove '(for Calcite committers)' suffix from headers in section dedicated to committers add f64cdcb [CALCITE-4104] Add automatically link to GitHub PR and 'pull-request-available' label to issues add 95e40f4 [CALCITE-3834] Support AntiJoin in EnumerableMergeJoin add 3fb68f6 [CALCITE-4094] Allow SqlOperator of SqlKind#OTHER_FUNCTION to define a Strong.Policy add be9a4e1 [CALCITE-4115] Improve the prompt of using SQL keywords for sql parser add 964105b ImmutableBeans: allow sub-classing and default methods add 85263c8 Following [CALCITE-3825], restore AbstractMaterializedViewRule for backwards compatibility add 23b26b6 In preparation for [CALCITE-3923] and [CALCITE-4079], deprecate fields and methods that will be removed between 1.24 and 1.25 add 9f18c85 Following [CALCITE-3753], add log when aborting optimization due to VolcanoTimeoutException (Jiatao Tao) add eb55b5f [CALCITE-4092] NPE using WITH clause without a corresponding SELECT FROM (James Kim) add 7ab6435 [CALCITE-4105] Replace Pair with Flat2List in RelDigestWriter add 8f1fabb Following [CALCITE-4115], add expected tokens to the error message add f12e2d6 [CALCITE-4116] Remove unused code for tracking RexNode's nullable state in codegen add d29cdd0 [CALCITE-4112] Refine the usage of CalciteConnectionConfig in DecorrelateProgram & some minor code refactoring (Jiatao Tao) add 33aa61c [CALCITE-3916] Support top-down rule applying and upper bound space pruning add 76ec797 Make RelToSqlBuilder.Builder.clauses immutable add 8bfc380 [CALCITE-3936] JDBC adapter, when generating SQL, changes target of ambiguous HAVING clause with a Project on Filter on Aggregate add ea4293b [CALCITE-4094] Allow SqlOperator of SqlKind#OTHER_FUNCTION to define a Strong.Policy Follow-up after review comments add e2942fe [CALCITE-4085] Improve return type nullability for SqlDotOperator & SqlItemOperator (Dawid Wysakowicz) add 6bb7e2d [CALCITE-4123] Make EnumerableMergeJoin constructor protected add 88d4de0 [CALCITE-4124] Stop invalidating metadata cache in VolcanoRuleCall add 9accb16 [CALCITE-4000] Support OFFSET parameter in TUMBLE/HOP table functions (Rui Wang) add a4fa054 [CALCITE-4073] Add a new component RexNormalize for more effect rex nodes normalization (part1) add 66ce217 Following [CALCITE-3916] Refine comments for top down optimizer (Jinpeng Wang) add cdf8678 [CALCITE-4127] Remove final from AbstractRelNode#getRelTypeName add 5462be9 Add a shortcut equalSansNullability in case the input types are the same add 7650466 Remove duplicate method equalsSansConvention() add 7a462f2 Update history doc to add breaking changes add 4b5b910 [CALCITE-4117] Release Calcite 1.24.0 add 28d156f Improve 1.24.0 release note and document add 7171cbf Prepare for next development iteration add 92309ed Add 1.24.0 release announcement This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (8ce5300) \ N -- N -- N refs/heads/site (92309ed) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: .asf.yaml | 32 + LICENSE | 12 + README | 2 +- babel/src/main/codegen/config.fmpp | 7 + babel/src/main/codegen/includes/parserImpls.ftl | 98 + .../java/org/apache/calcite/sql/babel/Babel.java | 24 - .../calcite/sql/babel/SqlBabelCreateTable.java | 80 + .../calcite/sql/babel/TableCollectionType.java | 36 +- .../org/apache/calcite/test/BabelParserTest.java | 65 + .../org/apache/calcite/test/BabelQuidemTest.java | 10 + babel/src/test/resources/sql/big-query.iq | 137 + build.gradle.kts | 1 + buildSrc/build.gradle.kts | 6 +- .../calcite/adapter/cassandra/CassandraFilter.java | 28 +- .../calcite/adapter/cassandra/CassandraRules.java | 6 + .../calcite/adapter/cassandra/CassandraSchema.java | 10 +- .../adapter/cassandra/CassandraTableScan.java | 2 +- .../CassandraToEnumerableConverterRule.java | 5 +- .../test/CassandraAdapterDataTypesTest.java | 29 + cassandra/src/test/resources/datatypes.cql | 12 + core/src/main/codegen/templates/Parser.jj | 25 +- .../calcite/adapter/enumerable/EnumUtils.java | 99 +- .../adapter/enumerable/EnumerableAggregate.java | 266 +- .../enumerable/EnumerableAggregateBase.java | 329 +++ .../enumerable/EnumerableBatchNestedLoopJoin.java | 22 + .../adapter/enumerable/EnumerableBindable.java | 5 +- .../calcite/adapter/enumerable/EnumerableCalc.java | 20 + .../adapter/enumerable/EnumerableConvention.java | 18 +- .../adapter/enumerable/EnumerableCorrelate.java | 23 + .../adapter/enumerable/EnumerableFilter.java | 27 + .../adapter/enumerable/EnumerableHashJoin.java | 24 + .../enumerable/EnumerableInterpreterRule.java | 5 +- .../adapter/enumerable/EnumerableMergeJoin.java | 110 +- .../enumerable/EnumerableNestedLoopJoin.java | 30 + .../adapter/enumerable/EnumerableProject.java | 14 + .../adapter/enumerable/EnumerableRelFactories.java | 102 + .../adapter/enumerable/EnumerableRules.java | 11 + .../enumerable/EnumerableSortedAggregate.java | 146 +- .../adapter/enumerable/EnumerableTableScan.java | 22 + .../adapter/enumerable/EnumerableTraitsUtils.java | 216 ++ .../adapter/enumerable/EnumerableUncollect.java | 18 +- .../adapter/enumerable/EnumerableValues.java | 37 + .../adapter/enumerable/NestedBlockBuilder.java | 23 +- .../adapter/enumerable/NestedBlockBuilderImpl.java | 45 +- .../calcite/adapter/enumerable/NullPolicy.java | 9 - .../calcite/adapter/enumerable/PhysTypeImpl.java | 53 +- .../calcite/adapter/enumerable/RexImpTable.java | 1983 ++++++++------ .../adapter/enumerable/RexToLixTranslator.java | 833 +++--- .../adapter/enumerable/StrictAggImplementor.java | 10 +- .../enumerable/impl/WinAggResultContextImpl.java | 3 +- .../calcite/adapter/jdbc/JdbcConvention.java | 7 +- .../org/apache/calcite/adapter/jdbc/JdbcRules.java | 2 +- .../adapter/jdbc/JdbcToEnumerableConverter.java | 2 +- .../org/apache/calcite/adapter/jdbc/JdbcUtils.java | 44 +- .../calcite/config/CalciteConnectionConfig.java | 6 + .../config/CalciteConnectionConfigImpl.java | 4 + .../calcite/config/CalciteConnectionProperty.java | 35 +- .../calcite/config/CalciteSystemProperty.java | 7 +- .../apache/calcite/interpreter/AggregateNode.java | 3 +- .../calcite/interpreter/BindableConvention.java | 5 + .../org/apache/calcite/interpreter/Bindables.java | 22 +- .../apache/calcite/interpreter/Interpreter.java | 17 +- .../interpreter/NoneToBindableConverterRule.java | 5 +- .../apache/calcite/jdbc/ContextSqlValidator.java | 9 +- .../org/apache/calcite/jdbc/JavaCollation.java | 65 + .../calcite/materialize/LatticeSuggester.java | 6 +- .../apache/calcite/plan/AbstractRelOptPlanner.java | 28 +- .../java/org/apache/calcite/plan/Convention.java | 8 + .../apache/calcite/plan/ConventionTraitDef.java | 6 +- .../plan/MaterializedViewSubstitutionVisitor.java | 2 +- ...ViewSubstitutionVisitor.java => RelDigest.java} | 30 +- .../apache/calcite/plan/RelOptMaterialization.java | 25 +- .../calcite/plan/RelOptMaterializations.java | 46 +- .../java/org/apache/calcite/plan/RelOptNode.java | 4 +- .../org/apache/calcite/plan/RelOptPlanner.java | 19 - .../org/apache/calcite/plan/RelOptRuleOperand.java | 66 +- .../java/org/apache/calcite/plan/RelOptRules.java | 190 +- .../java/org/apache/calcite/plan/RelOptUtil.java | 81 +- .../java/org/apache/calcite/plan/RelTrait.java | 24 +- .../java/org/apache/calcite/plan/RelTraitDef.java | 18 - .../java/org/apache/calcite/plan/RelTraitSet.java | 83 +- .../main/java/org/apache/calcite/plan/Strong.java | 34 +- .../apache/calcite/plan/SubstitutionVisitor.java | 8 +- .../org/apache/calcite/plan/hep/HepPlanner.java | 13 +- .../org/apache/calcite/plan/hep/HepRelVertex.java | 18 +- .../calcite/plan/volcano/IterativeRuleDriver.java | 88 + .../{RuleQueue.java => IterativeRuleQueue.java} | 84 +- .../apache/calcite/plan/volcano/OptimizeTask.java | 344 --- .../org/apache/calcite/plan/volcano/RelSet.java | 79 +- .../org/apache/calcite/plan/volcano/RelSubset.java | 124 +- .../RuleDriver.java} | 32 +- .../org/apache/calcite/plan/volcano/RuleQueue.java | 280 +- .../calcite/plan/volcano/TopDownRuleDriver.java | 951 +++++++ .../calcite/plan/volcano/TopDownRuleQueue.java | 88 + .../calcite/plan/volcano/VolcanoPlanner.java | 308 ++- .../calcite/plan/volcano/VolcanoRuleCall.java | 17 +- .../apache/calcite/prepare/CalcitePrepareImpl.java | 16 +- .../org/apache/calcite/prepare/PlannerImpl.java | 10 +- .../org/apache/calcite/rel/AbstractRelNode.java | 211 +- .../java/org/apache/calcite/rel/RelCollation.java | 17 +- .../java/org/apache/calcite/rel/RelCollations.java | 36 + .../main/java/org/apache/calcite/rel/RelNode.java | 51 +- .../java/org/apache/calcite/rel/RelWriter.java | 15 - .../java/org/apache/calcite/rel/SingleRel.java | 1 + .../java/org/apache/calcite/rel/core/Filter.java | 23 + .../java/org/apache/calcite/rel/core/Join.java | 25 + .../java/org/apache/calcite/rel/core/Match.java | 32 +- .../java/org/apache/calcite/rel/core/Project.java | 24 + .../java/org/apache/calcite/rel/core/Window.java | 27 +- .../apache/calcite/rel/externalize/RelJson.java | 23 +- .../calcite/rel/externalize/RelJsonWriter.java | 5 +- .../calcite/rel/externalize/RelWriterImpl.java | 21 +- .../apache/calcite/rel/hint/HintOptionChecker.java | 11 +- .../org/apache/calcite/rel/hint/HintStrategy.java | 4 +- .../apache/calcite/rel/hint/HintStrategyTable.java | 23 +- .../java/org/apache/calcite/rel/hint/RelHint.java | 67 +- .../apache/calcite/rel/logical/LogicalCalc.java | 5 +- .../apache/calcite/rel/logical/LogicalFilter.java | 9 + .../apache/calcite/rel/logical/LogicalJoin.java | 13 + .../apache/calcite/rel/logical/LogicalProject.java | 8 + .../apache/calcite/rel/logical/LogicalWindow.java | 7 +- .../calcite/rel/metadata/BuiltInMetadata.java | 22 +- .../rel/metadata/DefaultRelMetadataProvider.java | 1 + .../rel/metadata/JaninoRelMetadataProvider.java | 7 +- .../calcite/rel/metadata/RelMdAllPredicates.java | 4 +- .../calcite/rel/metadata/RelMdCollation.java | 6 +- .../calcite/rel/metadata/RelMdColumnOrigins.java | 2 +- .../rel/metadata/RelMdExpressionLineage.java | 4 +- .../calcite/rel/metadata/RelMdLowerBoundCost.java | 77 + .../apache/calcite/rel/metadata/RelMdRowCount.java | 6 +- .../calcite/rel/metadata/RelMetadataQuery.java | 18 + .../calcite/rel/rel2sql/RelToSqlConverter.java | 209 +- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 202 +- .../rel/rules/AbstractMaterializedViewRule.java | 48 + .../rel/rules/AggregateCaseToFilterRule.java | 5 +- .../AggregateExpandDistinctAggregatesRule.java | 14 +- .../rel/rules/AggregateFilterTransposeRule.java | 6 +- .../rel/rules/AggregateJoinJoinRemoveRule.java | 8 +- .../calcite/rel/rules/AggregateJoinRemoveRule.java | 8 +- .../rel/rules/AggregateJoinTransposeRule.java | 13 +- .../calcite/rel/rules/AggregateMergeRule.java | 6 +- .../rel/rules/AggregateProjectMergeRule.java | 5 +- .../rules/AggregateProjectPullUpConstantsRule.java | 16 +- .../rel/rules/AggregateReduceFunctionsRule.java | 8 +- .../calcite/rel/rules/AggregateRemoveRule.java | 6 +- .../calcite/rel/rules/AggregateStarTableRule.java | 40 +- .../rel/rules/AggregateUnionAggregateRule.java | 31 +- .../rel/rules/AggregateUnionTransposeRule.java | 7 +- .../calcite/rel/rules/AggregateValuesRule.java | 7 +- .../apache/calcite/rel/rules/CalcMergeRule.java | 7 +- .../apache/calcite/rel/rules/CalcRemoveRule.java | 5 +- .../apache/calcite/rel/rules/CalcSplitRule.java | 5 +- .../org/apache/calcite/rel/rules/CoreRules.java | 953 +++++++ .../apache/calcite/rel/rules/DateRangeRules.java | 7 +- .../rel/rules/ExchangeRemoveConstantKeysRule.java | 30 +- .../rel/rules/FilterAggregateTransposeRule.java | 9 +- .../calcite/rel/rules/FilterCalcMergeRule.java | 5 +- .../calcite/rel/rules/FilterCorrelateRule.java | 4 +- .../apache/calcite/rel/rules/FilterJoinRule.java | 22 +- .../apache/calcite/rel/rules/FilterMergeRule.java | 4 +- .../rel/rules/FilterMultiJoinMergeRule.java | 5 +- .../rel/rules/FilterProjectTransposeRule.java | 13 +- .../rules/FilterRemoveIsNotDistinctFromRule.java | 6 +- .../rel/rules/FilterSetOpTransposeRule.java | 4 +- .../rules/FilterTableFunctionTransposeRule.java | 5 +- .../calcite/rel/rules/FilterTableScanRule.java | 34 +- .../apache/calcite/rel/rules/FilterToCalcRule.java | 5 +- .../calcite/rel/rules/IntersectToDistinctRule.java | 6 +- .../rel/rules/JoinAddRedundantSemiJoinRule.java | 6 +- .../calcite/rel/rules/JoinAssociateRule.java | 12 +- .../apache/calcite/rel/rules/JoinCommuteRule.java | 18 +- .../calcite/rel/rules/JoinExtractFilterRule.java | 8 +- .../rel/rules/JoinProjectTransposeRule.java | 60 +- .../calcite/rel/rules/JoinPushExpressionsRule.java | 4 +- .../calcite/rel/rules/JoinPushThroughJoinRule.java | 2 +- .../rules/JoinPushTransitivePredicatesRule.java | 6 +- .../calcite/rel/rules/JoinToCorrelateRule.java | 17 +- .../calcite/rel/rules/JoinToMultiJoinRule.java | 5 +- .../calcite/rel/rules/JoinUnionTransposeRule.java | 19 +- .../apache/calcite/rel/rules/LoptMultiJoin.java | 2 +- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 4 +- .../org/apache/calcite/rel/rules/MatchRule.java | 6 +- .../rel/rules/MaterializedViewFilterScanRule.java | 10 +- .../org/apache/calcite/rel/rules/MultiJoin.java | 1 + .../rel/rules/MultiJoinOptimizeBushyRule.java | 4 +- .../calcite/rel/rules/ProjectCalcMergeRule.java | 5 +- .../rel/rules/ProjectCorrelateTransposeRule.java | 8 +- .../rel/rules/ProjectFilterTransposeRule.java | 177 +- .../rel/rules/ProjectJoinJoinRemoveRule.java | 8 +- .../calcite/rel/rules/ProjectJoinRemoveRule.java | 8 +- .../rel/rules/ProjectJoinTransposeRule.java | 62 +- .../apache/calcite/rel/rules/ProjectMergeRule.java | 5 +- .../rel/rules/ProjectMultiJoinMergeRule.java | 5 +- .../calcite/rel/rules/ProjectRemoveRule.java | 6 +- .../rel/rules/ProjectSetOpTransposeRule.java | 6 +- .../rel/rules/ProjectSortTransposeRule.java | 1 + .../calcite/rel/rules/ProjectTableScanRule.java | 54 +- .../calcite/rel/rules/ProjectToCalcRule.java | 5 +- .../calcite/rel/rules/ProjectToWindowRule.java | 31 +- .../rel/rules/ProjectWindowTransposeRule.java | 21 +- .../apache/calcite/rel/rules/PushProjector.java | 33 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 5 +- .../calcite/rel/rules/ReduceExpressionsRule.java | 51 +- .../rel/rules/SemiJoinFilterTransposeRule.java | 4 +- .../rel/rules/SemiJoinJoinTransposeRule.java | 5 +- .../rel/rules/SemiJoinProjectTransposeRule.java | 9 +- .../calcite/rel/rules/SemiJoinRemoveRule.java | 5 +- .../org/apache/calcite/rel/rules/SemiJoinRule.java | 13 +- .../apache/calcite/rel/rules/SortJoinCopyRule.java | 8 +- .../calcite/rel/rules/SortJoinTransposeRule.java | 7 +- .../rel/rules/SortProjectTransposeRule.java | 6 +- .../rel/rules/SortRemoveConstantKeysRule.java | 8 +- .../apache/calcite/rel/rules/SortRemoveRule.java | 8 +- .../calcite/rel/rules/SortUnionTransposeRule.java | 22 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 13 +- .../calcite/rel/rules/UnionEliminatorRule.java | 6 +- .../apache/calcite/rel/rules/UnionMergeRule.java | 20 +- .../rel/rules/UnionPullUpConstantsRule.java | 9 +- .../calcite/rel/rules/UnionToDistinctRule.java | 5 +- .../apache/calcite/rel/rules/ValuesReduceRule.java | 63 +- .../materialize/MaterializedViewAggregateRule.java | 26 +- .../materialize/MaterializedViewJoinRule.java | 4 +- .../MaterializedViewOnlyAggregateRule.java | 6 +- .../MaterializedViewOnlyFilterRule.java | 6 +- .../materialize/MaterializedViewOnlyJoinRule.java | 6 +- .../MaterializedViewProjectAggregateRule.java | 6 +- .../MaterializedViewProjectFilterRule.java | 6 +- .../MaterializedViewProjectJoinRule.java | 6 +- .../rules/materialize/MaterializedViewRule.java | 2 +- .../rules/materialize/MaterializedViewRules.java | 69 + .../org/apache/calcite/rel/type/RelDataType.java | 31 + .../calcite/rel/type/RelDataTypeFieldImpl.java | 5 +- .../java/org/apache/calcite/rex/LogicVisitor.java | 46 +- .../java/org/apache/calcite/rex/RexAnalyzer.java | 2 +- .../java/org/apache/calcite/rex/RexBiVisitor.java | 40 + .../org/apache/calcite/rex/RexBiVisitorImpl.java | 119 + .../java/org/apache/calcite/rex/RexBuilder.java | 9 +- .../main/java/org/apache/calcite/rex/RexCall.java | 176 +- .../org/apache/calcite/rex/RexDynamicParam.java | 3 +- .../org/apache/calcite/rex/RexInterpreter.java | 6 +- .../java/org/apache/calcite/rex/RexLiteral.java | 3 + .../main/java/org/apache/calcite/rex/RexNode.java | 75 - .../java/org/apache/calcite/rex/RexNormalize.java | 196 ++ .../main/java/org/apache/calcite/rex/RexOver.java | 25 + .../org/apache/calcite/rex/RexProgramBuilder.java | 4 +- .../java/org/apache/calcite/rex/RexShuttle.java | 15 +- .../java/org/apache/calcite/rex/RexSimplify.java | 16 +- .../java/org/apache/calcite/rex/RexSubQuery.java | 14 +- .../org/apache/calcite/rex/RexUnaryBiVisitor.java | 88 + .../main/java/org/apache/calcite/rex/RexUtil.java | 31 +- .../java/org/apache/calcite/rex/RexVisitor.java | 27 + .../org/apache/calcite/rex/RexVisitorImpl.java | 4 +- .../org/apache/calcite/rex/RexWindowBound.java | 13 + .../main/java/org/apache/calcite/runtime/Hook.java | 4 +- .../org/apache/calcite/runtime/JsonFunctions.java | 24 +- .../org/apache/calcite/runtime/SqlFunctions.java | 130 +- .../java/org/apache/calcite/runtime/Utilities.java | 30 + .../calcite/schema/impl/TableFunctionImpl.java | 2 +- ...alciteServerStatement.java => DdlExecutor.java} | 32 +- .../org/apache/calcite/server/DdlExecutorImpl.java | 52 + .../org/apache/calcite/sql/JoinConditionType.java | 14 +- .../main/java/org/apache/calcite/sql/JoinType.java | 13 +- .../java/org/apache/calcite/sql/SqlCollation.java | 65 +- .../java/org/apache/calcite/sql/SqlCreate.java | 2 +- .../java/org/apache/calcite/sql/SqlDialect.java | 24 +- .../apache/calcite/sql/SqlDialectFactoryImpl.java | 3 + .../main/java/org/apache/calcite/sql/SqlDrop.java | 2 +- .../apache/calcite/sql/SqlExecutableStatement.java | 1 + .../java/org/apache/calcite/sql/SqlExplain.java | 12 +- .../org/apache/calcite/sql/SqlExplainFormat.java | 14 +- .../org/apache/calcite/sql/SqlExplainLevel.java | 14 +- .../apache/calcite/sql/SqlHopTableFunction.java | 16 +- .../org/apache/calcite/sql/SqlInsertKeyword.java | 14 +- .../apache/calcite/sql/SqlJdbcDataTypeName.java | 10 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 22 +- .../org/apache/calcite/sql/SqlMatchRecognize.java | 10 +- .../java/org/apache/calcite/sql/SqlOperator.java | 23 + .../org/apache/calcite/sql/SqlOverOperator.java | 2 +- .../org/apache/calcite/sql/SqlSelectKeyword.java | 14 +- .../apache/calcite/sql/SqlTumbleTableFunction.java | 19 +- .../main/java/org/apache/calcite/sql/SqlUtil.java | 6 +- .../java/org/apache/calcite/sql/SqlWindow.java | 12 +- .../apache/calcite/sql/SqlWindowTableFunction.java | 9 +- .../org/apache/calcite/sql/advise/SqlAdvisor.java | 2 +- .../apache/calcite/sql/advise/SqlSimpleParser.java | 4 +- .../calcite/sql/ddl/SqlAttributeDefinition.java | 4 +- .../apache/calcite/sql/ddl/SqlCheckConstraint.java | 0 .../calcite/sql/ddl/SqlColumnDeclaration.java | 8 +- .../calcite/sql/ddl/SqlCreateForeignSchema.java | 87 +- .../apache/calcite/sql/ddl/SqlCreateFunction.java | 9 +- .../calcite/sql/ddl/SqlCreateMaterializedView.java | 65 +- .../apache/calcite/sql/ddl/SqlCreateSchema.java | 29 +- .../org/apache/calcite/sql/ddl/SqlCreateTable.java | 65 +- .../org/apache/calcite/sql/ddl/SqlCreateType.java | 37 +- .../org/apache/calcite/sql/ddl/SqlCreateView.java | 49 +- .../org/apache/calcite/sql/ddl/SqlDdlNodes.java | 102 - .../apache/calcite/sql/ddl/SqlDropFunction.java | 0 .../calcite/sql/ddl/SqlDropMaterializedView.java | 11 +- .../org/apache/calcite/sql/ddl/SqlDropObject.java | 50 +- .../org/apache/calcite/sql/ddl/SqlDropSchema.java | 28 +- .../org/apache/calcite/sql/ddl/SqlDropTable.java | 0 .../org/apache/calcite/sql/ddl/SqlDropType.java | 0 .../org/apache/calcite/sql/ddl/SqlDropView.java | 0 .../apache/calcite/sql/ddl/SqlKeyConstraint.java | 0 .../org/apache/calcite/sql/ddl/package-info.java | 0 .../calcite/sql/dialect/ClickHouseSqlDialect.java | 24 +- .../calcite/sql/dialect/PrestoSqlDialect.java | 129 + .../org/apache/calcite/sql/fun/SqlDotOperator.java | 3 + .../calcite/sql/fun/SqlGroupingFunction.java | 16 +- .../apache/calcite/sql/fun/SqlItemOperator.java | 6 +- .../org/apache/calcite/sql/fun/SqlLibrary.java | 20 +- .../calcite/sql/fun/SqlLibraryOperators.java | 72 + .../calcite/sql/fun/SqlStdOperatorTable.java | 20 + .../apache/calcite/sql/fun/SqlTrimFunction.java | 11 +- .../org/apache/calcite/sql/parser/SqlParser.java | 12 +- .../calcite/sql/parser/SqlParserImplFactory.java | 23 + .../apache/calcite/sql/parser/SqlParserPos.java | 8 +- .../apache/calcite/sql/parser/SqlParserUtil.java | 17 +- .../org/apache/calcite/sql/type/OperandTypes.java | 6 + .../org/apache/calcite/sql/type/ReturnTypes.java | 28 +- .../calcite/sql/type/SqlTypeFactoryImpl.java | 7 +- .../org/apache/calcite/sql/type/SqlTypeUtil.java | 174 +- .../calcite/sql/validate/AliasNamespace.java | 12 +- .../apache/calcite/sql/validate/SqlValidator.java | 162 +- .../calcite/sql/validate/SqlValidatorImpl.java | 148 +- .../org/apache/calcite/sql/validate/WithScope.java | 13 - .../validate/implicit/AbstractTypeCoercion.java | 11 +- .../sql/validate/implicit/TypeCoercion.java | 24 +- .../sql/validate/implicit/TypeCoercionImpl.java | 2 +- .../apache/calcite/sql2rel/RelFieldTrimmer.java | 133 +- .../sql2rel/RelStructuredTypeFlattener.java | 7 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 82 +- .../statistic/QuerySqlStatisticProvider.java | 2 +- .../main/java/org/apache/calcite/tools/Hoist.java | 191 ++ .../java/org/apache/calcite/tools/Programs.java | 77 +- .../java/org/apache/calcite/tools/RelBuilder.java | 50 +- .../org/apache/calcite/util/BuiltInMethod.java | 16 +- .../apache/calcite/util/DateTimeStringUtils.java | 30 + .../org/apache/calcite/util/ImmutableBeans.java | 99 +- .../org/apache/calcite/util/ImmutableIntList.java | 22 +- .../java/org/apache/calcite/util/NlsString.java | 5 +- .../java/org/apache/calcite/util/ReflectUtil.java | 12 +- .../apache/calcite/util/RelToSqlConverterUtil.java | 23 + .../main/java/org/apache/calcite/util/Util.java | 17 +- .../java/org/apache/calcite/util/graph/Graphs.java | 58 +- .../calcite/materialize/LatticeSuggesterTest.java | 4 +- .../org/apache/calcite/plan/RelOptUtilTest.java | 8 +- .../org/apache/calcite/plan/RelWriterTest.java | 82 + .../calcite/plan/volcano/TraitPropagationTest.java | 8 +- .../calcite/plan/volcano/VolcanoPlannerTest.java | 27 +- .../org/apache/calcite/rel/RelCollationTest.java | 16 + .../rel/logical/ToLogicalConverterTest.java | 7 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 247 +- .../calcite/rel/rules/DateRangeRulesTest.java | 4 +- .../calcite/rel/rules/SortRemoveRuleTest.java | 17 +- .../calcite/rex/RexCallNormalizationTest.java | 99 - .../org/apache/calcite/rex/RexNormalizeTest.java | 141 + .../org/apache/calcite/rex/RexProgramTest.java | 75 +- .../org/apache/calcite/rex/RexProgramTestBase.java | 39 +- .../rex/RexSqlStandardConvertletTableTest.java | 6 +- .../apache/calcite/runtime/EnumerablesTest.java | 141 + .../apache/calcite/sql/parser/SqlParserTest.java | 109 +- .../ExtensionSqlParserTest.java | 2 +- .../parserextensiontesting/SqlCreateTable.java | 180 +- .../calcite/sql/test/SqlOperatorBaseTest.java | 65 +- .../apache/calcite/sql/type/SqlTypeFixture.java | 6 + .../apache/calcite/sql/type/SqlTypeUtilTest.java | 63 + .../calcite/sql2rel/RelFieldTrimmerTest.java | 282 +- .../calcite/test/AbstractMaterializedViewTest.java | 254 ++ .../org/apache/calcite/test/CalciteAssert.java | 32 +- .../ExtensionDdlExecutor.java} | 119 +- .../org/apache/calcite/test/HepPlannerTest.java | 47 +- .../org/apache/calcite/test/InterpreterTest.java | 4 +- .../org/apache/calcite/test/JdbcAdapterTest.java | 3 + .../java/org/apache/calcite/test/JdbcTest.java | 279 +- .../java/org/apache/calcite/test/LatticeTest.java | 19 +- .../apache/calcite/test/MaterializationTest.java | 2882 +------------------- .../test/MaterializedViewRelOptRulesTest.java | 1149 ++++++++ .../MaterializedViewSubstitutionVisitorTest.java | 1485 ++++++++++ .../apache/calcite/test/MockSqlOperatorTable.java | 71 + .../org/apache/calcite/test/MutableRelTest.java | 19 +- .../java/org/apache/calcite/test/QuidemTest.java | 3 +- .../apache/calcite/test/ReflectiveSchemaTest.java | 18 +- .../org/apache/calcite/test/RelBuilderTest.java | 113 +- .../org/apache/calcite/test/RelMetadataTest.java | 33 +- .../org/apache/calcite/test/RelOptRulesTest.java | 1650 +++++------ .../org/apache/calcite/test/RexShuttleTest.java | 4 +- .../apache/calcite/test/RexTransformerTest.java | 4 +- .../apache/calcite/test/SqlHintsConverterTest.java | 29 +- .../apache/calcite/test/SqlJsonFunctionsTest.java | 3 + .../apache/calcite/test/SqlToRelConverterTest.java | 102 +- .../org/apache/calcite/test/SqlToRelTestBase.java | 14 +- .../org/apache/calcite/test/SqlValidatorTest.java | 88 +- .../org/apache/calcite/test/TopDownOptTest.java | 708 ++++- .../calcite/test/TypeCoercionConverterTest.java | 8 + .../test/catalog/MockCatalogReaderExtended.java | 33 + .../test/catalog/MockCatalogReaderSimple.java | 4 +- .../test/enumerable/EnumerableCalcTest.java | 2 +- .../test/enumerable/EnumerableCorrelateTest.java | 17 +- .../enumerable/EnumerableSortedAggregateTest.java | 142 + .../enumerable/EnumerableStringComparisonTest.java | 249 ++ .../test/enumerable/EnumerableUncollectTest.java | 189 ++ .../org/apache/calcite/tools/FrameworksTest.java | 10 +- .../java/org/apache/calcite/tools/PlannerTest.java | 70 +- .../org/apache/calcite/util/ImmutableBeanTest.java | 37 +- .../java/org/apache/calcite/util/UtilTest.java | 13 + .../calcite/util/graph/DirectedGraphTest.java | 77 +- .../org/apache/calcite/test/RelOptRulesTest.xml | 183 +- .../apache/calcite/test/SqlHintsConverterTest.xml | 6 +- .../apache/calcite/test/SqlToRelConverterTest.xml | 103 + .../org/apache/calcite/test/TopDownOptTest.xml | 1314 ++++++++- .../calcite/test/TypeCoercionConverterTest.xml | 17 +- core/src/test/resources/saffron.properties | 2 +- core/src/test/resources/sql/misc.iq | 52 + core/src/test/resources/sql/stream.iq | 33 + .../calcite/adapter/druid/DruidConnectionImpl.java | 11 +- .../calcite/adapter/druid/DruidJsonFilter.java | 16 +- .../apache/calcite/adapter/druid/DruidRules.java | 39 +- .../adapter/druid/ExtractionDimensionSpec.java | 3 +- .../adapter/druid/TimeExtractionFunction.java | 8 +- .../adapter/elasticsearch/ElasticsearchRules.java | 9 - .../elasticsearch/ElasticsearchTableScan.java | 4 +- .../adapter/elasticsearch/PredicateAnalyzer.java | 15 +- .../adapter/elasticsearch/AggregationTest.java | 2 + .../adapter/elasticsearch/BooleanLogicTest.java | 2 + .../elasticsearch/ElasticSearchAdapterTest.java | 2 + .../calcite/adapter/elasticsearch/MatchTest.java | 2 + .../adapter/elasticsearch/Projection2Test.java | 2 + .../adapter/elasticsearch/ProjectionTest.java | 2 + .../adapter/elasticsearch/ScrollingTest.java | 1 + .../adapter/csv/CsvProjectTableScanRule.java | 5 +- .../csv/{package-info.java => CsvRules.java} | 20 +- .../apache/calcite/adapter/csv/CsvTableScan.java | 2 +- .../apache/calcite/adapter/file/package-info.java | 8 +- .../apache/calcite/adapter/file/package-info.java | 25 - .../calcite/adapter/geode/rel/GeodeRules.java | 11 +- gradle.properties | 4 +- .../calcite/adapter/kafka/KafkaAdapterTest.java | 2 + .../apache/calcite/linq4j/DefaultEnumerable.java | 11 + .../apache/calcite/linq4j/EnumerableDefaults.java | 381 ++- .../apache/calcite/linq4j/ExtendedEnumerable.java | 17 + .../apache/calcite/linq4j/function/Functions.java | 33 +- .../calcite/linq4j/function/FunctionTest.java | 7 +- .../calcite/linq4j/function/package-info.java | 21 - .../apache/calcite/linq4j/tree/package-info.java | 21 - .../apache/calcite/adapter/mongodb/MongoRules.java | 9 - .../apache/calcite/adapter/pig/PigTableScan.java | 4 +- .../calcite/test/PigRelBuilderStyleTest.java | 6 +- .../org/apache/calcite/piglet/PigConverter.java | 24 +- .../calcite/piglet/PigRelToSqlConverter.java | 14 +- .../calcite/piglet/PigToSqlAggregateRule.java | 10 +- .../apache/calcite/adapter/tpcds/TpcdsTest.java | 50 +- .../materialize/TpcdsLatticeSuggesterTest.java | 5 +- .../calcite/server/AbstractModifiableTable.java | 32 +- .../calcite/server/MaterializedViewTable.java | 47 + .../apache/calcite/server/MutableArrayTable.java | 100 + .../apache/calcite/server/ServerDdlExecutor.java | 593 ++++ .../calcite/sql/ddl/SqlCreateMaterializedView.java | 155 -- .../org/apache/calcite/sql/ddl/SqlCreateTable.java | 345 --- .../calcite/sql/ddl/SqlDropMaterializedView.java | 63 - .../java/org/apache/calcite/test/ServerTest.java | 45 +- site/README.md | 7 +- site/_docs/algebra.md | 15 + site/_docs/history.md | 210 ++ site/_docs/howto.md | 6 +- site/_docs/powered_by.md | 4 + site/_docs/reference.md | 20 +- ...ease-1.18.0.md => 2020-07-24-release-1.24.0.md} | 32 +- site/img/powered-by.png | Bin 47813 -> 425710 bytes .../spark/EnumerableToSparkConverterRule.java | 3 + .../apache/calcite/adapter/spark/HttpServer.java | 1 - .../adapter/spark/JdbcToSparkConverter.java | 2 +- .../apache/calcite/adapter/spark/SparkRules.java | 11 +- src/main/config/checkstyle/suppressions.xml | 5 +- .../enumerable/CodeGenerationBenchmark.java | 7 +- 475 files changed, 20696 insertions(+), 11090 deletions(-) create mode 100644 .asf.yaml delete mode 100644 babel/src/main/java/org/apache/calcite/sql/babel/Babel.java create mode 100644 babel/src/main/java/org/apache/calcite/sql/babel/SqlBabelCreateTable.java copy linq4j/src/main/java/org/apache/calcite/linq4j/RawQueryable.java => babel/src/main/java/org/apache/calcite/sql/babel/TableCollectionType.java (50%) create mode 100755 babel/src/test/resources/sql/big-query.iq create mode 100644 core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableAggregateBase.java create mode 100644 core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelFactories.java create mode 100644 core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableTraitsUtils.java create mode 100644 core/src/main/java/org/apache/calcite/jdbc/JavaCollation.java copy core/src/main/java/org/apache/calcite/plan/{MaterializedViewSubstitutionVisitor.java => RelDigest.java} (60%) create mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/IterativeRuleDriver.java copy core/src/main/java/org/apache/calcite/plan/volcano/{RuleQueue.java => IterativeRuleQueue.java} (78%) delete mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/OptimizeTask.java copy core/src/main/java/org/apache/calcite/plan/{RelOptCostFactory.java => volcano/RuleDriver.java} (60%) create mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/TopDownRuleDriver.java create mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/TopDownRuleQueue.java create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/RelMdLowerBoundCost.java create 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/CoreRules.java create mode 100644 core/src/main/java/org/apache/calcite/rel/rules/materialize/MaterializedViewRules.java create mode 100644 core/src/main/java/org/apache/calcite/rex/RexBiVisitorImpl.java create mode 100644 core/src/main/java/org/apache/calcite/rex/RexNormalize.java create mode 100644 core/src/main/java/org/apache/calcite/rex/RexUnaryBiVisitor.java copy core/src/main/java/org/apache/calcite/server/{CalciteServerStatement.java => DdlExecutor.java} (61%) create mode 100644 core/src/main/java/org/apache/calcite/server/DdlExecutorImpl.java rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlAttributeDefinition.java (97%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlCheckConstraint.java (100%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlColumnDeclaration.java (95%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlCreateForeignSchema.java (54%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlCreateFunction.java (90%) copy server/src/main/java/org/apache/calcite/sql/ddl/SqlCreateSchema.java => core/src/main/java/org/apache/calcite/sql/ddl/SqlCreateMaterializedView.java (51%) copy {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlCreateSchema.java (66%) rename server/src/main/java/org/apache/calcite/sql/ddl/SqlCreateSchema.java => core/src/main/java/org/apache/calcite/sql/ddl/SqlCreateTable.java (51%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlCreateType.java (65%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlCreateView.java (58%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDdlNodes.java (59%) copy {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDropFunction.java (100%) rename server/src/main/java/org/apache/calcite/sql/ddl/SqlDropFunction.java => core/src/main/java/org/apache/calcite/sql/ddl/SqlDropMaterializedView.java (78%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDropObject.java (52%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDropSchema.java (68%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDropTable.java (100%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDropType.java (100%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlDropView.java (100%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/SqlKeyConstraint.java (100%) rename {server => core}/src/main/java/org/apache/calcite/sql/ddl/package-info.java (100%) create mode 100644 core/src/main/java/org/apache/calcite/sql/dialect/PrestoSqlDialect.java create mode 100644 core/src/main/java/org/apache/calcite/tools/Hoist.java delete mode 100644 core/src/test/java/org/apache/calcite/rex/RexCallNormalizationTest.java create mode 100644 core/src/test/java/org/apache/calcite/rex/RexNormalizeTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/AbstractMaterializedViewTest.java copy core/src/test/java/org/apache/calcite/{sql/parser/parserextensiontesting/SqlCreateTable.java => test/ExtensionDdlExecutor.java} (68%) create mode 100644 core/src/test/java/org/apache/calcite/test/MaterializedViewRelOptRulesTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/MaterializedViewSubstitutionVisitorTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/enumerable/EnumerableSortedAggregateTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/enumerable/EnumerableStringComparisonTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/enumerable/EnumerableUncollectTest.java copy example/csv/src/main/java/org/apache/calcite/adapter/csv/{package-info.java => CsvRules.java} (66%) delete mode 100644 file/src/test/java/org/apache/calcite/adapter/file/package-info.java delete mode 100644 linq4j/src/test/java/org/apache/calcite/linq4j/function/package-info.java delete mode 100644 linq4j/src/test/java/org/apache/calcite/linq4j/tree/package-info.java copy core/src/main/java/org/apache/calcite/schema/ModifiableTable.java => server/src/main/java/org/apache/calcite/server/AbstractModifiableTable.java (67%) create mode 100644 server/src/main/java/org/apache/calcite/server/MaterializedViewTable.java create mode 100644 server/src/main/java/org/apache/calcite/server/MutableArrayTable.java create mode 100644 server/src/main/java/org/apache/calcite/server/ServerDdlExecutor.java delete mode 100644 server/src/main/java/org/apache/calcite/sql/ddl/SqlCreateMaterializedView.java delete mode 100644 server/src/main/java/org/apache/calcite/sql/ddl/SqlCreateTable.java delete mode 100644 server/src/main/java/org/apache/calcite/sql/ddl/SqlDropMaterializedView.java copy site/_posts/{2018-12-21-release-1.18.0.md => 2020-07-24-release-1.24.0.md} (51%)