This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch site
in repository https://gitbox.apache.org/repos/asf/calcite.git
discard 0ef76cfa15 [CALCITE-6582] Release Calcite 1.38.0
discard 6670a59afc [CALCITE-6598] In RelDataTypeSystem, deprecate methods
getMaxNumericScale and getMaxNumericPrecision
discard a15bd48d6e [CALCITE-6584] Validate prefixed column identifiers in SET
clause of UPDATE statement
discard 58b193c7e8 [CALCITE-6493] Add MySQL and other professional term
restrictions
discard 9c2b899d76 Change Mihai Budiu's role
discard 913447f1eb [CALCITE-5737] Support JDK 21 and JDK 22
discard 998b7cf55b [CALCITE-6174] Upgrade gradle from 7.6.1 to 8.7
discard 32d07b74b3 [CALCITE-6302] Add news item for 1.37.0 release
add 67637799ed [CALCITE-6302] Add news item for 1.37.0 release
add eb91c77233 Prepare for next development iteration
add f8eb832e2c [CALCITE-6376] Selecting 6 columns with QUALIFY operation
results in exception
add f55c59ab32 [CALCITE-6383] The class SameOperandTypeChecker is
incorrectly documented
add 19debd3e90 [CALCITE-6361] Uncollect.deriveUncollectRowType throws
AssertionFailures * if the input data is not a collection
add 7ef829e17c [CALCITE-6377] Time expression causes IllegalStateException
add b6e1a9deb2 [CALCITE-6395] Significant precision loss when representing
REAL literals
add f854ef5ee4 [CALCITE-6382] Type inference for SqlLeadLagAggFunction is
incorrect
add ea441e7c75 [CALCITE-6365] Support for RETURNING clause of JSON_QUERY
add c228804e25 [CALCITE-6389] RexBuilder.removeCastFromLiteral does not
preserve semantics for some types of literal
add 5ab4397ac9 [CALCITE-6313] Add POWER function for PostgreSQL
add 43c8848290 [CALCITE-6400] MAP_ENTRIES function should throw if a key
value is null
add 327bfcc779 [CALCITE-6340] RelBuilder drops traits when aggregating
over duplicate projected fields
add 665ea4af04 [CALCITE-6415] Invalid unparse for TIMESTAMP with
HiveSqlDialect
add d274429186 [CALCITE-6174] Upgrade gradle from 7.6.1 to 8.7
add 4def07066b [CALCITE-6416] Remove unnecessary SUBSTRING rewrite in
SparkSqlDialect
add 09c0ef1c15 [CALCITE-5737] Support JDK 21 and JDK 22
add 694b556a2e [CALCITE-6417] Map value constructor and Array value
constructor unparsed incorrectly for HiveSqlDialect
add b9455ef08d [CALCITE-6419] Invalid unparse for VARCHAR without
precision in HiveSqlDialect And SparkSqlDialect
add a33270390b [CALCITE-6244] Improve `Expressions#constant` to allow Java
records
add 1fa47054ce [CALCITE-6358] Support all PostgreSQL 14 date/time patterns
for to_char
add d1ebe165ac [CALCITE-6423] Invalid unparse for CHAR without precision
in MySQLDialect
add eb92f96a74 [CALCITE-6397] Add NVL2 function (enabled in Oracle, Spark
library)
add be9b860ebf [CALCITE-6424] Enable RLIKE function in MySQL library
add 6b577851fb [CALCITE-6422] Query with '<>' throws NullPointerException
during materialized view matching
add 3c4d54a82e [CALCITE-6428] Typo in adapter documentation
add d7a0f99eb1 [CALCITE-6311] Support PostgreSQL DATE_PART
add a7c1e8ac77 [CALCITE-6370] AS operator problems with USING clause
add 4f5b761eee Remove conditional stream.iq execution
add 10b3f53270 [CALCITE-6429] Arrow adapter should default to the
Enumerable convention for unsupported filters
add fb15511e76 [CALCITE-6430] SINGLE_VALUE rewrite to wrong sql when the
sub-query return one NOT-NULL value and NULL value in PostgreSQL、MySQL、HSQL
dialect
add 1079bcea97 [CALCITE-6426] Invalid unparse for INT and BIGINT in
StarRocksDialect
add 05923bf4db [CALCITE-6434] JDBC adapter generates wrong SQL for Spark
and Hive because it fails to quote an identifier containing '$'
add 5e14cb2eb0 [CALCITE-6427] Use a higher precision for DECIMAL
intermediate results for some aggregate functions like STDDEV
add c8d42f350c [CALCITE-6441] Add BOOLAGG_AND, BOOLAGG_OR aggregate
functions (enabled in Snowflake library)
add 97d62ac73a [CALCITE-6414] JDBC adapter should generate BOOLOR_AGG,
BOOLAND_AGG for MAX, MIN on BOOLEAN values in Snowflake dialect
add 4a1da22e6e [CALCITE-5855] Implement frame exclusion in window functions
add a419a12f7d [CALCITE-6008] ARRAY_AGG should returns ARRAY NULL when
there's no input rows
add c0a53f6b17 [CALCITE-6380] Casts from INTERVAL and STRING to DECIMAL
are incorrect
add 444a8cea43 Document MAP types in grammar
add f672d39dc8 [CALCITE-6442] Validator rejects FILTER in OVER windows
add 1566f73ef8 [CALCITE-6392] Support all PostgreSQL 14 date/time patterns
for to_date/to_timestamp
add d74b283f56 [CALCITE-6369] Expanding "star" gives
ArrayIndexOutOfBoundsException with redundant columns and USING
add cdb6522d33 [CALCITE-6444] Add a function library for Amazon Redshift
add 8ab0b03326 [CALCITE-6325] Add LOG function (enabled in Mysql and Spark
library)
add e4e86d3b3e Test case for [CALCITE-4921] Nested NATURAL JOINs or JOINs
with USING can't find common column
add d2e3350211 [CALCITE-6436] JDBC adapter generates SQL missing
parentheses when comparing 3 values with the same precedence like (a=b)=c
add 05dbcc4def [CALCITE-6446] Add CONCAT_WS function (enabled in Spark
library)
add 8a96095a64 [CALCITE-6401] JDBC adapter cannot push down JOIN with
condition includes IS TRUE、IS NULL、Dynamic parameter、CAST、Literal comparison
add 47a2597bb2 Add testSortRemoveConstantKeyWhenOrderByIsNull on
RelOptRulesTest
add dad90736b0 [CALCITE-5634] Enable GREATEST, LEAST functions in
PostgreSQL library
add a98508fd36 [CALCITE-6460] SortRemoveConstantKeysRule fails with
AssertionError due to mismatched collation on resulting Sort
add 73846cceb1 [CALCITE-6435] SqlToRel conversion of IN expressions may
lead to incorrect simplifications
add 8581dba433 [CALCITE-6388] PsTableFunction throws NumberFormatException
when the 'user' column has spaces
add 374091b0a7 [CALCITE-6449] Enable PostgreSQL implementations of
to_date/to_timestamp
add f68af8cd9f [CALCITE-6445] Add REVERSE function (enabled in Spark
library)
add d21c5c9c17 [CALCITE-6453] Simplify casts which are result of constant
reduction
add 1e424a0d4e [CALCITE-3094] Code of method grows beyond 64 KB when
joining two tables with many fields
add 29c413a3c6 [CALCITE-6468] RelDecorrelator throws AssertionError if
correlated variable is used as Aggregate group key
add 95fedabe27 [CALCITE-6466] Add benchmark for SQL parser instantiation
add 1cdf864e9f [CALCITE-6454] Implement array comparison operators
add 61e9e2552f [CALCITE-6462] VolcanoPlanner internal valid may throw
exception when log trace is enabled
add ace3afeafb [CALCITE-6450] Postgres CONCAT_WS function throws exception
when parameter type is (<CHAR(1)>, <INTEGER ARRAY>)
add 7d9b639cd4 [CALCITE-6470] Run specific JMH benchmarks without
modifying sources
add c3f39b276b Following [CALCITE-6462] Clarify comments
add a27a8de278 [CALCITE-6474] Aggregate with constant key can get a
RowCount greater than its MaxRowCount
add cde4308972 [CALCITE-6475] RelToSql converter fails when the IN-list
contains NULL and it is converted to VALUES
add e371b336a8 [CALCITE-6296] Support IS NULL in Arrow adapter
add 82a3219e1b [CALCITE-6312] Add LOG function (enabled in PostgreSQL
library)
add f44ed0af8e [CALCITE-6487] TRIM function documentation refers to
string1 two times
add f47ca1cb94 [CALCITE-6295] Support IS NOT NULL in Arrow adapter
add ed1f54fe28 [CALCITE-6483] Enable LEN and LENGTH in the correct
function libraries
add 0deab6f7e0 [CALCITE-6488] Ensure collations created by RelCollations
are canonized once
add 8bb5f727f2 [CALCITE-6218] RelToSqlConverter fails to convert
correlated lateral joins
add 14bde13723 Correct typos in Gradle file comments
add 68f473ef95 [CALCITE-6169] EnumUtils.convert does not implement the
correct SQL cast semantics
add 8143eba75e Test case for [CALCITE-2032] Error when implicitly
converting character literal to date literal
add 467e509f8a [CALCITE-5802] In RelBuilder, add method aggregateRex, to
allow aggregating complex expressions such as "1 + SUM(x + 2)"
add bb94122fa4 Rework [CALCITE-5869] LEAST_RESTRICTIVE does not use inner
type of MEASURE for comparisons
add 5b996bd595 Rework [CALCITE-6013] RelBuilder should simplify plan by
pruning unused measures
add 9f231cc5b9 Add Steelwheels data set
add 66919e4d44 [CALCITE-4496] Measure columns ("SELECT ... AS MEASURE")
add ea1a255fd0 [CALCITE-6485] AssertionError When an IN list containing
NULL has an implicit coercion type converter
add a1b5fdf23e [CALCITE-6495] Allow ProjectSetOpTransposeRule to work with
any subclass of Project
add 1947312e4a [CALCITE-6482] Oracle dialect convert boolean literal when
version < 23
add 15a53603ef [CALCITE-6497] Use helper setup method throughout whole
ElasticsearchAdapterTest
add b33dddeb3a [CALCITE-6473] HAVING clauses may not contain window
functions
add 6e1fe23c2a Improve OVERLAY operator docs and fix typo in exception
add 6d06699e81 Change Mihai Budiu's role
add 0808a1db21 [CALCITE-6472] Add degree based trigonometric functions to
PostgreSQL function library
add cc1d6b9310 [CALCITE-6484] Sonar analysis fails intermittently due to
OOM
add ad662469a5 [CALCITE-6502] Parser loses position information for
Expression3
add 0c6a3c1fac [CALCITE-6310] Add REGEXP_REPLACE function (enabled in
PostgreSQL library)
add 8659140dcb [CALCITE-6507] Random functions are incorrectly considered
deterministic
add 9fa1e16e32 [CALCITE-6266] SqlValidatorException with LATERAL TABLE and
JOIN
add 11a3d74c1f [CALCITE-6511] Migrate from Gradle Enterprise Gradle Plugin
to Develocity Gradle Plugin
add e664ae0702 [CALCITE-3522] SqlValidator.validateLiteral rejects
literals with a DECIMAL type that require more than 64 bits
add 91cd2b137d [CALCITE-6322] Casts to DECIMAL types are ignored
add 7efef39007 [CALCITE-6490] Missing tests for SqlFunctions#overlay
add 3ef0999d39 [CALCITE-6478] JSON functions should return NULL when input
is NULL
add 94837feb23 [CALCITE-6496] Enable tests from outer.iq
add 979981481f [CALCITE-6514] Enable tests about AssertionError while
translating IN list that contains null
add 59a3bb0c23 [CALCITE-6515] Remove constants describing which bugs have
been fixed in Bug
add 8eb91fe0b6 [CALCITE-6506] Type inference for IN list is incorrect
add 4908264ee5 [CALCITE-6480] OracleDialect does not support CASE WHEN
returning boolean
add 2d6e9a7dda [CALCITE-6471] Improve performance of SqlToRelConverter by
preventing unconditional conversion of sqlNodes to string for null-check
messages
add 27fd58308c [CALCITE-6519] Non-aggregate query that uses measure in
ORDER BY
add f20b7c2a4a [CALCITE-6513] FilterProjectTransposeRule may cause OOM
when Project expressions are complex
add 010000e2c5 [CALCITE-6396] Add ADD_MONTHS function (enabled in Oracle,
Spark library)
add c27cdb4d15 Enable more tests in RelBuilderExample
add 93f914c505 [CALCITE-6481] Optimize 'VALUES...UNION...VALUES' to a
single 'VALUES' the IN-list contains CAST and it is converted to VALUES
add e4bbcd6f53 [CALCITE-5034] Remove unused remote S3 build cache
add 9696cbc5ee [CALCITE-6433] SUBSTRING function can return incorrect
empty result
add 7be93a9757 [CALCITE-6526] Refactor DEVELOCITY_ACCESS_KEY definition in
one place
add a3c3205871 [CALCITE-6464] Type inference for DECIMAL division seems
incorrect
add 68f9ee0cc0 Handle the case where maximum scale is less than 6
add 59358529cb [CALCITE-6372] Add ASOF join to the Calcite parser
add aea65f23d3 [CALCITE-6372] Add ASOF join to the Calcite validator
add b390359a95 [CALCITE-6372] Add ASOF join to the Calcite sql2rel
converter
add fb37dc3705 [CALCITE-6372] Add ASOF join to the Calcite enumerable
add 7fa73c0079 [CALCITE-6531] Correct Javadoc example in
SqlStaticAggFunction#constant
add b60598b47e [CALCITE-6518] ClassCastException during validation when
loading multiple libraries
add 186bb62a75 [CALCITE-6501] Assertion Error in JoinUnifyRule Due to Type
Mismatch
add bfdb3fe991 [CALCITE-6346] JdbcAdapter: Cast for dynamic filter
arguments is lost
add 50fa89469b Keep the findBestExp method exception consistent between
HepPlanner and VolcanoPlanner
add ac06dbcf50 [CALCITE-6533] Division between integer and decimal
produces incorrect result
add e0300c3863 Typos in the document
add 906a17f40f [CALCITE-6534] Adjust type when pulling up Calc in
JoinUnifyRule
add f903b95a33 AbstractNamespace unwrap add isInstance judgments
add 7a402e8c9d [CALCITE-6020] Created a new RelRule for SUM to SUM0
conversion
add 4252e0ca2a [CALCITE-6540] RelOptUtil.pushDownJoinConditions does not
correctly adjust ASOF joins match conditions
add 99a0df108a [CALCITE-5883] ROWS window aggregates ignore frames when
there is no ORDER BY clause
add 6c7685cb56 [CALCITE-4838] Add RoundingMode in RelDataTypeSystem to
specify the rounding behavior
add 18e66e8019 [CALCITE-4806] Lossy CAST is incorrectly simplified
add 1a18264be5 [CALCITE-6546] Hive dialect does not support a sub-query in
the FROM clause without alias
add a19bb8224f [CALCITE-6547] Result type inferred for STDDEV_SAMP is
incorrect
add 787dfdb39c [CALCITE-6543] Change the RelOptCostImpl toString method to
be consistent with VolcanoCost
add 5c0127cdf3 Use ACCEPT_SUB_QUERY when parsing operands to
square-bracketed array constructor function
add dac001d8ce [CALCITE-5613] Assert for number of args for metadata
methods at CacheGeneratorUtil
add 30304bb489 Remove FENNEL VM; enable some disabled tests
add 8771e3f94b [CALCITE-6555] RelBuilder.aggregateRex wrongly thinks
aggregate functions of "GROUP BY ()" queries are NOT NULL
add b1308feff4 [CALCITE-6552] Enable CheckerFramework in 'server' module
add b2224a8b9f [CALCITE-4871] CAST a literal to DECIMAL type return wrong
result
add ded0651582 [CALCITE-6559] Query with measure that applies AVG to
SMALLINT throws AssertionError "Cannot add expression of different type to set"
add 67c9cb9270 [CALCITE-6557] AggregateMergeRule throws 'type mismatch'
AssertionError
add acf4209e0d Add cast.iq, a Quidem test for CAST
add 15f4ef9861 [CALCITE-6565] Invalid unparse for CHAR without precision
in MssqlSqlDialect
add 9723741c3d [CALCITE-5807] Add SUBSTRING_INDEX function (enabled in
Spark library)
add 67405c3892 [CALCITE-3697] Implement BITCOUNT scalar function
add 890f9adb4b [CALCITE-3779] Implement BITAND, BITOR, BITXOR scalar
functions
add 91fe118d4f [CALCITE-6549] Add LOG1P function (enabled in Spark library)
add 48f0424c1a [CALCITE-6572] Add more tests for NULL arguments to TO_CHAR
functions
add 6593f26f62 Add tests for year month intervals
add 644e29f867 [CALCITE-6569] RelToSqlConverter missing IGNORE NULLS for
window function
add c1b07276c3 [CALCITE-6563] RelToSqlConverter should not merge two
window functions
add 740f2ee251 [CALCITE-6408] Not-null ThreadLocal
add 682c28568f Try automatically marking PRs as stale
add 36b8a99d89 [CALCITE-6343] Ensure that AS operator doesn't change
return type of measures
add fc79266804 [CALCITE-6576] In SET clause of UPDATE statement, allow
column identifiers to be prefixed with table alias
add 24885d71e9 Refactor RexImpTable
add a00d565456 [CALCITE-6550] Improve SQL function overloading
add 963f898b2c [CALCITE-6580] Remove Locale.setDefault
add 7481b85049 Check for correlation variables in project when
constructing aggregate in SqlToRelConverter.createAggImpl
add 204ae1fa2c [CALCITE-6581] Incorrect INTERVAL math for WEEK and QUARTER
add 98b252b36c [CALCITE-6071] RexCall should carry source position
information for runtime error reporting
add e314fcc8a8 [CALCITE-6587] Support Java 23 and Guava 33.3.0; upgrade
Hadoop from 2.7.5 to 2.10.2
add e4f63f9f0b [CALCITE-6493] Add MySQL and other professional term
restrictions
add 3cb9fc612a [CALCITE-6522] MAP_KEYS and MAP_VALUES function should
throw if a key value is null
add 8ffcc2acd6 [CALCITE-6226] Wrong ISOWEEK and no ISOYEAR on BigQuery
FORMAT_DATE
add c8cb56525d [CALCITE-6527] Add DATE_ADD function (enabled in Spark
library)
add 1beb5ff266 [CALCITE-6374] LatticeSuggester throw NullPointerException
when agg call covered with cast
add a15930f238 [CALCITE-2067] RexBuilder can't handle NaN, Infinity double
constants
add d0dae9bae0 [CALCITE-6498] Elasticsearch multi-field mappings do not
work
add 4ab8d80581 [CALCITE-6584] Validate prefixed column identifiers in SET
clause of UPDATE statement
add cd6762e68f [CALCITE-6596] Enable function-level cache by default
add f325fa6cde [CALCITE-6595] Preserve collation on non-distinct aggCalls
in AggregateExpandWithinDistinctRule
add ed18e58d89 [CALCITE-6600] AggregateJoinTransposeRule can throw
ArrayIndexOutOfBoundsException when applied on a SemiJoin
add a8802c721a [CALCITE-6593] NPE when outer joining tables with many
fields and unmatching rows
add 9985b6af15 Refactor: Migrate from assertEquals to assertThat
add a4a27e3a48 [CALCITE-6560] Allow types with negative scale
add 60e0a3f441 [CALCITE-6585] In the Postgres TO_CHAR function, improve
caching
add 1af49e4404 [CALCITE-6599] RelMdPredicates should pull up more
predicates from VALUES when there are several literals
add 5091b08936 [CALCITE-6609] Remove redundant warning suppression for
Guava's Beta and Unstable APIs
add 547ab35460 [CALCITE-3592] Implement BITNOT scalar function
add cb698c849c In linter that checks terminology, add terms 'Snowflake'
and 'Redshift'
add 2ce9ba42da [CALCITE-6603] Lattice SQL supports generation of specified
dialects
add d59871d49c [CALCITE-6598] In RelDataTypeSystem, deprecate methods
getMaxNumericScale and getMaxNumericPrecision
add 78e873d39c Revise fix for [CALCITE-6587] Support Java 23 and Guava
33.3.0
add 243c3adc0a [CALCITE-6617] TypeCoercion is not applied correctly to
comparisons
add a7c3d166b3 [CALCITE-6620] VALUES created by RelBuilder do not have a
homogeneous type
add e5e7faeff5 [CALCITE-6582] Release Calcite 1.38.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 (0ef76cfa15)
\
N -- N -- N refs/heads/site (e5e7faeff5)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/workflows/buildcache.yml | 59 -
.github/workflows/main.yml | 118 +-
.github/workflows/stale.yml | 54 +
Jenkinsfile | 4 +-
.../adapter/arrow/ArrowFilterEnumerator.java | 10 +-
.../apache/calcite/adapter/arrow/ArrowRules.java | 9 +-
.../apache/calcite/adapter/arrow/ArrowTable.java | 24 +-
.../calcite/adapter/arrow/ArrowTranslator.java | 44 +-
.../calcite/adapter/arrow/ArrowAdapterTest.java | 127 +-
babel/src/main/codegen/config.fmpp | 1 +
babel/src/main/codegen/includes/parserImpls.ftl | 30 +-
.../org/apache/calcite/test/BabelParserTest.java | 18 +-
.../org/apache/calcite/test/BabelQuidemTest.java | 11 +-
babel/src/test/resources/sql/big-query.iq | 8 +
babel/src/test/resources/sql/postgresql.iq | 1121 ++++++++-
babel/src/test/resources/sql/redshift.iq | 135 +-
babel/src/test/resources/sql/spark.iq | 208 ++
bom/build.gradle.kts | 3 +-
build.gradle.kts | 25 +
.../adapter/cassandra/CassandraEnumerator.java | 4 +-
.../calcite/adapter/cassandra/CassandraFilter.java | 8 +-
.../adapter/cassandra/CassandraProject.java | 9 +-
.../calcite/adapter/cassandra/CassandraSchema.java | 5 +-
.../adapter/cassandra/CassandraSchemaFactory.java | 4 +-
.../calcite/adapter/cassandra/CassandraSort.java | 4 +-
.../calcite/adapter/cassandra/CassandraTable.java | 6 +-
.../cassandra/CassandraToEnumerableConverter.java | 13 +-
.../apache/calcite/test/CassandraExtension.java | 8 +-
core/src/main/codegen/templates/Parser.jj | 156 +-
.../main/java/org/apache/calcite/DataContexts.java | 4 +-
.../calcite/adapter/enumerable/EnumUtils.java | 117 +-
.../adapter/enumerable/EnumerableAsofJoin.java | 243 ++
.../adapter/enumerable/EnumerableAsofJoinRule.java | 68 +
.../adapter/enumerable/EnumerableConvention.java | 4 +-
.../enumerable/EnumerableInterpretable.java | 6 +-
.../adapter/enumerable/EnumerableMergeJoin.java | 13 +-
.../enumerable/EnumerableMergeJoinRule.java | 2 +-
.../adapter/enumerable/EnumerableMinus.java | 2 +-
.../adapter/enumerable/EnumerableProjectRule.java | 4 +-
.../adapter/enumerable/EnumerableRules.java | 7 +
.../adapter/enumerable/EnumerableTableModify.java | 12 +-
.../adapter/enumerable/EnumerableTraitsUtils.java | 14 +-
.../adapter/enumerable/EnumerableWindow.java | 48 +-
.../calcite/adapter/enumerable/JavaRowFormat.java | 80 +
.../calcite/adapter/enumerable/RexImpTable.java | 845 +++++--
.../adapter/enumerable/RexToLixTranslator.java | 98 +-
.../calcite/adapter/enumerable/WinAggContext.java | 4 +
.../enumerable/impl/WinAggAddContextImpl.java | 3 +-
.../enumerable/impl/WinAggResultContextImpl.java | 2 +-
.../calcite/adapter/java/ReflectiveSchema.java | 24 +-
.../calcite/adapter/jdbc/JdbcCatalogSchema.java | 8 +-
.../org/apache/calcite/adapter/jdbc/JdbcRules.java | 30 +-
.../apache/calcite/adapter/jdbc/JdbcSchema.java | 7 +-
.../apache/calcite/adapter/jdbc/JdbcTableScan.java | 3 +-
.../adapter/jdbc/JdbcToEnumerableConverter.java | 2 +-
.../calcite/config/CalciteSystemProperty.java | 25 +-
.../main/java/org/apache/calcite/config/Lex.java | 9 +-
.../org/apache/calcite/interpreter/Bindables.java | 7 +-
.../apache/calcite/interpreter/Interpreter.java | 21 +-
.../calcite/interpreter/JaninoRexCompiler.java | 5 +-
.../java/org/apache/calcite/interpreter/Row.java | 2 +
.../org/apache/calcite/jdbc/CalciteConnection.java | 4 +-
.../org/apache/calcite/jdbc/CalciteMetaImpl.java | 18 +-
.../org/apache/calcite/jdbc/CalcitePrepare.java | 13 +-
.../org/apache/calcite/jdbc/JavaRecordType.java | 4 +-
.../org/apache/calcite/materialize/Lattice.java | 16 +-
.../apache/calcite/materialize/LatticeSpace.java | 10 +-
.../calcite/materialize/LatticeSuggester.java | 7 +-
.../apache/calcite/materialize/LatticeTable.java | 6 +-
.../calcite/materialize/MaterializationActor.java | 12 +-
.../apache/calcite/materialize/MutableNode.java | 7 +-
.../ProfilerLatticeStatisticProvider.java | 5 +-
.../java/org/apache/calcite/materialize/Step.java | 6 +-
.../java/org/apache/calcite/model/JsonView.java | 5 +-
.../org/apache/calcite/model/ModelHandler.java | 9 +-
.../apache/calcite/plan/AbstractRelOptPlanner.java | 42 +-
.../java/org/apache/calcite/plan/Contexts.java | 7 +-
.../org/apache/calcite/plan/RelCompositeTrait.java | 5 +-
.../org/apache/calcite/plan/RelOptCluster.java | 9 +-
.../java/org/apache/calcite/plan/RelOptCost.java | 14 +
.../org/apache/calcite/plan/RelOptCostImpl.java | 6 +-
.../org/apache/calcite/plan/RelOptLattice.java | 5 +-
.../apache/calcite/plan/RelOptMaterialization.java | 15 +-
.../apache/calcite/plan/RelOptPredicateList.java | 12 +-
.../java/org/apache/calcite/plan/RelOptQuery.java | 4 +-
.../java/org/apache/calcite/plan/RelOptRule.java | 8 +-
.../org/apache/calcite/plan/RelOptRuleOperand.java | 22 +-
.../java/org/apache/calcite/plan/RelOptRules.java | 1 +
.../java/org/apache/calcite/plan/RelOptSchema.java | 4 +-
.../java/org/apache/calcite/plan/RelOptUtil.java | 98 +-
.../main/java/org/apache/calcite/plan/RelRule.java | 18 +-
.../java/org/apache/calcite/plan/RelTraitDef.java | 2 -
.../java/org/apache/calcite/plan/RelTraitSet.java | 4 +-
.../apache/calcite/plan/RexImplicationChecker.java | 2 +-
.../apache/calcite/plan/SubstitutionVisitor.java | 288 ++-
.../org/apache/calcite/plan/hep/HepPlanner.java | 4 +-
.../org/apache/calcite/plan/hep/HepRuleCall.java | 4 +-
.../plan/visualizer/InputExcludedRelWriter.java | 5 +-
.../calcite/plan/visualizer/NodeUpdateHelper.java | 2 +-
.../plan/visualizer/RuleMatchVisualizer.java | 37 +-
.../calcite/plan/volcano/IterativeRuleDriver.java | 4 +-
.../org/apache/calcite/plan/volcano/RelSet.java | 5 +-
.../org/apache/calcite/plan/volcano/RelSubset.java | 4 +-
.../calcite/plan/volcano/TopDownRuleDriver.java | 4 +-
.../apache/calcite/plan/volcano/VolcanoCost.java | 8 +-
.../calcite/plan/volcano/VolcanoPlanner.java | 49 +-
.../calcite/prepare/CalciteCatalogReader.java | 12 +-
.../apache/calcite/prepare/CalcitePrepareImpl.java | 67 +-
.../org/apache/calcite/prepare/PlannerImpl.java | 4 +-
.../java/org/apache/calcite/prepare/Prepare.java | 9 +-
.../org/apache/calcite/rel/AbstractRelNode.java | 21 +-
.../java/org/apache/calcite/rel/RelCollations.java | 2 +-
.../org/apache/calcite/rel/RelDistributions.java | 4 +-
.../org/apache/calcite/rel/RelFieldCollation.java | 6 +-
.../main/java/org/apache/calcite/rel/RelNodes.java | 72 +
.../apache/calcite/rel/convert/ConverterImpl.java | 2 +-
.../apache/calcite/rel/convert/ConverterRule.java | 6 +-
.../org/apache/calcite/rel/core/Aggregate.java | 4 +-
.../org/apache/calcite/rel/core/AggregateCall.java | 84 +-
.../java/org/apache/calcite/rel/core/AsofJoin.java | 63 +
.../java/org/apache/calcite/rel/core/Calc.java | 3 +
.../org/apache/calcite/rel/core/CorrelationId.java | 4 +-
.../java/org/apache/calcite/rel/core/EquiJoin.java | 11 +-
.../java/org/apache/calcite/rel/core/Exchange.java | 5 +-
.../java/org/apache/calcite/rel/core/Join.java | 8 +-
.../java/org/apache/calcite/rel/core/JoinInfo.java | 10 +-
.../org/apache/calcite/rel/core/JoinRelType.java | 27 +-
.../java/org/apache/calcite/rel/core/Match.java | 15 +-
.../java/org/apache/calcite/rel/core/Project.java | 8 +-
.../org/apache/calcite/rel/core/RelFactories.java | 39 +
.../org/apache/calcite/rel/core/RepeatUnion.java | 5 +-
.../java/org/apache/calcite/rel/core/Snapshot.java | 3 +-
.../java/org/apache/calcite/rel/core/Sort.java | 7 +-
.../org/apache/calcite/rel/core/SortExchange.java | 4 +-
.../java/org/apache/calcite/rel/core/Spool.java | 7 +-
.../apache/calcite/rel/core/TableFunctionScan.java | 2 +-
.../org/apache/calcite/rel/core/TableModify.java | 16 +-
.../org/apache/calcite/rel/core/TableScan.java | 5 +-
.../org/apache/calcite/rel/core/TableSpool.java | 4 +-
.../org/apache/calcite/rel/core/Uncollect.java | 10 +-
.../java/org/apache/calcite/rel/core/Values.java | 4 +-
.../java/org/apache/calcite/rel/core/Window.java | 43 +-
.../calcite/rel/externalize/RelDotWriter.java | 4 +-
.../apache/calcite/rel/externalize/RelJson.java | 39 +-
.../calcite/rel/externalize/RelWriterImpl.java | 2 +-
.../calcite/rel/externalize/RelXmlWriter.java | 2 +-
.../calcite/rel/hint/CompositeHintPredicate.java | 12 +-
.../org/apache/calcite/rel/hint/HintStrategy.java | 6 +-
.../apache/calcite/rel/hint/HintStrategyTable.java | 4 +-
.../java/org/apache/calcite/rel/hint/Hintable.java | 6 +-
.../calcite/rel/hint/NodeTypeHintPredicate.java | 8 +-
.../java/org/apache/calcite/rel/hint/RelHint.java | 30 +-
.../calcite/rel/logical/LogicalAsofJoin.java | 159 ++
.../apache/calcite/rel/logical/LogicalFilter.java | 4 +-
.../apache/calcite/rel/logical/LogicalJoin.java | 7 +-
.../apache/calcite/rel/logical/LogicalWindow.java | 21 +-
.../calcite/rel/metadata/BuiltInMetadata.java | 60 +
.../rel/metadata/DefaultRelMetadataProvider.java | 1 +
.../rel/metadata/JaninoRelMetadataProvider.java | 9 +-
.../metadata/ReflectiveRelMetadataProvider.java | 4 +-
.../calcite/rel/metadata/RelMdCollation.java | 7 +-
.../calcite/rel/metadata/RelMdColumnOrigins.java | 10 +-
.../calcite/rel/metadata/RelMdDistribution.java | 5 +-
.../calcite/rel/metadata/RelMdMaxRowCount.java | 2 +-
.../apache/calcite/rel/metadata/RelMdMeasure.java | 220 ++
.../rel/metadata/RelMdPercentageOriginalRows.java | 2 +-
.../calcite/rel/metadata/RelMdPredicates.java | 73 +-
.../apache/calcite/rel/metadata/RelMdRowCount.java | 12 +
.../calcite/rel/metadata/RelMdSelectivity.java | 2 +-
.../calcite/rel/metadata/RelMdUniqueKeys.java | 20 +-
.../org/apache/calcite/rel/metadata/RelMdUtil.java | 16 +-
.../calcite/rel/metadata/RelMetadataQuery.java | 47 +-
.../rel/metadata/janino/CacheGeneratorUtil.java | 2 +
.../org/apache/calcite/rel/mutable/MutableRel.java | 9 +-
.../calcite/rel/rel2sql/RelToSqlConverter.java | 7 +-
.../apache/calcite/rel/rel2sql/SqlImplementor.java | 131 +-
.../rel/rules/AbstractJoinExtractFilterRule.java | 3 +-
.../rel/rules/AggregateCaseToFilterRule.java | 11 +-
.../AggregateExpandDistinctAggregatesRule.java | 28 +-
.../rules/AggregateExpandWithinDistinctRule.java | 28 +-
.../rel/rules/AggregateFilterTransposeRule.java | 3 +-
.../rel/rules/AggregateJoinTransposeRule.java | 5 +-
.../calcite/rel/rules/AggregateMergeRule.java | 2 +-
.../rel/rules/AggregateReduceFunctionsRule.java | 126 +-
.../calcite/rel/rules/AggregateRemoveRule.java | 5 +-
.../calcite/rel/rules/AggregateStarTableRule.java | 4 +-
.../rel/rules/AggregateUnionTransposeRule.java | 2 +-
.../apache/calcite/rel/rules/CalcRelSplitter.java | 54 +-
.../org/apache/calcite/rel/rules/CoreRules.java | 9 +
.../apache/calcite/rel/rules/DateRangeRules.java | 11 +-
.../apache/calcite/rel/rules/FilterJoinRule.java | 23 +-
.../rel/rules/FilterProjectTransposeRule.java | 14 +-
.../rel/rules/JoinAddRedundantSemiJoinRule.java | 2 +-
.../calcite/rel/rules/JoinExtractFilterRule.java | 3 +-
.../rules/JoinPushTransitivePredicatesRule.java | 4 +-
.../calcite/rel/rules/JoinToMultiJoinRule.java | 27 +-
.../org/apache/calcite/rel/rules/LoptJoinTree.java | 7 +-
.../apache/calcite/rel/rules/LoptMultiJoin.java | 24 +-
.../calcite/rel/rules/LoptOptimizeJoinRule.java | 14 +-
.../calcite/rel/rules/LoptSemiJoinOptimizer.java | 4 +-
.../org/apache/calcite/rel/rules/MeasureRules.java | 534 +++++
.../rel/rules/MultiJoinOptimizeBushyRule.java | 5 +-
.../rel/rules/ProjectAggregateMergeRule.java | 2 +-
.../apache/calcite/rel/rules/ProjectMergeRule.java | 11 +-
.../rel/rules/ProjectOverSumToSum0Rule.java | 110 +
.../rel/rules/ProjectSetOpTransposeRule.java | 6 +-
.../calcite/rel/rules/ProjectTableScanRule.java | 4 +-
.../calcite/rel/rules/ProjectToCalcRule.java | 5 +-
.../rel/rules/ProjectWindowTransposeRule.java | 2 +-
.../apache/calcite/rel/rules/PruneEmptyRules.java | 8 +-
.../apache/calcite/rel/rules/PushProjector.java | 37 +-
.../calcite/rel/rules/ReduceDecimalsRule.java | 182 +-
.../calcite/rel/rules/ReduceExpressionsRule.java | 2 +-
.../apache/calcite/rel/rules/SortJoinCopyRule.java | 9 +-
.../calcite/rel/rules/SortJoinTransposeRule.java | 5 +-
.../rel/rules/SortProjectTransposeRule.java | 5 +-
.../rel/rules/SortRemoveConstantKeysRule.java | 7 +-
.../calcite/rel/rules/SortRemoveRedundantRule.java | 2 +-
.../calcite/rel/rules/SubQueryRemoveRule.java | 11 +-
.../calcite/rel/rules/UnionToValuesRule.java | 145 ++
.../apache/calcite/rel/rules/ValuesReduceRule.java | 6 +-
.../materialize/MaterializedViewAggregateRule.java | 4 +-
.../calcite/rel/type/DelegatingTypeSystem.java | 14 +
.../org/apache/calcite/rel/type/RelDataType.java | 38 +
.../calcite/rel/type/RelDataTypeFactory.java | 5 +-
.../calcite/rel/type/RelDataTypeFactoryImpl.java | 20 +-
.../apache/calcite/rel/type/RelDataTypeImpl.java | 22 +-
.../apache/calcite/rel/type/RelDataTypeSystem.java | 43 +-
.../calcite/rel/type/RelDataTypeSystemImpl.java | 35 +-
.../org/apache/calcite/rel/type/RelRecordType.java | 4 +-
.../java/org/apache/calcite/rex/RexAnalyzer.java | 3 +-
.../java/org/apache/calcite/rex/RexBuilder.java | 448 +++-
.../main/java/org/apache/calcite/rex/RexCall.java | 31 +-
.../java/org/apache/calcite/rex/RexCopier.java | 2 +-
.../org/apache/calcite/rex/RexCorrelVariable.java | 4 +-
.../org/apache/calcite/rex/RexInterpreter.java | 4 +-
.../java/org/apache/calcite/rex/RexLambda.java | 4 +-
.../java/org/apache/calcite/rex/RexLiteral.java | 110 +-
.../java/org/apache/calcite/rex/RexLocalRef.java | 5 +-
.../main/java/org/apache/calcite/rex/RexOver.java | 4 +-
.../org/apache/calcite/rex/RexProgramBuilder.java | 14 +-
.../java/org/apache/calcite/rex/RexShuttle.java | 27 +-
.../java/org/apache/calcite/rex/RexSimplify.java | 148 +-
.../main/java/org/apache/calcite/rex/RexUtil.java | 73 +-
.../java/org/apache/calcite/rex/RexVariable.java | 8 +-
.../java/org/apache/calcite/rex/RexWindow.java | 71 +-
.../org/apache/calcite/rex/RexWindowBound.java | 10 +
.../org/apache/calcite/rex/RexWindowBounds.java | 14 +-
.../org/apache/calcite/rex/RexWindowExclusion.java | 64 +
.../java/org/apache/calcite/runtime/Automaton.java | 17 +-
.../apache/calcite/runtime/AutomatonBuilder.java | 5 +-
.../org/apache/calcite/runtime/BufferStyle.java | 4 +-
.../calcite/runtime/CalciteContextException.java | 5 +-
.../apache/calcite/runtime/CalciteResource.java | 50 +-
.../calcite/runtime/DeterministicAutomaton.java | 12 +-
.../org/apache/calcite/runtime/Enumerables.java | 5 +-
.../java/org/apache/calcite/runtime/FlatLists.java | 5 +
.../main/java/org/apache/calcite/runtime/Hook.java | 15 +-
.../java/org/apache/calcite/runtime/HttpUtils.java | 6 +-
.../org/apache/calcite/runtime/JsonFunctions.java | 94 +-
.../java/org/apache/calcite/runtime/Matcher.java | 9 +-
.../java/org/apache/calcite/runtime/Pattern.java | 7 +-
.../java/org/apache/calcite/runtime/Resources.java | 20 +-
.../apache/calcite/runtime/SocketFactoryImpl.java | 2 +-
.../calcite/runtime/SpatialTypeFunctions.java | 7 +-
.../apache/calcite/runtime/SpatialTypeUtils.java | 4 +-
.../org/apache/calcite/runtime/SqlFunctions.java | 623 ++++-
.../org/apache/calcite/runtime/XmlFunctions.java | 30 +-
.../calcite/schema/impl/ModifiableViewTable.java | 4 +-
.../org/apache/calcite/schema/impl/StarTable.java | 5 +-
.../main/java/org/apache/calcite/sql/JoinType.java | 23 +-
.../java/org/apache/calcite/sql/SqlAccessType.java | 15 +-
.../org/apache/calcite/sql/SqlAggFunction.java | 6 +-
.../java/org/apache/calcite/sql/SqlAsOperator.java | 8 +-
.../java/org/apache/calcite/sql/SqlAsofJoin.java | 164 ++
.../java/org/apache/calcite/sql/SqlBasicCall.java | 7 +-
.../org/apache/calcite/sql/SqlBasicFunction.java | 18 +
.../apache/calcite/sql/SqlBasicTypeNameSpec.java | 29 +-
.../apache/calcite/sql/SqlBinaryStringLiteral.java | 5 +-
.../main/java/org/apache/calcite/sql/SqlCall.java | 9 +-
.../apache/calcite/sql/SqlCharStringLiteral.java | 5 +-
.../calcite/sql/SqlCollectionTypeNameSpec.java | 7 +-
.../org/apache/calcite/sql/SqlDateLiteral.java | 4 +-
.../main/java/org/apache/calcite/sql/SqlDdl.java | 4 +-
.../org/apache/calcite/sql/SqlDescribeTable.java | 5 +-
.../java/org/apache/calcite/sql/SqlDialect.java | 12 +
.../org/apache/calcite/sql/SqlFilterOperator.java | 10 +-
.../java/org/apache/calcite/sql/SqlFunction.java | 9 +-
.../main/java/org/apache/calcite/sql/SqlHint.java | 5 +-
.../java/org/apache/calcite/sql/SqlIdentifier.java | 11 +-
.../java/org/apache/calcite/sql/SqlInsert.java | 5 +-
.../org/apache/calcite/sql/SqlIntervalLiteral.java | 17 +-
.../apache/calcite/sql/SqlIntervalQualifier.java | 93 +-
.../apache/calcite/sql/SqlJdbcDataTypeName.java | 13 +-
.../main/java/org/apache/calcite/sql/SqlJoin.java | 2 +-
.../main/java/org/apache/calcite/sql/SqlKind.java | 178 +-
.../java/org/apache/calcite/sql/SqlLambda.java | 7 +-
.../java/org/apache/calcite/sql/SqlLiteral.java | 15 +-
.../org/apache/calcite/sql/SqlMatchRecognize.java | 29 +-
.../org/apache/calcite/sql/SqlMeasureOperator.java | 54 +
.../main/java/org/apache/calcite/sql/SqlNode.java | 5 +-
.../java/org/apache/calcite/sql/SqlNodeList.java | 7 +-
.../org/apache/calcite/sql/SqlNumericLiteral.java | 43 +-
.../java/org/apache/calcite/sql/SqlOperator.java | 11 +-
.../org/apache/calcite/sql/SqlOperatorBinding.java | 22 +
.../main/java/org/apache/calcite/sql/SqlPivot.java | 9 +-
.../org/apache/calcite/sql/SqlRowTypeNameSpec.java | 11 +-
.../java/org/apache/calcite/sql/SqlSelect.java | 4 +-
.../org/apache/calcite/sql/SqlSelectOperator.java | 6 +-
.../java/org/apache/calcite/sql/SqlSetOption.java | 3 +-
.../calcite/sql/SqlSetSemanticsTableOperator.java | 10 +-
.../java/org/apache/calcite/sql/SqlSnapshot.java | 11 +-
.../calcite/sql/SqlSpatialTypeOperatorTable.java | 18 +-
.../calcite/sql/SqlSplittableAggFunction.java | 25 +-
.../apache/calcite/sql/SqlStaticAggFunction.java | 2 +-
.../java/org/apache/calcite/sql/SqlTableRef.java | 2 +-
.../org/apache/calcite/sql/SqlTimeLiteral.java | 6 +-
.../org/apache/calcite/sql/SqlTimeTzLiteral.java | 6 +-
.../apache/calcite/sql/SqlTimestampLiteral.java | 6 +-
.../apache/calcite/sql/SqlTimestampTzLiteral.java | 6 +-
.../calcite/sql/SqlTypeConstructorFunction.java | 2 +-
.../java/org/apache/calcite/sql/SqlUnpivot.java | 11 +-
.../java/org/apache/calcite/sql/SqlUpdate.java | 16 +-
.../main/java/org/apache/calcite/sql/SqlUtil.java | 76 +-
.../java/org/apache/calcite/sql/SqlWindow.java | 142 +-
.../calcite/sql/SqlWithinDistinctOperator.java | 8 +-
.../apache/calcite/sql/SqlWithinGroupOperator.java | 8 +-
.../org/apache/calcite/sql/advise/SqlAdvisor.java | 12 +-
.../calcite/sql/ddl/SqlCreateForeignSchema.java | 5 +-
.../apache/calcite/sql/ddl/SqlCreateFunction.java | 9 +-
.../calcite/sql/ddl/SqlCreateMaterializedView.java | 7 +-
.../apache/calcite/sql/ddl/SqlCreateSchema.java | 5 +-
.../org/apache/calcite/sql/ddl/SqlCreateTable.java | 5 +-
.../org/apache/calcite/sql/ddl/SqlCreateType.java | 5 +-
.../org/apache/calcite/sql/ddl/SqlCreateView.java | 7 +-
.../calcite/sql/dialect/BigQuerySqlDialect.java | 3 +-
.../calcite/sql/dialect/FireboltSqlDialect.java | 4 +-
.../apache/calcite/sql/dialect/HiveSqlDialect.java | 22 +
.../calcite/sql/dialect/HsqldbSqlDialect.java | 6 +-
.../calcite/sql/dialect/MssqlSqlDialect.java | 16 +
.../calcite/sql/dialect/MysqlSqlDialect.java | 10 +-
.../calcite/sql/dialect/OracleSqlDialect.java | 19 +
.../calcite/sql/dialect/PostgresqlSqlDialect.java | 12 +-
.../calcite/sql/dialect/PrestoSqlDialect.java | 9 +-
.../calcite/sql/dialect/SnowflakeSqlDialect.java | 32 +
.../calcite/sql/dialect/SparkSqlDialect.java | 91 +-
.../calcite/sql/dialect/StarRocksSqlDialect.java | 12 +
.../apache/calcite/sql/fun/LibraryOperator.java | 15 +
.../calcite/sql/fun/SqlAbstractGroupFunction.java | 5 +-
.../calcite/sql/fun/SqlBasicAggFunction.java | 3 +-
.../org/apache/calcite/sql/fun/SqlDotOperator.java | 3 +-
.../apache/calcite/sql/fun/SqlExtractFunction.java | 33 +-
.../calcite/sql/fun/SqlInternalOperators.java | 82 +
.../sql/fun/SqlJsonArrayAggAggFunction.java | 4 +-
.../sql/fun/SqlJsonObjectAggAggFunction.java | 4 +-
.../calcite/sql/fun/SqlJsonQueryFunction.java | 94 +-
.../calcite/sql/fun/SqlJsonValueFunction.java | 4 +-
.../calcite/sql/fun/SqlLeadLagAggFunction.java | 27 +-
.../org/apache/calcite/sql/fun/SqlLibrary.java | 50 +-
.../sql/fun/SqlLibraryOperatorTableFactory.java | 18 +
.../calcite/sql/fun/SqlLibraryOperators.java | 394 ++-
.../calcite/sql/fun/SqlLiteralChainOperator.java | 2 +-
.../calcite/sql/fun/SqlMapValueConstructor.java | 2 +-
.../sql/fun/SqlMultisetValueConstructor.java | 2 +-
.../apache/calcite/sql/fun/SqlOverlayFunction.java | 2 +-
.../calcite/sql/fun/SqlQuantifyOperator.java | 18 +-
.../calcite/sql/fun/SqlRandIntegerFunction.java | 4 +
.../calcite/sql/fun/SqlRegexpReplaceFunction.java | 75 -
.../apache/calcite/sql/fun/SqlRollupOperator.java | 2 +-
.../calcite/sql/fun/SqlSpatialTypeFunctions.java | 2 +-
.../calcite/sql/fun/SqlStdOperatorTable.java | 56 +-
.../calcite/sql/parser/SqlAbstractParserImpl.java | 2 +-
.../apache/calcite/sql/parser/SqlParserPos.java | 4 +-
.../apache/calcite/sql/parser/SqlParserUtil.java | 7 +-
.../apache/calcite/sql/pretty/SqlPrettyWriter.java | 36 +-
.../apache/calcite/sql/type/AbstractSqlType.java | 7 +-
.../org/apache/calcite/sql/type/BasicSqlType.java | 5 +-
.../sql/type/ComparableOperandTypeChecker.java | 4 +-
.../sql/type/ExplicitOperandTypeChecker.java | 3 +-
.../sql/type/ExplicitReturnTypeInference.java | 5 +-
.../apache/calcite/sql/type/FunctionSqlType.java | 6 +-
.../apache/calcite/sql/type/IntervalSqlType.java | 11 +-
.../org/apache/calcite/sql/type/MapSqlType.java | 8 +-
.../apache/calcite/sql/type/MultisetSqlType.java | 7 +-
.../calcite/sql/type/OperandMetadataImpl.java | 6 +-
.../org/apache/calcite/sql/type/OperandTypes.java | 136 +-
.../org/apache/calcite/sql/type/ReturnTypes.java | 167 +-
.../calcite/sql/type/SameOperandTypeChecker.java | 4 +-
.../calcite/sql/type/SqlTypeCoercionRule.java | 13 +-
.../calcite/sql/type/SqlTypeFactoryImpl.java | 8 +-
.../calcite/sql/type/SqlTypeMappingRule.java | 7 +-
.../org/apache/calcite/sql/type/SqlTypeName.java | 19 +-
.../apache/calcite/sql/type/SqlTypeTransform.java | 5 +
.../calcite/sql/type/SqlTypeTransformCascade.java | 6 +-
.../apache/calcite/sql/type/SqlTypeTransforms.java | 10 +-
.../org/apache/calcite/sql/type/SqlTypeUtil.java | 87 +-
.../sql/type/TableFunctionReturnTypeInference.java | 8 +-
.../java/org/apache/calcite/sql/util/IdPair.java | 7 +-
.../org/apache/calcite/sql/util/SqlBuilder.java | 18 +-
.../org/apache/calcite/sql/util/SqlShuttle.java | 2 +-
.../org/apache/calcite/sql/util/SqlString.java | 12 +-
.../calcite/sql/validate/AbstractNamespace.java | 7 +-
.../apache/calcite/sql/validate/AggVisitor.java | 13 +-
.../apache/calcite/sql/validate/CollectScope.java | 16 +-
.../calcite/sql/validate/DelegatingScope.java | 53 +-
.../calcite/sql/validate/FieldNamespace.java | 3 +-
.../calcite/sql/validate/IdentifierNamespace.java | 4 +-
.../apache/calcite/sql/validate/JoinNamespace.java | 1 +
.../apache/calcite/sql/validate/MeasureScope.java | 131 +
.../apache/calcite/sql/validate/OrderByScope.java | 36 +-
.../calcite/sql/validate/SelectNamespace.java | 1 +
.../apache/calcite/sql/validate/SelectScope.java | 4 +-
.../sql/validate/SqlAbstractConformance.java | 4 -
.../calcite/sql/validate/SqlConformance.java | 16 -
.../calcite/sql/validate/SqlConformanceEnum.java | 9 -
.../sql/validate/SqlDelegatingConformance.java | 4 -
.../calcite/sql/validate/SqlIdentifierMoniker.java | 5 +-
.../calcite/sql/validate/SqlMonikerImpl.java | 4 +-
.../sql/validate/SqlNonNullableAccessors.java | 6 +
.../apache/calcite/sql/validate/SqlValidator.java | 23 +
.../calcite/sql/validate/SqlValidatorImpl.java | 493 +++-
.../calcite/sql/validate/SqlValidatorScope.java | 3 +-
.../calcite/sql/validate/SqlValidatorUtil.java | 33 +-
.../calcite/sql/validate/TableNamespace.java | 4 +-
.../apache/calcite/sql/validate/TableScope.java | 6 +-
.../calcite/sql/validate/UnnestNamespace.java | 7 +-
.../validate/implicit/AbstractTypeCoercion.java | 98 +-
.../sql/validate/implicit/TypeCoercion.java | 3 +-
.../sql/validate/implicit/TypeCoercionImpl.java | 14 +-
.../org/apache/calcite/sql2rel/AggConverter.java | 35 +-
.../apache/calcite/sql2rel/RelDecorrelator.java | 73 +-
.../apache/calcite/sql2rel/RelFieldTrimmer.java | 19 +-
.../sql2rel/RelStructuredTypeFlattener.java | 43 +-
.../apache/calcite/sql2rel/SqlToRelConverter.java | 529 ++--
.../calcite/sql2rel/StandardConvertletTable.java | 503 ++--
.../apache/calcite/sql2rel/SubQueryConverter.java | 4 +-
.../java/org/apache/calcite/tools/Frameworks.java | 27 +-
.../main/java/org/apache/calcite/tools/Hoist.java | 9 +-
.../org/apache/calcite/tools/PigRelBuilder.java | 12 +-
.../java/org/apache/calcite/tools/Programs.java | 55 +-
.../java/org/apache/calcite/tools/RelBuilder.java | 404 +++-
.../java/org/apache/calcite/util/Benchmark.java | 10 +-
.../main/java/org/apache/calcite/util/BitSets.java | 2 +-
.../java/org/apache/calcite/util/BitString.java | 5 +-
.../src/main/java/org/apache/calcite/util/Bug.java | 35 +-
.../org/apache/calcite/util/BuiltInMethod.java | 79 +-
.../java/org/apache/calcite/util/CancelFlag.java | 5 +-
.../java/org/apache/calcite/util/DateString.java | 8 +-
.../org/apache/calcite/util/EquivalenceSet.java | 4 +-
.../java/org/apache/calcite/util/Filterator.java | 4 +-
.../apache/calcite/util/ImmutableNullableSet.java | 5 +-
.../apache/calcite/util/IntegerIntervalSet.java | 8 +-
.../org/apache/calcite/util/MonotonicSupplier.java | 7 +-
.../java/org/apache/calcite/util/NlsString.java | 8 +-
.../main/java/org/apache/calcite/util/Pair.java | 20 +-
.../apache/calcite/util/PartiallyOrderedSet.java | 2 +-
.../java/org/apache/calcite/util/RangeSets.java | 3 +-
.../java/org/apache/calcite/util/ReflectUtil.java | 44 +-
.../apache/calcite/util/RelToSqlConverterUtil.java | 34 +-
.../main/java/org/apache/calcite/util/Sarg.java | 2 +-
.../apache/calcite/util/SerializableCharset.java | 3 +-
.../apache/calcite/util/SourceStringReader.java | 7 +-
.../main/java/org/apache/calcite/util/Sources.java | 11 +-
.../java/org/apache/calcite/util/StackWriter.java | 2 +-
.../java/org/apache/calcite/util/TimeString.java | 7 +-
.../org/apache/calcite/util/TryThreadLocal.java | 152 +-
.../apache/calcite/util/UnmodifiableArrayList.java | 5 +-
.../main/java/org/apache/calcite/util/Util.java | 52 +-
.../calcite/util/format/FormatElementEnum.java | 73 +-
.../apache/calcite/util/format/FormatModels.java | 7 +-
.../postgresql/CapitalizationEnum.java} | 41 +-
.../util/format/postgresql/ChronoUnitEnum.java | 242 ++
.../format/postgresql/CompiledDateTimeFormat.java | 391 +++
.../postgresql/DateCalendarEnum.java} | 32 +-
.../postgresql/PatternModifier.java} | 42 +-
.../postgresql/PostgresqlDateTimeFormatter.java | 485 ++++
.../postgresql/format/AmPmFormatPattern.java | 60 +
.../postgresql/format/BcAdFormatPattern.java | 60 +
.../postgresql/format/DayOfWeekFormatPattern.java | 67 +
.../format/postgresql/format/FormatPattern.java | 114 +
.../postgresql/format/MonthFormatPattern.java | 67 +
.../postgresql/format/NumberFormatPattern.java | 74 +
.../format/RomanNumeralsFormatPattern.java | 39 +-
.../postgresql/format/TimeZoneFormatPattern.java | 40 +
.../format/TimeZoneHoursFormatPattern.java | 35 +-
.../format/TimeZoneMinutesFormatPattern.java | 35 +-
.../format/TimeZoneOffsetFormatPattern.java | 37 +-
.../format/YearWithCommasFormatPattern.java | 36 +-
.../format/compiled/AmPmCompiledPattern.java | 83 +
.../format/compiled/BcAdCompiledPattern.java | 83 +
.../postgresql/format/compiled/CompiledItem.java} | 36 +-
.../format/compiled/CompiledPattern.java | 82 +
.../format/compiled/DayOfWeekCompiledPattern.java | 81 +
.../format/compiled/LiteralCompiledItem.java | 35 +-
.../format/compiled/MonthCompiledPattern.java | 80 +
.../format/compiled/NumberCompiledPattern.java | 142 ++
.../compiled/RomanNumeralsCompiledPattern.java | 137 ++
.../format/compiled/TimeZoneCompiledPattern.java | 64 +
.../compiled/TimeZoneHoursCompiledPattern.java | 90 +
.../compiled/TimeZoneMinutesCompiledPattern.java | 76 +
.../compiled/TimeZoneOffsetCompiledPattern.java | 65 +
.../compiled/YearWithCommasCompiledPattern.java | 126 +
.../postgresql/format/compiled/package-info.java} | 8 +-
.../format/postgresql/format/package-info.java} | 8 +-
.../format/postgresql/package-info.java} | 8 +-
.../org/apache/calcite/util/graph/DefaultEdge.java | 6 +-
.../apache/calcite/util/javac/JaninoCompiler.java | 2 +-
.../calcite/util/javac/JavaCompilerArgs.java | 4 +-
.../apache/calcite/util/trace/CalciteLogger.java | 5 +-
.../calcite/plan/visualizer/viz-template.html | 2 +-
.../calcite/runtime/CalciteResource.properties | 22 +-
.../calcite/adapter/clone/ArrayTableTest.java | 188 +-
.../adapter/enumerable/EnumerableWindowTest.java | 7 +-
.../calcite/adapter/enumerable/PhysTypeTest.java | 9 +-
.../apache/calcite/examples/RelBuilderExample.java | 18 +-
.../calcite/interpreter/BindableWindowTest.java | 7 +-
.../calcite/jdbc/CalciteRemoteDriverTest.java | 15 +-
.../apache/calcite/jdbc/JavaTypeFactoryTest.java | 13 +-
.../CustomMaterializedViewRecognitionRuleTest.java | 29 +-
.../calcite/materialize/LatticeSuggesterTest.java | 37 +-
.../materialize/NormalizationTrimFieldTest.java | 2 +-
.../org/apache/calcite/plan/RelOptUtilTest.java | 50 +-
.../java/org/apache/calcite/plan/RelTraitTest.java | 20 +-
.../org/apache/calcite/plan/RelWriterTest.java | 65 +-
.../plan/volcano/CollationConversionTest.java | 14 +-
.../apache/calcite/plan/volcano/ComboRuleTest.java | 5 +-
.../plan/volcano/MultipleTraitConversionTest.java | 8 +-
.../apache/calcite/plan/volcano/PlannerTests.java | 2 +-
.../calcite/plan/volcano/TraitConversionTest.java | 8 +-
.../calcite/plan/volcano/VolcanoPlannerTest.java | 47 +-
.../plan/volcano/VolcanoPlannerTraitTest.java | 41 +-
.../prepare/LookupOperatorOverloadsTest.java | 24 +-
.../org/apache/calcite/profile/ProfilerTest.java | 13 +-
.../calcite/rel/logical/LogicalWindowTest.java | 7 +-
.../rel/logical/ToLogicalConverterTest.java | 27 +
.../apache/calcite/rel/metadata/RelMdUtilTest.java | 21 +-
.../RelMetadataHandlerGeneratorUtilTest.java | 5 +-
.../rel/rel2sql/RelToSqlConverterStructsTest.java | 17 +-
.../calcite/rel/rel2sql/RelToSqlConverterTest.java | 863 +++++--
.../calcite/rel/rules/EnumerableLimitRuleTest.java | 2 +-
.../calcite/rel/rules/SortRemoveRuleTest.java | 4 +-
.../org/apache/calcite/rex/RexBuilderTest.java | 157 +-
.../org/apache/calcite/rex/RexExecutorTest.java | 40 +-
.../apache/calcite/rex/RexProgramBuilderBase.java | 9 +
.../org/apache/calcite/rex/RexProgramTest.java | 63 +-
.../org/apache/calcite/rex/RexProgramTestBase.java | 15 +-
.../apache/calcite/runtime/BinarySearchTest.java | 11 +-
.../apache/calcite/runtime/EnumerablesTest.java | 9 +-
.../calcite/runtime/SpatialTypeUtilsTest.java | 17 +-
.../calcite/sql/parser/SqlParserUtilTest.java | 123 +
.../ExtensionSqlCreateTable.java | 4 +-
.../apache/calcite/sql/test/SqlAdvisorTest.java | 23 +-
.../apache/calcite/sql/test/SqlTypeNameTest.java | 76 +-
.../calcite/sql/type/RelDataTypeSystemTest.java | 77 +-
.../apache/calcite/sql/type/SqlTypeUtilTest.java | 41 +-
.../calcite/sql/validate/LexCaseSensitiveTest.java | 3 +-
.../apache/calcite/sql/validate/LexEscapeTest.java | 3 +-
.../calcite/sql2rel/RelDecorrelatorTest.java | 89 +
.../calcite/sql2rel/RelFieldTrimmerTest.java | 19 +-
.../apache/calcite/test/CollectionTypeTest.java | 2 +-
.../org/apache/calcite/test/CoreQuidemTest.java | 44 +
.../apache/calcite/test/ExceptionMessageTest.java | 149 +-
.../org/apache/calcite/test/FilteratorTest.java | 20 +-
.../org/apache/calcite/test/HepPlannerTest.java | 27 +-
.../calcite/test/InduceGroupingTypeTest.java | 73 +-
.../org/apache/calcite/test/InterpreterTest.java | 49 +-
.../org/apache/calcite/test/JdbcAdapterTest.java | 226 +-
.../apache/calcite/test/JdbcFrontJdbcBackTest.java | 22 +-
.../apache/calcite/test/JdbcFrontLinqBackTest.java | 12 +-
.../java/org/apache/calcite/test/JdbcTest.java | 635 +++--
.../calcite/test/LargeGeneratedJoinTest.java | 327 +++
.../java/org/apache/calcite/test/LatticeTest.java | 63 +-
.../apache/calcite/test/LinqFrontJdbcBackTest.java | 7 +-
.../java/org/apache/calcite/test/LintTest.java | 6 +-
.../apache/calcite/test/MaterializationTest.java | 6 +-
.../test/MaterializedViewRelOptRulesTest.java | 13 +
.../MaterializedViewSubstitutionVisitorTest.java | 228 +-
.../calcite/test/MaterializedViewTester.java | 6 +-
.../java/org/apache/calcite/test/ModelTest.java | 103 +-
.../calcite/test/MultiJdbcSchemaJoinTest.java | 2 +-
.../org/apache/calcite/test/MutableRelTest.java | 6 +-
.../apache/calcite/test/ReflectiveSchemaTest.java | 25 +-
.../org/apache/calcite/test/RelBuilderTest.java | 475 +++-
.../apache/calcite/test/RelMdPredicatesTest.java | 27 +
.../org/apache/calcite/test/RelMetadataTest.java | 170 +-
.../org/apache/calcite/test/RelOptRulesTest.java | 428 +++-
.../calcite/test/RuleMatchVisualizerTest.java | 4 +-
.../apache/calcite/test/ScannableTableTest.java | 3 +-
.../apache/calcite/test/SqlAdvisorJdbcTest.java | 24 +-
.../org/apache/calcite/test/SqlFunctionsTest.java | 373 ++-
.../apache/calcite/test/SqlHintsConverterTest.java | 28 +-
.../apache/calcite/test/SqlJsonFunctionsTest.java | 41 +-
.../apache/calcite/test/SqlToRelConverterTest.java | 175 +-
.../org/apache/calcite/test/SqlValidatorTest.java | 473 +++-
.../org/apache/calcite/test/TCatalogReader.java | 4 +-
.../org/apache/calcite/test/TimeFrameTest.java | 6 +-
.../calcite/test/TypeCoercionConverterTest.java | 39 +-
.../org/apache/calcite/test/TypeCoercionTest.java | 182 +-
.../concurrent/ConcurrentTestCommandExecutor.java | 24 +-
.../concurrent/ConcurrentTestCommandGenerator.java | 45 +-
.../concurrent/ConcurrentTestCommandScript.java | 140 +-
.../concurrent/ConcurrentTestPluginCommand.java | 7 +-
.../ConcurrentTestTimedCommandGenerator.java | 8 +-
.../calcite/test/concurrent/SamplePlugin.java | 3 +-
.../test/enumerable/EnumerableJoinTest.java | 50 +
.../org/apache/calcite/test/fuzzer/RexFuzzer.java | 1 -
.../calcite/test/fuzzer/RexProgramFuzzyTest.java | 53 +-
.../apache/calcite/test/fuzzer/RexShrinker.java | 2 +-
.../org/apache/calcite/tools/FrameworksTest.java | 3 +-
.../java/org/apache/calcite/tools/PlannerTest.java | 12 +-
.../java/org/apache/calcite/util/BitSetsTest.java | 40 +-
.../org/apache/calcite/util/ChunkListTest.java | 56 +-
.../org/apache/calcite/util/FormatModelTest.java | 15 +-
.../apache/calcite/util/ImmutableBitSetTest.java | 32 +-
.../java/org/apache/calcite/util/PairListTest.java | 12 +-
.../calcite/util/PartiallyOrderedSetTest.java | 82 +-
.../apache/calcite/util/PermutationTestCase.java | 82 +-
.../java/org/apache/calcite/util/RangeSetTest.java | 2 -
.../apache/calcite/util/ReflectVisitorTest.java | 33 +-
.../java/org/apache/calcite/util/SourceTest.java | 29 +-
.../java/org/apache/calcite/util/UtilTest.java | 629 ++---
.../calcite/util/format/FormatElementEnumTest.java | 36 +
.../PostgresqlDateTimeFormatterTest.java | 1773 ++++++++++++++
.../apache/calcite/util/mapping/MappingTest.java | 59 +-
.../org/apache/calcite/test/RelOptRulesTest.xml | 770 +++++-
.../apache/calcite/test/SqlToRelConverterTest.xml | 269 ++-
.../calcite/test/TypeCoercionConverterTest.xml | 60 +-
core/src/test/resources/pg_to_char_queries.sql | 82 +
core/src/test/resources/sql/agg.iq | 215 +-
core/src/test/resources/sql/asof.iq | 206 ++
core/src/test/resources/sql/cast.iq | 1661 +++++++++++++
core/src/test/resources/sql/functions.iq | 13 +
core/src/test/resources/sql/join.iq | 49 +-
core/src/test/resources/sql/lateral.iq | 116 +-
core/src/test/resources/sql/measure-paper.iq | 508 ++++
core/src/test/resources/sql/measure.iq | 809 ++++++-
core/src/test/resources/sql/misc.iq | 429 +---
core/src/test/resources/sql/operator.iq | 326 +++
core/src/test/resources/sql/outer.iq | 104 +-
core/src/test/resources/sql/scalar.iq | 62 +
core/src/test/resources/sql/some.iq | 18 +
core/src/test/resources/sql/sort.iq | 39 +
core/src/test/resources/sql/stream.iq | 4 -
core/src/test/resources/sql/sub-query.iq | 444 +++-
core/src/test/resources/sql/winagg.iq | 359 ++-
core/src/test/resources/sql/within-distinct.iq | 131 +-
core/src/test/resources/to_char_generate_iq.py | 89 +
.../adapter/druid/BinaryOperatorConversion.java | 6 +-
.../adapter/druid/CeilOperatorConversion.java | 5 +-
.../adapter/druid/DefaultDimensionSpec.java | 14 +-
.../adapter/druid/DirectOperatorConversion.java | 6 +-
.../calcite/adapter/druid/DruidConnectionImpl.java | 14 +-
.../calcite/adapter/druid/DruidDateTimeUtils.java | 17 +-
.../calcite/adapter/druid/DruidExpressions.java | 24 +-
.../calcite/adapter/druid/DruidJsonFilter.java | 15 +-
.../apache/calcite/adapter/druid/DruidQuery.java | 119 +-
.../apache/calcite/adapter/druid/DruidRules.java | 18 +-
.../apache/calcite/adapter/druid/DruidSchema.java | 11 +-
.../calcite/adapter/druid/DruidSchemaFactory.java | 5 +-
.../adapter/druid/DruidSqlCastConverter.java | 9 +-
.../apache/calcite/adapter/druid/DruidTable.java | 42 +-
.../calcite/adapter/druid/DruidTableFactory.java | 4 +-
.../apache/calcite/adapter/druid/DruidType.java | 8 +-
.../adapter/druid/ExtractOperatorConversion.java | 4 +-
.../adapter/druid/ExtractionDimensionSpec.java | 8 +-
.../calcite/adapter/druid/Granularities.java | 9 +-
.../adapter/druid/NaryOperatorConverter.java | 8 +-
.../druid/UnaryPrefixOperatorConversion.java | 6 +-
.../druid/UnarySuffixOperatorConversion.java | 6 +-
.../calcite/adapter/druid/VirtualColumn.java | 7 +-
.../org/apache/calcite/test/DruidAdapter2IT.java | 58 +-
.../org/apache/calcite/test/DruidAdapterIT.java | 52 +-
.../elasticsearch/ElasticsearchAggregate.java | 5 +-
.../elasticsearch/ElasticsearchEnumerators.java | 5 +-
.../adapter/elasticsearch/ElasticsearchFilter.java | 8 +-
.../adapter/elasticsearch/ElasticsearchJson.java | 75 +-
.../elasticsearch/ElasticsearchMapping.java | 9 +-
.../elasticsearch/ElasticsearchProject.java | 11 +-
.../adapter/elasticsearch/ElasticsearchRel.java | 19 +-
.../adapter/elasticsearch/ElasticsearchRules.java | 6 +-
.../adapter/elasticsearch/ElasticsearchSchema.java | 15 +-
.../elasticsearch/ElasticsearchSchemaFactory.java | 5 +-
.../elasticsearch/ElasticsearchSearchResult.java | 13 +-
.../adapter/elasticsearch/ElasticsearchSort.java | 26 +-
.../adapter/elasticsearch/ElasticsearchTable.java | 9 +-
.../elasticsearch/ElasticsearchTableScan.java | 13 +-
.../ElasticsearchToEnumerableConverter.java | 10 +-
.../elasticsearch/ElasticsearchTransport.java | 25 +-
.../elasticsearch/ElasticsearchVersion.java | 8 +-
.../adapter/elasticsearch/PredicateAnalyzer.java | 10 +-
.../adapter/elasticsearch/QueryBuilders.java | 41 +-
.../calcite/adapter/elasticsearch/Scrolling.java | 7 +-
.../elasticsearch/ElasticSearchAdapterTest.java | 58 +-
.../elasticsearch/ElasticsearchJsonTest.java | 147 +-
.../elasticsearch/ElasticsearchVersionTest.java | 21 +-
.../elasticsearch/EmbeddedElasticsearchNode.java | 4 +-
.../elasticsearch/EmbeddedElasticsearchPolicy.java | 34 +-
.../EmbeddedElasticsearchPolicyTest.java | 139 ++
.../calcite/adapter/elasticsearch/MatchTest.java | 9 +-
.../adapter/elasticsearch/Projection2Test.java | 15 +-
.../adapter/elasticsearch/QueryBuildersTest.java | 267 ++-
.../apache/calcite/test/ElasticsearchChecker.java | 19 +-
.../calcite/adapter/csv/CsvFilterableTable.java | 3 +-
.../adapter/csv/CsvProjectTableScanRule.java | 5 +-
.../calcite/adapter/csv/CsvScannableTable.java | 2 +-
.../org/apache/calcite/adapter/csv/CsvSchema.java | 6 +-
.../adapter/csv/CsvStreamScannableTable.java | 3 +-
.../apache/calcite/adapter/csv/CsvTableScan.java | 12 +-
.../calcite/adapter/csv/CsvTranslatableTable.java | 4 +-
.../test/java/org/apache/calcite/test/CsvTest.java | 96 +-
.../apache/calcite/test/ExampleFunctionTest.java | 14 +-
.../apache/calcite/adapter/file/CsvEnumerator.java | 30 +-
.../calcite/adapter/file/CsvStreamReader.java | 19 +-
.../org/apache/calcite/adapter/file/CsvTable.java | 10 +-
.../apache/calcite/adapter/file/CsvTableScan.java | 14 +-
.../calcite/adapter/file/CsvTranslatableTable.java | 4 +-
.../calcite/adapter/file/FileEnumerator.java | 3 +-
.../apache/calcite/adapter/file/FileFieldType.java | 10 +-
.../apache/calcite/adapter/file/FileReader.java | 33 +-
.../calcite/adapter/file/FileReaderException.java | 2 +-
.../calcite/adapter/file/FileRowConverter.java | 120 +-
.../apache/calcite/adapter/file/FileSchema.java | 23 +-
.../org/apache/calcite/adapter/file/FileTable.java | 15 +-
.../apache/calcite/adapter/file/FileTableScan.java | 9 +-
.../calcite/adapter/file/CsvEnumeratorTest.java | 46 +-
.../calcite/adapter/file/FileAdapterTest.java | 45 +-
.../calcite/adapter/file/FileAdapterTests.java | 21 +-
.../calcite/adapter/file/FileReaderTest.java | 29 +-
.../calcite/adapter/geode/rel/GeodeAggregate.java | 5 +-
.../calcite/adapter/geode/rel/GeodeEnumerator.java | 12 +-
.../calcite/adapter/geode/rel/GeodeFilter.java | 45 +-
.../calcite/adapter/geode/rel/GeodeProject.java | 5 +-
.../calcite/adapter/geode/rel/GeodeRules.java | 3 +-
.../calcite/adapter/geode/rel/GeodeSchema.java | 7 +-
.../calcite/adapter/geode/rel/GeodeSort.java | 10 +-
.../calcite/adapter/geode/rel/GeodeTable.java | 18 +-
.../calcite/adapter/geode/rel/GeodeTableScan.java | 16 +-
.../geode/rel/GeodeToEnumerableConverter.java | 5 +-
.../geode/simple/GeodeSimpleEnumerator.java | 11 +-
.../geode/simple/GeodeSimpleScannableTable.java | 4 +-
.../adapter/geode/simple/GeodeSimpleSchema.java | 23 +-
.../calcite/adapter/geode/util/GeodeUtils.java | 14 +-
.../calcite/adapter/geode/rel/GeodeAssertions.java | 5 +-
.../adapter/geode/rel/GeodeEmbeddedPolicy.java | 8 +-
.../calcite/adapter/geode/rel/JsonLoader.java | 9 +-
gradle.properties | 18 +-
.../calcite/adapter/innodb/IndexCondition.java | 17 +-
.../calcite/adapter/innodb/InnodbEnumerator.java | 18 +-
.../calcite/adapter/innodb/InnodbFilter.java | 9 +-
.../adapter/innodb/InnodbFilterTranslator.java | 9 +-
.../calcite/adapter/innodb/InnodbProject.java | 5 +-
.../apache/calcite/adapter/innodb/InnodbRules.java | 10 +-
.../apache/calcite/adapter/innodb/InnodbSort.java | 4 +-
.../apache/calcite/adapter/innodb/InnodbTable.java | 12 +-
.../calcite/adapter/innodb/InnodbTableScan.java | 17 +-
.../innodb/InnodbToEnumerableConverter.java | 10 +-
.../adapter/innodb/InnodbAdapterDataTypesTest.java | 7 +-
.../calcite/adapter/innodb/InnodbAdapterTest.java | 41 +-
.../calcite/adapter/kafka/KafkaAdapterTest.java | 8 +-
.../apache/calcite/linq4j/DefaultEnumerable.java | 15 +-
.../apache/calcite/linq4j/EnumerableDefaults.java | 220 +-
.../apache/calcite/linq4j/ExtendedEnumerable.java | 24 +-
.../org/apache/calcite/linq4j/GroupingImpl.java | 7 +-
.../java/org/apache/calcite/linq4j/JoinType.java | 23 +-
.../java/org/apache/calcite/linq4j/Linq4j.java | 19 +-
.../java/org/apache/calcite/linq4j/LookupImpl.java | 2 +-
.../apache/calcite/linq4j/function/Functions.java | 80 +-
.../apache/calcite/linq4j/tree/AbstractNode.java | 17 +-
.../linq4j/tree/ArrayLengthRecordField.java | 20 +-
.../calcite/linq4j/tree/BinaryExpression.java | 6 +-
.../apache/calcite/linq4j/tree/BlockBuilder.java | 6 +-
.../apache/calcite/linq4j/tree/BlockStatement.java | 5 +-
.../calcite/linq4j/tree/ClassDeclaration.java | 26 +-
.../calcite/linq4j/tree/ConditionalExpression.java | 5 +-
.../calcite/linq4j/tree/ConditionalStatement.java | 12 +-
.../calcite/linq4j/tree/ConstantExpression.java | 72 +-
.../linq4j/tree/ConstructorDeclaration.java | 30 +-
.../calcite/linq4j/tree/DeclarationStatement.java | 21 +-
.../org/apache/calcite/linq4j/tree/Expression.java | 2 -
.../apache/calcite/linq4j/tree/Expressions.java | 87 +-
.../calcite/linq4j/tree/FieldDeclaration.java | 21 +-
.../calcite/linq4j/tree/ForEachStatement.java | 8 +-
.../apache/calcite/linq4j/tree/ForStatement.java | 36 +-
.../calcite/linq4j/tree/FunctionExpression.java | 30 +-
.../apache/calcite/linq4j/tree/GotoStatement.java | 30 +-
.../calcite/linq4j/tree/IndexExpression.java | 12 +-
.../calcite/linq4j/tree/MemberExpression.java | 11 +-
.../calcite/linq4j/tree/MethodCallExpression.java | 36 +-
.../calcite/linq4j/tree/MethodDeclaration.java | 37 +-
.../calcite/linq4j/tree/ParameterExpression.java | 14 +-
.../org/apache/calcite/linq4j/tree/Primitive.java | 165 +-
.../calcite/linq4j/tree/ReflectedPseudoField.java | 5 +-
.../calcite/linq4j/tree/TernaryExpression.java | 11 +-
.../apache/calcite/linq4j/tree/TryStatement.java | 6 +-
.../calcite/linq4j/tree/TypeBinaryExpression.java | 16 +-
.../java/org/apache/calcite/linq4j/tree/Types.java | 112 +-
.../calcite/linq4j/tree/UnaryExpression.java | 30 +-
.../apache/calcite/linq4j/tree/WhileStatement.java | 19 +-
.../org/apache/calcite/linq4j/util/Compatible.java | 79 +
.../apache/calcite/linq4j/util/package-info.java | 8 +-
.../calcite/linq4j/function/FunctionTest.java | 24 +-
.../calcite/linq4j/test/BlockBuilderTest.java | 44 +-
.../apache/calcite/linq4j/test/ExpressionTest.java | 813 ++++---
.../apache/calcite/linq4j/test/InlinerTest.java | 37 +-
.../calcite/linq4j/test/JoinPreserveOrderTest.java | 26 +-
.../apache/calcite/linq4j/test/LimitSortTest.java | 28 +-
.../org/apache/calcite/linq4j/test/Linq4jTest.java | 576 +++--
.../apache/calcite/linq4j/test/LookupImplTest.java | 7 +-
.../apache/calcite/linq4j/test/OptimizerTest.java | 452 ++--
.../apache/calcite/linq4j/test/PrimitiveTest.java | 62 +-
.../calcite/linq4j/test/util/RecordHelper.java | 107 +
.../org/apache/calcite/linq4j/tree/TypeTest.java | 17 +-
.../calcite/adapter/mongodb/MongoAggregate.java | 8 +-
.../calcite/adapter/mongodb/MongoEnumerator.java | 6 +-
.../apache/calcite/adapter/mongodb/MongoRel.java | 10 +-
.../calcite/adapter/mongodb/MongoSchema.java | 5 +-
.../calcite/adapter/mongodb/MongoTableScan.java | 18 +-
.../calcite/adapter/mongodb/MongoAdapterTest.java | 30 +-
.../adapter/mongodb/MongoDatabasePolicy.java | 9 +-
.../apache/calcite/adapter/pig/PigTableScan.java | 5 +-
.../org/apache/calcite/test/AbstractPigTest.java | 8 +-
.../org/apache/calcite/test/PigAdapterTest.java | 9 +-
.../calcite/test/PigRelBuilderStyleTest.java | 11 +-
.../main/java/org/apache/calcite/piglet/Ast.java | 23 +-
.../calcite/piglet/DynamicTupleRecordType.java | 4 +-
.../org/apache/calcite/piglet/PigRelBuilder.java | 10 +-
.../org/apache/calcite/piglet/PigRelExVisitor.java | 57 +-
.../calcite/piglet/PigRelOpInnerVisitor.java | 9 +-
.../org/apache/calcite/piglet/PigRelOpVisitor.java | 8 +-
.../calcite/piglet/PigRelToSqlConverter.java | 12 +-
.../java/org/apache/calcite/test/PigRelExTest.java | 5 +-
.../java/org/apache/calcite/test/PigRelOpTest.java | 19 +-
.../org/apache/calcite/test/PigRelTestBase.java | 5 +
.../calcite/adapter/os/FilesTableFunction.java | 2 +-
.../adapter/os/GitCommitsTableFunction.java | 10 +-
.../org/apache/calcite/adapter/os/Processes.java | 6 +-
.../apache/calcite/adapter/os/PsTableFunction.java | 246 +-
.../org/apache/calcite/adapter/os/SqlShell.java | 9 +-
.../calcite/adapter/os/VmstatTableFunction.java | 6 +-
.../apache/calcite/adapter/tpcds/TpcdsSchema.java | 4 +-
.../apache/calcite/adapter/tpch/TpchSchema.java | 11 +-
.../calcite/chinook/CalciteConnectionProvider.java | 3 +
.../apache/calcite/adapter/os/OsAdapterTest.java | 3 +-
.../calcite/adapter/os/PsTableFunctionTest.java | 73 +
.../RemotePreparedStatementParametersTest.java | 5 +
.../java/org/apache/calcite/slt/SqlLogicTests.java | 8 +-
.../calcite/adapter/redis/RedisDataProcess.java | 47 +-
.../calcite/adapter/redis/RedisEnumerator.java | 6 +-
.../calcite/adapter/redis/RedisJedisManager.java | 24 +-
.../apache/calcite/adapter/redis/RedisSchema.java | 21 +-
.../calcite/adapter/redis/RedisSchemaFactory.java | 4 +-
.../adapter/redis/RedisAdapterCaseBase.java | 2 +-
server/build.gradle.kts | 3 +
.../calcite/server/AbstractModifiableTable.java | 8 +-
.../apache/calcite/server/MutableArrayTable.java | 12 +-
.../apache/calcite/server/ServerDdlExecutor.java | 155 +-
.../java/org/apache/calcite/test/ServerTest.java | 28 +-
settings.gradle.kts | 32 +-
site/_docs/adapter.md | 2 +-
site/_docs/algebra.md | 1 +
site/_docs/history.md | 4 +-
site/_docs/reference.md | 179 +-
site/_layouts/default.html | 1 -
.../adapter/spark/EnumerableToSparkConverter.java | 5 +-
.../apache/calcite/adapter/spark/HttpServer.java | 3 +-
.../adapter/spark/JdbcToSparkConverter.java | 7 +-
.../org/apache/calcite/test/SparkAdapterTest.java | 5 +
.../calcite/adapter/splunk/SplunkDriver.java | 20 +-
.../apache/calcite/adapter/splunk/SplunkQuery.java | 23 +-
.../apache/calcite/adapter/splunk/SplunkTable.java | 11 +-
.../calcite/adapter/splunk/SplunkTableScan.java | 9 +-
.../adapter/splunk/search/SplunkConnection.java | 6 +-
.../splunk/search/SplunkConnectionImpl.java | 49 +-
.../config/checkerframework/jdbc/Connection.astub | 12 +-
src/main/config/forbidden-apis/signatures.txt | 4 +
testkit/build.gradle.kts | 1 +
.../apache/calcite/sql/parser/SqlParserTest.java | 245 +-
.../apache/calcite/sql/test/AbstractSqlTester.java | 23 +-
.../apache/calcite/sql/test/ResultCheckers.java | 16 +-
.../calcite/sql/test/SqlOperatorFixture.java | 48 +-
.../org/apache/calcite/sql/test/SqlTester.java | 6 +-
.../java/org/apache/calcite/sql/test/SqlTests.java | 14 +-
.../calcite/test/AbstractModifiableTable.java | 8 +-
.../org/apache/calcite/test/CalciteAssert.java | 159 +-
.../org/apache/calcite/test/ConnectionSpec.java | 4 +-
.../org/apache/calcite/test/CustomTypeSystems.java | 96 +
.../org/apache/calcite/test/DiffRepository.java | 76 +-
.../java/org/apache/calcite/test/DiffTestCase.java | 63 +-
.../java/org/apache/calcite/test/Matchers.java | 33 +-
.../org/apache/calcite/test/MockDdlExecutor.java | 3 +-
.../org/apache/calcite/test/MockRelOptPlanner.java | 4 +-
.../java/org/apache/calcite/test/QuidemTest.java | 15 +-
.../apache/calcite/test/RelMetadataFixture.java | 13 +-
.../org/apache/calcite/test/RelOptFixture.java | 4 +
.../calcite/test/SqlOperatorFixtureImpl.java | 22 +-
.../org/apache/calcite/test/SqlOperatorTest.java | 2536 ++++++++++++++++----
.../apache/calcite/test/SqlValidatorFixture.java | 14 +
.../main/java/org/apache/calcite/test/Unsafe.java | 7 +
.../calcite/test/catalog/CountingFactory.java | 5 +-
.../calcite/test/catalog/MockCatalogReader.java | 60 +-
.../test/schemata/bookstore/BookstoreSchema.java | 7 +-
.../test/schemata/catchall/CatchallSchema.java | 62 +-
.../test/schemata/foodmart/FoodmartSchema.java | 4 +-
.../calcite/test/schemata/hr/Department.java | 6 +-
.../calcite/test/schemata/hr/DepartmentPlus.java | 4 +-
.../apache/calcite/test/schemata/hr/Employee.java | 6 +-
.../org/apache/calcite/test/schemata/hr/Event.java | 6 +-
.../hr/{Department.java => NullableTest.java} | 38 +-
.../calcite/test/schemata/tpch/TpchSchema.java | 4 +-
.../main/java/org/apache/calcite/util/Smalls.java | 14 +-
.../java/org/apache/calcite/util/TestUtil.java | 22 +-
.../main/java/org/apache/calcite/util/Version.java | 65 +
.../apache/calcite/testlib/WithLocaleExtension.kt | 5 +-
.../java/org/apache/calcite/util/TestUtilTest.java | 53 +-
ubenchmark/README.md | 33 +-
ubenchmark/build.gradle.kts | 7 +
.../apache/calcite/benchmarks/ParserBenchmark.java | 2 +-
...mark.java => ParserInstantiationBenchmark.java} | 85 +-
.../benchmarks/RelNodeConversionBenchmark.java | 2 +-
.../apache/calcite/benchmarks/StatementTest.java | 10 +-
920 files changed, 36983 insertions(+), 10641 deletions(-)
delete mode 100644 .github/workflows/buildcache.yml
create mode 100644 .github/workflows/stale.yml
create mode 100644
core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableAsofJoin.java
create mode 100644
core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableAsofJoinRule.java
create mode 100644 core/src/main/java/org/apache/calcite/rel/core/AsofJoin.java
create mode 100644
core/src/main/java/org/apache/calcite/rel/logical/LogicalAsofJoin.java
create mode 100644
core/src/main/java/org/apache/calcite/rel/metadata/RelMdMeasure.java
create mode 100644
core/src/main/java/org/apache/calcite/rel/rules/MeasureRules.java
create mode 100644
core/src/main/java/org/apache/calcite/rel/rules/ProjectOverSumToSum0Rule.java
create mode 100644
core/src/main/java/org/apache/calcite/rel/rules/UnionToValuesRule.java
create mode 100644
core/src/main/java/org/apache/calcite/rex/RexWindowExclusion.java
create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlAsofJoin.java
create mode 100644
core/src/main/java/org/apache/calcite/sql/SqlMeasureOperator.java
delete mode 100644
core/src/main/java/org/apache/calcite/sql/fun/SqlRegexpReplaceFunction.java
create mode 100644
core/src/main/java/org/apache/calcite/sql/validate/MeasureScope.java
copy core/src/main/java/org/apache/calcite/util/{SourceStringReader.java =>
format/postgresql/CapitalizationEnum.java} (50%)
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/ChronoUnitEnum.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/CompiledDateTimeFormat.java
copy core/src/main/java/org/apache/calcite/util/{SourceStringReader.java =>
format/postgresql/DateCalendarEnum.java} (59%)
copy core/src/main/java/org/apache/calcite/util/{SourceStringReader.java =>
format/postgresql/PatternModifier.java} (52%)
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/PostgresqlDateTimeFormatter.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/AmPmFormatPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/BcAdFormatPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/DayOfWeekFormatPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/FormatPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/MonthFormatPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/NumberFormatPattern.java
copy testkit/src/main/java/org/apache/calcite/test/ConnectionSpec.java =>
core/src/main/java/org/apache/calcite/util/format/postgresql/format/RomanNumeralsFormatPattern.java
(53%)
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/TimeZoneFormatPattern.java
copy testkit/src/main/java/org/apache/calcite/test/schemata/hr/Event.java =>
core/src/main/java/org/apache/calcite/util/format/postgresql/format/TimeZoneHoursFormatPattern.java
(55%)
copy testkit/src/main/java/org/apache/calcite/test/schemata/hr/Event.java =>
core/src/main/java/org/apache/calcite/util/format/postgresql/format/TimeZoneMinutesFormatPattern.java
(54%)
copy testkit/src/main/java/org/apache/calcite/test/schemata/hr/Event.java =>
core/src/main/java/org/apache/calcite/util/format/postgresql/format/TimeZoneOffsetFormatPattern.java
(50%)
copy testkit/src/main/java/org/apache/calcite/test/schemata/hr/Event.java =>
core/src/main/java/org/apache/calcite/util/format/postgresql/format/YearWithCommasFormatPattern.java
(53%)
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/AmPmCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/BcAdCompiledPattern.java
copy core/src/main/java/org/apache/calcite/util/{SourceStringReader.java =>
format/postgresql/format/compiled/CompiledItem.java} (51%)
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/CompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/DayOfWeekCompiledPattern.java
copy testkit/src/main/java/org/apache/calcite/test/schemata/hr/Event.java =>
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/LiteralCompiledItem.java
(51%)
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/MonthCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/NumberCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/RomanNumeralsCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneHoursCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneMinutesCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneOffsetCompiledPattern.java
create mode 100644
core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/YearWithCommasCompiledPattern.java
copy
core/src/main/java/org/apache/calcite/{adapter/enumerable/WinAggContext.java =>
util/format/postgresql/format/compiled/package-info.java} (76%)
copy
core/src/main/java/org/apache/calcite/{adapter/enumerable/WinAggContext.java =>
util/format/postgresql/format/package-info.java} (76%)
copy
core/src/main/java/org/apache/calcite/{adapter/enumerable/WinAggContext.java =>
util/format/postgresql/package-info.java} (76%)
create mode 100644
core/src/test/java/org/apache/calcite/sql/parser/SqlParserUtilTest.java
create mode 100644
core/src/test/java/org/apache/calcite/test/LargeGeneratedJoinTest.java
create mode 100644
core/src/test/java/org/apache/calcite/util/format/postgresql/PostgresqlDateTimeFormatterTest.java
create mode 100644 core/src/test/resources/pg_to_char_queries.sql
create mode 100644 core/src/test/resources/sql/asof.iq
create mode 100644 core/src/test/resources/sql/cast.iq
create mode 100644 core/src/test/resources/sql/measure-paper.iq
create mode 100755 core/src/test/resources/to_char_generate_iq.py
create mode 100644
elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/EmbeddedElasticsearchPolicyTest.java
create mode 100644
linq4j/src/main/java/org/apache/calcite/linq4j/util/Compatible.java
copy
core/src/main/java/org/apache/calcite/adapter/enumerable/WinAggContext.java =>
linq4j/src/main/java/org/apache/calcite/linq4j/util/package-info.java (76%)
create mode 100644
linq4j/src/test/java/org/apache/calcite/linq4j/test/util/RecordHelper.java
create mode 100644
plus/src/test/java/org/apache/calcite/adapter/os/PsTableFunctionTest.java
copy
core/src/main/java/org/apache/calcite/adapter/enumerable/WinAggContext.java =>
src/main/config/checkerframework/jdbc/Connection.astub (75%)
create mode 100644
testkit/src/main/java/org/apache/calcite/test/CustomTypeSystems.java
copy
testkit/src/main/java/org/apache/calcite/test/schemata/hr/{Department.java =>
NullableTest.java} (58%)
create mode 100644 testkit/src/main/java/org/apache/calcite/util/Version.java
copy
ubenchmark/src/jmh/java/org/apache/calcite/benchmarks/{ParserBenchmark.java =>
ParserInstantiationBenchmark.java} (55%)