This is an automated email from the ASF dual-hosted git repository. jhyde pushed a change to branch stage in repository https://gitbox.apache.org/repos/asf/calcite.git
discard c77dddca11 Revise release notes omit ef149b68bc Prepare for next development iteration omit c0e339f622 Add 1.29.0 release annoucement omit aff8febe70 [CALCITE-4955] Release Calcite 1.29.0 add cbfe0609ed [CALCITE-4955] Release Calcite 1.29.0. add 8a40603e6c Add 1.29.0 release announcement add fb2e28ae17 Prepare for next development iteration add 3303e4b596 Revise release notes add f79624a07f [CALCITE-4547] Support Java 16 and 17 add fc87380c2d Site: Use openjdk-17 to generate javadoc with docker add df35274e41 [CALCITE-4952] Introduce a simplistic RelMetadataQuery option add 184c57a2bb Site: Change the javadoc title to Apache Calcite API add cc40a48cb8 [CALCITE-4968] Use TOP N for MsSQL instead of FETCH without OFFSET add 8983e7e82e [CALCITE-4963] Make it easier to implement interface SqlDialectFactory add b2baf2dfd5 Remove unused package-private RelNullShuttle class add cdf9d70018 [CALCITE-4960] Enable unit tests in Elasticsearch Adapter add 58fb52ca7b [CALCITE-4973] Upgrade log4j2 version to 2.17.1 add 8d21c3f2f0 [CALCITE-3627] Incorrect null semantic for ROW function add ea4a5f3608 Update javacc official website add 8094bc3794 Site: Improve HTML tables display & update CSV tutorial add e805e705f4 Site: Add syntax highlighting to SQL statements add 6e2af024bd Site: For tables that display results, center the content horizontally add cbda134d8e [CALCITE-4953] Deprecate TableAccessMap class add 77d3dd40a0 Site: Fix typo in howto.md add 4b349032c1 [CALCITE-4901] JDBC adapter incorrectly adds ORDER BY columns to the SELECT list of generated SQL query add dba5ec6180 Site: Add Alessandro Solimando as committer add 8eaa7a7037 [CALCITE-4977] Support Snapshot in RelMdColumnOrigins add ad5cbdbe27 [CALCITE-4965] IS NOT NULL failed in Elasticsearch Adapter add f0bd2b244a [CALCITE-4967] Support SQL hints for temporal table join add 18f5e9a1a3 Corrected json stream property name add 0065d7c179 [CALCITE-4986] Make HepProgram thread-safe add 864268c600 [CALCITE-4991] Improve RuleEventLogger to also print input rels in FULL_PLAN mode add bf56743554 [CALCITE-4885] Fluent test fixtures so that dependent projects can write parser, validator and rules tests add 10e8534b2d [CALCITE-4980] Babel parser support MySQL NULL-safe equal operator '<=>' (xurenhe&&DuanXiong) add c80b948b5a Site: Add "calcite-clj - Use Calcite with Clojure" in talks section add 8b55e31f6e Site: Add external resources section in the community page add 8570cf2b29 Site: update PMC Chair add e6f7cac6a2 [CALCITE-4994] SQL-to-RelNode conversion is slow if table contains hundreds of fields add 1d4f1b394b [CALCITE-4702] Error when executing query with GROUP BY constant via JDBC adapter add c668e3bb54 [CALCITE-4872] Add UNKNOWN value to enum SqlTypeName, distinct from the NULL type add 812e3e98ea [CALCITE-4996] In RelJson, add a readExpression method that can convert JSON to a RexNode expression add 5b2de4ef5c [CALCITE-4997] Keep APPROX_COUNT_DISTINCT in some SqlDialects add 89b7091c98 [CALCITE-5006] Gradle tasks for launching JDBC integration tests are not working add 5111f0f1bd [CALCITE-5007] Upgrade H2 database version to 2.1.210 add 4a6e2228c2 [CALCITE-4988] ((A IS NOT NULL OR B) AND A IS NOT NULL) can't be simplify to (A IS NOT NULL) When A is deterministic add 04029ff5a1 [CALCITE-4995] AssertionError caused by RelFieldTrimmer on SEMI/ANTI join add f43e079757 Fix typo in filterable-model.yaml add de86d4f8dc [CALCITE-4323] If a view definition has an ORDER BY clause, retain the sort if the view is used in a query at top level add 57ad4ffb1e [CALCITE-4683] IN-list converted to JOIN throws type mismatch exception add 595da9b8b2 [CALCITE-4912] Confusing javadoc of RexSimplify.simplify add e81cd20bfb [CALCITE-5011] CassandraAdapterDataTypesTest fails with initialization error add 9c4f3bb540 [CALCITE-3673] ListTransientTable should not leave tables in the schema [CALCITE-4054] RepeatUnion containing a Correlate with a transientScan on its RHS causes NPE add cbbe5701b7 [CALCITE-5008] Ignore synthetic and static methods in MetadataDef add 20ca53c962 [CALCITE-5025] Upgrade commons-io version from 2.4 to 2.11.0 add 5a6d2874d2 [CALCITE-1794] Expressions with numeric comparisons are not simplified when CAST is present add 0e2dada65c Site: Reorganise website update process in README & howto add 6febf781b9 [CALCITE-5030] Upgrade jsonpath version from 2.4.0 to 2.7.0 add 6a3eea2137 Following [CALCITE-1794], update DruidDateTimeUtils and plans in Druid adapter add dcbc493bf6 [CALCITE-5019] Avoid multiple scans when table is ProjectableFilterableTable and projections and filters act on different columns add 692b8f0886 [CALCITE-5040] SqlTypeFactoryTest.testUnknownCreateWithNullabilityTypeConsistency fails add cd5229b9a3 [CALCITE-4976] Release Calcite 1.30.0 add 92843e8d63 [CALCITE-5037] Upgrade HSQLDB to 2.5.2 add 1ce516dcb6 [CALCITE-5050] Metadata (RelMdRowCount) should reflect the fact that an Aggregate with no GROUP BY always returns 1 row add a6a1e2cef3 [CALCITE-5044] JDBC adapter generates integer literal in ORDER BY, which some dialects wrongly interpret as a reference to a field add 8844146182 [CALCITE-4989] Nested JSON_OBJECT creation does not produce proper json add d85b2a602a [CALCITE-5064] Dialect factory returns ANSI SQL dialect for BigQuery add 14b1805475 [CALCITE-5070] Upgrade Jekyll and ruby gems for site generation add 970ba276e7 [CALCITE-3129] Automate website builds add f43a43141d Site: Fix release announcement for 1.30.0 add 88cc385f98 Fix typo documenting rules for triggering a non-release website update add f731ca6d9f [CALCITE-5075] Build fails due to rat check on Gemfile.lock add 850357de1b Add Apache license header to website publication Github workflows add a891416c3b Prepare for next development iteration (1.31.0) add a81cfb2ad0 [CALCITE-5036] RelMdPredicates support to analyze constant key for the operator of IS_NOT_DISTINCT_FROM add fc2fd2dd7e [CALCITE-5021] Double JOIN is created for NOT IN when IN-list that the values all non-nullable is converted to Values add 32babcb90a [CALCITE-5079] Update code demo of tutorial add ef2cc1df21 [CALCITE-4936] Generalize FilterCalcMergeRule/ProjectCalcMergeRule to accept any Filter/Project/Calc operator add 3e877d11ae Refactor RelWriterTest add e08ca8c5df [CALCITE-5088] JsonBuilder should escape backslashes in JSON strings add bb90457051 [CALCITE-5027] Incorrect format for timestamp literals in SqlDialect#quoteTimestampLiteral add d81c0e057b [CALCITE-5083] In RelBuilder.project_, do not unwrap SARGs add 10a3b1a3f5 [CALCITE-4401] SqlJoin.toString throws RuntimeException, "No list started" add 4cc2d80b1f [CALCITE-4992] Resource leak in Elasticsearch adapter add fe9766aaa5 [CALCITE-5032] RelOptUtil#splitJoinCondition returns wrong when there is no equal condition add c8d1cb5a1e [CALCITE-5000] Expand `AGGREGATE_REDUCE_FUNCTIONS`, when arg of agg-call exists in the aggregate's group add 5eb97411ec [CALCITE-5048] Query with parameterized LIMIT and correlated sub-query throws AssertionError "not a literal" add ff085891a2 Comment out release notes for unreleased version and update howto with instructions to uncomment them during a release add e49f63c8d8 [CALCITE-5102] Update github-pages gem for site build add 857d8eb34e Remove instructions for syncing site and master and fix formatting issue in howto add b5c6c045ba [CALCITE-5106] Upgrade to Jekyll 4 and remove unnecessary dependencies from gemfile for site add c36f56264f Site: Remove missing avatar for Ted Dunning add bc23290fe6 [CALCITE-5108] Make website GDPR-compliant add 0ec16e07fc [CALCITE-5085] Firebolt dialect implementation add 169711bb85 [CALCITE-5091] RelMdRowCount can return more accurate rowCount when fetch is deterministic and offset is dynamic add bfabec671a [CALCITE-5015] Fix typo in PartiallyOrderedSet add c98171da57 [CALCITE-5107] Support SQL hint for Filter, SetOp, Sort, Window, Values add 2900f74324 [CALCITE-4147] Rename master branch to main add b9c2099ea9 Remove branch setting in release configuration add 2f241f045c [CALCITE-5112] Upgrade Jetty from 9.4.15.v20190215 to 9.4.46.v20220331 add c7075f22b6 [CALCITE-5115] Upgrade jackson-databind from 2.9.10.1 to 2.13.2.1, and jackson from 2.10.0 to 2.13.2.1 add 5813035c8d Use theirs from source commit when cherry-picking to site branch add da99a0b4ae [CALCITE-5110] Geode adapter's java doc url is invalid add 4ee98e0c06 [CALCITE-4861] Optimization of chained CAST calls can lead to unexpected behavior add 3db4dd1ebf [CALCITE-5117] Optimize the EXISTS sub-query by Metadata RowCount add 2789f5e4c3 [CALCITE-5003] MergeUnion on types with different collators produces wrong result add 737df397c2 Remove useless explicit type cast when using SqlValidator add 2e446f2a8a [CALCITE-5111] jekyll-cache directory should be ignored by git add ff783a8cca [CALCITE-5095] Support Java 18 and Guava 31.1-jre add 9fadc8f35e [CALCITE-5139] Improve Join print plan to add the CorrelationId info add f58a6aa8d0 [CALCITE-5131] Remove redundant type cast add b7dbee54df [CALCITE-5125] Extend "||" operator to work with arrays add bb17ab4a56 [CALCITE-5140] Spark, Piglet tests fail in GitHub CI with OpenJ9 add 86b34f7ba8 [CALCITE-5138] Join on condition generates wrong plan when the condition is sub-query add 1bce280a29 [CALCITE-5081] Group keys of Aggregate are wrongly changed during decorrelation add 4ce91575db [CALCITE-5142] Upgrade Calcite to Avatica 1.21.0 add 664e24921c [CALCITE-5137] EnumerableUncollect throws NPE if input has ((List) null) add c5d45cb094 [CALCITE-5149] Refine RelMdColumnUniqueness for Aggregate by considering intersect keys between target keys and group keys add dc2e1af5c1 [CALCITE-5061] Improve recursive application of the field trimming add 7c1e2746b9 [CALCITE-5089] Allow GROUP BY ALL or DISTINCT set quantifier on GROUPING SETS add acf82f7784 [CALCITE-3890] Derive IS NOT NULL filter for the inputs of inner join add 3feb0adda9 [CALCITE-5165] Improve javadoc add 2d92e2a895 [CALCITE-5118] SqlDatePartFunction#rewriteCall should check operands length add 9bdfd9a178 [CALCITE-5166] Method accept(RelShuttle) is not overridden in LogicalCalc and LogicalTableModify add 52c9b7836b [CALCITE-5163] MysqlSqlDialect support to unparse LISTAGG aggregate function add 4969b9690e [CALCITE-5073] JoinConditionPushRule cannot infer 'LHS.C1 = LHS.C2' from 'LHS.C1 = RHS.C1 AND LHS.C2 = RHS.C1' add b0cb7c06b1 Site: Add Chunwei Lei and Vladimir Ozerov as PMC members add f278efb041 [CALCITE-5162] RelMdUniqueKeys can return more precise unique keys for Aggregate add a5af806427 [CALCITE-5170] Assertion error on range distribution creation add 0f666b3d2b [CALCITE-5153] Create an immutable version of ListSqlOperatorTable add 231008a16d [CALCITE-5171] NATURAL join and USING should fail if join columns are not unique add 63a15128a3 [CALCITE-35] Support parsing parenthesized joins add 4a4114419b [CALCITE-5150] Parser should parse subquery with order by inside array constructor add f7aa27ec22 [CALCITE-4913] Deduplicate correlated variables in SELECT clause add 9d6838a3c6 [CALCITE-5086] SQL parser should allow OFFSET to occur before LIMIT add 4659479a50 [CALCITE-5147] Allow DATE, TIME, TIMESTAMP, INTERVAL literals in BigQuery dialect add a9aea934dc [CALCITE-4907] JDBC adapter cannot push down join ON TRUE (cartesian product) add c4cc0bf80b Fix typo in comments add e84a476d5d [CALCITE-5179] In RelToSqlConverter, AssertionError for values with more than two items when SqlDialect#supportsAliasedValues is false add 75d064f659 [CALCITE-5143] Allow custom time unit abbreviations in FLOOR, CEIL, EXTRACT, DATE_PART, DATEADD, DATEDIFF and similar functions add b0b3e3e645 [CALCITE-5177] Query loses hint after decorrelation add d1cf4a38b7 [CALCITE-4448] Use TableMacro user-defined table functions with QueryableTable add e64a21ee27 [CALCITE-5169] 'xx < 1 OR xx > 1' cannot be simplified to 'xx <> 1' add de41df4d11 [CALCITE-5134] Queries with subquery inside select list does not work if subquery uses table from left join add 1226d1a339 [CALCITE-5191] Allow ORDER BY alias in BigQuery add 2584f03d19 Remove unreachable condition in CsvTableScan add 0ae65494d3 Remove other instance of JsonTable add c8875048e5 [CALCITE-5157] Query that applies dot operator (field access) to parenthesized expression throws ClassCastException add 9a102e77dd [CALCITE-4897] Implicit type conversion is not complete for set operation in DML add 4a01c99e9d [CALCITE-5177] Query loses hint after decorrelation (minor follow-up) add b2fb233426 [CALCITE-5013] Unparse SqlSetOperator should be retained parentheses when generating SQL for UNION ... LIMIT add 94dc303ed0 [CALCITE-5196] Bump apiguardian to 1.1.2 add 300f5200fe [CALCITE-5195] ArrayIndexOutOfBoundsException when inferring more equal conditions from join condition for semi join add 44082a08a1 [CALCITE-5045] Alias within GroupingSets throws type mis-match exception [CALCITE-5145] CASE statement within GROUPING SETS throws type mis-match exception add 0360578751 [CALCITE-4746] PIVOT with aggregate and no without alias fails in Babel parser add 724eb032d0 Site: Add Benchao Li as committer add 85a6ecdd1d [CALCITE-5206] Parser allows MERGE with mismatched parentheses add 515f3356a6 Refactor parser add d40b55cb7a [CALCITE-5194] Cannot parse parenthesized UNION in FROM add 7e38304093 Site: Outline process for becoming Calcite committer by request add 8d8b0b10fd [CALCITE-4865] Allow table functions to be polymorphic add 9bdd261591 Site: Add Jing Zhang as committer add 657a3d352f [CALCITE-5221] Upgrade Avatica version to 1.22.0 add 1f07b5250e [CALCITE-5096] Increase gradle build heap size from 512m to 1g add 86d1bf40e4 [CALCITE-5096] Release Calcite 1.31.0 add 8582c66697 [CALCITE-5096] Release announcement for Calcite 1.31 add edda77acba Prepare for next development iteration add ec903d69bb Site: fixing checkstyle violation for Calcite 1.31 release note add 35eb99f9d0 [CALCITE-5178] Single column with ROW type generates wrong plan add 0e57722208 [CALCITE-5192] CodeGenerationBenchmark throws IllegalStateException add 257c81b5ca Site: Fix 1.31.0 release date to 2022-08-22 (was 2022-08-22) add 3731206c1c [CALCITE-4802] Babel parser doesn't parse IF(condition, then, else) statements add 7e0057e8de [CALCITE-4223] Metadata handlers for TableScan should see whether the RelOptTable implements the handler add 5990904913 [CALCITE-5092] Update site/README.md about how to release the site add 966ec175b8 Site: Change sereda's role from Committer to PMC add 87cf4b11a4 [CALCITE-5232] Upgrade protobuf-java from 3.17.1 to 3.21.5 add d063b08296 Remove redundant `the` in java doc add 7de37aefaa [CALCITE-5201] Improve SemiJoinRule to match Join's right input which is unique for Join keys add e2f949d5d6 [CALCITE-5126] Implicit column alias for single-column UNNEST should work with any single-column UNNEST’s input add 3d39fdcee2 [CALCITE-5243] `SELECT NULL AS C` causes NoSuchMethodException: java.sql.ResultSet.getVoid(int) add 71e30e2c70 [CALCITE-4999] ARRAY, MULTISET functions should return a collection of scalars if a sub-query returns 1 column add fe14559360 [CALCITE-5247] FilterJoinRule cannot simplify left join to inner join for `WHERE RHS.C1 IS NOT NULL OR RHS.C2 IS NOT NULL` add 250d13c566 [CALCITE-4294] Use JTS and proj4j rather than ESRI as the underlying library for geospatial (ST_) functions add df8ee289b1 Add tests for correlated CTEs add ba80b9156a [CALCITE-5263] Improve XmlFunctions by using an XML DocumentBuilder add baeecc82b9 [CALCITE-5251] Support SQL hint for Snapshot add 6302e6fa85 [CALCITE-5277] Make EnumerableRelImplementor stashedParameters order deterministic to increase BINDABLE_CACHE hit rate add d20fd09a1d [CALCITE-5274] Improve DocumentBuilderFactory in DiffRepository test class by using secure features add 89c940cc8b [CALCITE-5241] Implement CHAR function for MySQL and Spark, also JDBC '{fn CHAR(n)}' add 1167b12574 [CALCITE-5270] JDBC adapter should not generate 'FILTER (WHERE)' in Firebolt dialect add 479afa6813 [CALCITE-5278] Upgrade Janino from 3.1.6 to 3.1.8 add 262492527f [CALCITE-5262] Add many spatial functions, including support for WKB (well-known binary) and GeoJSON new 57aafa3551 Cosmetic changes to release notes new 413eded693 [CALCITE-5275] Release Calcite 1.32.0 This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (c77dddca11) \ N -- N -- N refs/heads/stage (413eded693) 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. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .github/workflows/buildcache.yml | 6 +- .github/workflows/main.yml | 29 +- .../publish-non-release-website-updates.yml | 81 + .github/workflows/publish-website-on-release.yml | 71 + .gitignore | 1 + .ratignore | 1 + .travis.yml | 18 +- NOTICE | 2 +- README | 2 +- README.md | 6 +- appveyor.yml | 3 +- babel/src/main/codegen/config.fmpp | 4 +- babel/src/main/codegen/includes/parserImpls.ftl | 12 + .../org/apache/calcite/test/BabelParserTest.java | 156 +- .../java/org/apache/calcite/test/BabelTest.java | 63 + .../java/org/apache/calcite/test/package-info.java | 21 +- bom/build.gradle.kts | 5 +- build.gradle.kts | 4 +- .../adapter/cassandra/CassandraEnumerator.java | 5 +- .../calcite/adapter/cassandra/CassandraSchema.java | 78 +- .../adapter/cassandra/CassandraSchemaFactory.java | 75 +- core/build.gradle.kts | 16 +- core/src/main/codegen/config.fmpp | 4 +- core/src/main/codegen/templates/Parser.jj | 2534 ++--- .../adapter/enumerable/EnumerableCollect.java | 30 +- .../adapter/enumerable/EnumerableCorrelate.java | 2 +- .../enumerable/EnumerableMergeUnionRule.java | 42 +- .../enumerable/EnumerableRelImplementor.java | 14 +- .../adapter/enumerable/EnumerableRepeatUnion.java | 42 +- .../enumerable/EnumerableRepeatUnionRule.java | 3 +- .../calcite/adapter/enumerable/JavaRowFormat.java | 6 + .../calcite/adapter/enumerable/MatchUtils.java | 2 +- .../calcite/adapter/enumerable/NullPolicy.java | 3 + .../calcite/adapter/enumerable/RexImpTable.java | 43 +- .../adapter/enumerable/RexToLixTranslator.java | 8 +- .../org/apache/calcite/adapter/jdbc/JdbcRules.java | 5 +- .../adapter/jdbc/JdbcToEnumerableConverter.java | 6 +- .../calcite/config/CalciteSystemProperty.java | 5 +- .../apache/calcite/interpreter/TableScanNode.java | 4 +- .../apache/calcite/jdbc/CalciteConnectionImpl.java | 23 +- .../org/apache/calcite/jdbc/CalciteSchema.java | 4 + .../apache/calcite/jdbc/JavaTypeFactoryImpl.java | 4 +- .../java/org/apache/calcite/model/JsonView.java | 2 +- .../java/org/apache/calcite/plan/RelOptRules.java | 1 + .../calcite/plan/RelOptSamplingParameters.java | 2 +- .../java/org/apache/calcite/plan/RelOptUtil.java | 43 +- .../org/apache/calcite/plan/RuleEventLogger.java | 5 + .../main/java/org/apache/calcite/plan/Strong.java | 27 +- .../org/apache/calcite/plan/TableAccessMap.java | 5 + .../apache/calcite/plan/hep/HepInstruction.java | 356 +- .../org/apache/calcite/plan/hep/HepPlanner.java | 230 +- .../org/apache/calcite/plan/hep/HepProgram.java | 79 +- .../apache/calcite/plan/hep/HepProgramBuilder.java | 95 +- .../java/org/apache/calcite/plan/hep/HepState.java | 45 + .../plan/visualizer/RuleMatchVisualizer.java | 23 +- .../apache/calcite/plan/visualizer/StepInfo.java | 8 +- .../calcite/plan/volcano/IterativeRuleQueue.java | 4 +- .../calcite/prepare/CalciteCatalogReader.java | 8 +- .../calcite/prepare/CalciteMaterializer.java | 73 - .../apache/calcite/prepare/CalcitePrepareImpl.java | 15 +- .../org/apache/calcite/prepare/PlannerImpl.java | 2 +- .../apache/calcite/prepare/RelOptTableImpl.java | 83 +- .../org/apache/calcite/rel/RelDistributions.java | 2 +- .../apache/calcite/rel/RelHomogeneousShuttle.java | 10 + .../org/apache/calcite/rel/RelValidityChecker.java | 65 + .../java/org/apache/calcite/rel/core/Collect.java | 45 + .../org/apache/calcite/rel/core/Correlate.java | 24 +- .../java/org/apache/calcite/rel/core/Filter.java | 35 +- .../org/apache/calcite/rel/core/Intersect.java | 16 +- .../java/org/apache/calcite/rel/core/Join.java | 1 + .../java/org/apache/calcite/rel/core/Minus.java | 10 +- .../org/apache/calcite/rel/core/RelFactories.java | 18 +- .../org/apache/calcite/rel/core/RepeatUnion.java | 23 +- .../java/org/apache/calcite/rel/core/SetOp.java | 25 +- .../java/org/apache/calcite/rel/core/Snapshot.java | 33 +- .../java/org/apache/calcite/rel/core/Sort.java | 60 +- .../java/org/apache/calcite/rel/core/Union.java | 13 +- .../java/org/apache/calcite/rel/core/Values.java | 36 +- .../java/org/apache/calcite/rel/core/Window.java | 31 +- .../calcite/rel/externalize/RelEnumTypes.java | 12 +- .../apache/calcite/rel/externalize/RelJson.java | 223 +- .../apache/calcite/rel/hint/HintPredicates.java | 35 + .../calcite/rel/hint/NodeTypeHintPredicate.java | 44 +- .../apache/calcite/rel/logical/LogicalCalc.java | 5 + .../calcite/rel/logical/LogicalCorrelate.java | 41 +- .../apache/calcite/rel/logical/LogicalFilter.java | 33 +- .../calcite/rel/logical/LogicalIntersect.java | 24 +- .../apache/calcite/rel/logical/LogicalMinus.java | 20 +- .../calcite/rel/logical/LogicalRepeatUnion.java | 19 +- .../calcite/rel/logical/LogicalSnapshot.java | 29 +- .../apache/calcite/rel/logical/LogicalSort.java | 20 +- .../calcite/rel/logical/LogicalTableModify.java | 5 + .../apache/calcite/rel/logical/LogicalUnion.java | 23 +- .../apache/calcite/rel/logical/LogicalValues.java | 29 +- .../apache/calcite/rel/logical/LogicalWindow.java | 31 +- .../rel/metadata/JaninoRelMetadataProvider.java | 8 + .../apache/calcite/rel/metadata/MetadataDef.java | 3 +- .../calcite/rel/metadata/MetadataHandler.java | 19 + .../metadata/ProxyingMetadataHandlerProvider.java | 123 + .../calcite/rel/metadata/RelMdCollation.java | 5 + .../calcite/rel/metadata/RelMdColumnOrigins.java | 17 + .../rel/metadata/RelMdColumnUniqueness.java | 29 +- .../rel/metadata/RelMdDistinctRowCount.java | 11 + .../calcite/rel/metadata/RelMdDistribution.java | 5 + .../rel/metadata/RelMdExplainVisibility.java | 12 + .../rel/metadata/RelMdExpressionLineage.java | 6 + .../calcite/rel/metadata/RelMdMaxRowCount.java | 33 +- .../calcite/rel/metadata/RelMdMinRowCount.java | 33 +- .../calcite/rel/metadata/RelMdNodeTypes.java | 5 + .../calcite/rel/metadata/RelMdParallelism.java | 5 + .../rel/metadata/RelMdPercentageOriginalRows.java | 10 + .../calcite/rel/metadata/RelMdPopulationSize.java | 11 + .../calcite/rel/metadata/RelMdPredicates.java | 16 +- .../apache/calcite/rel/metadata/RelMdRowCount.java | 51 +- .../calcite/rel/metadata/RelMdSelectivity.java | 11 + .../org/apache/calcite/rel/metadata/RelMdSize.java | 7 +- .../calcite/rel/metadata/RelMdTableReferences.java | 5 + .../calcite/rel/metadata/RelMdUniqueKeys.java | 21 +- .../org/apache/calcite/rel/metadata/RelMdUtil.java | 3 +- .../janino/RelMetadataHandlerGeneratorUtil.java | 3 +- .../apache/calcite/rel/mutable/MutableRels.java | 8 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 14 +- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 48 +- .../AggregateExpandDistinctAggregatesRule.java | 2 +- .../rel/rules/AggregateJoinTransposeRule.java | 2 +- .../AggregateProjectConstantToDummyJoinRule.java | 142 + .../rel/rules/AggregateReduceFunctionsRule.java | 62 +- .../apache/calcite/rel/rules/CalcMergeRule.java | 10 +- .../org/apache/calcite/rel/rules/CoreRules.java | 11 + .../calcite/rel/rules/FilterCalcMergeRule.java | 15 +- .../apache/calcite/rel/rules/FilterJoinRule.java | 140 +- .../rel/rules/JoinDeriveIsNotNullFilterRule.java | 117 + .../calcite/rel/rules/JoinToCorrelateRule.java | 1 + .../calcite/rel/rules/JoinToMultiJoinRule.java | 4 +- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 2 +- .../org/apache/calcite/rel/rules/MultiJoin.java | 4 +- .../calcite/rel/rules/ProjectCalcMergeRule.java | 20 +- .../rel/rules/ProjectWindowTransposeRule.java | 2 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 4 +- .../calcite/rel/rules/ReduceExpressionsRule.java | 2 +- .../org/apache/calcite/rel/rules/SemiJoinRule.java | 84 +- .../org/apache/calcite/rel/rules/SpatialRules.java | 37 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 26 +- .../calcite/rel/type/RelDataTypeFieldImpl.java | 8 +- .../apache/calcite/rel/type/RelDataTypeImpl.java | 44 +- .../calcite/rel/type/RelDataTypeSystemImpl.java | 4 - .../org/apache/calcite/rel/type/RelRecordType.java | 28 + .../java/org/apache/calcite/rex/RexBuilder.java | 27 +- .../org/apache/calcite/rex/RexFieldCollation.java | 4 +- .../java/org/apache/calcite/rex/RexInputRef.java | 3 +- .../java/org/apache/calcite/rex/RexLiteral.java | 10 +- .../java/org/apache/calcite/rex/RexShuttle.java | 4 +- .../java/org/apache/calcite/rex/RexSimplify.java | 22 +- .../java/org/apache/calcite/rex/RexSubQuery.java | 9 +- .../apache/calcite/runtime/CalciteResource.java | 25 +- .../calcite/runtime/CoordinateTransformer.java | 51 + .../org/apache/calcite/runtime/GeoFunctions.java | 595 -- .../org/apache/calcite/runtime/Geometries.java | 293 - .../org/apache/calcite/runtime/JsonFunctions.java | 2 +- .../main/java/org/apache/calcite/runtime/Like.java | 2 +- .../calcite/runtime/ProjectionTransformer.java | 166 + .../calcite/runtime/SpatialTypeFunctions.java | 1424 +++ .../apache/calcite/runtime/SpatialTypeUtils.java | 261 + .../org/apache/calcite/runtime/SqlFunctions.java | 21 +- .../org/apache/calcite/runtime/XmlFunctions.java | 67 +- .../java/org/apache/calcite/schema/SchemaPlus.java | 7 + .../java/org/apache/calcite/schema/Schemas.java | 29 + .../calcite/schema/impl/AggregateFunctionImpl.java | 2 +- .../calcite/schema/impl/ListTransientTable.java | 11 +- .../org/apache/calcite/schema/impl/ViewTable.java | 4 +- .../java/org/apache/calcite/sql/SqlDialect.java | 77 +- .../apache/calcite/sql/SqlDialectFactoryImpl.java | 121 +- .../java/org/apache/calcite/sql/SqlDialects.java | 137 + .../apache/calcite/sql/SqlJdbcFunctionCall.java | 4 +- .../main/java/org/apache/calcite/sql/SqlJoin.java | 34 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 20 + .../java/org/apache/calcite/sql/SqlLiteral.java | 2 +- .../main/java/org/apache/calcite/sql/SqlNode.java | 4 +- .../java/org/apache/calcite/sql/SqlOperator.java | 2 +- .../org/apache/calcite/sql/SqlOperatorTable.java | 2 +- .../org/apache/calcite/sql/SqlOverOperator.java | 5 +- .../java/org/apache/calcite/sql/SqlSelect.java | 12 +- .../org/apache/calcite/sql/SqlSelectOperator.java | 16 +- .../calcite/sql/SqlSetSemanticsTableOperator.java | 94 + .../org/apache/calcite/sql/SqlTableFunction.java | 15 + .../org/apache/calcite/sql/SqlUnnestOperator.java | 2 +- .../main/java/org/apache/calcite/sql/SqlUtil.java | 2 +- .../apache/calcite/sql/TableCharacteristic.java | 357 + .../calcite/sql/dialect/BigQuerySqlDialect.java | 4 + .../calcite/sql/dialect/FireboltSqlDialect.java | 203 + .../apache/calcite/sql/dialect/HiveSqlDialect.java | 4 + .../calcite/sql/dialect/InformixSqlDialect.java | 8 + .../calcite/sql/dialect/MssqlSqlDialect.java | 6 +- .../calcite/sql/dialect/MysqlSqlDialect.java | 61 + .../calcite/sql/dialect/OracleSqlDialect.java | 4 + .../calcite/sql/dialect/PostgresqlSqlDialect.java | 4 + .../calcite/sql/dialect/PrestoSqlDialect.java | 7 + .../calcite/sql/dialect/RedshiftSqlDialect.java | 8 + .../calcite/sql/dialect/SnowflakeSqlDialect.java | 4 + .../calcite/sql/dialect/SparkSqlDialect.java | 4 + .../calcite/sql/dialect/SybaseSqlDialect.java | 7 +- .../calcite/sql/fun/SqlArrayQueryConstructor.java | 2 +- .../calcite/sql/fun/SqlDatePartFunction.java | 7 + .../org/apache/calcite/sql/fun/SqlInOperator.java | 3 +- .../calcite/sql/fun/SqlInternalOperators.java | 36 + .../sql/fun/SqlJsonArrayAggAggFunction.java | 3 +- .../sql/fun/SqlJsonObjectAggAggFunction.java | 3 +- ...ryConstructor.java => SqlJsonTypeOperator.java} | 24 +- .../sql/fun/SqlLibraryOperatorTableFactory.java | 7 +- .../calcite/sql/fun/SqlLibraryOperators.java | 29 +- .../sql/fun/SqlMultisetQueryConstructor.java | 2 +- .../apache/calcite/sql/fun/SqlRollupOperator.java | 5 + .../org/apache/calcite/sql/fun/SqlRowOperator.java | 11 +- ...Functions.java => SqlSpatialTypeFunctions.java} | 29 +- .../calcite/sql/fun/SqlStdOperatorTable.java | 25 +- .../apache/calcite/sql/fun/SqlThrowOperator.java | 2 +- .../java/org/apache/calcite/sql/parser/Span.java | 4 +- .../calcite/sql/parser/SqlAbstractParserImpl.java | 64 +- .../org/apache/calcite/sql/parser/SqlParser.java | 28 + .../apache/calcite/sql/parser/SqlParserUtil.java | 14 +- .../apache/calcite/sql/parser/StringAndPos.java | 18 + .../org/apache/calcite/sql/type/BasicSqlType.java | 29 +- .../sql/type/JavaToSqlTypeConversionRules.java | 4 +- .../org/apache/calcite/sql/type/OperandTypes.java | 5 +- .../org/apache/calcite/sql/type/ReturnTypes.java | 7 + .../calcite/sql/type/SqlTypeFactoryImpl.java | 16 +- .../calcite/sql/type/SqlTypeMappingRule.java | 4 +- .../org/apache/calcite/sql/type/SqlTypeName.java | 1 + .../apache/calcite/sql/type/SqlTypeTransforms.java | 23 + .../org/apache/calcite/sql/type/SqlTypeUtil.java | 55 +- .../calcite/sql/util/ListSqlOperatorTable.java | 22 +- .../apache/calcite/sql/util/SqlOperatorTables.java | 59 +- .../sql/validate/AggregatingSelectScope.java | 17 +- .../calcite/sql/validate/AliasNamespace.java | 15 + .../calcite/sql/validate/IdentifierNamespace.java | 2 +- .../org/apache/calcite/sql/validate/ListScope.java | 18 + .../apache/calcite/sql/validate/OrderByScope.java | 2 +- .../sql/validate/SqlAbstractConformance.java | 4 + .../calcite/sql/validate/SqlConformance.java | 19 + .../calcite/sql/validate/SqlConformanceEnum.java | 11 + .../calcite/sql/validate/SqlNameMatcher.java | 14 + .../apache/calcite/sql/validate/SqlValidator.java | 23 +- .../calcite/sql/validate/SqlValidatorImpl.java | 322 +- .../calcite/sql/validate/SqlValidatorUtil.java | 19 +- .../sql/validate/implicit/TypeCoercionImpl.java | 9 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 40 +- .../apache/calcite/sql2rel/RelFieldTrimmer.java | 63 +- .../sql2rel/RelStructuredTypeFlattener.java | 15 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 499 +- .../calcite/sql2rel/StandardConvertletTable.java | 33 +- .../calcite/statistic/MapSqlStatisticProvider.java | 4 +- .../java/org/apache/calcite/tools/Programs.java | 1 + .../java/org/apache/calcite/tools/RelBuilder.java | 69 +- .../java/org/apache/calcite/tools/RelRunner.java | 8 +- .../src/main/java/org/apache/calcite/util/Bug.java | 5 + .../org/apache/calcite/util/BuiltInMethod.java | 11 +- .../java/org/apache/calcite/util/JdbcType.java | 53 + .../java/org/apache/calcite/util/JdbcTypeImpl.java | 118 + .../java/org/apache/calcite/util/JsonBuilder.java | 63 +- .../apache/calcite/util/PartiallyOrderedSet.java | 2 +- .../org/apache/calcite/util/ReflectiveVisitor.java | 2 +- .../main/java/org/apache/calcite/util/Sarg.java | 18 +- .../org/apache/calcite/util/TryThreadLocal.java | 59 +- .../calcite/runtime/CalciteResource.properties | 11 +- core/src/test/codegen/includes/parserImpls.ftl | 4 +- .../calcite/adapter/enumerable/EnumUtilsTest.java | 6 +- .../calcite/jdbc/CalciteRemoteDriverTest.java | 46 +- .../org/apache/calcite/plan/RelOptUtilTest.java | 22 + .../org/apache/calcite/plan/RelWriterTest.java | 761 +- .../plan/volcano/MultipleTraitConversionTest.java | 2 +- .../calcite/plan/volcano/VolcanoPlannerTest.java | 2 +- .../apache/calcite/rel/RelDistributionTest.java | 10 + .../calcite/rel/metadata/MetadataDefTest.java} | 23 +- .../calcite/rel/metadata/MetadataHandlerTest.java | 72 + .../metadata/MetadataHandlerWithStaticMethod.java | 14 +- .../apache/calcite/rel/metadata/RelMdUtilTest.java | 29 + .../apache/calcite/rel/metadata/TestMetadata.java} | 7 +- .../calcite/rel/metadata/TestMetadataHandlers.java | 54 + .../RelMetadataHandlerGeneratorUtilTest.java | 55 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 375 +- .../org/apache/calcite/rex/RexBuilderTest.java | 2 +- .../org/apache/calcite/rex/RexProgramTest.java | 127 +- .../calcite/runtime/SpatialTypeUtilsTest.java | 48 + .../org/apache/calcite/sql/SqlDialectsTest.java | 46 + .../apache/calcite/sql/parser/SqlUnParserTest.java | 9 +- .../ExtensionSqlParserTest.java | 7 +- .../apache/calcite/sql/test/DocumentationTest.java | 2 +- .../apache/calcite/sql/test/SqlAdvisorTest.java | 1211 +-- .../calcite/sql/test/SqlOperatorBaseTest.java | 10490 ------------------- .../apache/calcite/sql/test/SqlOperatorTest.java | 36 - .../calcite/sql/test/SqlPrettyWriterFixture.java | 199 + .../calcite/sql/test/SqlPrettyWriterTest.java | 179 +- .../calcite/sql/type/SqlTypeFactoryTest.java | 27 + .../apache/calcite/sql/type/SqlTypeFixture.java | 2 + .../apache/calcite/sql/type/SqlTypeUtilTest.java | 41 +- .../calcite/sql/validate/SqlValidatorUtilTest.java | 10 +- .../calcite/sql2rel/RelDecorrelatorTest.java | 89 + .../calcite/sql2rel/RelFieldTrimmerTest.java | 61 + .../calcite/test/CalciteSqlOperatorTest.java | 11 +- .../apache/calcite/test/CoreSqlOperatorTest.java} | 12 +- .../org/apache/calcite/test/HepPlannerTest.java | 82 +- .../org/apache/calcite/test/InterpreterTest.java | 18 +- .../org/apache/calcite/test/JdbcAdapterTest.java | 63 +- .../java/org/apache/calcite/test/JdbcTest.java | 295 +- .../calcite/test/MaterializedViewFixture.java | 115 + .../test/MaterializedViewRelOptRulesTest.java | 313 +- .../MaterializedViewSubstitutionVisitorTest.java | 275 +- ...edViewTest.java => MaterializedViewTester.java} | 162 +- .../org/apache/calcite/test/MutableRelTest.java | 19 +- ...ratorTest.java => ProxyingRelMetadataTest.java} | 14 +- .../apache/calcite/test/ReflectiveSchemaTest.java | 10 + .../org/apache/calcite/test/RelBuilderTest.java | 171 +- .../calcite/test/RelMdColumnOriginsTest.java | 3 +- .../org/apache/calcite/test/RelMetadataTest.java | 1964 ++-- .../org/apache/calcite/test/RelOptRulesTest.java | 1153 +- .../org/apache/calcite/test/RelOptTestBase.java | 345 - .../apache/calcite/test/RexTransformerTest.java | 4 +- .../calcite/test/RuleMatchVisualizerTest.java | 24 +- .../apache/calcite/test/ScannableTableTest.java | 31 +- .../org/apache/calcite/test/SqlFunctionsTest.java | 28 +- .../apache/calcite/test/SqlHintsConverterTest.java | 432 +- .../apache/calcite/test/SqlJsonFunctionsTest.java | 8 - .../org/apache/calcite/test/SqlLimitsTest.java | 35 +- .../java/org/apache/calcite/test/SqlTestGen.java | 120 +- .../apache/calcite/test/SqlToRelConverterTest.java | 849 +- .../org/apache/calcite/test/SqlToRelTestBase.java | 1100 -- .../apache/calcite/test/SqlValidatorDynamicTest.kt | 21 +- .../calcite/test/SqlValidatorFeatureTest.java | 8 +- .../org/apache/calcite/test/SqlValidatorTest.java | 1280 ++- .../apache/calcite/test/SqlXmlFunctionsTest.java | 48 + .../java/org/apache/calcite/test/StreamTest.java | 21 +- .../org/apache/calcite/test/TCatalogReader.java | 81 + .../org/apache/calcite/test/TableFunctionTest.java | 22 + .../apache/calcite/test/TableInRootSchemaTest.java | 111 +- .../org/apache/calcite/test/TopDownOptTest.java | 601 +- .../calcite/test/TypeCoercionConverterTest.java | 71 +- .../org/apache/calcite/test/TypeCoercionTest.java | 956 +- .../concurrent/ConcurrentTestCommandScript.java | 4 +- .../calcite/test/concurrent/SamplePlugin.java | 3 +- .../EnumerableBatchNestedLoopJoinTest.java | 6 +- .../test/enumerable/EnumerableCalcTest.java | 2 - .../test/enumerable/EnumerableCorrelateTest.java | 3 - .../test/enumerable/EnumerableHashJoinTest.java | 3 +- .../test/enumerable/EnumerableJoinTest.java | 24 +- .../EnumerableRepeatUnionHierarchyTest.java | 1 - .../test/enumerable/EnumerableRepeatUnionTest.java | 97 +- .../enumerable/EnumerableStringComparisonTest.java | 38 +- .../test/enumerable/EnumerableUncollectTest.java | 7 + .../java/org/apache/calcite/tools/PlannerTest.java | 13 +- .../java/org/apache/calcite/util/UtilTest.java | 85 +- core/src/test/resources/log4j2-test.xml | 2 +- .../GeneratedMetadata_ColumnOriginHandler.java | 4 + .../GeneratedMetadata_DistinctRowCountHandler.java | 2 + ...GeneratedMetadata_ExplainVisibilityHandler.java | 4 +- ...atedMetadata_PercentageOriginalRowsHandler.java | 2 + .../GeneratedMetadata_PopulationSizeHandler.java | 2 + .../GeneratedMetadata_SelectivityHandler.java | 2 + .../calcite/sql/test/SqlPrettyWriterTest.xml | 9 + .../org/apache/calcite/test/RelOptRulesTest.xml | 1052 +- .../apache/calcite/test/SqlHintsConverterTest.xml | 226 + .../apache/calcite/test/SqlToRelConverterTest.xml | 546 +- .../org/apache/calcite/test/TopDownOptTest.xml | 4 +- .../calcite/test/TypeCoercionConverterTest.xml | 19 +- core/src/test/resources/sql/agg.iq | 151 +- core/src/test/resources/sql/conditions.iq | 183 + core/src/test/resources/sql/functions.iq | 15 +- core/src/test/resources/sql/join.iq | 275 + core/src/test/resources/sql/misc.iq | 30 +- core/src/test/resources/sql/set-op.iq | 30 + core/src/test/resources/sql/spatial.iq | 1196 ++- core/src/test/resources/sql/struct.iq | 21 + core/src/test/resources/sql/sub-query.iq | 251 +- core/src/test/resources/sql/unnest.iq | 41 +- .../calcite/adapter/druid/DruidDateTimeUtils.java | 4 + .../apache/calcite/adapter/druid/DruidQuery.java | 4 +- .../org/apache/calcite/test/DruidAdapter2IT.java | 47 +- .../org/apache/calcite/test/DruidAdapterIT.java | 29 +- .../elasticsearch/ElasticsearchSchemaFactory.java | 78 +- .../adapter/elasticsearch/PredicateAnalyzer.java | 3 + .../adapter/elasticsearch/AggregationTest.java | 126 +- .../adapter/elasticsearch/BooleanLogicTest.java | 44 +- .../elasticsearch/ElasticSearchAdapterTest.java | 101 +- .../elasticsearch/EmbeddedElasticsearchPolicy.java | 6 +- .../calcite/adapter/elasticsearch/MatchTest.java | 45 +- .../adapter/elasticsearch/Projection2Test.java | 112 +- .../adapter/elasticsearch/ProjectionTest.java | 85 +- .../adapter/elasticsearch/ScrollingTest.java | 23 +- .../apache/calcite/adapter/csv/CsvTableScan.java | 8 - .../csv/src/test/resources/filterable-model.yaml | 2 +- .../apache/calcite/adapter/file/CsvTableScan.java | 7 - .../adapter/geode/rel/GeodeSchemaFactory.java | 4 +- .../adapter/geode/rel/GeodeAllDataTypesTest.java | 29 +- .../adapter/geode/rel/GeodeBookstoreTest.java | 29 +- .../calcite/adapter/geode/rel/GeodeZipsTest.java | 34 +- gradle.properties | 43 +- .../apache/calcite/linq4j/EnumerableDefaults.java | 7 +- .../java/org/apache/calcite/linq4j/Nullness.java | 61 +- .../linq4j/tree/TableExpressionFactory.java | 22 +- .../org/apache/calcite/piglet/PigRelExVisitor.java | 2 +- .../java/org/apache/calcite/piglet/PigTable.java | 2 +- .../java/org/apache/calcite/test/PigRelOpTest.java | 12 +- plus/src/main/resources/chinook/chinook.json | 20 +- .../RemotePreparedStatementParametersTest.java | 2 +- plus/src/test/resources/sql/basic.iq | 12 +- plus/src/test/resources/sql/cross-join-lateral.iq | 2 +- plus/src/test/resources/sql/functions.iq | 2 +- .../resources/sql/preferred-for-specific-user.iq | 18 +- server/src/main/codegen/config.fmpp | 2 - server/src/main/codegen/includes/parserImpls.ftl | 1 - .../org/apache/calcite/test/ServerParserTest.java | 7 +- .../java/org/apache/calcite/test/ServerTest.java | 2 +- .../apache/calcite/test/ServerUnParserTest.java | 11 +- settings.gradle.kts | 3 +- site/.asf.yaml | 2 +- site/.gitignore | 1 - site/Gemfile | 9 +- site/Gemfile.lock | 76 + site/README.md | 85 +- site/_config.yml | 3 +- site/_data/contributors.yml | 27 +- site/_docs/adapter.md | 10 +- site/_docs/history.md | 578 +- site/_docs/howto.md | 37 +- site/_docs/materialized_views.md | 44 +- site/_docs/powered_by.md | 2 +- site/_docs/redis_adapter.md | 2 +- site/_docs/reference.md | 261 +- site/_docs/spatial.md | 2 +- site/_docs/tutorial.md | 136 +- site/_includes/footer.html | 6 +- site/{Gemfile => _plugins/wrap_table.rb} | 15 +- site/_posts/2021-10-19-release-1.28.0.md | 4 +- site/_posts/2022-03-20-release-1.30.0.md | 42 + site/_posts/2022-08-02-release-1.31.0.md | 47 + site/_sass/_style.scss | 10 + site/community/index.md | 59 +- site/develop/index.md | 61 +- site/docker-compose.yml | 6 +- .../adapter/spark/JdbcToSparkConverter.java | 2 +- .../calcite/adapter/splunk/SplunkSchema.java | 2 +- src/main/config/checkstyle/suppressions.xml | 2 +- testkit/build.gradle.kts | 3 + .../calcite/sql/parser/SqlParserFixture.java | 212 + .../calcite/sql/parser/SqlParserListFixture.java | 62 + .../apache/calcite/sql/parser/SqlParserTest.java | 1578 ++- .../apache/calcite/sql/test/AbstractSqlTester.java | 645 +- .../apache/calcite/sql/test/ResultCheckers.java | 320 + .../calcite/sql/test/SqlOperatorFixture.java | 644 ++ .../apache/calcite/sql/test/SqlTestFactory.java | 401 +- .../org/apache/calcite/sql/test/SqlTester.java | 394 +- .../java/org/apache/calcite/sql/test/SqlTests.java | 267 +- .../calcite/sql/test/SqlValidatorTester.java | 31 +- .../org/apache/calcite/test/CalciteAssert.java | 427 +- .../apache/calcite/test/ConnectionFactories.java | 222 + .../org/apache/calcite/test/ConnectionFactory.java | 51 + .../org/apache/calcite/test/DiffRepository.java | 73 +- .../java/org/apache/calcite/test/Fixtures.java | 59 + .../java/org/apache/calcite/test/Matchers.java | 96 +- .../org/apache/calcite/test/MockRelOptPlanner.java | 35 +- .../apache/calcite/test/MockSqlOperatorTable.java | 369 +- .../apache/calcite/test/RelMetadataFixture.java | 597 ++ .../org/apache/calcite/test/RelOptFixture.java | 438 + .../org/apache/calcite/test/RelOptTestBase.java | 28 +- .../java/org/apache/calcite/test/RelSupplier.java | 138 + .../calcite/test/SqlOperatorFixtureImpl.java | 275 + .../org/apache/calcite/test/SqlOperatorTest.java | 8905 ++++++++++++++++ .../org/apache/calcite}/test/SqlRuntimeTester.java | 50 +- .../org/apache/calcite/test/SqlToRelFixture.java | 206 + .../org/apache/calcite/test/SqlToRelTestBase.java | 103 + .../apache/calcite/test/SqlValidatorFixture.java | 435 + .../apache/calcite/test/SqlValidatorTestCase.java | 427 +- .../calcite/test/catalog/MockCatalogReader.java | 8 +- .../test/catalog/MockCatalogReaderDynamic.java | 15 +- .../test/catalog/MockCatalogReaderExtended.java | 15 +- .../test/catalog/MockCatalogReaderSimple.java | 15 +- .../main/java/org/apache/calcite/util/Smalls.java | 131 + .../java/org/apache/calcite/util/TestUtil.java | 63 + .../java/org/apache/calcite/test/FixtureTest.java | 232 + .../java/org/apache/calcite/util/TestUtilTest.java | 20 + .../org/apache/calcite/test/FixtureTest.xml | 56 + ubenchmark/README.md | 16 +- ubenchmark/build.gradle.kts | 2 + .../enumerable/CodeGenerationBenchmark.java | 51 +- .../calcite/benchmarks/MetadataBenchmark.java | 140 + .../benchmarks/RelNodeConversionBenchmark.java | 208 + 485 files changed, 38811 insertions(+), 24772 deletions(-) create mode 100644 .github/workflows/publish-non-release-website-updates.yml create mode 100644 .github/workflows/publish-website-on-release.yml copy server/src/test/java/org/apache/calcite/test/ServerUnParserTest.java => babel/src/test/java/org/apache/calcite/test/package-info.java (65%) create mode 100644 core/src/main/java/org/apache/calcite/plan/hep/HepState.java create mode 100644 core/src/main/java/org/apache/calcite/rel/RelValidityChecker.java create mode 100644 core/src/main/java/org/apache/calcite/rel/metadata/ProxyingMetadataHandlerProvider.java create mode 100644 core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectConstantToDummyJoinRule.java create mode 100644 core/src/main/java/org/apache/calcite/rel/rules/JoinDeriveIsNotNullFilterRule.java create mode 100644 core/src/main/java/org/apache/calcite/runtime/CoordinateTransformer.java delete mode 100644 core/src/main/java/org/apache/calcite/runtime/GeoFunctions.java delete mode 100644 core/src/main/java/org/apache/calcite/runtime/Geometries.java create mode 100644 core/src/main/java/org/apache/calcite/runtime/ProjectionTransformer.java create mode 100644 core/src/main/java/org/apache/calcite/runtime/SpatialTypeFunctions.java create mode 100644 core/src/main/java/org/apache/calcite/runtime/SpatialTypeUtils.java create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlDialects.java create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlSetSemanticsTableOperator.java create mode 100644 core/src/main/java/org/apache/calcite/sql/TableCharacteristic.java create mode 100644 core/src/main/java/org/apache/calcite/sql/dialect/FireboltSqlDialect.java copy core/src/main/java/org/apache/calcite/sql/fun/{SqlArrayQueryConstructor.java => SqlJsonTypeOperator.java} (52%) rename core/src/main/java/org/apache/calcite/sql/fun/{SqlGeoFunctions.java => SqlSpatialTypeFunctions.java} (84%) create mode 100644 core/src/main/java/org/apache/calcite/util/JdbcType.java create mode 100644 core/src/main/java/org/apache/calcite/util/JdbcTypeImpl.java copy core/src/{main/java/org/apache/calcite/rel/metadata/MetadataHandler.java => test/java/org/apache/calcite/rel/metadata/MetadataDefTest.java} (61%) create mode 100644 core/src/test/java/org/apache/calcite/rel/metadata/MetadataHandlerTest.java rename testkit/src/main/kotlin/org/apache/calcite/testlib/annotations/WithLex.kt => core/src/test/java/org/apache/calcite/rel/metadata/MetadataHandlerWithStaticMethod.java (75%) copy core/src/{main/java/org/apache/calcite/rel/metadata/MetadataHandler.java => test/java/org/apache/calcite/rel/metadata/TestMetadata.java} (83%) create mode 100644 core/src/test/java/org/apache/calcite/rel/metadata/TestMetadataHandlers.java create mode 100644 core/src/test/java/org/apache/calcite/runtime/SpatialTypeUtilsTest.java create mode 100644 core/src/test/java/org/apache/calcite/sql/SqlDialectsTest.java delete mode 100644 core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java delete mode 100644 core/src/test/java/org/apache/calcite/sql/test/SqlOperatorTest.java create mode 100644 core/src/test/java/org/apache/calcite/sql/test/SqlPrettyWriterFixture.java create mode 100644 core/src/test/java/org/apache/calcite/sql2rel/RelDecorrelatorTest.java copy core/src/{main/java/org/apache/calcite/rel/metadata/MetadataHandler.java => test/java/org/apache/calcite/test/CoreSqlOperatorTest.java} (74%) create mode 100644 core/src/test/java/org/apache/calcite/test/MaterializedViewFixture.java rename core/src/test/java/org/apache/calcite/test/{AbstractMaterializedViewTest.java => MaterializedViewTester.java} (57%) copy core/src/test/java/org/apache/calcite/test/{CalciteSqlOperatorTest.java => ProxyingRelMetadataTest.java} (71%) delete mode 100644 core/src/test/java/org/apache/calcite/test/RelOptTestBase.java delete mode 100644 core/src/test/java/org/apache/calcite/test/SqlToRelTestBase.java create mode 100644 core/src/test/java/org/apache/calcite/test/TCatalogReader.java copy core/src/test/java/org/apache/calcite/sql/parser/SqlUnParserTest.java => linq4j/src/main/java/org/apache/calcite/linq4j/tree/TableExpressionFactory.java (64%) create mode 100644 site/Gemfile.lock copy site/{Gemfile => _plugins/wrap_table.rb} (75%) create mode 100644 site/_posts/2022-03-20-release-1.30.0.md create mode 100644 site/_posts/2022-08-02-release-1.31.0.md create mode 100644 testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserFixture.java create mode 100644 testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserListFixture.java create mode 100644 testkit/src/main/java/org/apache/calcite/sql/test/ResultCheckers.java create mode 100644 testkit/src/main/java/org/apache/calcite/sql/test/SqlOperatorFixture.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/ConnectionFactories.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/ConnectionFactory.java rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/DiffRepository.java (93%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/Fixtures.java rename {core/src/test => testkit/src/main}/java/org/apache/calcite/test/MockRelOptPlanner.java (88%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/RelMetadataFixture.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/RelOptFixture.java copy server/src/test/java/org/apache/calcite/test/ServerUnParserTest.java => testkit/src/main/java/org/apache/calcite/test/RelOptTestBase.java (54%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/RelSupplier.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/SqlOperatorFixtureImpl.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java rename {core/src/test/java/org/apache/calcite/sql => testkit/src/main/java/org/apache/calcite}/test/SqlRuntimeTester.java (63%) create mode 100644 testkit/src/main/java/org/apache/calcite/test/SqlToRelFixture.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/SqlToRelTestBase.java create mode 100644 testkit/src/main/java/org/apache/calcite/test/SqlValidatorFixture.java create mode 100644 testkit/src/test/java/org/apache/calcite/test/FixtureTest.java create mode 100644 testkit/src/test/resources/org/apache/calcite/test/FixtureTest.xml create mode 100644 ubenchmark/src/jmh/java/org/apache/calcite/benchmarks/MetadataBenchmark.java create mode 100644 ubenchmark/src/jmh/java/org/apache/calcite/benchmarks/RelNodeConversionBenchmark.java