This is an automated email from the ASF dual-hosted git repository. hyuan pushed a change to branch site in repository https://gitbox.apache.org/repos/asf/calcite.git.
discard d2e2d7c Site: Change affiliation of Stamatis Zampetakis discard 3a1e312 Site: Add Forward Xu, Jin Xing, Wang Yanlin, as committers discard bcfb500 Site: Add Vineet Garg as committer discard f7d7079 Site: Add Feng Zhu as committer add 0f7dcfb [CALCITE-3819] Prune parent RelNode when merging child RelSet with parent RelSet add 74536b7 [CALCITE-3838] Support Calc in RelMdSize,RelMdSelectivity,RelMdMaxRowCount,RelMdMinRowCount,RelMdTableReferences add b632152 [CALCITE-3839] After calling RelBuilder.aggregate, cannot lookup field by name add 91f5bb5 [CALCITE-3412] FLOOR(timestamp TO WEEK) gives wrong result add 4208d0b [CALCITE-3823] Do not use String.replaceAll add 80e6b02 [CALCITE-3753] Remove rule queue importance add 15fa9bc [CALCITE-3753] Introduce SubstitutionRule interface and execute substitutional rule first add 8d4820f [CALCITE-3847] Decorrelation for join with lateral table outputs wrong plan if the join condition contains correlation variables add ad8cf7e [CALCITE-3845] CASE WHEN expression with nullability CAST is considered as reduced wrongly in ReduceExpressionsRule add 18b9bc3 [CALCITE-3848] Rewriting for materialized view consisting of group by on join keys fails with Mappings$NoElementException (Vineet Garg) add bc2d7e1 [CALCITE-3853] Minor improvements in SortJoinCopyRule add b523007 [CALCITE-3855] Supports snapshot on table with virtual columns during sql-to-rel conversion add 4c3cef9 [CALCITE-3856] Remove code to be removed before 1.23 add 1eff60b [CALCITE-3704] Implement STRCMP function add f11115a [CALCITE-3815] Add missing SQL standard aggregate functions: EVERY, SOME, INTERSECTION add 6dfcfb4 [CALCITE-3726] Allow declaring type objects (ritesh-kapoor) add 468f019 [CALCITE-3647] MySQL COMPRESS function support (ritesh-kapoor) add d234626 [CALCITE-3694] Implement SINH function add 0e345fd [CALCITE-3862] Materialized view rewriting algorithm throws IndexOutOfBoundsException (Vineet Garg) add 2f507f1 [CALCITE-3634] Add IntersectOnCalcsToIntersectUnifyRule for materialized view recognition (dz) add a8aa439 [CALCITE-3852] RexSimplify doesn't simplify NOT EQUAL predicates add f76ddd1 [CALCITE-3285] EnumerableMergeJoin should support non-equi join conditions add 79d5001 [CALCITE-3810] Render ANTI and SEMI join to NOT EXISTS and EXISTS in the JDBC adapter. Also add forgotten IS_DISTINCT_FROM translation support add 893d41f [CALCITE-3840] Re-aliasing of VALUES that has column aliases produces wrong SQL in the JDBC adapter add ee9f35c Bump release-plugins: 1.61 -> 1.65 add 4a644e5 [CALCITE-3660] Disable PigRelBuilderStyleTest#testImplWithJoin since it fails too often for no reason add ffcfb92 [CALCITE-3829] MergeJoinEnumerator should not use inputs enumerators until it is really required add c60f675 Update Gradle: 6.1.1 -> 6.3 add 989fc12 [CALCITE-3660] Disable PigRelBuilderStyleTest#testScanAndFilter since it fails too often for no reason add ebbba56 [CALCITE-3871] Remove dependency of org.apiguardian:apiguardian-api add 8a80b72 [CALCITE-3846] EnumerableMergeJoin: wrong comparison of composite key with null values add 888dd3a [CALCITE-3684] Supports CONCAT for variable arguments (Wenhui Tang) add 1c261eb [CALCITE-3882] Remove duplicated code from SqlTypeAssignmentRule (Wenhui Tang) add 6218661 [CALCITE-3867] Support RelDistribution json serialization (Krisztian Kasa) add 08f4a98 [CALCITE-3886] Execute substitution rule according to the order they get matched add 7d4c969 Following [CALCITE-3819] Prune parent RelNode when merging child RelSet with parent RelSet add 56c4c42 [CALCITE-3885] Restore trace logging for rules queue and Volcano planner's internal state (Roman Kondakov) add a0ef3c9 [CALCITE-3660] Disable flaky test PigRelBuilderStyleTest add 4a8e105 [CALCITE-3888] Switch avatica-server to be test dependency for core add 0be2961 Site: Fix links to javadoc add b4ad630 Simplify buildSqllineClasspath build tasks add 8849b62 [CALCITE-3880] Add SortExchange support to RelFieldTrimmer (Krisztian Kasa) add 7792d57 [CALCITE-3891] Remove use of Pair.zip in RelTraitSet add b9a0fac Update release-plugins: 1.65 -> 1.70 add d0180d1 Add icon for JetBrains Toolbox add df3e3c6 [CALCITE-3876] RelToSqlConverter should not merge a Project that contains a window function that references a window function in input Project add ddda872 [CALCITE-3877] In RexWindow, make fields upperBound and lowerBound not-nullable add f1b2d3c [CALCITE-3814] Support JDK 14 and guava 28.2-jre add 9492dd4 [CALCITE-3892] Make junit test classes and methods non-public where possible add 38e2566 Add JIRA links in Git in IDEA add ddafe14 [CALCITE-3872] Simplify expressions with unary minus add 15152b6 [CALCITE-3851] Replace the node importance map with a set for pruned nodes add 4eaed59 [CALCITE-3835] Overloaded table functions fail with an assertion error if param types differ add c545ef4 [CALCITE-3726] Documentation for Declaring Objects For Types Defined In Schema (ritesh-kapoor) add c3147f4 [CALCITE-3898] RelOptPredicateList may generate incorrect map of constant values add 5f7c51d Site: Add Feng Zhu as committer add 1e6f78b Revert "[CALCITE-3871] Remove dependency of org.apiguardian:apiguardian-api" add 2bdbd95 Specify pigunit.version=0.16.0 in gradle.properties add 03fb20d Add github pull request link in git commit messages in IDEA add 16c9c36 [CALCITE-3908] JoinCommuteRule should update all input references in join condition add 4e98700 [CALCITE-3900] Add Config for SqlValidator add c9acc5b Make ubenchmark clases executable from IDEA add f93fc1d [CALCITE-3833] Support SemiJoin in EnumerableMergeJoin add 3755eb5 [CALCITE-3912] Incorrect mapping parsing when properties have same name as reserved keywords in ElasticSearch add ee1a9d2 [CALCITE-3914] Improve SubstitutionVisitor to consider RexCall of type PLUS and TIMES for canonicalization (Vineet Garg) add f17367e [CALCITE-2970] Add AbstractConverter only between derived and required traitset add e7095a2 [CALCITE-3865] RelCollationTraitDef.canConvert should always return true add 8639729 Add AvoidStarImport Checkstyle rule add b457999 [CALCITE-2593] [CALCITE-2010] Plan error when transforming multiple collations to single collation add 147b7a5 [CALCITE-3576] Remove enumerable convention check in FilterIntoJoinRule add 933e9c7 [CALCITE-3909] RelMdMinRowCount doesn't take into account UNION DISTINCT add 9262d8d [CALCITE-3733] In JDBC adapter, when generating SQL for MYSQL, generate TIMESTAMP type as DATETIME for CAST (Vineet Garg) add f1857aa [CALCITE-3324] Set updateCount when creating MetaResultSet (Robert Yokota) add 43261e4 [CALCITE-3881] SqlFunctions#addMonths yields incorrect results in some corner case (Zhenghua Gao) add dfb842e [CALCITE-3924] Fix flakey test to handle TIMESTAMP and TIMESTAMP(0) correctly (neoReMinD) add 2798d90 [CALCITE-3894] SET operation between DATE and TIMESTAMP returns a wrong result add 39e5856 [CALCITE-2157] ClickHouse dialect implementation (Chris Baynes) add fbfb58e [CALCITE-3790] Make the url() of Sources.of(file) available add 826c1cd Avoid failures in SourceTest when filesystem does not support unicode paths add 33daf82 Disable SourceTest#testAbsoluteFileToUrl until we really fix that add 238cf03 [CALCITE-3934] Allow type-coercion in CONCAT operator add 5c2b158 [CALCITE-3931] Add LOOKAHEAD(2) for methods defined in createStatementParserMethods add bf0ca49 [CALCITE-3447] MutableScans with the same qualified name are not equivalent (Dai Min, Jin Xing) add eed3d1b [CALCITE-3940] Hint item can not parse correctly if the name is right after token /*+ add 90f3e98 [CALCITE-3868] Remove redundant ruleSet and ruleNames in VolcanoPlanner add ff71266 [CALCITE-3927] RelSubset is not fired for rule when set gets merged (Botong Huang) add 6da2086 [CALCITE-3937] Fire rule for RelSubset only when it is derived add 53bbd2d [CALCITE-3947] AbstractRelOptPlanner.classes should be LinkedHashSet so that rule match order is deterministic across runs add 21777f1 [CALCITE-3944] Move dumpSets and dumpGraphviz out of VolcanoPlanner add a136dc4 [CALCITE-3939] Change UnionEliminatorRule and ProjectRemoveRule to auto pruning SubstitutionRule (Botong Huang) add 3807696 [CALCITE-3942] Move type-coercion configurations into SqlValidator.Config add 55c5853 [CALCITE-3758] FilterTableScanRule generate wrong mapping for filter condition when underlying is BindableTableScan (Jin Xing) add d3286ad [CALCITE-3948] RelSubset matching is not properly handled in VolcanoRuleCall (Botong Huang) add 789a2ae [CALCITE-3915] Add rule listener to report rule attempts and time at DEBUG log level (Xiening Dai) add af8c8ef Revert "[CALCITE-3947] AbstractRelOptPlanner.classes should be LinkedHashSet so that rule match order is deterministic across runs" add f62d6b9 [CALCITE-3955] Remove the first operand of RexCall from SqlWindowTableFunction add 2129000 [CALCITE-3954] Always compare types using equals add e44beba [CALCITE-3789] Supports Presto style unnest with items alias (Will Yu) add 914b6c5 Revert "[CALCITE-3937] Fire rule for RelSubset only when it is derived" add 11c8868 [CALCITE-3949] RelDistributions.of() and RelCollations.of() should canonize trait instance add 650ce46 [CALCITE-3878] Create ArrayList with initial capacity when size is known (Xu Zhang) add 0e00d65 [CALCITE-3827] Reduce the time complexity of finding in-edges of a vertex in the graph (Liya Fan) add 9adf4a4 [CALCITE-3938] Support LogicalCalc in RelShuttle (dz) add f1c0756 [CALCITE-3962] Make JSON_VALUE operands varadic add 24dd266 [CALCITE-3928] Trim unused fields before materialized view matching (dz) add f8993e4 Site: Add Vineet Garg as committer add 0c1f1e8 Site: Add Forward Xu, Jin Xing, Wang Yanlin, as committers add 22bfcf0 Site: Change affiliation of Stamatis Zampetakis add 4787cba [CALCITE-3889] Add apply(Mappings.Mapping) to RelTrait and RelTraitSet add 5489174 Add Maven Central badge to README.md add d6cc11b Disable TpcdsTest.testTableCount() add 69fb7e0 Disable count table tests in TpchTest add ac7d2b6 [CALCITE-3921] Support TableModify json serialization and deserialization (Wang Yanlin) add eb57665 [CALCITE-3958] Revise documentation of gradle.properties in Cassandra/Piglet and SubstitutionVisitor (xzh) add 0cdb7a8 [CALCITE-3718] Support Intersect and Minus in Bindables (xzh) add e722414 [CALCITE-3966] Trigger rules for existing RelSubset when it becomes delivered add d1aae57 [CALCITE-3971] Support Calc in RelMdColumnOrigins (Xu ZhaoHui) add cecfece [CALCITE-3887] Filter and Join conditions may not need to retain nullability during simplifications add e455734 Fix rawclass issues add 0220166 [CALCITE-3965] Avoid DiffRepository lock contention add 22fca8e [CALCITE-3973] Hints should not unparse as enclosed in parentheses (Alex Baden) add e3fe745 [CALCITE-3926] CannotPlanException when an empty LogicalValues requires a certain collation add 92eaf56 Site: Add Ant Financial logo in powered-by image (Wang Yanlin) add e081c5b [CALCITE-3866] "numeric field overflow" when running the generated SQL in PostgreSQL (Wenhui Tang) add 40e588d [CALCITE-3737] HOP Table Function (Rui Wang) add 890eb61 [CALCITE-3780] SESSION Table function (Rui Wang) add 2a4779f [CALCITE-3961] VolcanoPlanner.prunedNodes info is lost when duplicate relNode is discarded (Botong Huang) add 09b13cf [CALCITE-3980] Redis-adapter redis connection is not reused when RedisTable is created (Xu Zhang) add 9c31d9e [CALCITE-3896] Top down trait request add ef28c9b [CALCITE-3983] Add utility methods to RelTraitSet add 916f1e7 Disable time-wasting test add 2730b4b [CALCITE-3984] Support exchange operator in RelFieldTrimmer (Xu Zhaohui) add de3bef9 [CALCITE-3982] Simplify FilterMergeRule to rely on RelBuilder instead of RexProgram add 888e879 [CALCITE-3969] Trait keys remapping may throw exception when some trait key is not mapped (Roman Kondakov) add 2e30293 The release tag should be 'calcite-N.N' not 'vN.N' add ffa22f7 [CALCITE-3979] Simplification might have removed CAST expression(s) incorrectly add 7be30db [CALCITE-3997] Logical rules matched with physical operators but failed to handle traits add 05376d6 Following [CALCITE-3997] Remove TransformationRule from CalcMergeRule temporarily add b708fdc [CALCITE-3989] Release Calcite 1.23.0 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 (d2e2d7c) \ N -- N -- N refs/heads/site (b708fdc) 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: .github/workflows/main.yml | 6 +- .gitignore | 6 +- .idea/icon.png | Bin 0 -> 6717 bytes .idea/vcs.xml | 20 + .ratignore | 3 +- .travis.yml | 1 + README | 2 +- README.md | 4 +- .../org/apache/calcite/test/BabelParserTest.java | 26 +- .../org/apache/calcite/test/BabelQuidemTest.java | 2 +- .../java/org/apache/calcite/test/BabelTest.java | 4 +- babel/src/test/resources/sql/redshift.iq | 74 +- build.gradle.kts | 33 +- .../apache/calcite/buildtools/javacc/JavaCCTask.kt | 12 +- cassandra/gradle.properties | 4 +- .../test/CassandraAdapterDataTypesTest.java | 22 +- .../apache/calcite/test/CassandraAdapterTest.java | 24 +- core/build.gradle.kts | 2 +- core/src/main/codegen/config.fmpp | 1 + core/src/main/codegen/templates/Parser.jj | 70 +- .../calcite/adapter/enumerable/EnumUtils.java | 274 ++++- .../enumerable/EnumerableAggregateRule.java | 6 +- .../adapter/enumerable/EnumerableConvention.java | 22 +- .../adapter/enumerable/EnumerableMergeJoin.java | 147 ++- .../enumerable/EnumerableMergeJoinRule.java | 28 +- .../enumerable/EnumerableNestedLoopJoin.java | 6 +- .../calcite/adapter/enumerable/EnumerableRel.java | 23 +- .../adapter/enumerable/EnumerableRules.java | 3 + .../enumerable/EnumerableSortedAggregate.java | 96 ++ ...ule.java => EnumerableSortedAggregateRule.java} | 44 +- .../enumerable/EnumerableTableFunctionScan.java | 6 +- .../adapter/enumerable/EnumerableUncollect.java | 3 +- .../adapter/enumerable/EnumerableUnionRule.java | 10 +- .../adapter/enumerable/EnumerableValues.java | 2 +- .../adapter/enumerable/EnumerableValuesRule.java | 9 +- .../calcite/adapter/enumerable/RexImpTable.java | 226 +++- .../adapter/enumerable/RexToLixTranslator.java | 8 +- ...ntor.java => TableFunctionCallImplementor.java} | 2 +- .../org/apache/calcite/adapter/jdbc/JdbcRules.java | 5 + .../calcite/config/CalciteSystemProperty.java | 9 + .../org/apache/calcite/interpreter/Bindables.java | 112 +- .../apache/calcite/jdbc/CalciteConnectionImpl.java | 4 +- .../org/apache/calcite/jdbc/CalciteMetaImpl.java | 11 +- .../apache/calcite/plan/AbstractRelOptPlanner.java | 147 ++- .../java/org/apache/calcite/plan/Convention.java | 30 +- .../java/org/apache/calcite/plan/DeriveMode.java | 59 ++ .../calcite/plan/RelOptMaterializations.java | 22 + .../org/apache/calcite/plan/RelOptPlanner.java | 15 + .../java/org/apache/calcite/plan/RelOptRule.java | 4 +- .../java/org/apache/calcite/plan/RelOptUtil.java | 10 +- .../java/org/apache/calcite/plan/RelTrait.java | 25 + .../java/org/apache/calcite/plan/RelTraitDef.java | 1 + .../java/org/apache/calcite/plan/RelTraitSet.java | 153 ++- .../apache/calcite/plan/SubstitutionVisitor.java | 158 ++- .../org/apache/calcite/plan/hep/HepPlanner.java | 32 +- .../calcite/plan/volcano/AbstractConverter.java | 4 + .../org/apache/calcite/plan/volcano/Dumpers.java | 339 ++++++ .../apache/calcite/plan/volcano/OptimizeTask.java | 344 ++++++ .../org/apache/calcite/plan/volcano/RelSet.java | 262 +++-- .../org/apache/calcite/plan/volcano/RelSubset.java | 91 +- .../org/apache/calcite/plan/volcano/RuleQueue.java | 488 ++------- .../calcite/plan/volcano/VolcanoPlanner.java | 696 +++--------- .../calcite/plan/volcano/VolcanoRuleCall.java | 57 +- .../calcite/plan/volcano/VolcanoRuleMatch.java | 101 -- ...nnerPhase.java => VolcanoTimeoutException.java} | 11 +- .../calcite/prepare/CalciteMaterializer.java | 4 + .../apache/calcite/prepare/CalcitePrepareImpl.java | 13 +- .../calcite/prepare/CalciteSqlValidator.java | 5 +- .../org/apache/calcite/prepare/PlannerImpl.java | 27 +- .../java/org/apache/calcite/prepare/Prepare.java | 5 +- .../org/apache/calcite/rel/AbstractRelNode.java | 4 + .../java/org/apache/calcite/rel/PhysicalNode.java | 154 +++ .../org/apache/calcite/rel/RelCollationImpl.java | 25 + .../apache/calcite/rel/RelCollationTraitDef.java | 15 +- .../java/org/apache/calcite/rel/RelCollations.java | 34 +- .../org/apache/calcite/rel/RelDistribution.java | 18 + .../org/apache/calcite/rel/RelDistributions.java | 43 +- .../main/java/org/apache/calcite/rel/RelNode.java | 11 + .../main/java/org/apache/calcite/rel/RelRoot.java | 2 +- .../java/org/apache/calcite/rel/RelShuttle.java | 3 + .../org/apache/calcite/rel/RelShuttleImpl.java | 5 + .../org/apache/calcite/rel/core/RelFactories.java | 79 +- .../java/org/apache/calcite/rel/core/Sort.java | 5 + .../org/apache/calcite/rel/core/TableModify.java | 25 +- .../org/apache/calcite/rel/core/TableScan.java | 5 +- .../org/apache/calcite/rel/core/Uncollect.java | 63 +- .../java/org/apache/calcite/rel/core/Window.java | 65 +- .../calcite/rel/externalize/RelEnumTypes.java | 2 + .../apache/calcite/rel/externalize/RelJson.java | 58 +- .../calcite/rel/externalize/RelJsonReader.java | 5 +- .../apache/calcite/rel/logical/LogicalJoin.java | 30 - .../apache/calcite/rel/logical/LogicalProject.java | 12 - .../calcite/rel/logical/LogicalSortExchange.java | 8 + .../calcite/rel/logical/LogicalTableModify.java | 8 + .../calcite/rel/logical/LogicalTableScan.java | 6 - .../apache/calcite/rel/logical/LogicalValues.java | 6 +- .../calcite/rel/logical/ToLogicalConverter.java | 6 +- .../calcite/rel/metadata/RelMdCollation.java | 32 +- .../calcite/rel/metadata/RelMdColumnOrigins.java | 63 +- .../calcite/rel/metadata/RelMdMaxRowCount.java | 5 + .../calcite/rel/metadata/RelMdMinRowCount.java | 17 +- .../calcite/rel/metadata/RelMdSelectivity.java | 17 + .../org/apache/calcite/rel/metadata/RelMdSize.java | 11 + .../calcite/rel/metadata/RelMdTableReferences.java | 8 + .../apache/calcite/rel/mutable/MutableRels.java | 6 +- .../apache/calcite/rel/mutable/MutableScan.java | 5 +- .../apache/calcite/rel/mutable/MutableSetOp.java | 2 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 105 +- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 37 +- .../rel/rules/AbstractJoinExtractFilterRule.java | 3 +- .../rel/rules/AggregateCaseToFilterRule.java | 5 +- .../AggregateExpandDistinctAggregatesRule.java | 3 +- .../rel/rules/AggregateExtractProjectRule.java | 3 +- .../rel/rules/AggregateFilterTransposeRule.java | 3 +- .../rel/rules/AggregateJoinJoinRemoveRule.java | 3 +- .../calcite/rel/rules/AggregateJoinRemoveRule.java | 2 +- .../rel/rules/AggregateJoinTransposeRule.java | 2 +- .../calcite/rel/rules/AggregateMergeRule.java | 2 +- .../rel/rules/AggregateProjectMergeRule.java | 2 +- .../rules/AggregateProjectPullUpConstantsRule.java | 3 +- .../rel/rules/AggregateReduceFunctionsRule.java | 3 +- .../calcite/rel/rules/AggregateRemoveRule.java | 3 +- .../calcite/rel/rules/AggregateStarTableRule.java | 2 +- .../rel/rules/AggregateUnionAggregateRule.java | 2 +- .../rel/rules/AggregateUnionTransposeRule.java | 2 +- .../calcite/rel/rules/AggregateValuesRule.java | 4 +- .../apache/calcite/rel/rules/CalcMergeRule.java | 2 +- .../apache/calcite/rel/rules/CalcRemoveRule.java | 2 +- .../apache/calcite/rel/rules/CalcSplitRule.java | 2 +- .../apache/calcite/rel/rules/CoerceInputsRule.java | 2 +- .../apache/calcite/rel/rules/DateRangeRules.java | 2 +- .../rel/rules/ExchangeRemoveConstantKeysRule.java | 7 +- .../rel/rules/FilterAggregateTransposeRule.java | 2 +- .../calcite/rel/rules/FilterCalcMergeRule.java | 2 +- .../calcite/rel/rules/FilterCorrelateRule.java | 2 +- .../apache/calcite/rel/rules/FilterJoinRule.java | 18 +- .../apache/calcite/rel/rules/FilterMergeRule.java | 40 +- .../rel/rules/FilterMultiJoinMergeRule.java | 2 +- .../rel/rules/FilterProjectTransposeRule.java | 6 +- .../rules/FilterRemoveIsNotDistinctFromRule.java | 3 +- .../rel/rules/FilterSetOpTransposeRule.java | 2 +- .../rules/FilterTableFunctionTransposeRule.java | 3 +- .../calcite/rel/rules/FilterTableScanRule.java | 2 +- .../apache/calcite/rel/rules/FilterToCalcRule.java | 2 +- .../calcite/rel/rules/IntersectToDistinctRule.java | 2 +- .../rel/rules/JoinAddRedundantSemiJoinRule.java | 3 +- .../calcite/rel/rules/JoinAssociateRule.java | 2 +- .../apache/calcite/rel/rules/JoinCommuteRule.java | 57 +- .../rel/rules/JoinProjectTransposeRule.java | 2 +- .../calcite/rel/rules/JoinPushExpressionsRule.java | 2 +- .../calcite/rel/rules/JoinPushThroughJoinRule.java | 2 +- .../rules/JoinPushTransitivePredicatesRule.java | 2 +- .../calcite/rel/rules/JoinToCorrelateRule.java | 2 +- .../calcite/rel/rules/JoinToMultiJoinRule.java | 2 +- .../calcite/rel/rules/JoinUnionTransposeRule.java | 2 +- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 2 +- .../org/apache/calcite/rel/rules/MatchRule.java | 2 +- .../rel/rules/MaterializedViewFilterScanRule.java | 2 +- .../rel/rules/MultiJoinOptimizeBushyRule.java | 2 +- .../calcite/rel/rules/ProjectCalcMergeRule.java | 2 +- .../rel/rules/ProjectCorrelateTransposeRule.java | 2 +- .../rel/rules/ProjectFilterTransposeRule.java | 2 +- .../rel/rules/ProjectJoinJoinRemoveRule.java | 3 +- .../calcite/rel/rules/ProjectJoinRemoveRule.java | 2 +- .../rel/rules/ProjectJoinTransposeRule.java | 11 +- .../apache/calcite/rel/rules/ProjectMergeRule.java | 8 +- .../rel/rules/ProjectMultiJoinMergeRule.java | 2 +- .../calcite/rel/rules/ProjectRemoveRule.java | 15 +- .../rel/rules/ProjectSetOpTransposeRule.java | 2 +- .../rel/rules/ProjectSortTransposeRule.java | 2 +- .../calcite/rel/rules/ProjectToCalcRule.java | 2 +- .../calcite/rel/rules/ProjectToWindowRule.java | 2 +- .../rel/rules/ProjectWindowTransposeRule.java | 2 +- .../apache/calcite/rel/rules/PruneEmptyRules.java | 62 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 2 +- .../calcite/rel/rules/ReduceExpressionsRule.java | 109 +- .../rel/rules/SemiJoinFilterTransposeRule.java | 2 +- .../rel/rules/SemiJoinJoinTransposeRule.java | 2 +- .../rel/rules/SemiJoinProjectTransposeRule.java | 2 +- .../calcite/rel/rules/SemiJoinRemoveRule.java | 2 +- .../org/apache/calcite/rel/rules/SemiJoinRule.java | 2 +- .../apache/calcite/rel/rules/SortJoinCopyRule.java | 7 +- .../calcite/rel/rules/SortJoinTransposeRule.java | 2 +- .../rel/rules/SortProjectTransposeRule.java | 6 +- .../rel/rules/SortRemoveConstantKeysRule.java | 7 +- .../apache/calcite/rel/rules/SortRemoveRule.java | 2 +- .../calcite/rel/rules/SortUnionTransposeRule.java | 2 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 2 +- .../rules/SubstitutionRule.java} | 30 +- .../apache/calcite/rel/rules/TableScanRule.java | 2 +- .../calcite/rel/rules/TransformationRule.java | 40 + .../calcite/rel/rules/UnionEliminatorRule.java | 22 +- .../apache/calcite/rel/rules/UnionMergeRule.java | 2 +- .../rel/rules/UnionPullUpConstantsRule.java | 2 +- .../calcite/rel/rules/UnionToDistinctRule.java | 2 +- .../apache/calcite/rel/rules/ValuesReduceRule.java | 4 +- .../materialize/MaterializedViewAggregateRule.java | 40 +- .../rules/materialize/MaterializedViewRule.java | 14 +- .../org/apache/calcite/rel/stream/StreamRules.java | 33 +- .../apache/calcite/rel/type/RelDataTypeImpl.java | 8 +- .../calcite/rel/type/RelDataTypeSystemImpl.java | 16 + .../java/org/apache/calcite/rex/RexAnalyzer.java | 4 + .../java/org/apache/calcite/rex/RexBuilder.java | 43 +- .../java/org/apache/calcite/rex/RexLocalRef.java | 2 +- .../main/java/org/apache/calcite/rex/RexOver.java | 7 +- .../java/org/apache/calcite/rex/RexShuttle.java | 34 +- .../java/org/apache/calcite/rex/RexSimplify.java | 60 +- .../main/java/org/apache/calcite/rex/RexUtil.java | 53 +- .../java/org/apache/calcite/rex/RexWindow.java | 130 ++- .../org/apache/calcite/rex/RexWindowBound.java | 177 +--- .../org/apache/calcite/rex/RexWindowBounds.java | 201 ++++ .../calcite/runtime/CompressionFunctions.java | 65 ++ .../org/apache/calcite/runtime/JsonFunctions.java | 10 +- .../org/apache/calcite/runtime/SqlFunctions.java | 47 +- .../java/org/apache/calcite/schema/Schemas.java | 4 +- .../org/apache/calcite/sql/SqlCallBinding.java | 8 + .../java/org/apache/calcite/sql/SqlDialect.java | 19 +- .../apache/calcite/sql/SqlDialectFactoryImpl.java | 5 + .../java/org/apache/calcite/sql/SqlFunction.java | 19 +- .../apache/calcite/sql/SqlHopTableFunction.java | 69 ++ .../org/apache/calcite/sql/SqlInfixOperator.java | 4 - .../apache/calcite/sql/SqlJsonEmptyOrError.java | 4 +- .../calcite/sql/SqlJsonExistsErrorBehavior.java | 2 +- .../sql/SqlJsonValueEmptyOrErrorBehavior.java | 11 +- ...lAccessEnum.java => SqlJsonValueReturning.java} | 6 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 6 +- .../java/org/apache/calcite/sql/SqlOperator.java | 4 +- .../org/apache/calcite/sql/SqlSelectOperator.java | 2 +- .../calcite/sql/SqlSessionTableFunction.java | 71 ++ .../calcite/sql/SqlSplittableAggFunction.java | 9 +- .../apache/calcite/sql/SqlTumbleTableFunction.java | 65 ++ ...ructor.java => SqlTypeConstructorFunction.java} | 44 +- .../org/apache/calcite/sql/SqlUnnestOperator.java | 11 +- .../main/java/org/apache/calcite/sql/SqlUtil.java | 68 +- .../java/org/apache/calcite/sql/SqlWindow.java | 62 +- .../apache/calcite/sql/SqlWindowTableFunction.java | 49 +- .../{SqlSelectKeyword.java => Symbolizable.java} | 13 +- .../calcite/sql/advise/SqlAdvisorValidator.java | 7 +- .../calcite/sql/dialect/BigQuerySqlDialect.java | 4 - .../calcite/sql/dialect/ClickHouseSqlDialect.java | 242 +++++ .../calcite/sql/dialect/MysqlSqlDialect.java | 9 + .../apache/calcite/sql/fun/SqlCaseOperator.java | 4 +- .../calcite/sql/fun/SqlDatetimePlusOperator.java | 5 - .../sql/fun/SqlDatetimeSubtractionOperator.java | 5 - .../org/apache/calcite/sql/fun/SqlInOperator.java | 4 +- .../calcite/sql/fun/SqlJsonExistsFunction.java | 13 +- .../calcite/sql/fun/SqlJsonValueFunction.java | 192 ++-- .../calcite/sql/fun/SqlLibraryOperators.java | 46 +- .../calcite/sql/fun/SqlMinMaxAggFunction.java | 11 +- .../org/apache/calcite/sql/fun/SqlRowOperator.java | 7 - .../calcite/sql/fun/SqlStdOperatorTable.java | 72 +- .../apache/calcite/sql/parser/SqlParserUtil.java | 12 +- .../apache/calcite/sql/pretty/SqlPrettyWriter.java | 8 +- .../org/apache/calcite/sql/type/BasicSqlType.java | 13 - .../sql/type/ComparableOperandTypeChecker.java | 2 +- .../sql/type/CompositeOperandTypeChecker.java | 54 +- .../sql/type/ExplicitOperandTypeChecker.java | 75 ++ .../calcite/sql/type/FamilyOperandTypeChecker.java | 4 +- .../org/apache/calcite/sql/type/ReturnTypes.java | 53 + .../SameOperandTypeExceptLastOperandChecker.java | 2 +- .../calcite/sql/type/SetopOperandTypeChecker.java | 2 +- .../calcite/sql/type/SqlTypeAssignmentRule.java | 6 - .../calcite/sql/type/SqlTypeCoercionRule.java | 5 +- .../org/apache/calcite/sql/type/SqlTypeUtil.java | 17 +- .../calcite/sql/validate/IdentifierNamespace.java | 2 +- .../apache/calcite/sql/validate/OrderByScope.java | 2 +- .../sql/validate/SqlAbstractConformance.java | 3 + .../calcite/sql/validate/SqlConformance.java | 64 +- .../calcite/sql/validate/SqlConformanceEnum.java | 21 + .../sql/validate/SqlDelegatingConformance.java | 4 + .../apache/calcite/sql/validate/SqlValidator.java | 240 ++++- .../calcite/sql/validate/SqlValidatorImpl.java | 140 +-- .../calcite/sql/validate/SqlValidatorUtil.java | 8 +- .../validate/implicit/AbstractTypeCoercion.java | 39 +- .../validate/implicit/TypeCoercionFactory.java} | 27 +- .../sql/validate/implicit/TypeCoercionImpl.java | 48 +- .../sql/validate/implicit/TypeCoercions.java | 10 +- .../apache/calcite/sql2rel/AuxiliaryConverter.java | 2 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 8 + .../apache/calcite/sql2rel/RelFieldTrimmer.java | 84 ++ .../sql2rel/RelStructuredTypeFlattener.java | 20 + .../apache/calcite/sql2rel/SqlToRelConverter.java | 180 ++-- .../calcite/sql2rel/StandardConvertletTable.java | 52 +- .../org/apache/calcite/tools/FrameworkConfig.java | 6 + .../java/org/apache/calcite/tools/Frameworks.java | 18 +- .../java/org/apache/calcite/tools/RelBuilder.java | 36 +- .../java/org/apache/calcite/util/BitString.java | 2 +- .../org/apache/calcite/util/BuiltInMethod.java | 20 +- .../org/apache/calcite/util/ImmutableBeans.java | 9 +- .../java/org/apache/calcite/util/Permutation.java | 12 +- .../main/java/org/apache/calcite/util/Sources.java | 51 +- .../main/java/org/apache/calcite/util/Util.java | 2 +- .../util/graph/AttributedDirectedGraph.java | 28 +- .../calcite/util/graph/DefaultDirectedGraph.java | 94 +- .../apache/calcite/util/graph/DirectedGraph.java | 2 + .../org/apache/calcite/util/mapping/Mappings.java | 79 +- .../apache/calcite/util/trace/CalciteTrace.java | 14 + .../calcite/adapter/clone/ArrayTableTest.java | 24 +- .../calcite/adapter/enumerable/EnumUtilsTest.java | 8 +- .../calcite/adapter/enumerable/PhysTypeTest.java | 6 +- .../calcite/adapter/enumerable/TypeFinderTest.java | 10 +- .../calcite/jdbc/CalciteRemoteDriverTest.java | 58 +- .../apache/calcite/jdbc/JavaTypeFactoryTest.java | 10 +- .../calcite/materialize/LatticeSuggesterTest.java | 36 +- .../materialize/NormalizationTrimFieldTest.java | 103 ++ .../apache/calcite/plan/RelOptPlanReaderTest.java | 8 +- .../org/apache/calcite/plan/RelOptUtilTest.java | 28 +- .../java/org/apache/calcite/plan/RelTraitTest.java | 45 +- .../org/apache/calcite/plan/RelWriterTest.java | 289 ++++- .../plan/volcano/CollationConversionTest.java | 5 +- .../apache/calcite/plan/volcano/ComboRuleTest.java | 4 +- .../apache/calcite/plan/volcano/PlannerTests.java | 20 +- .../calcite/plan/volcano/TraitConversionTest.java | 5 +- .../calcite/plan/volcano/TraitPropagationTest.java | 4 +- .../calcite/plan/volcano/VolcanoPlannerTest.java | 136 ++- .../plan/volcano/VolcanoPlannerTraitTest.java | 10 +- .../prepare/LookupOperatorOverloadsTest.java | 14 +- .../org/apache/calcite/profile/ProfilerTest.java | 27 +- .../org/apache/calcite/rel/RelCollationTest.java | 66 +- .../apache/calcite/rel/RelDistributionTest.java | 50 +- .../rel/logical/ToLogicalConverterTest.java | 42 +- .../rel/rel2sql/RelToSqlConverterStructsTest.java | 8 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 864 ++++++++++----- .../calcite/rel/rules/DateRangeRulesTest.java | 56 +- .../calcite/rel/rules/EnumerableLimitRuleTest.java | 4 +- .../calcite/rel/rules/SortRemoveRuleTest.java | 8 +- .../org/apache/calcite/rex/RexBuilderTest.java | 54 +- .../calcite/rex/RexCallNormalizationTest.java | 18 +- .../org/apache/calcite/rex/RexExecutorTest.java | 35 +- .../apache/calcite/rex/RexLosslessCastTest.java | 10 +- .../apache/calcite/rex/RexProgramBuilderBase.java | 60 ++ .../org/apache/calcite/rex/RexProgramTest.java | 307 ++++-- .../org/apache/calcite/rex/RexProgramTestBase.java | 2 +- .../rex/RexSqlStandardConvertletTableTest.java | 8 +- .../org/apache/calcite/runtime/AutomatonTest.java | 20 +- .../apache/calcite/runtime/BinarySearchTest.java | 14 +- .../runtime/DeterministicAutomatonTest.java | 10 +- .../apache/calcite/runtime/EnumerablesTest.java | 330 ++++-- .../calcite/sql/SqlSetOptionOperatorTest.java | 10 +- .../apache/calcite/sql/parser/SqlParserTest.java | 820 +++++++------- .../apache/calcite/sql/parser/SqlUnParserTest.java | 2 +- .../ExtensionSqlParserTest.java | 10 +- .../apache/calcite/sql/test/DocumentationTest.java | 6 +- .../apache/calcite/sql/test/SqlAdvisorTest.java | 91 +- .../calcite/sql/test/SqlOperatorBaseTest.java | 756 ++++++++----- .../apache/calcite/sql/test/SqlOperatorTest.java | 4 +- .../calcite/sql/test/SqlPrettyWriterTest.java | 84 +- .../apache/calcite/sql/test/SqlRuntimeTester.java | 4 +- .../apache/calcite/sql/test/SqlTestFactory.java | 10 +- .../apache/calcite/sql/test/SqlTypeNameTest.java | 74 +- .../calcite/sql/type/RelDataTypeSystemTest.java | 16 +- .../calcite/sql/type/SqlTypeFactoryTest.java | 62 +- .../apache/calcite/sql/type/SqlTypeUtilTest.java | 16 +- .../calcite/sql/validate/LexCaseSensitiveTest.java | 32 +- .../apache/calcite/sql/validate/LexEscapeTest.java | 12 +- .../calcite/sql/validate/SqlValidatorUtilTest.java | 18 +- .../calcite/sql2rel/RelFieldTrimmerTest.java | 186 ++++ .../org/apache/calcite/test/CalciteAssert.java | 9 +- .../apache/calcite/test/CalciteResourceTest.java | 4 +- .../calcite/test/CalciteSqlOperatorTest.java | 4 +- .../apache/calcite/test/CollectionTypeTest.java | 26 +- .../org/apache/calcite/test/CoreQuidemTest.java | 2 +- .../org/apache/calcite/test/DiffRepository.java | 14 +- .../java/org/apache/calcite/test/DiffTestCase.java | 10 +- .../apache/calcite/test/ExceptionMessageTest.java | 10 +- .../org/apache/calcite/test/FilteratorTest.java | 10 +- .../java/org/apache/calcite/test/FoodmartTest.java | 2 +- .../org/apache/calcite/test/HepPlannerTest.java | 30 +- .../calcite/test/InduceGroupingTypeTest.java | 8 +- .../org/apache/calcite/test/InterpreterTest.java | 70 +- .../org/apache/calcite/test/JdbcAdapterTest.java | 210 ++-- .../test/JdbcFrontJdbcBackLinqMiddleTest.java | 30 +- .../apache/calcite/test/JdbcFrontJdbcBackTest.java | 14 +- .../apache/calcite/test/JdbcFrontLinqBackTest.java | 38 +- .../java/org/apache/calcite/test/JdbcTest.java | 795 ++++++++------ .../java/org/apache/calcite/test/LatticeTest.java | 92 +- .../apache/calcite/test/LinqFrontJdbcBackTest.java | 4 +- .../calcite/test/LogicalProjectDigestTest.java | 6 +- .../java/org/apache/calcite/test/Matchers.java | 6 +- .../apache/calcite/test/MaterializationTest.java | 512 +++++---- .../java/org/apache/calcite/test/ModelTest.java | 22 +- .../calcite/test/MultiJdbcSchemaJoinTest.java | 16 +- .../org/apache/calcite/test/MutableRelTest.java | 78 +- .../org/apache/calcite/test/PigRelBuilderTest.java | 46 +- .../java/org/apache/calcite/test/QuidemTest.java | 10 +- .../apache/calcite/test/ReflectiveSchemaTest.java | 86 +- .../org/apache/calcite/test/RelBuilderTest.java | 444 +++++--- .../calcite/test/RelMdColumnOriginsTest.java | 4 +- .../test/RelMdPercentageOriginalRowsTest.java | 4 +- .../org/apache/calcite/test/RelMetadataTest.java | 404 +++---- .../org/apache/calcite/test/RelOptRulesTest.java | 1119 ++++++++++++-------- .../org/apache/calcite/test/RelOptTestBase.java | 55 +- .../calcite/test/RexImplicationCheckerTest.java | 38 +- .../org/apache/calcite/test/RexShuttleTest.java | 6 +- .../apache/calcite/test/RexTransformerTest.java | 38 +- .../apache/calcite/test/ScannableTableTest.java | 93 +- .../apache/calcite/test/SqlAdvisorJdbcTest.java | 18 +- .../org/apache/calcite/test/SqlFunctionsTest.java | 113 +- .../apache/calcite/test/SqlHintsConverterTest.java | 54 +- .../apache/calcite/test/SqlJsonFunctionsTest.java | 48 +- .../org/apache/calcite/test/SqlLimitsTest.java | 2 +- .../java/org/apache/calcite/test/SqlLineTest.java | 4 +- .../calcite/test/SqlOperatorBindingTest.java | 6 +- .../calcite/test/SqlStatisticProviderTest.java | 8 +- .../java/org/apache/calcite/test/SqlTestGen.java | 4 +- .../test/SqlToRelConverterExtendedTest.java | 2 +- .../apache/calcite/test/SqlToRelConverterTest.java | 1035 ++++++++++-------- .../org/apache/calcite/test/SqlToRelTestBase.java | 29 +- .../calcite/test/SqlValidatorFeatureTest.java | 19 +- .../org/apache/calcite/test/SqlValidatorTest.java | 996 +++++++++-------- .../apache/calcite/test/SqlValidatorTestCase.java | 104 +- .../apache/calcite/test/SqlXmlFunctionsTest.java | 10 +- .../java/org/apache/calcite/test/StreamTest.java | 34 +- .../org/apache/calcite/test/TableFunctionTest.java | 46 +- .../apache/calcite/test/TableInRootSchemaTest.java | 4 +- .../org/apache/calcite/test/TopDownOptTest.java | 156 +++ .../calcite/test/TypeCoercionConverterTest.java | 27 +- .../org/apache/calcite/test/TypeCoercionTest.java | 40 +- .../test/java/org/apache/calcite/test/UdfTest.java | 56 +- .../test/java/org/apache/calcite/test/UdtTest.java | 6 +- .../org/apache/calcite/test/catalog/Fixture.java | 5 +- .../test/catalog/MockCatalogReaderExtended.java | 6 +- .../test/catalog/MockCatalogReaderSimple.java | 10 + .../catalog/VirtualColumnsExpressionFactory.java | 18 + .../concurrent/ConcurrentTestCommandGenerator.java | 4 +- .../EnumerableBatchNestedLoopJoinTest.java | 24 +- .../test/enumerable/EnumerableCalcTest.java | 4 +- .../test/enumerable/EnumerableCorrelateTest.java | 30 +- .../test/enumerable/EnumerableHashJoinTest.java | 25 +- .../test/enumerable/EnumerableJoinTest.java | 74 +- .../EnumerableRepeatUnionHierarchyTest.java | 2 +- .../test/enumerable/EnumerableRepeatUnionTest.java | 12 +- .../calcite/test/fuzzer/RexProgramFuzzyTest.java | 10 +- .../calcite/test/fuzzer/RexToTestCodeShuttle.java | 2 +- .../org/apache/calcite/tools/FrameworksTest.java | 18 +- .../java/org/apache/calcite/tools/PlannerTest.java | 145 +-- .../java/org/apache/calcite/util/BitSetsTest.java | 22 +- .../org/apache/calcite/util/ChunkListTest.java | 12 +- .../org/apache/calcite/util/ImmutableBeanTest.java | 10 +- .../apache/calcite/util/ImmutableBitSetTest.java | 56 +- .../calcite/util/PartiallyOrderedSetTest.java | 32 +- .../apache/calcite/util/PermutationTestCase.java | 12 +- .../calcite/util/PrecedenceClimbingParserTest.java | 20 +- .../apache/calcite/util/ReflectVisitorTest.java | 12 +- .../test/java/org/apache/calcite/util/Smalls.java | 24 + .../java/org/apache/calcite/util/SourceTest.java | 66 +- .../java/org/apache/calcite/util/TestUtil.java | 26 +- .../java/org/apache/calcite/util/TestUtilTest.java | 6 +- .../java/org/apache/calcite/util/UtilTest.java | 148 +-- .../calcite/util/graph/DirectedGraphTest.java | 25 +- .../apache/calcite/util/mapping/MappingTest.java | 119 ++- .../org/apache/calcite/test/RelOptRulesTest.xml | 200 +++- .../apache/calcite/test/SqlToRelConverterTest.xml | 310 +++++- .../org/apache/calcite/test/TopDownOptTest.xml | 222 ++++ .../calcite/test/TypeCoercionConverterTest.xml | 13 + .../src/test/resources/saffron.properties | 3 + core/src/test/resources/sql/agg.iq | 24 +- core/src/test/resources/sql/functions.iq | 59 ++ core/src/test/resources/sql/join.iq | 10 +- core/src/test/resources/sql/misc.iq | 45 +- core/src/test/resources/sql/operator.iq | 69 ++ core/src/test/resources/sql/stream.iq | 66 ++ core/src/test/resources/sql/sub-query.iq | 18 +- core/src/test/resources/sql/winagg.iq | 45 +- .../adapter/druid/DruidQueryFilterTest.java | 6 +- .../org/apache/calcite/test/DruidAdapter2IT.java | 420 ++++---- .../org/apache/calcite/test/DruidAdapterIT.java | 470 ++++---- .../calcite/test/DruidDateRangeRulesTest.java | 14 +- .../adapter/elasticsearch/ElasticsearchJson.java | 9 +- .../elasticsearch/ElasticsearchProject.java | 2 +- .../adapter/elasticsearch/AggregationTest.java | 28 +- .../adapter/elasticsearch/BooleanLogicTest.java | 6 +- .../elasticsearch/ElasticSearchAdapterTest.java | 46 +- .../elasticsearch/ElasticsearchJsonTest.java | 36 +- .../elasticsearch/ElasticsearchVersionTest.java | 4 +- .../calcite/adapter/elasticsearch/MatchTest.java | 6 +- .../adapter/elasticsearch/Projection2Test.java | 12 +- .../adapter/elasticsearch/ProjectionTest.java | 4 +- .../adapter/elasticsearch/QueryBuildersTest.java | 16 +- .../adapter/elasticsearch/ScrollingTest.java | 4 +- example/csv/build.gradle.kts | 10 +- .../test/java/org/apache/calcite/test/CsvTest.java | 82 +- .../apache/calcite/test/ExampleFunctionTest.java | 6 +- .../calcite/adapter/file/FileReaderTest.java | 26 +- .../org/apache/calcite/adapter/file/SqlTest.java | 33 +- .../calcite/adapter/geode/rel/GeodeSort.java | 2 +- .../adapter/geode/rel/GeodeAllDataTypesTest.java | 26 +- .../adapter/geode/rel/GeodeBookstoreTest.java | 74 +- .../calcite/adapter/geode/rel/GeodeZipsTest.java | 24 +- .../adapter/geode/simple/BookMasterRegionTest.java | 2 +- gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 58694 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 29 +- gradlew.bat | 3 + .../calcite/adapter/kafka/KafkaAdapterTest.java | 10 +- .../adapter/kafka/KafkaRowConverterTest.java | 2 +- linq4j/build.gradle.kts | 2 + .../apache/calcite/linq4j/EnumerableDefaults.java | 227 ++-- .../calcite/linq4j/MemoryEnumerableTest.java | 6 +- .../calcite/linq4j/function/FunctionTest.java | 10 +- .../calcite/linq4j/test/BlockBuilderTest.java | 14 +- .../calcite/linq4j/test/CorrelateJoinTest.java | 10 +- .../calcite/linq4j/test/DeterministicTest.java | 34 +- .../apache/calcite/linq4j/test/ExpressionTest.java | 96 +- .../apache/calcite/linq4j/test/InlinerTest.java | 22 +- .../org/apache/calcite/linq4j/test/Linq4jTest.java | 236 ++--- .../apache/calcite/linq4j/test/LookupImplTest.java | 6 +- .../apache/calcite/linq4j/test/OptimizerTest.java | 162 +-- .../apache/calcite/linq4j/test/PrimitiveTest.java | 20 +- .../org/apache/calcite/linq4j/tree/TypeTest.java | 4 +- .../apache/calcite/adapter/mongodb/MongoTable.java | 8 - .../calcite/adapter/mongodb/MongoAdapterTest.java | 66 +- .../org/apache/calcite/test/MongoAssertions.java | 8 +- .../calcite/adapter/pig/PigRelFactories.java | 6 - .../org/apache/calcite/test/PigAdapterTest.java | 21 +- .../calcite/test/PigRelBuilderStyleTest.java | 16 +- piglet/gradle.properties | 2 +- .../org/apache/calcite/piglet/PigRelBuilder.java | 8 +- .../org/apache/calcite/piglet/PigRelOpVisitor.java | 12 +- .../java/org/apache/calcite/test/PigRelExTest.java | 58 +- .../java/org/apache/calcite/test/PigRelOpTest.java | 80 +- .../org/apache/calcite/test/PigScriptTest.java | 4 +- .../java/org/apache/calcite/test/PigletTest.java | 40 +- .../org/apache/calcite/adapter/os/SqlShell.java | 6 +- .../apache/calcite/adapter/os/OsAdapterTest.java | 28 +- .../apache/calcite/adapter/tpcds/TpcdsTest.java | 77 +- .../org/apache/calcite/adapter/tpch/TpchTest.java | 68 +- .../org/apache/calcite/chinook/EndToEndTest.java | 2 +- .../RemotePreparedStatementParametersTest.java | 8 +- .../materialize/TpcdsLatticeSuggesterTest.java | 23 +- .../calcite/adapter/redis/RedisEnumerator.java | 2 +- .../apache/calcite/adapter/redis/RedisTable.java | 3 +- .../adapter/redis/RedisAdapterCaseBase.java | 4 +- .../calcite/adapter/redis/RedisMiniServer.java | 2 +- .../org/apache/calcite/test/ServerParserTest.java | 72 +- .../org/apache/calcite/test/ServerQuidemTest.java | 2 +- .../java/org/apache/calcite/test/ServerTest.java | 51 +- .../apache/calcite/test/ServerUnParserTest.java | 7 +- server/src/test/resources/sql/type.iq | 34 + site/_docs/adapter.md | 6 +- site/_docs/history.md | 201 +++- site/_docs/howto.md | 6 +- site/_docs/reference.md | 81 +- site/img/powered-by.png | Bin 36894 -> 47813 bytes .../org/apache/calcite/test/SparkAdapterTest.java | 86 +- .../calcite/adapter/splunk/SplunkPushDownRule.java | 2 +- .../org/apache/calcite/test/SplunkAdapterTest.java | 16 +- src/main/config/checkstyle/checker.xml | 1 + src/main/config/forbidden-apis/signatures.txt | 7 + ubenchmark/README.md | 76 ++ ubenchmark/build.gradle.kts | 29 +- .../benchmarks/DefaultDirectedGraphBenchmark.java | 280 +++++ .../calcite/benchmarks/PreconditionTest.java | 4 +- 554 files changed, 17789 insertions(+), 10061 deletions(-) create mode 100644 .idea/icon.png create mode 100644 .idea/vcs.xml create mode 100644 core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableSortedAggregate.java copy core/src/main/java/org/apache/calcite/adapter/enumerable/{EnumerableAggregateRule.java => EnumerableSortedAggregateRule.java} (54%) rename core/src/main/java/org/apache/calcite/adapter/enumerable/{TableValuedFunctionCallImplementor.java => TableFunctionCallImplementor.java} (96%) create mode 100644 core/src/main/java/org/apache/calcite/plan/DeriveMode.java create mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/Dumpers.java create mode 100644 core/src/main/java/org/apache/calcite/plan/volcano/OptimizeTask.java copy core/src/main/java/org/apache/calcite/plan/volcano/{VolcanoPlannerPhase.java => VolcanoTimeoutException.java} (75%) create mode 100644 core/src/main/java/org/apache/calcite/rel/PhysicalNode.java copy core/src/main/java/org/apache/calcite/{sql/dialect/AccessSqlDialect.java => rel/rules/SubstitutionRule.java} (56%) create mode 100644 core/src/main/java/org/apache/calcite/rel/rules/TransformationRule.java create mode 100644 core/src/main/java/org/apache/calcite/rex/RexWindowBounds.java create mode 100644 core/src/main/java/org/apache/calcite/runtime/CompressionFunctions.java create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlHopTableFunction.java copy core/src/main/java/org/apache/calcite/sql/{SqlAccessEnum.java => SqlJsonValueReturning.java} (86%) create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlSessionTableFunction.java create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlTumbleTableFunction.java copy core/src/main/java/org/apache/calcite/sql/{fun/SqlArrayValueConstructor.java => SqlTypeConstructorFunction.java} (54%) copy core/src/main/java/org/apache/calcite/sql/{SqlSelectKeyword.java => Symbolizable.java} (80%) create mode 100644 core/src/main/java/org/apache/calcite/sql/dialect/ClickHouseSqlDialect.java create mode 100644 core/src/main/java/org/apache/calcite/sql/type/ExplicitOperandTypeChecker.java copy core/src/main/java/org/apache/calcite/{schema/AggregateFunction.java => sql/validate/implicit/TypeCoercionFactory.java} (54%) create mode 100644 core/src/test/java/org/apache/calcite/materialize/NormalizationTrimFieldTest.java create mode 100644 core/src/test/java/org/apache/calcite/sql2rel/RelFieldTrimmerTest.java create mode 100644 core/src/test/java/org/apache/calcite/test/TopDownOptTest.java create mode 100644 core/src/test/resources/org/apache/calcite/test/TopDownOptTest.xml copy src/main/config/checkstyle/header.properties.txt => core/src/test/resources/saffron.properties (95%) create mode 100644 ubenchmark/README.md create mode 100644 ubenchmark/src/jmh/java/org/apache/calcite/benchmarks/DefaultDirectedGraphBenchmark.java