You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2021/12/28 06:41:28 UTC

[calcite] branch site updated (ab27d0b -> f79624a)

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%)