This is an automated email from the ASF dual-hosted git repository. zabetak pushed a change to branch site in repository https://gitbox.apache.org/repos/asf/calcite.git.
discard ab27d0b Site: Remove vote email from release instructions, and minor improvements discard e6f7469 Site: Add upcoming talk about Morel and update past talks section discard cbdf91b Site: Remove contributors name from commit summary discard 07cc2ae [CALCITE-4656] Broken CI links on develop web page discard c27f3b7 Site: HTTP to HTTPS redirection is not working discard 244a09f Site is not published due to bad yaml file suffix discard 306fb3a Site: Deploy using .asf.yml discard 8152a0d Site: Add upcoming talk at ApacheCon'21 and info about tutorial at BOSS21 discard 12ef1ad Site: Add Vladimir Ozerov as committer discard f10817c Site: Remove nowadays redundant minified javascript files add de48e55 [CALCITE-4499] FilterJoinRule misses opportunity to push filter to semijoin input add 7f5e9b8 Site: Remove nowadays redundant minified javascript files add e9443ed [CALCITE-4312] Improve content of prepareVote draft email add 8213277 [CALCITE-4606] In Elasticsearch adapter, translate SEARCH RexCall to termsQuery (Jacky Yin) add e5477e7 [CALCITE-4619] `Full join` plan cannot be executed in MySQL (Jiasen Sheng) add 4e679f0 [CALCITE-4636] Switch out of agg mode when constructing RelCollation for aggregate functions (Rafay) add 58cbb46 [CALCITE-4655] JdbcTable.scan throws NullPointerException (Ulrich Kramer) add 8430023 [CALCITE-4158] In generated SQL, "*" should be followed by space (NobiGo) add d4a4c8b Site: Add Vladimir Ozerov as committer add c1bf421 Site: Deploy using .asf.yml add f928e07 [CALCITE-4614] Exasol dialect implementation (TJ Banghart) add 85953ce [CALCITE-4644] Add PERCENTILE_CONT and PERCENTILE_DISC functions (Rafay) add 40baa00 [CALCITE-4638] VolcanoPlanner fails to recognize transformation rule correctly in the top-down mode (Vladimir Ozerov) add a59693e [CALCITE-4668] RelBuilder.join should convert Correlate to Join if correlation variable is unused (James Starr) add d46137a RelOptRulesTest improvements: - Provide relFn pattern mechanism to test a RelNode function instead of a sql string - Refactor several tests to use relFn - Refactor similar tests by using common auxiliary methods - Correct auxiliary methods names (use "check" prefix instead of "test" prefix) add 09a8a2f [CALCITE-4640] Propagate table scan hints to JDBC add 138c2bc [CALCITE-3775] Implicit lookup methods in SimpleCalciteSchema ignore case sensitivity parameter (Alon Eldar) add d7290e7 [CALCITE-4674] Excess quotes in generated SQL when STAR is a column alias add 4066a34 [CALCITE-4675] Error executing query with SUM and multiplication via JdbcAdapter add c700e37 [CALCITE-4420] Some simple arithmetic operations can be simplified add 1da412a [CALCITE-4690] Error when executing query with CHARACTER SET in Redshift add 5e1ce04 [CALCITE-4623] SemiJoinRule should not match SEMI join add 3c4dd30 [CALCITE-4692] Redshift does not support DOUBLE/TINYINT datatypes (Narayanan Venkateswaran) add ca03a4e Enable JdbcTest#testBushy and update expected plan (NobiGo) add 288cab5 Site: Sort table of aggregate functions add e04f3b0 [CALCITE-4661] Add MODE aggregate function (NobiGo) add 2f7f9bc [CALCITE-4642] Use RelDataTypeSystem from Config in Planner (Nick Riasanovsky) add 39e77d7 [CALCITE-4673] If arguments to a table function are correlation variables, SqlToRelConverter should eliminate duplicate variables (Evgeniy Stanilovskiy) add 96cbd70 Refactor RelToSqlConverterTest add 8346167 [CALCITE-4485] JDBC adapter generates invalid SQL when one of the joins is "INNER JOIN ... ON TRUE" add 48126d3 [CALCITE-4706] JDBC adapter generates casts exceeding Redshift's data types bounds add 53ee1ba [CALCITE-4716] ClassCastException converting SARG in RelNode to SQL add 8a1535f [CALCITE-4652] AggregateExpandDistinctAggregatesRule must cast top aggregates to original type (Taras Ledkov) add dff28d1 Cosmetic add d64fd60 [CALCITE-4724] In JDBC adapter for ClickHouse, implement Values by generating SELECT without FROM (Liu Enze) add 94e2f98 [CALCITE-4741] AbstractRelNode#getId can overflow into a negative value causing CompileException in certain Enumerable implement methods add 017c974 [CALCITE-4665] Allow Aggregate.groupKey to be a strict superset of Aggregate.groupKeys (NobiGo) add c7d1818 [CALCITE-4748] If there are duplicate GROUPING SETS, Calcite should return duplicate rows (NobiGo) add 4b4bb7f [CALCITE-4734] If there are duplicate RexNode in MutableCalc, SubstitutionVisitor should return right rebuild RexNode (xurenhe) add 51c0d92 [CALCITE-4584] Using function in partition by list of over window cause converting exception (Wang Yanlin) add 8c46299 [CALCITE-4726] Support aggregate calls with a FILTER clause in AggregateExpandWithinDistinctRule (Will Noble) add 48d4cfa [CALCITE-4760] RelBuilder creation fails with error 'No suitable driver found for jdbc:calcite:' in shaded Calcite add 474611c [CALCITE-4747]: clean all outdated edges from graph.edges add 9b042be Site: Add upcoming talk at ApacheCon'21 and info about tutorial at BOSS21 add d7e20ba [CALCITE-4766] Remove unreachable code from SqlValidatorImpl#performUnconditionalRewrites for VALUES node (Jianhui Dong) add f3baf34 Site is not published due to bad yaml file suffix add 4d82c53 Add RelBuilder.lessThan, and use RelBuilder shorthands add 053d9b7 [CALCITE-4742] Implement "SOME <>" sub-query (NobiGo) add 60457b2 [CALCITE-4774] Materialized view recognition fails for equivalent predicates (dz) add a9f0036 [CALCITE-4767] JDBC adapter wrongly quotes backticks inside BigQuery identifiers (Jack Scott) add ce86af8 [CALCITE-4177] RelJson should throw if asked to deserialize a call to an unknown operator (Xzh & Wang Yanlin) add a36f5a2 [CALCITE-3935] Enhance Join-Materialization, support to pull-up filters under join of left or right (xurenhe) add 8ddb3f8 [CALCITE-4784] Ensure Correlate#requiredColumns is subset of columns in left relation add b03ca2f Remove obsolete/misleading comments in RelOptUtil#classifyFilters add 98d254d Site: Update jhyde's organization and add pronouns add 4d185ee Site: Add michaelmior's pronouns add b420caf Site: Add zabetak's pronouns add 3af21db Site: HTTP to HTTPS redirection is not working add d66f4c5 [CALCITE-4486] UNIQUE sub-query (NobiGo) add 4b1e9ed [CALCITE-4789] Build is broken on Guava versions < 21 add 77b6755 [CALCITE-4796] Travis links in README.md should point to 'app.travis-ci.com' instead of 'travis-ci.org' (Alessandro Solimando) add 1438503 [CALCITE-4772] PushProjector should retain alias when handling RexCall (YuKong) add b51a2e1 [CALCITE-4544] Deprecate Metadata API backed by Java Reflection (James Starr) add d65397a Replace deprecated com.google.common.io.Files.createTempDir() with java.nio.file.Files.createTempDirectory() in ElasticSearch tests add d4640d0 [CALCITE-4793] CassandraAdapterDataTypesTest.testCollectionsInnerValues fails depending on the user timezone (Alessandro Solimando) add f4db84c [CALCITE-4773] RelDecorrelator's RemoveSingleAggregateRule can produce result with wrong row type add 5a2df22 [CALCITE-4656] Broken CI links on develop web page add c7b3764 Site: Remove contributors name from commit summary add a800546 Site: Add upcoming talk about Morel and update past talks section add 3f84d08 Site: Remove vote email from release instructions, and minor improvements add 56d5dda [CALCITE-3409] Add a method in RelOptMaterializations to allow registering UnifyRule (xzh) add f368cbe [CALCITE-4532] Correct code generated for primitive-object ConstantExpression add e533f4b Site: Update fengzhu's organization and add pronouns add 219e41e [CALCITE-4779] GroupByList contains constant literal, materialized view recognition failed (xzh) add d6a2d69 [CALCITE-4790] Make Gradle pass the 'user.timezone' property to the test JVM (Alessandro Solimando) add 5b8ce9c [CALCITE-4805] Calcite should convert a small IN-list as if the user had written OR, even if the IN-list contains NULL add 511eecd [CALCITE-4787] Replace ImmutableBeans with Immutables in core module add b4d7d48 Bump JUnit5 to 5.8.1 add 49c1a6d Skip EqualsHashCode verification in ErrorProne: it is already verified with Checkstyle add 2fdc537 [CALCITE-4823] Suppress warnings for java.security.AccessController deprecation add ef40b52 [CALCITE-4821] Move utility test classes into calcite-testkit and unpublish -test.jar add a8a8a6b Add missing @Override annotations add 1667b51 Fix ErrorProne violations in testkit add a8a6569 [CALCITE-4829] Bump Gradle to 7.2 and test with Java 17 at GitHub Actions add 21cbdf8 Fix string reference to HrSchema in MaterializationTest with HrSchema.class.getName() add 07b68bc Use jdk16 instead of jdk17 since jdk17 is not yet available at AppVeyor add 5824c54 [CALCITE-4825] Move remaining core/main off of ImmutableBeans add fbbdf46 [CALCITE-4546] Change metadata dispatch to avoid registration of all RelNode subtypes (James Starr) add 4704745 [CALCITE-4819] SemiJoin operator is not skipped in materialized view-based rewriting algorithm add 74e9778 [CALCITE-4817] Expand SubstitutionVisitor of Aggregate with max/min, which column is the group by list of target (xurenhe) add 3fffc31 [CALCITE-4798] Gradle build fails due to deprecated metadata APIs add dff775d Bump JDK from 15 to 17 in seed build cache CI jobs add 50dbd12 [CALCITE-4834] JaninoRelMetadataProvider uses hardcoded class name add 3170c3f [CALCITE-4830] Remove remaining uses of ImmutableBeans and deprecate add 814ca45 [CALCITE-4836] Upgrade protobuf-java 3.6.1 -> 3.17.1 add dbaf22c Revert "[CALCITE-4817] Expand SubstitutionVisitor of Aggregate with max/min, which column is the group by list of target (xurenhe)" add 460de04 Site: Add Zhaohui Xu as committer add 9c0e313 [CALCITE-3745] CompileException in UnitCompiler when using multiple class loaders add 2916b83 [CALCITE-3583] Exchange operator deserialize fail when the RexInput has no RelCollcation (Xzh) add 53e0968 [CALCITE-4811] Check if input type is a struct in RelDataTypeFactoryImpl#leastRestrictiveStructuredType add 62a1a14 [CALCITE-3338] Error with executeBatch and preparedStatement when using RemoteMeta (Xzh & Jin Xing) add d0837f1 [CALCITE-4762] Upgrade Calcite to Avatica 1.19 add 95b3ab6 [CALCITE-4600] ClassCastException retrieving from an ARRAY that has DATE, TIME or TIMESTAMP elements add c3f3dec [CALCITE-4602] ClassCastException retrieving from ARRAY that has mixed INTEGER and DECIMAL elements add a7728d7 [CALCITE-4757] In Avatica, support columns of type "NULL" in query results add 342aeba [CALCITE-4628] If SqlImplementor fails, include the RelNode in the exception add a250ab0 [CALCITE-4795] In class SqlBasicCall, make the "operands" field private (part 1) add c2d0d66 [CALCITE-4847] Parse SQL with BigQuery-style quoted identifiers and character literals add 9481277 [CALCITE-4616] AggregateUnionTransposeRule causes row type mismatch when some inputs have unique grouping key add 8a0de7a Refactor: Introduce field SqlUtil.GENERATED_EXPR_ALIAS_PREFIX add e20f881 [CALCITE-4740] JDBC adapter generates incorrect HAVING clause in BigQuery dialect add 82dd78a [CALCITE-2736] ReduceExpressionsRule never reduces dynamic expressions but this should be configurable (Yingyu Wang) add 77ff9f6 [CALCITE-4550] Simplify JaninoRelMetadataProvider API for binding methods (James Starr) add 23e1b1f [CALCITE-4848] Adding a HAVING condition to a query with a dynamic parameter makes the result always empty add 67b2838 [CALCITE-3524] In RelBuilder, add methods for creating various kinds of sub-query add 9c741e4 [CALCITE-4719] Add variants of RexSubQuery that collect sub-queries into MULTISET, ARRAY and MAP collections add 46fb263 [CALCITE-4735] Enhance Aggregate-Materialization, when aggcall of query could be expressed by target's grouping (xurenhe) add 9330b30 [CALCITE-4853] Gradle could not determine the dependencies of task ':syncPreviewSiteRepo' add 81d3eab Site: Pronouns, talks add 2326cf8 Bump Guava maximum version up to 31.0.1-jre add dec167a [CALCITE-4835] Release Calcite 1.28.0 add c6a9599 Add news item for release 1.28.0 add 0390069 [CALCITE-4639] Broken links on download page add bf962b8 [CALCITE-4856] Gradle prepareVote fails with 'not authorized' add bebe473 [CALCITE-4839] Remove ImmutableBeans implementation and usage add 77bb696 [CALCITE-4795] In class SqlBasicCall, make the "operands" field private (part 2) add 87f60d2 Site: Add Xiong Duan as committer add 2280879 [CALCITE-4858] Use Log4j2 instead of unsupported Log4j (1.x) in tests add 3af1d78 [CALCITE-4818] AggregateExpandDistinctAggregatesRule must infer correct data type for top aggregate calls (Taras Ledkov) add 5bec337 Fix typo in reference.md add f61541d [CALCITE-4822] Add functions ARRAY_CONCAT, ARRAY_REVERSE, ARRAY_LENGTH for BigQuery dialect add 2c17f7a [CALCITE-4551] Reusing Immutable metadata cache keys add cbe6a7b [CALCITE-4768] Upgrade DataStax Driver for Apache Cassandra® version to latest 4.x add f1db79f [CALCITE-4131] remove the XmlFunctions exception handled by System.out add 7e87833 Bump com.github.vlsi.vlsi-release-plugins to 1.76 add 6d51d27 Update Gradle to 7.3 add a03586c [CALCITE-4875] Preserve Operand Nullability in NVL rewrite add 8438754 [CALCITE-4877] Ignore test for invalid foreign schema class add bcaa978 [CALCITE-4844] IN-list that references columns is wrongly converted to Values, and gives incorrect results add 07e420b [CALCITE-4877] Enable schema.iq test, with variants depending on Avatica version add 0899e6c [CALCITE-4846] IN-list that includes NULL converted to Values throws exception add faee09f [CALCITE-4884] Provide a new constructor for RelJsonWriter to allow customized JsonBuilder add 065e323 [CALCITE-4841] Support decimal column type in CSV file format add 7c423ef [CALCITE-4876] Converting RelNode to SQL with CalciteSqlDialect gets wrong result while EnumerableIntersect is followed by EnumerableLimit add f3e2f04 Exclude kotlin-stdlib from :core runtime dependencies add 8a266e6 Clarify why squash commits option in GitHub PR merge is disabled add d9f946b [CALCITE-4883] The traitset of Exchange operator losses the distribution when externalizing Exchange operator from JSON add 2317f4e [CALCITE-4783] RelFieldTrimmer incorrectly drops filter condition add fd3c1d0 [CALCITE-4851] Build gives lots of 'Execution optimizations have been disabled' warnings add 8373d4c Use GitHub Action concurrency feature to cancel stale CI executions add 3456136 Keep backslash when autoformatting <<...\n" +>> add 86dce8a Log plan after physical tweaks in new line add 264636e [CALCITE-4927] Remove deprecated RelBuilder#groupKey(ImmutableBitSet, ImmutableList) clashing with new replacement API add 9b0268a [CALCITE-4930] Update log4j2 version to 2.15.0 add ecbafbf [CALCITE-4925] AggregateReduceFunctionsRule should accept arbitrary predicates add f3c0936 [CALCITE-4928] Decouple JaninoRelMetadataProvider from RelMetadataQuery add 422599c [CALCITE-4932] Deprecate JdbcCalc and remove JdbcCalcRule add 8b62f88 [CALCITE-4894] MV rewriting fails for conjunctive top expressions in SELECT clause add 4ff5fa8 [CALCITE-4929] Implement default getDef() methods in MetadataHandler interfaces add c986156 [CALCITE-4937] Upgrade Calcite to Avatica 1.20 add 2ee53f2 [CALCITE-4938] Upgrade SQLLine to 1.12.0 add f5a6526 [CALCITE-4939] Upgrade log4j2 version to 2.16.0 add 96f4a73 Improve debug message in IterativeRuleDriver add c1fab9d Remove duplicate entries from RelOptRules.CALC_RULES add 250dfb7 [CALCITE-4906] Wrong result for scalar subquery from empty input add 7d342b3 [CALCITE-4941] SemiJoinRule loses hints add a6293a3 [CALCITE-4895] MAP type in UDF cannot be externalized from json correctly add d6a36fc [CALCITE-4898] Upgrading Elasticsearch version from 7.0.1 to 7.15.2 add ce25311 [CALCITE-4737] Add RelOptPlanner visualizer for debugging (Zuozhi Wang, Thomas Rebele) add e4cdcee [CALCITE-4948] Revert Elasticsearch to 7.10.2 add 607c45b [CALCITE-4946] Add method RelBuilder.size() add 6208196 Finishing up [CALCITE-4937], remove workarounds for [CALCITE-4877] add 538016e [CALCITE-4700] AggregateUnionTransposeRule produces wrong group sets for the top Aggregate (Vladimir Ozerov) add e42b85a [CALCITE-4704] Log plan on rule application using explain formatting add 0d17965 [CALCITE-4950] Upgrade log4j2 version to 2.17.0 add f6d51ff Set timeout for running Druid tests in GitHub CI add 7a7b37f [CALCITE-4917] Add test for 'a IS NOT NULL AND a = b' simplification add cbfe060 [CALCITE-4955] Release Calcite 1.29.0. add 8a40603 Add 1.29.0 release announcement add fb2e28a Prepare for next development iteration add 3303e4b Revise release notes add f79624a [CALCITE-4547] Support Java 16 and 17 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 (ab27d0b) \ N -- N -- N refs/heads/site (f79624a) 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 | 3 + .github/workflows/buildcache.yml | 9 +- .github/workflows/cancel-duplicates.yml | 20 - .github/workflows/main.yml | 16 +- .travis.yml | 16 +- README | 2 +- README.md | 2 +- appveyor.yml | 2 +- babel/build.gradle.kts | 16 +- bom/build.gradle.kts | 17 +- build.gradle.kts | 29 +- buildSrc/build.gradle.kts | 6 - buildSrc/gradle.properties | 1 - cassandra/build.gradle.kts | 60 +- .../adapter/cassandra/CassandraEnumerator.java | 39 +- .../calcite/adapter/cassandra/CassandraFilter.java | 19 +- .../calcite/adapter/cassandra/CassandraLimit.java | 6 +- .../calcite/adapter/cassandra/CassandraMethod.java | 2 +- .../adapter/cassandra/CassandraProject.java | 1 + .../calcite/adapter/cassandra/CassandraRel.java | 8 +- .../calcite/adapter/cassandra/CassandraRules.java | 104 +- .../calcite/adapter/cassandra/CassandraSchema.java | 275 ++-- .../calcite/adapter/cassandra/CassandraSort.java | 2 +- .../calcite/adapter/cassandra/CassandraTable.java | 57 +- .../adapter/cassandra/CassandraTableScan.java | 7 +- .../cassandra/CassandraToEnumerableConverter.java | 12 +- .../cassandra/CqlToSqlTypeConversionRules.java | 51 +- .../test/CassandraAdapterDataTypesTest.java | 18 +- .../apache/calcite/test/CassandraAdapterTest.java | 7 +- .../apache/calcite/test/CassandraExtension.java | 71 +- cassandra/src/test/resources/cassandra.yaml | 1466 ++++++++++++++---- cassandra/src/test/resources/datatypes.cql | 9 +- .../src/test/resources/log4j2-test.xml | 15 +- cassandra/src/test/resources/twissandra.cql | 2 +- core/build.gradle.kts | 98 +- core/src/main/codegen/templates/Parser.jj | 44 +- .../{package-info.java => CalciteImmutable.java} | 19 +- .../enumerable/EnumerableBatchNestedLoopJoin.java | 2 +- .../EnumerableBatchNestedLoopJoinRule.java | 16 +- .../adapter/enumerable/EnumerableCalcRule.java | 6 +- .../adapter/enumerable/EnumerableCollect.java | 41 +- .../adapter/enumerable/EnumerableCollectRule.java | 9 +- .../enumerable/EnumerableCorrelateRule.java | 6 +- .../adapter/enumerable/EnumerableFilterRule.java | 3 +- .../enumerable/EnumerableFilterToCalcRule.java | 9 +- .../enumerable/EnumerableInterpretable.java | 7 +- .../adapter/enumerable/EnumerableLimitRule.java | 9 +- .../enumerable/EnumerableLimitSortRule.java | 9 +- .../adapter/enumerable/EnumerableMergeUnion.java | 2 +- .../enumerable/EnumerableMergeUnionRule.java | 11 +- .../adapter/enumerable/EnumerableProjectRule.java | 2 +- .../enumerable/EnumerableProjectToCalcRule.java | 10 +- .../EnumerableTableFunctionScanRule.java | 3 +- .../enumerable/EnumerableTableScanRule.java | 3 +- .../calcite/adapter/enumerable/RexImpTable.java | 118 ++ .../calcite/adapter/jdbc/JdbcImplementor.java | 10 - .../org/apache/calcite/adapter/jdbc/JdbcRules.java | 47 +- .../org/apache/calcite/adapter/jdbc/JdbcTable.java | 37 +- .../apache/calcite/adapter/jdbc/JdbcTableScan.java | 15 +- .../calcite/config/CalciteSystemProperty.java | 7 +- .../main/java/org/apache/calcite/config/Lex.java | 12 +- .../org/apache/calcite/interpreter/Bindables.java | 8 +- .../calcite/interpreter/JaninoRexCompiler.java | 7 +- .../apache/calcite/jdbc/CalciteConnectionImpl.java | 13 +- .../org/apache/calcite/jdbc/CalciteMetaImpl.java | 2 +- .../apache/calcite/jdbc/SimpleCalciteSchema.java | 65 +- .../main/java/org/apache/calcite/package-info.java | 1 + .../apache/calcite/plan/AbstractRelOptPlanner.java | 17 +- .../apache/calcite/plan/CommonRelSubExprRule.java | 6 - .../org/apache/calcite/plan/RelOptCluster.java | 12 +- .../calcite/plan/RelOptMaterializations.java | 28 +- .../org/apache/calcite/plan/RelOptPlanner.java | 2 + .../java/org/apache/calcite/plan/RelOptRules.java | 3 - .../java/org/apache/calcite/plan/RelOptUtil.java | 112 ++ .../main/java/org/apache/calcite/plan/RelRule.java | 56 +- .../org/apache/calcite/plan/RuleEventLogger.java | 70 + .../apache/calcite/plan/SubstitutionVisitor.java | 202 ++- .../org/apache/calcite/plan/hep/HepPlanner.java | 2 + .../calcite/plan/hep/HepRelMetadataProvider.java | 10 + .../org/apache/calcite/plan/hep/HepRelVertex.java | 10 +- .../plan/visualizer/InputExcludedRelWriter.java | 89 ++ .../calcite/plan/visualizer/NodeUpdateHelper.java | 107 ++ .../plan/visualizer/RuleMatchVisualizer.java | 487 ++++++ .../visualizer/StepInfo.java} | 37 +- .../{ => plan/visualizer}/package-info.java | 6 +- .../calcite/plan/volcano/AbstractConverter.java | 8 +- .../calcite/plan/volcano/IterativeRuleDriver.java | 6 +- .../calcite/plan/volcano/VolcanoPlanner.java | 25 +- .../plan/volcano/VolcanoRelMetadataProvider.java | 10 + .../calcite/plan/volcano/VolcanoRuleCall.java | 16 - .../org/apache/calcite/prepare/PlannerImpl.java | 9 +- .../java/org/apache/calcite/prepare/Prepare.java | 11 +- .../org/apache/calcite/rel/AbstractRelNode.java | 1 + .../main/java/org/apache/calcite/rel/RelNode.java | 3 + .../apache/calcite/rel/convert/ConverterRule.java | 20 +- .../calcite/rel/convert/TraitMatchingRule.java | 11 +- .../org/apache/calcite/rel/core/Aggregate.java | 5 + .../java/org/apache/calcite/rel/core/Collect.java | 150 +- .../org/apache/calcite/rel/core/Correlate.java | 3 + .../java/org/apache/calcite/rel/core/Exchange.java | 5 +- .../org/apache/calcite/rel/core/JoinRelType.java | 32 + .../calcite/rel/externalize/RelDotWriter.java | 19 +- .../apache/calcite/rel/externalize/RelJson.java | 20 +- .../calcite/rel/externalize/RelJsonWriter.java | 10 +- .../calcite/rel/logical/ToLogicalConverter.java | 4 +- .../calcite/rel/metadata/BuiltInMetadata.java | 125 ++ .../rel/metadata/CachingRelMetadataProvider.java | 9 +- .../rel/metadata/ChainedRelMetadataProvider.java | 12 + .../metadata/DelegatingMetadataRel.java} | 9 +- .../rel/metadata/JaninoRelMetadataProvider.java | 433 +----- .../apache/calcite/rel/metadata/MetadataDef.java | 3 +- .../calcite/rel/metadata/MetadataFactoryImpl.java | 3 + .../rel/metadata/MetadataHandlerProvider.java | 62 + .../metadata/ReflectiveRelMetadataProvider.java | 61 +- .../calcite/rel/metadata/RelMdAllPredicates.java | 6 +- .../calcite/rel/metadata/RelMdCollation.java | 3 +- .../calcite/rel/metadata/RelMdColumnOrigins.java | 3 +- .../rel/metadata/RelMdColumnUniqueness.java | 10 +- .../rel/metadata/RelMdDistinctRowCount.java | 3 +- .../calcite/rel/metadata/RelMdDistribution.java | 8 +- .../rel/metadata/RelMdExplainVisibility.java | 4 +- .../rel/metadata/RelMdExpressionLineage.java | 14 +- .../calcite/rel/metadata/RelMdLowerBoundCost.java | 3 +- .../calcite/rel/metadata/RelMdMaxRowCount.java | 3 +- .../apache/calcite/rel/metadata/RelMdMemory.java | 5 +- .../calcite/rel/metadata/RelMdMinRowCount.java | 3 +- .../calcite/rel/metadata/RelMdNodeTypes.java | 9 +- .../calcite/rel/metadata/RelMdParallelism.java | 4 +- .../rel/metadata/RelMdPercentageOriginalRows.java | 60 +- .../calcite/rel/metadata/RelMdPopulationSize.java | 3 +- .../calcite/rel/metadata/RelMdPredicates.java | 9 +- .../apache/calcite/rel/metadata/RelMdRowCount.java | 3 +- .../calcite/rel/metadata/RelMdSelectivity.java | 3 +- .../org/apache/calcite/rel/metadata/RelMdSize.java | 4 +- .../calcite/rel/metadata/RelMdTableReferences.java | 8 +- .../calcite/rel/metadata/RelMdUniqueKeys.java | 3 +- .../org/apache/calcite/rel/metadata/RelMdUtil.java | 7 +- .../calcite/rel/metadata/RelMetadataProvider.java | 22 + .../calcite/rel/metadata/RelMetadataQuery.java | 228 +-- .../calcite/rel/metadata/RelMetadataQueryBase.java | 47 +- .../rel/metadata/janino/CacheGeneratorUtil.java | 419 +++++ .../calcite/rel/metadata/janino/CacheUtil.java | 47 + .../rel/metadata/janino/CodeGeneratorUtil.java | 47 + .../metadata/janino/DescriptiveCacheKey.java} | 25 +- .../rel/metadata/janino/DispatchGenerator.java | 202 +++ .../janino/RelMetadataHandlerGeneratorUtil.java | 165 ++ .../{ => rel/metadata/janino}/package-info.java | 9 +- .../apache/calcite/rel/mutable/MutableRels.java | 19 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 203 ++- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 53 +- .../rel/rules/AbstractJoinExtractFilterRule.java | 12 - .../rel/rules/AggregateCaseToFilterRule.java | 13 +- .../AggregateExpandDistinctAggregatesRule.java | 37 +- .../rules/AggregateExpandWithinDistinctRule.java | 232 ++- .../rel/rules/AggregateExtractProjectRule.java | 7 +- .../rel/rules/AggregateFilterTransposeRule.java | 6 +- .../rel/rules/AggregateJoinJoinRemoveRule.java | 7 +- .../calcite/rel/rules/AggregateJoinRemoveRule.java | 6 +- .../rel/rules/AggregateJoinTransposeRule.java | 18 +- .../calcite/rel/rules/AggregateMergeRule.java | 6 +- .../rel/rules/AggregateProjectMergeRule.java | 5 +- .../rules/AggregateProjectPullUpConstantsRule.java | 15 +- .../rel/rules/AggregateProjectStarTableRule.java | 7 +- .../rel/rules/AggregateReduceFunctionsRule.java | 50 +- .../calcite/rel/rules/AggregateRemoveRule.java | 7 +- .../calcite/rel/rules/AggregateStarTableRule.java | 7 +- .../rel/rules/AggregateUnionAggregateRule.java | 7 +- .../rel/rules/AggregateUnionTransposeRule.java | 54 +- .../calcite/rel/rules/AggregateValuesRule.java | 6 +- .../apache/calcite/rel/rules/CalcMergeRule.java | 6 +- .../apache/calcite/rel/rules/CalcRemoveRule.java | 6 +- .../apache/calcite/rel/rules/CalcSplitRule.java | 9 +- .../apache/calcite/rel/rules/CoerceInputsRule.java | 15 +- .../org/apache/calcite/rel/rules/CoreRules.java | 31 +- .../apache/calcite/rel/rules/DateRangeRules.java | 23 +- .../rel/rules/ExchangeRemoveConstantKeysRule.java | 25 +- .../rel/rules/FilterAggregateTransposeRule.java | 6 +- .../calcite/rel/rules/FilterCalcMergeRule.java | 6 +- .../calcite/rel/rules/FilterCorrelateRule.java | 9 +- .../FilterFlattenCorrelatedConditionRule.java | 7 +- .../apache/calcite/rel/rules/FilterJoinRule.java | 86 +- .../apache/calcite/rel/rules/FilterMergeRule.java | 6 +- .../rel/rules/FilterMultiJoinMergeRule.java | 5 +- .../rel/rules/FilterProjectTransposeRule.java | 19 +- .../rules/FilterRemoveIsNotDistinctFromRule.java | 9 +- .../rel/rules/FilterSetOpTransposeRule.java | 9 +- .../rules/FilterTableFunctionTransposeRule.java | 9 +- .../calcite/rel/rules/FilterTableScanRule.java | 18 +- .../apache/calcite/rel/rules/FilterToCalcRule.java | 9 +- .../calcite/rel/rules/IntersectToDistinctRule.java | 6 +- .../rel/rules/JoinAddRedundantSemiJoinRule.java | 6 +- .../calcite/rel/rules/JoinAssociateRule.java | 13 +- .../apache/calcite/rel/rules/JoinCommuteRule.java | 18 +- .../calcite/rel/rules/JoinExtractFilterRule.java | 9 +- .../rel/rules/JoinProjectTransposeRule.java | 15 +- .../calcite/rel/rules/JoinPushExpressionsRule.java | 9 +- .../calcite/rel/rules/JoinPushThroughJoinRule.java | 19 +- .../rules/JoinPushTransitivePredicatesRule.java | 6 +- .../calcite/rel/rules/JoinToCorrelateRule.java | 6 +- .../calcite/rel/rules/JoinToMultiJoinRule.java | 5 +- .../calcite/rel/rules/JoinUnionTransposeRule.java | 12 +- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 8 +- .../org/apache/calcite/rel/rules/MatchRule.java | 9 +- .../rel/rules/MaterializedViewFilterScanRule.java | 6 +- .../rel/rules/MultiJoinOptimizeBushyRule.java | 8 +- .../rel/rules/MultiJoinProjectTransposeRule.java | 31 +- .../rel/rules/ProjectAggregateMergeRule.java | 12 +- .../calcite/rel/rules/ProjectCalcMergeRule.java | 6 +- .../rel/rules/ProjectCorrelateTransposeRule.java | 13 +- .../rel/rules/ProjectFilterTransposeRule.java | 33 +- .../rel/rules/ProjectJoinJoinRemoveRule.java | 6 +- .../calcite/rel/rules/ProjectJoinRemoveRule.java | 6 +- .../rel/rules/ProjectJoinTransposeRule.java | 13 +- .../apache/calcite/rel/rules/ProjectMergeRule.java | 19 +- .../rel/rules/ProjectMultiJoinMergeRule.java | 6 +- .../calcite/rel/rules/ProjectRemoveRule.java | 9 +- .../rel/rules/ProjectSetOpTransposeRule.java | 14 +- .../calcite/rel/rules/ProjectTableScanRule.java | 9 +- .../calcite/rel/rules/ProjectToCalcRule.java | 9 +- .../calcite/rel/rules/ProjectToWindowRule.java | 45 +- .../rel/rules/ProjectWindowTransposeRule.java | 6 +- .../apache/calcite/rel/rules/PruneEmptyRules.java | 59 +- .../apache/calcite/rel/rules/PushProjector.java | 26 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 8 +- .../calcite/rel/rules/ReduceExpressionsRule.java | 176 ++- .../rel/rules/SemiJoinFilterTransposeRule.java | 6 +- .../rel/rules/SemiJoinJoinTransposeRule.java | 6 +- .../rel/rules/SemiJoinProjectTransposeRule.java | 6 +- .../calcite/rel/rules/SemiJoinRemoveRule.java | 6 +- .../org/apache/calcite/rel/rules/SemiJoinRule.java | 43 +- .../apache/calcite/rel/rules/SortJoinCopyRule.java | 6 +- .../calcite/rel/rules/SortJoinTransposeRule.java | 6 +- .../rel/rules/SortProjectTransposeRule.java | 6 +- .../rel/rules/SortRemoveConstantKeysRule.java | 9 +- .../apache/calcite/rel/rules/SortRemoveRule.java | 9 +- .../calcite/rel/rules/SortUnionTransposeRule.java | 13 +- .../org/apache/calcite/rel/rules/SpatialRules.java | 5 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 437 ++++-- .../apache/calcite/rel/rules/TableScanRule.java | 15 +- .../calcite/rel/rules/UnionEliminatorRule.java | 6 +- .../apache/calcite/rel/rules/UnionMergeRule.java | 16 +- .../rel/rules/UnionPullUpConstantsRule.java | 6 +- .../calcite/rel/rules/UnionToDistinctRule.java | 6 +- .../apache/calcite/rel/rules/ValuesReduceRule.java | 40 +- .../materialize/MaterializedViewAggregateRule.java | 80 +- .../materialize/MaterializedViewJoinRule.java | 12 +- .../MaterializedViewOnlyAggregateRule.java | 11 +- .../MaterializedViewOnlyFilterRule.java | 9 +- .../materialize/MaterializedViewOnlyJoinRule.java | 10 +- .../MaterializedViewProjectAggregateRule.java | 10 +- .../MaterializedViewProjectFilterRule.java | 9 +- .../MaterializedViewProjectJoinRule.java | 9 +- .../rules/materialize/MaterializedViewRule.java | 39 +- .../org/apache/calcite/rel/stream/StreamRules.java | 121 +- .../calcite/rel/type/RelDataTypeFactoryImpl.java | 4 + .../java/org/apache/calcite/rex/RexSimplify.java | 90 ++ .../calcite/rex/RexSqlStandardConvertletTable.java | 39 +- .../java/org/apache/calcite/rex/RexSubQuery.java | 46 +- .../apache/calcite/runtime/CalciteResource.java | 13 + .../org/apache/calcite/runtime/PredicateImpl.java | 7 +- .../java/org/apache/calcite/runtime/Resources.java | 4 +- .../org/apache/calcite/runtime/SqlFunctions.java | 7 + .../org/apache/calcite/runtime/XmlFunctions.java | 26 +- .../org/apache/calcite/sql/SqlAggFunction.java | 11 + .../java/org/apache/calcite/sql/SqlBasicCall.java | 99 +- .../java/org/apache/calcite/sql/SqlDialect.java | 101 +- .../apache/calcite/sql/SqlDialectFactoryImpl.java | 8 +- .../java/org/apache/calcite/sql/SqlIdentifier.java | 3 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 18 +- .../calcite/sql/SqlNullTreatmentOperator.java | 4 +- .../java/org/apache/calcite/sql/SqlOperator.java | 4 +- .../java/org/apache/calcite/sql/SqlTableRef.java | 5 +- .../main/java/org/apache/calcite/sql/SqlUtil.java | 21 +- .../java/org/apache/calcite/sql/SqlWindow.java | 29 +- .../org/apache/calcite/sql/SqlWriterConfig.java | 137 +- .../apache/calcite/sql/dialect/AnsiSqlDialect.java | 12 + .../calcite/sql/dialect/BigQuerySqlDialect.java | 1 + .../calcite/sql/dialect/ClickHouseSqlDialect.java | 4 + .../calcite/sql/dialect/ExasolSqlDialect.java | 183 +++ .../apache/calcite/sql/dialect/H2SqlDialect.java | 5 + .../calcite/sql/dialect/MysqlSqlDialect.java | 5 + .../calcite/sql/dialect/RedshiftSqlDialect.java | 63 +- .../calcite/sql/fun/SqlArrayQueryConstructor.java | 3 +- .../calcite/sql/fun/SqlBasicAggFunction.java | 34 +- .../calcite/sql/fun/SqlLibraryOperators.java | 30 + .../calcite/sql/fun/SqlMapQueryConstructor.java | 3 +- .../sql/fun/SqlMultisetQueryConstructor.java | 61 +- .../calcite/sql/fun/SqlSingleValueAggFunction.java | 2 +- .../calcite/sql/fun/SqlStdOperatorTable.java | 87 +- .../calcite/sql/parser/SqlAbstractParserImpl.java | 2 + .../org/apache/calcite/sql/parser/SqlParser.java | 64 +- .../apache/calcite/sql/pretty/SqlPrettyWriter.java | 3 +- .../org/apache/calcite/sql/type/OperandTypes.java | 55 + .../org/apache/calcite/sql/type/ReturnTypes.java | 9 + .../org/apache/calcite/sql/type/SqlTypeFamily.java | 36 + .../apache/calcite/sql/type/SqlTypeTransforms.java | 11 + .../org/apache/calcite/sql/type/SqlTypeUtil.java | 21 +- .../apache/calcite/sql/validate/SqlValidator.java | 54 +- .../calcite/sql/validate/SqlValidatorImpl.java | 61 +- .../calcite/sql/validate/SqlValidatorUtil.java | 3 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 131 +- .../apache/calcite/sql2rel/RelFieldTrimmer.java | 25 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 314 ++-- .../calcite/sql2rel/StandardConvertletTable.java | 14 +- .../statistic/QuerySqlStatisticProvider.java | 3 +- .../java/org/apache/calcite/tools/Frameworks.java | 13 +- .../main/java/org/apache/calcite/tools/Hoist.java | 10 +- .../java/org/apache/calcite/tools/Programs.java | 1 + .../java/org/apache/calcite/tools/RelBuilder.java | 542 +++++-- .../src/main/java/org/apache/calcite/util/Bug.java | 1 + .../org/apache/calcite/util/BuiltInMethod.java | 6 +- .../org/apache/calcite/util/ImmutableBeans.java | 513 ------- .../apache/calcite/util/ImmutableNullableList.java | 4 +- .../org/apache/calcite/util/SaffronProperties.java | 7 +- .../calcite/util/graph/DefaultDirectedGraph.java | 5 + .../apache/calcite/util/javac/JaninoCompiler.java | 4 +- .../calcite/plan/visualizer/viz-template.html | 421 +++++ .../calcite/runtime/CalciteResource.properties | 4 + .../calcite/jdbc/CalciteRemoteDriverTest.java | 34 +- .../CustomMaterializedViewRecognitionRuleTest.java | 179 +++ .../org/apache/calcite/plan/RelOptUtilTest.java | 54 +- .../org/apache/calcite/plan/RelWriterTest.java | 171 ++- .../plan/volcano/CollationConversionTest.java | 13 +- .../apache/calcite/plan/volcano/ComboRuleTest.java | 13 +- .../apache/calcite/plan/volcano/PlannerTests.java | 24 +- .../calcite/plan/volcano/TraitConversionTest.java | 13 +- .../calcite/plan/volcano/TraitPropagationTest.java | 20 +- .../calcite/plan/volcano/VolcanoPlannerTest.java | 66 +- .../plan/volcano/VolcanoPlannerTraitTest.java | 18 +- .../rel/logical/ToLogicalConverterTest.java | 16 +- .../RelMetadataHandlerGeneratorUtilTest.java | 183 +++ .../rel/rel2sql/RelToSqlConverterStructsTest.java | 136 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 1341 ++++++++++------ .../calcite/rel/rules/DateRangeRulesTest.java | 2 +- .../org/apache/calcite/rex/RexProgramTest.java | 65 +- .../calcite/sql/parser/CoreSqlParserTest.java} | 6 +- .../apache/calcite/sql/test/SqlAdvisorTest.java | 3 + .../calcite/sql/test/SqlOperatorBaseTest.java | 106 ++ .../calcite/sql/test/SqlPrettyWriterTest.java | 18 + .../calcite/sql/type/SqlTypeFactoryTest.java | 8 + .../calcite/sql2rel/RelFieldTrimmerTest.java | 44 +- .../calcite/test/AbstractMaterializedViewTest.java | 24 +- .../org/apache/calcite/test/CoreQuidemTest.java | 21 + .../apache/calcite/test/ExtensionDdlExecutor.java | 2 +- .../org/apache/calcite/test/JdbcAdapterTest.java | 66 +- .../apache/calcite/test/JdbcFrontLinqBackTest.java | 39 +- .../java/org/apache/calcite/test/JdbcTest.java | 582 +++---- .../java/org/apache/calcite/test/LatticeTest.java | 8 +- .../apache/calcite/test/MaterializationTest.java | 15 +- .../test/MaterializedViewRelOptRulesTest.java | 86 +- .../MaterializedViewSubstitutionVisitorTest.java | 232 +++ .../org/apache/calcite/test/MockRelOptPlanner.java | 2 + .../calcite/test/MultiJdbcSchemaJoinTest.java | 3 +- .../apache/calcite/test/ReflectiveSchemaTest.java | 205 +-- .../org/apache/calcite/test/RelBuilderTest.java | 578 +++++-- .../org/apache/calcite/test/RelMetadataTest.java | 224 ++- .../org/apache/calcite/test/RelOptRulesTest.java | 1607 +++++++++----------- .../org/apache/calcite/test/RelOptTestBase.java | 61 +- .../calcite/test/RexImplicationCheckerTest.java | 212 +-- .../calcite/test/RuleMatchVisualizerTest.java | 138 ++ .../apache/calcite/test/SqlAdvisorJdbcTest.java | 3 +- .../apache/calcite/test/SqlHintsConverterTest.java | 6 +- .../apache/calcite/test/SqlToRelConverterTest.java | 270 +++- .../org/apache/calcite/test/SqlToRelTestBase.java | 92 +- .../org/apache/calcite/test/SqlValidatorTest.java | 88 +- .../java/org/apache/calcite/test/StreamTest.java | 271 +--- .../org/apache/calcite/test/TableFunctionTest.java | 21 + .../org/apache/calcite/test/TopDownOptTest.java | 2 +- .../test/java/org/apache/calcite/test/UdfTest.java | 5 +- .../EnumerableBatchNestedLoopJoinTest.java | 27 +- .../test/enumerable/EnumerableCalcTest.java | 6 +- .../test/enumerable/EnumerableCorrelateTest.java | 20 +- .../test/enumerable/EnumerableHashJoinTest.java | 18 +- .../test/enumerable/EnumerableJoinTest.java | 16 +- .../test/enumerable/EnumerableMergeUnionTest.java | 26 +- .../EnumerableRepeatUnionHierarchyTest.java | 2 +- .../enumerable/EnumerableSortedAggregateTest.java | 12 +- .../enumerable/EnumerableStringComparisonTest.java | 4 +- .../java/org/apache/calcite/tools/PlannerTest.java | 71 +- .../org/apache/calcite/util/ImmutableBeanTest.java | 672 -------- .../calcite/util/graph/DirectedGraphTest.java | 3 + core/src/test/resources/log4j.properties | 31 - core/src/test/resources/log4j2-test.xml | 44 + .../GeneratedMetadata_AllPredicatesHandler.java | 94 ++ .../janino/GeneratedMetadata_CollationHandler.java | 106 ++ .../GeneratedMetadata_ColumnOriginHandler.java | 98 ++ .../GeneratedMetadata_ColumnUniquenessHandler.java | 106 ++ .../GeneratedMetadata_CumulativeCostHandler.java | 72 + .../GeneratedMetadata_DistinctRowCountHandler.java | 94 ++ .../GeneratedMetadata_DistributionHandler.java | 86 ++ ...GeneratedMetadata_ExplainVisibilityHandler.java | 78 + ...GeneratedMetadata_ExpressionLineageHandler.java | 94 ++ .../GeneratedMetadata_LowerBoundCostHandler.java | 74 + .../GeneratedMetadata_MaxRowCountHandler.java | 100 ++ .../janino/GeneratedMetadata_MemoryHandler.java | 150 ++ .../GeneratedMetadata_MinRowCountHandler.java | 100 ++ .../janino/GeneratedMetadata_NodeTypesHandler.java | 106 ++ ...GeneratedMetadata_NonCumulativeCostHandler.java | 70 + .../GeneratedMetadata_ParallelismHandler.java | 116 ++ ...atedMetadata_PercentageOriginalRowsHandler.java | 76 + .../GeneratedMetadata_PopulationSizeHandler.java | 90 ++ .../GeneratedMetadata_PredicatesHandler.java | 94 ++ .../janino/GeneratedMetadata_RowCountHandler.java | 102 ++ .../GeneratedMetadata_SelectivityHandler.java | 88 ++ .../janino/GeneratedMetadata_SizeHandler.java | 136 ++ .../GeneratedMetadata_TableReferencesHandler.java | 96 ++ .../GeneratedMetadata_UniqueKeysHandler.java | 98 ++ .../calcite/sql/test/SqlPrettyWriterTest.xml | 8 +- .../org/apache/calcite/test/RelOptRulesTest.xml | 690 ++++++++- .../calcite/test/RuleMatchVisualizerTest.xml | 264 ++++ .../apache/calcite/test/SqlToRelConverterTest.xml | 540 ++++++- .../org/apache/calcite/test/TopDownOptTest.xml | 16 +- core/src/test/resources/sql/agg.iq | 359 +++++ core/src/test/resources/sql/functions.iq | 29 + core/src/test/resources/sql/join.iq | 42 + core/src/test/resources/sql/misc.iq | 4 +- core/src/test/resources/sql/scalar.iq | 26 + core/src/test/resources/sql/some.iq | 270 ++++ core/src/test/resources/sql/sub-query.iq | 1242 ++++++++++++++- core/src/test/resources/sql/unnest.iq | 19 + core/src/test/resources/sql/winagg.iq | 43 + core/src/test/resources/sql/within-distinct.iq | 47 + druid/build.gradle.kts | 47 +- .../apache/calcite/adapter/druid/DruidRules.java | 104 +- .../org/apache/calcite/test/DruidAdapter2IT.java | 8 +- .../org/apache/calcite/test/DruidAdapterIT.java | 8 +- .../calcite/test/DruidDateRangeRulesTest.java | 2 +- druid/src/test/resources/log4j.properties | 30 - .../src/test/resources/log4j2-test.xml | 12 +- elasticsearch/build.gradle.kts | 20 +- .../adapter/elasticsearch/PredicateAnalyzer.java | 112 +- .../adapter/elasticsearch/AggregationTest.java | 43 +- .../elasticsearch/EmbeddedElasticsearchNode.java | 23 +- .../test/resources/{log4j2.xml => log4j2-test.xml} | 12 +- example/csv/build.gradle.kts | 51 +- .../calcite/adapter/csv/CsvFilterableTable.java | 4 +- .../adapter/csv/CsvProjectTableScanRule.java | 8 +- .../calcite/adapter/csv/CsvScannableTable.java | 4 +- .../adapter/csv/CsvStreamScannableTable.java | 4 +- .../org/apache/calcite/adapter/csv/CsvTable.java | 5 +- example/function/build.gradle.kts | 1 + file/build.gradle.kts | 44 +- .../apache/calcite/adapter/file/CsvEnumerator.java | 166 +- .../apache/calcite/adapter/file/CsvFieldType.java | 78 - .../adapter/file/CsvProjectTableScanRule.java | 8 +- .../org/apache/calcite/adapter/file/CsvTable.java | 4 +- .../apache/calcite/adapter/file/FileFieldType.java | 2 - .../calcite/adapter/file/CsvEnumeratorTest.java | 58 + .../calcite/adapter/file/FileAdapterTest.java | 68 + file/src/test/resources/sales-csv/DECIMAL.csv | 4 + geode/build.gradle.kts | 47 +- .../calcite/adapter/geode/rel/GeodeRules.java | 24 +- geode/src/test/resources/log4j.properties | 28 - .../src/test/resources/log4j2-test.xml | 16 +- gradle.properties | 43 +- gradle/wrapper/gradle-wrapper.properties | 4 +- innodb/build.gradle.kts | 52 +- .../apache/calcite/adapter/innodb/InnodbRules.java | 41 +- .../src/test/resources/log4j2-test.xml | 12 +- kafka/build.gradle.kts | 3 +- .../src/test/resources/log4j2-test.xml | 12 +- .../calcite/linq4j/tree/ConstantExpression.java | 5 + .../apache/calcite/linq4j/test/ExpressionTest.java | 15 + mongodb/build.gradle.kts | 3 +- mongodb/src/test/resources/log4j.properties | 26 - .../src/test/resources/log4j2-test.xml | 16 +- pig/build.gradle.kts | 2 +- .../calcite/test/PigRelBuilderStyleTest.java | 3 +- piglet/build.gradle.kts | 50 +- .../org/apache/calcite/piglet/PigRelOpVisitor.java | 3 +- .../calcite/piglet/PigToSqlAggregateRule.java | 21 +- .../org/apache/calcite/test/PigRelBuilderTest.java | 13 +- plus/build.gradle.kts | 3 +- .../org/apache/calcite/adapter/tpch/TpchTest.java | 1 - .../src/test/resources/log4j2-test.xml | 31 +- redis/build.gradle.kts | 4 +- .../src/test/resources/log4j2-test.xml | 15 +- release/build.gradle.kts | 21 +- server/build.gradle.kts | 15 +- .../src/test/resources/log4j2-test.xml | 14 +- server/src/test/resources/sql/schema.iq | 2 +- settings.gradle.kts | 1 + site/_data/contributors.yml | 19 +- site/_docs/adapter.md | 2 +- site/_docs/algebra.md | 26 + site/_docs/history.md | 655 +++++++- site/_docs/howto.md | 32 +- site/_docs/reference.md | 64 +- site/_posts/2019-03-26-release-1.20.0.md | 2 +- site/_posts/2021-06-04-release-1.27.0.md | 3 +- site/_posts/2021-10-19-release-1.28.0.md | 107 ++ ...-incubating.md => 2021-12-26-release-1.29.0.md} | 23 +- site/community/index.md | 14 +- site/downloads/index.md | 27 +- spark/build.gradle.kts | 8 +- spark/src/test/resources/log4j.properties | 29 - .../src/test/resources/log4j2-test.xml | 16 +- splunk/build.gradle.kts | 48 +- .../calcite/adapter/splunk/SplunkPushDownRule.java | 29 +- .../org/apache/calcite/test/SplunkAdapterTest.java | 3 +- splunk/src/test/resources/log4j.properties | 26 - .../src/test/resources/log4j2-test.xml | 13 +- ...mpleCompiler.astub => ClassBodyEvaluator.astub} | 4 +- ...pleCompiler.astub => IClassBodyEvaluator.astub} | 4 +- .../{ICookable.astub => ISimpleCompiler.astub} | 2 +- src/main/config/checkstyle/suppressions.xml | 6 + {redis => testkit}/build.gradle.kts | 29 +- .../apache/calcite/sql/parser/SqlParserTest.java | 131 +- .../apache/calcite/sql/parser}/package-info.java | 4 +- .../apache/calcite/sql/test/AbstractSqlTester.java | 101 +- .../apache/calcite/sql/test/SqlTestFactory.java | 2 +- .../org/apache/calcite/sql/test/SqlTester.java | 2 +- .../java/org/apache/calcite/sql/test/SqlTests.java | 19 +- .../calcite/sql/test/SqlValidatorTester.java | 2 +- .../org/apache/calcite/sql/test}/package-info.java | 4 +- .../calcite/test/AbstractModifiableTable.java | 51 + .../calcite/test/AbstractModifiableView.java | 14 +- .../org/apache/calcite/test/CalciteAssert.java | 229 ++- .../org/apache/calcite/test/ConnectionSpec.java | 3 + .../java/org/apache/calcite/test/DiffTestCase.java | 1 - .../java/org/apache/calcite/test/Matchers.java | 15 +- .../apache/calcite/test/MockSqlOperatorTable.java | 28 +- .../java/org/apache/calcite/test/QuidemTest.java | 34 +- .../test/RexImplicationCheckerFixtures.java | 246 +++ .../apache/calcite/test/SqlValidatorTestCase.java | 8 +- .../main}/java/org/apache/calcite/test/Unsafe.java | 0 .../calcite/test/catalog/CompoundNameColumn.java | 0 .../test/catalog/CompoundNameColumnResolver.java | 0 .../calcite/test/catalog/CountingFactory.java | 0 .../catalog/EmpInitializerExpressionFactory.java | 0 .../org/apache/calcite/test/catalog/Fixture.java | 0 .../calcite/test/catalog/MockCatalogReader.java | 172 +-- .../test/catalog/MockCatalogReaderDynamic.java | 0 .../test/catalog/MockCatalogReaderExtended.java | 4 +- .../test/catalog/MockCatalogReaderSimple.java | 4 +- .../catalog/VirtualColumnsExpressionFactory.java | 0 .../apache/calcite/test/catalog}/package-info.java | 4 +- .../org/apache/calcite/test}/package-info.java | 4 +- .../test/schemata/bookstore}/BookstoreSchema.java | 2 +- .../test/schemata/catchall/CatchallSchema.java | 218 +++ .../countries}/CountriesTableFunction.java | 14 +- .../schemata/countries}/StatesTableFunction.java | 14 +- .../test/schemata/foodmart/FoodmartSchema.java | 77 + .../calcite/test/schemata/hr/Department.java | 55 + .../calcite/test/schemata/hr/DepartmentPlus.java | 20 +- .../apache/calcite/test/schemata/hr/Dependent.java | 34 +- .../apache/calcite/test/schemata/hr/Employee.java | 54 + .../org/apache/calcite/test/schemata/hr/Event.java | 32 +- .../calcite/test/schemata/hr}/HierarchySchema.java | 20 +- .../apache/calcite/test/schemata/hr/HrSchema.java | 90 ++ .../calcite/test/schemata/hr/HrSchemaBig.java | 100 ++ .../apache/calcite/test/schemata/hr/Location.java | 32 +- .../calcite/test/schemata/lingual/LingualEmp.java | 29 +- .../test/schemata/lingual/LingualSchema.java | 10 +- .../schemata/orderstream/BaseOrderStreamTable.java | 69 + .../InfiniteOrdersStreamTableFactory.java | 30 +- .../schemata/orderstream/InfiniteOrdersTable.java | 58 + .../schemata/orderstream/OrdersHistoryTable.java | 29 +- .../orderstream/OrdersStreamTableFactory.java | 57 + .../test/schemata/orderstream/OrdersTable.java | 59 + .../test/schemata/orderstream/ProductsTable.java | 77 + .../schemata/orderstream/ProductsTableFactory.java | 34 +- .../orderstream/ProductsTemporalTable.java | 75 + .../calcite/test/schemata/tpch}/TpchSchema.java | 51 +- .../main}/java/org/apache/calcite/util/Smalls.java | 124 +- .../java/org/apache/calcite/util/TestUtil.java | 5 + .../org/apache/calcite/util}/package-info.java | 4 +- .../apache/calcite/testlib/WithLocaleExtension.kt | 0 .../calcite/testlib/annotations/LocaleEnUs.kt | 0 .../apache/calcite/testlib/annotations/WithLex.kt | 0 .../calcite/testlib/annotations/WithLocale.kt | 0 .../java/org/apache/calcite/util/TestUtilTest.java | 0 .../test/kotlin/org/apache/calcite/TestKtTest.kt | 0 ubenchmark/build.gradle.kts | 4 +- .../enumerable/CodeGenerationBenchmark.java | 3 +- 575 files changed, 23761 insertions(+), 8704 deletions(-) delete mode 100644 .github/workflows/cancel-duplicates.yml copy elasticsearch/src/test/resources/log4j2.xml => cassandra/src/test/resources/log4j2-test.xml (70%) copy core/src/main/java/org/apache/calcite/{package-info.java => CalciteImmutable.java} (60%) create mode 100644 core/src/main/java/org/apache/calcite/plan/RuleEventLogger.java create mode 100644 core/src/main/java/org/apache/calcite/plan/visualizer/InputExcludedRelWriter.java create mode 100644 core/src/main/java/org/apache/calcite/plan/visualizer/NodeUpdateHelper.java create mode 100644 core/src/main/java/org/apache/calcite/plan/visualizer/RuleMatchVisualizer.java copy core/src/main/java/org/apache/calcite/{sql/dialect/H2SqlDialect.java => plan/visualizer/StepInfo.java} (52%) copy core/src/main/java/org/apache/calcite/{ => plan/visualizer}/package-info.java (82%) copy core/src/main/java/org/apache/calcite/{package-info.java => rel/metadata/DelegatingMetadataRel.java} (76%) create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/MetadataHandlerProvider.java create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/janino/CacheGeneratorUtil.java create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/janino/CacheUtil.java create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/janino/CodeGeneratorUtil.java copy core/src/main/java/org/apache/calcite/{sql/fun/SqlMapQueryConstructor.java => rel/metadata/janino/DescriptiveCacheKey.java} (62%) create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/janino/DispatchGenerator.java create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/janino/RelMetadataHandlerGeneratorUtil.java copy core/src/main/java/org/apache/calcite/{ => rel/metadata/janino}/package-info.java (82%) create mode 100644 core/src/main/java/org/apache/calcite/sql/dialect/ExasolSqlDialect.java delete mode 100644 core/src/main/java/org/apache/calcite/util/ImmutableBeans.java create mode 100644 core/src/main/resources/org/apache/calcite/plan/visualizer/viz-template.html create mode 100644 core/src/test/java/org/apache/calcite/materialize/CustomMaterializedViewRecognitionRuleTest.java create mode 100644 core/src/test/java/org/apache/calcite/rel/metadata/janino/RelMetadataHandlerGeneratorUtilTest.java copy core/src/{main/java/org/apache/calcite/package-info.java => test/java/org/apache/calcite/sql/parser/CoreSqlParserTest.java} (87%) create mode 100644 core/src/test/java/org/apache/calcite/test/RuleMatchVisualizerTest.java delete mode 100644 core/src/test/java/org/apache/calcite/util/ImmutableBeanTest.java delete mode 100644 core/src/test/resources/log4j.properties create mode 100644 core/src/test/resources/log4j2-test.xml create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_AllPredicatesHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_CollationHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_ColumnOriginHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_ColumnUniquenessHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_CumulativeCostHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_DistinctRowCountHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_DistributionHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_ExplainVisibilityHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_ExpressionLineageHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_LowerBoundCostHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_MaxRowCountHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_MemoryHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_MinRowCountHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_NodeTypesHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_NonCumulativeCostHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_ParallelismHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_PercentageOriginalRowsHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_PopulationSizeHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_PredicatesHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_RowCountHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_SelectivityHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_SizeHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_TableReferencesHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/rel/metadata/janino/GeneratedMetadata_UniqueKeysHandler.java create mode 100644 core/src/test/resources/org/apache/calcite/test/RuleMatchVisualizerTest.xml delete mode 100644 druid/src/test/resources/log4j.properties copy elasticsearch/src/test/resources/log4j2.xml => druid/src/test/resources/log4j2-test.xml (77%) copy elasticsearch/src/test/resources/{log4j2.xml => log4j2-test.xml} (81%) delete mode 100644 file/src/main/java/org/apache/calcite/adapter/file/CsvFieldType.java create mode 100644 file/src/test/java/org/apache/calcite/adapter/file/CsvEnumeratorTest.java create mode 100644 file/src/test/resources/sales-csv/DECIMAL.csv delete mode 100644 geode/src/test/resources/log4j.properties copy elasticsearch/src/test/resources/log4j2.xml => geode/src/test/resources/log4j2-test.xml (68%) copy elasticsearch/src/test/resources/log4j2.xml => innodb/src/test/resources/log4j2-test.xml (77%) copy elasticsearch/src/test/resources/log4j2.xml => kafka/src/test/resources/log4j2-test.xml (77%) delete mode 100644 mongodb/src/test/resources/log4j.properties copy elasticsearch/src/test/resources/log4j2.xml => mongodb/src/test/resources/log4j2-test.xml (67%) rename {core => piglet}/src/test/java/org/apache/calcite/test/PigRelBuilderTest.java (91%) rename cassandra/src/test/resources/logback-test.xml => plus/src/test/resources/log4j2-test.xml (62%) copy elasticsearch/src/test/resources/log4j2.xml => redis/src/test/resources/log4j2-test.xml (70%) copy elasticsearch/src/test/resources/log4j2.xml => server/src/test/resources/log4j2-test.xml (77%) create mode 100644 site/_posts/2021-10-19-release-1.28.0.md rename site/_posts/{2014-06-27-release-0.8.0-incubating.md => 2021-12-26-release-1.29.0.md} (62%) delete mode 100644 spark/src/test/resources/log4j.properties copy elasticsearch/src/test/resources/log4j2.xml => spark/src/test/resources/log4j2-test.xml (69%) delete mode 100644 splunk/src/test/resources/log4j.properties rename elasticsearch/src/test/resources/log4j2.xml => splunk/src/test/resources/log4j2-test.xml (77%) copy src/main/config/checkerframework/janino/{SimpleCompiler.astub => ClassBodyEvaluator.astub} (84%) rename src/main/config/checkerframework/janino/{SimpleCompiler.astub => IClassBodyEvaluator.astub} (90%) rename src/main/config/checkerframework/janino/{ICookable.astub => ISimpleCompiler.astub} (96%) copy {redis => testkit}/build.gradle.kts (59%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/sql/parser/SqlParserTest.java (98%) copy {core/src/main/java/org/apache/calcite => testkit/src/main/java/org/apache/calcite/sql/parser}/package-info.java (89%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/sql/test/AbstractSqlTester.java (88%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/sql/test/SqlTestFactory.java (99%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/sql/test/SqlTester.java (99%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/sql/test/SqlTests.java (97%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/sql/test/SqlValidatorTester.java (96%) copy {core/src/main/java/org/apache/calcite => testkit/src/main/java/org/apache/calcite/sql/test}/package-info.java (89%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/AbstractModifiableTable.java copy core/src/test/kotlin/org/apache/calcite/testlib/annotations/WithLex.kt => testkit/src/main/java/org/apache/calcite/test/AbstractModifiableView.java (69%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/CalciteAssert.java (92%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/ConnectionSpec.java (95%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/DiffTestCase.java (99%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/Matchers.java (96%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/MockSqlOperatorTable.java (91%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/QuidemTest.java (90%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/RexImplicationCheckerFixtures.java rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/SqlValidatorTestCase.java (97%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/Unsafe.java (100%) copy {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/CompoundNameColumn.java (100%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/CompoundNameColumnResolver.java (100%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/CountingFactory.java (100%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/EmpInitializerExpressionFactory.java (100%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/Fixture.java (100%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/MockCatalogReader.java (89%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/MockCatalogReaderDynamic.java (100%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/MockCatalogReaderExtended.java (98%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/MockCatalogReaderSimple.java (99%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/catalog/VirtualColumnsExpressionFactory.java (100%) copy {core/src/main/java/org/apache/calcite => testkit/src/main/java/org/apache/calcite/test/catalog}/package-info.java (89%) copy {core/src/main/java/org/apache/calcite => testkit/src/main/java/org/apache/calcite/test}/package-info.java (89%) rename {core/src/test/java/org/apache/calcite/test => testkit/src/main/java/org/apache/calcite/test/schemata/bookstore}/BookstoreSchema.java (98%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/catchall/CatchallSchema.java rename {core/src/test/java/org/apache/calcite/test => testkit/src/main/java/org/apache/calcite/test/schemata/countries}/CountriesTableFunction.java (96%) rename {core/src/test/java/org/apache/calcite/test => testkit/src/main/java/org/apache/calcite/test/schemata/countries}/StatesTableFunction.java (90%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/foodmart/FoodmartSchema.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/hr/Department.java copy core/src/main/java/org/apache/calcite/sql/fun/SqlMapQueryConstructor.java => testkit/src/main/java/org/apache/calcite/test/schemata/hr/DepartmentPlus.java (64%) copy core/src/main/java/org/apache/calcite/sql/dialect/H2SqlDialect.java => testkit/src/main/java/org/apache/calcite/test/schemata/hr/Dependent.java (54%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/hr/Employee.java copy core/src/main/java/org/apache/calcite/sql/fun/SqlArrayQueryConstructor.java => testkit/src/main/java/org/apache/calcite/test/schemata/hr/Event.java (57%) rename {core/src/test/java/org/apache/calcite/test => testkit/src/main/java/org/apache/calcite/test/schemata/hr}/HierarchySchema.java (82%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/hr/HrSchema.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/hr/HrSchemaBig.java copy core/src/main/java/org/apache/calcite/sql/fun/SqlArrayQueryConstructor.java => testkit/src/main/java/org/apache/calcite/test/schemata/hr/Location.java (58%) copy core/src/main/java/org/apache/calcite/sql/fun/SqlMapQueryConstructor.java => testkit/src/main/java/org/apache/calcite/test/schemata/lingual/LingualEmp.java (61%) copy core/src/main/java/org/apache/calcite/package-info.java => testkit/src/main/java/org/apache/calcite/test/schemata/lingual/LingualSchema.java (80%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/BaseOrderStreamTable.java copy core/src/test/java/org/apache/calcite/test/catalog/CompoundNameColumn.java => testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/InfiniteOrdersStreamTableFactory.java (54%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/InfiniteOrdersTable.java copy core/src/test/java/org/apache/calcite/test/catalog/CompoundNameColumn.java => testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/OrdersHistoryTable.java (55%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/OrdersStreamTableFactory.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/OrdersTable.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/ProductsTable.java rename core/src/test/java/org/apache/calcite/test/catalog/CompoundNameColumn.java => testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/ProductsTableFactory.java (53%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/schemata/orderstream/ProductsTemporalTable.java rename {core/src/test/java/org/apache/calcite/tools => testkit/src/main/java/org/apache/calcite/test/schemata/tpch}/TpchSchema.java (62%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/util/Smalls.java (90%) rename {core/src/test => testkit/src/main}/java/org/apache/calcite/util/TestUtil.java (98%) copy {core/src/main/java/org/apache/calcite => testkit/src/main/java/org/apache/calcite/util}/package-info.java (89%) rename {core/src/test => testkit/src/main}/kotlin/org/apache/calcite/testlib/WithLocaleExtension.kt (100%) rename {core/src/test => testkit/src/main}/kotlin/org/apache/calcite/testlib/annotations/LocaleEnUs.kt (100%) rename {core/src/test => testkit/src/main}/kotlin/org/apache/calcite/testlib/annotations/WithLex.kt (100%) rename {core/src/test => testkit/src/main}/kotlin/org/apache/calcite/testlib/annotations/WithLocale.kt (100%) rename {core => testkit}/src/test/java/org/apache/calcite/util/TestUtilTest.java (100%) rename {core => testkit}/src/test/kotlin/org/apache/calcite/TestKtTest.kt (100%)