This is an automated email from the ASF dual-hosted git repository.

rubenql pushed a change to branch site
in repository https://gitbox.apache.org/repos/asf/calcite.git.


 discard b659447  Site: Add Rui Wang as committer, Ruben Quesada Lopez as PMC
 discard 8cf0701  Site: change release date to 2020-08-22
     add 39dba06  [CALCITE-4169] Prepare for next development iteration. Make 
current version 1.26 (instead of released 1.25)
     add 9cf829b  [CALCITE-3782] Bitwise functions BIT_AND, BIT_OR and BIT_XOR 
support binary and varbinary type (Hailong Wang)
     add 672ed7a  [CALCITE-4113] Support LEFT join in EnumerableMergeJoin
     add 468b111  [CALCITE-4172] Expand columnar identifiers before resolving 
(James Starr)
     add 401b018  [CALCITE-4190] OR simplification incorrectly loses term
     add 425f170  [CALCITE-4195] Cast between types with different collators 
must be evaluated as not monotonic
     add 368e579  Update Checkstyle from 8.27 to 8.28 to support package-info 
files with imports
     add cf99329  [CALCITE-4185] Remove dependency between 
:ubenchmark:checkstyleJmh and :ubenchmark:compileJava
     add f0aff98  Disable multiline parameter alignment in IDEA
     add 88d1818  [CALCITE-4015] Pass through parent collation request on 
subset or superset of join keys for EnumerableMergeJoin.
     add 175851b  Use merge=union strategy to avoid false merge conflicts on 
CalciteResource.properties
     add e9f9261  [CALCITE-4180] Supports Elasticsearch basic authentication 
(fageiguanbing)
     add 734a7ac  [CALCITE-4160] Add configuration(SqlToRelConverter.Config) to 
retain ORDER BY in sub-query (Jiatao Tao)
     add 103430b  [CALCITE-4203] RelMdUniqueKeys should not return empty when 
meeting Intersect and Minus if its input has unique keys
     add 42785e4  [CALCITE-4160] Add configuration(SqlToRelConverter.Config) to 
retain ORDER BY in sub-query (Jiatao Tao) (part2)
     add 103c73f  [CALCITE-3920] Improve ORDER BY computation in Enumerable 
convention by exploiting LIMIT (Thomas Rebele)
     add e0480a9  [CALCITE-3399] Field-pruning for set operators (except UNION 
ALL) changes query semantics (Jin Xing)
     add 6842b70  [CALCITE-4206] RelDecorrelator outputs wrong plan for 
correlate sort with fetch limit
     add 850f0f4  [CALCITE-4173] Add internal SEARCH operator and Sarg literal 
that represents a set of values or ranges
     add 962d9a2  Obsolete SqlToRelConverter.ConfigBuilder, and refactor 
SqlToRelConverterTest
     add 76f26b8  [CALCITE-4220] In SqlToRelConverter, use RelBuilder for 
creating Aggregate
     add 7353fa9  [CALCITE-4208] Improve metadata row count for Join
     add eaf0edf  [CALCITE-4229] Add Util.throwAsRuntime and Util.causeOrSelf 
to simplify exception re-throwing
     add 86b42f3  [CALCITE-4217] Unlock RelCrossType#getFieldCount()
     add ff169fb  [CALCITE-4228] FlatLists.Flat6List#append should not throw 
NPE if there are null elements in the list
     add 9422fd4  [CALCITE-4226] Add Mappings#asListNonNull as a null-safe 
alternative for Mappings#asList
     add ad164ed  [CALCITE-4227] ImmutableIntList#toArray(Integer[]) should 
support arguments larger than the collection itself
     add fb2a02f  Remove ArrayList allocation from Mappings#bijection, and add 
helpful message in case NPE is thrown
     add eb4011b  Update org.nosphere.apache.rat plugin from 0.5.2 to 0.7.0, 
and print files with unapproved licenses to console
     add 60aa74f  [CALCITE-4237] Following [CALCITE-4173], fix assertion error 
when RexSimplify generates Sarg with single null only
     add 7404445  [CALCITE-4200] ExceptionInInitializerError when initializing 
DruidRules
     add c09c080  [CALCITE-4201] AssertionError when registering Druid rules 
due to conflict in description
     add fb89615  [CALCITE-4221] Update stale integration tests in Druid adapter
     add 32ac731  Minor refactoring of DruidAdapterIT and DruidAdapter2IT
     add 0920796  Site: Add Rui Wang as committer, Ruben Quesada Lopez as PMC
     add 99c0fef  [CALCITE-4197] Provide utility to visualize RelNode plans
     add 1ae20f3  [CALCITE-4239] RelMdUniqueKeys returns wrong unique keys for 
Aggregate with grouping sets
     add 8250798  [CALCITE-4182] Support mv recognition when query has constant 
filter for missing columns in group by list of mv (Wang Yanlin)
     add ea2b32e  [CALCITE-4258] SqlToRelConverter: SELECT 1 IS [NOT] DISTINCT 
FROM NULL fails with AssertionError
     add 0c5bb1a  Refactor SqlParserTest
     add 76ff191  [CALCITE-4248] Deprecate SqlParser.ConfigBuilder
     add 5c012c5  [CALCITE-4230] When parsing SQL in BigQuery dialect, split 
quoted table names that contain dots
     add df571c9  [CALCITE-4246] When parsing SQL in BigQuery dialect, allow 
unquoted table names to contain hyphens
     add c1052b3  [CALCITE-4247] When parsing SQL in BigQuery dialect, 
character literals may be enclosed in single- or double-quotes, and use 
backslashes as escapes
     add 5419f12  [CALCITE-4254] ImmutableBeans should make an immutable copy 
of property values of type List, Set or Map
     add 6a3a7e4  [CALCITE-4249] JDBC adapter cannot translate NOT LIKE in join 
condition
     add 1d7e281  [CALCITE-4266] JDBC adapter throws 
UnsupportedOperationException if query contains range predicate on columns from 
sub-query
     add e7ac26d  [CALCITE-4241] Some improvements to metadata query
     add fb1835c  [CALCITE-4192] RelMdColumnOrigins gets the wrong index of 
group by columns after RelNode was optimized by AggregateProjectMergeRule rule 
(FangZheng Li)
     add 43cf101  [CALCITE-4261] Join with three tables causes 
IllegalArgumentException in EnumerableBatchNestedLoopJoinRule
     add 0290482  [CALCITE-4209] In RelBuilder, add an option to not simplify 
LIMIT 0 to an empty relation
     add 2acf342  [CALCITE-4271] RelBuilder.in should allow duplicate values
     add 81db26d  [CALCITE-4224] Add a method for RelNode to output its 
relational expression string (Jiatao Tao)
     add 723e7e6  Fix typos in the documentation of adapters
     add 1b43091  [CALCITE-4269] Improvements on enumerable implementation for 
HOP and SESSION. (Rui Wang)
     add a8be094  [CALCITE-4207] Validation fails for positional aggregate with 
current_date in 'case' expression
     add 8ca4d86  [CALCITE-4275] EnumerableMergeJoin#create does not set 
EnumerableConvention in the trait set
     add 8ffedcc  Enable commit message inspection on IntelliJ IDEA
     add 27e7f19  [CALCITE-2833] In JDBC adapter for Hive and BigQuery, 
implement Values by generating SELECT without FROM (Stuti Gupta)
     add d701495  [CALCITE-4176] Key descriptor can be optional in SESSION 
table function
     add a3d02d2  Refactor Pair comparison to use Comparator.nullsFirst and 
.naturalOrder()
     add 0d52063  [CALCITE-4214] Make RelDataType.getSqlTypeName non-nullable
     add 1050b36  Add MaxMetaspaceSize=512m to avoid metaspace issues when 
building Calcite
     add efbf399  [CALCITE-3841] Change downloads page to use 
downloads.apache.org
     add 84ac419  [CALCITE-4259] Support JDK 15 and Guava version 29.0-jre
     add 00f2dba  [CALCITE-4289] Fix wrong signature message in 
SqlTumbleWindowFunction
     add d70039d  [CALCITE-4282] Promote the window table functions window 
attribute data type with precision 3
     add e0fa8ee  [CALCITE-4283] Do not force implement SqlTableFunction when 
creating table function scan
     add 67f3c5d  Fix grammatical errors
     add c84dd53  [CALCITE-4287] AggregateJoinRemoveRule and 
ProjectJoinRemoveRule are not fired if the last column of the join's left input 
is referenced(Liya Fan)
     add 2ab9a2b  Fix adapter doc grammatical errors
     add 0b2dfb7  [CALCITE-4238] Create a default parser configuration, to 
reduce redundant information in sub-parsers
     add 47f1f92  [CALCITE-4210] Replaying subqueries in ON clauses (James 
Starr)
     add 14d5e3b  [CALCITE-4288] Create SqlTypeUtil#deriveType(SqlCallBinding) 
to make type computation simpler
     add 90ccbb0  [CALCITE-4216] Make 
org.apache.calcite.rel.type.RelDataType#getFamily non-nullable
     add a79dde6  [CALCITE-4280] Replace Guava's Lists.transform and 
Iterables.transform with Util.transform
     add 539807b  Simplify Pair.left(Iterable) and Pair.right(Iterable) 
implementation
     add ab19f98  [CALCITE-4278] Add Druid adapter tests in GitHub CI
     add 43eeafc  [CALCITE-4298] Avoid disabling hostname verification on HTTPS 
connections
     add 766f555  Make project buildable from folders that include special 
characters
     add f704450  Improve positions in SQL validator error messages
     add 293d3ae  [CALCITE-3752] Add PIVOT operator to SQL
     add 87e7338  [CALCITE-4295] Composite of two checkers with 
SqlOperandCountRange throws IllegalArgumentException (Zhenghua Gao)
     add 8a7e1be  [CALCITE-4300] EnumerableBatchNestedLoopJoin dynamic code 
generation can lead to variable name issues if two EBNLJ are nested
     add 92ea5a2  [CALCITE-4215] Ensure org.apache.calcite.schema.Statistic 
uses null vs emptyList appropriately
     add ec5b75a  [CALCITE-4215] Avoid NPE in RelOptTableImpl.getMonotonicity 
when collations is null
     add 97e4f0c  [CALCITE-4215] Use default trait value if traitSupplier 
returns null
     add 2f1d764  [CALCITE-4215] Avoid NPE in RelMdCollation from 
ImmutableList.copyOf
     add 4787123  [CALCITE-4215] Avoid NPE in RelFieldTrimmer when collations 
is null
     add 58adcae  [CALCITE-4215] Avoid NPE when monotonicity returns null
     add 1f57bd4  [CALCITE-4215] Avoid NPE when getReferentialConstraints() 
returns null
     add 0922441  [CALCITE-4215] Fix handing of null monotonicity in 
IdentifierNamespace
     add 7df9bba  [CALCITE-4215] Avoid NPE when monotonicity is null
     add 3cc793a  [CALCITE-4215] Handle nulls in RelMdCollation#enumerableJoin0
     add 64a0ca7  [CALCITE-4279] SEARCH operator cannot be pushed into Druid
     add cfa37c3  [CALCITE-4291] Release Calcite 1.26.0
     add 1909e9d  Prepare for next development iteration
     add 32c62ca  Correct 1.26.0 release date
     add 2391c20  Add 1.26.0 release announcement
     add 36b31ba  [CALCITE-4314] Add Error Prone code style verification
     add 66caa54  [CALCITE-4314] Add missing @Override annotations
     add b5a94de  [CALCITE-4314] Remove unnecessary parentheses
     add d84bb71  [CALCITE-4314] Make abstract class constructors protected 
rather than public
     add 69b12e0  [CALCITE-4314] Suppress HidingField warnings
     add 1b94f37  [CALCITE-4314] Add missing default branches to switch 
statement
     add edbd35a  [CALCITE-4314] Avoid mutable enum fields
     add 11d7594  [CALCITE-4314] Remove unused fields, methods, and variables
     add 5628311  [CALCITE-4314] Avoid escaping HTML entities in JavaDoc code 
blocks
     add 1435ed5  [CALCITE-4314] Avoid returning mutable and non-mutable lists 
from the same method
     add 04f8a07  [CALCITE-4314] Avoid long = int + int in 
EnumerableDefaults.orderBy
     add 0cdb485  [CALCITE-4314] Use exact parameter names in JavaDoc
     add b88bae9  [CALCITE-4314] Avoid Collection.equals(...) usage as its 
behavior is not specified
     add c528771  [CALCITE-4314] Replace SortedSet with NavigableSet
     add 2cbb0c4  [CALCITE-4314] Replace protected methods in final classes 
with package-private
     add 995b90b  [CALCITE-4314] Suppress warnings on Guava's @Beta API usage
     add 042802f  [CALCITE-4314] Make inner classes static when possible
     add 4dd81e9  [CALCITE-4314] Avoid MissingCasesInEnumSwitch
     add cff3695  [CALCITE-4314] Replace LinkedList with ArrayList, ArrayDeque, 
HashSet
     add 3fa4bf1  [CALCITE-4314] Suppress JdkObsolete warning for Date usage 
when used in converters
     add 6917193  [CALCITE-4314] Suppress MutablePublicArray in Cassandra and 
Mongo adapters
     add e537246  [CALCITE-4314] Suppress JdkObsolete for Stack usage
     add 5be8a9a  [CALCITE-4314] Correct (@link javadoc tag for 
SqlStdOperatorTable#OVER
     add 122db54  [CALCITE-4314] Use canonical class references
     add cafe7ec  [CALCITE-4314] Resolve ProtectedMembersInFinalClass
     add fe7c1f5  [CALCITE-4314] Avoid importing of common names
     add 2235149  [CALCITE-4314] Suppress WaitNotInLoop for Unsafe
     add 179ccca  [CALCITE-4314] Suppress NonOverridingEquals
     add c0ee886  [CALCITE-4314] Avoid misleading fall through
     add 13c58ef  [CALCITE-4314] Align the order of parameters and arguments in 
WinAggResetContextImpl
     add be6fc6f  [CALCITE-4314] Escape quote in labels when printing RelNode 
in Dot format
     add 0024fdb  [CALCITE-4314] Avoid Map modification in forEcah loop
     add 5092095  [CALCITE-4314] Avoid excessive lambdas in SemiJoinRule
     add 5bf678e  [CALCITE-4314] Use ThreadLocal for SimpleDateFormat in 
DruidJson
     add 1552765  [CALCITE-4314] Suppress the current CatchAndPrintStackTrace, 
MissingSummary, etc
     add 69e812f  Site: change 1.25.0 release date to 2020-08-22

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   (b659447)
            \
             N -- N -- N   refs/heads/site (69e812f)

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:
 .editorconfig                                      |   1 +
 .gitattributes                                     |   6 +
 .github/workflows/main.yml                         |  66 +-
 .idea/vcs.xml                                      |   7 +
 .travis.yml                                        |   2 +-
 README                                             |   2 +-
 babel/src/main/codegen/config.fmpp                 | 370 +--------
 .../org/apache/calcite/test/BabelParserTest.java   |  12 +-
 .../org/apache/calcite/test/BabelQuidemTest.java   |   7 +-
 bom/build.gradle.kts                               |   3 +-
 build.gradle.kts                                   |  47 +-
 .../org/apache/calcite/buildtools/fmpp/FmppTask.kt |  17 +-
 .../adapter/cassandra/CassandraEnumerator.java     |  12 +-
 .../calcite/adapter/cassandra/CassandraFilter.java |   4 +-
 .../calcite/adapter/cassandra/CassandraLimit.java  |   4 +-
 .../calcite/adapter/cassandra/CassandraMethod.java |   1 +
 .../adapter/cassandra/CassandraProject.java        |   4 +-
 .../calcite/adapter/cassandra/CassandraRules.java  |  12 +-
 .../calcite/adapter/cassandra/CassandraSchema.java |   6 +-
 .../adapter/cassandra/CassandraSchemaFactory.java  |   2 +-
 .../calcite/adapter/cassandra/CassandraSort.java   |   2 +-
 .../calcite/adapter/cassandra/CassandraTable.java  |  12 +-
 .../adapter/cassandra/CassandraTableScan.java      |   2 +-
 .../cassandra/CassandraToEnumerableConverter.java  |   7 +-
 .../apache/calcite/test/CassandraExtension.java    |   3 +-
 core/build.gradle.kts                              |   3 -
 core/src/main/codegen/config.fmpp                  | 398 +---------
 core/src/main/codegen/default_config.fmpp          | 425 +++++++++++
 core/src/main/codegen/templates/Parser.jj          | 461 +++++++++---
 .../apache/calcite/adapter/clone/ArrayTable.java   | 160 ++--
 .../apache/calcite/adapter/clone/CloneSchema.java  |   2 +-
 .../apache/calcite/adapter/clone/ColumnLoader.java |  32 +-
 .../apache/calcite/adapter/clone/ListTable.java    |  16 +-
 .../calcite/adapter/enumerable/EnumUtils.java      |  37 +-
 .../adapter/enumerable/EnumerableAggregate.java    |   2 +-
 .../enumerable/EnumerableAggregateBase.java        |  24 +-
 .../enumerable/EnumerableBatchNestedLoopJoin.java  |   2 +-
 .../EnumerableBatchNestedLoopJoinRule.java         |  16 +-
 .../adapter/enumerable/EnumerableBindable.java     |   6 +-
 .../calcite/adapter/enumerable/EnumerableCalc.java |   9 +-
 .../adapter/enumerable/EnumerableCollect.java      |   2 +-
 .../adapter/enumerable/EnumerableConvention.java   |  16 +-
 .../adapter/enumerable/EnumerableCorrelate.java    |   2 +-
 .../adapter/enumerable/EnumerableFilter.java       |   4 +-
 .../enumerable/EnumerableInterpretable.java        |  18 +-
 .../adapter/enumerable/EnumerableInterpreter.java  |   2 +-
 .../adapter/enumerable/EnumerableIntersect.java    |   4 +-
 .../adapter/enumerable/EnumerableLimit.java        |  10 +-
 .../adapter/enumerable/EnumerableLimitSort.java    | 155 ++++
 .../enumerable/EnumerableLimitSortRule.java        |  60 ++
 .../adapter/enumerable/EnumerableMatch.java        |   7 +-
 .../adapter/enumerable/EnumerableMergeJoin.java    | 161 +++-
 .../adapter/enumerable/EnumerableMinus.java        |   4 +-
 .../enumerable/EnumerableNestedLoopJoin.java       |   2 +-
 .../adapter/enumerable/EnumerableProject.java      |   4 +-
 .../adapter/enumerable/EnumerableRelFactories.java |   8 +-
 .../enumerable/EnumerableRelImplementor.java       |   5 +-
 .../adapter/enumerable/EnumerableRules.java        |   3 +
 .../calcite/adapter/enumerable/EnumerableSort.java |   6 +-
 .../adapter/enumerable/EnumerableSortRule.java     |   2 +-
 .../enumerable/EnumerableSortedAggregate.java      |   2 +-
 .../enumerable/EnumerableSortedAggregateRule.java  |   2 +-
 .../enumerable/EnumerableTableFunctionScan.java    |   5 +-
 .../adapter/enumerable/EnumerableTableModify.java  |   2 +-
 .../adapter/enumerable/EnumerableTableScan.java    |   6 +-
 .../adapter/enumerable/EnumerableUncollect.java    |   2 +-
 .../adapter/enumerable/EnumerableUnion.java        |   4 +-
 .../adapter/enumerable/EnumerableUnionRule.java    |   5 +-
 .../adapter/enumerable/EnumerableValues.java       |   2 +-
 .../adapter/enumerable/EnumerableWindow.java       |  60 +-
 .../adapter/enumerable/JavaRelImplementor.java     |   2 +-
 .../calcite/adapter/enumerable/JavaRowFormat.java  |  26 +-
 .../enumerable/LazyAggregateLambdaFactory.java     |   8 +-
 .../adapter/enumerable/NestedBlockBuilderImpl.java |   8 +-
 .../calcite/adapter/enumerable/PhysTypeImpl.java   |  64 +-
 .../ReflectiveCallNotNullImplementor.java          |   2 +-
 .../calcite/adapter/enumerable/RexImpTable.java    |  93 ++-
 .../adapter/enumerable/RexToLixTranslator.java     | 161 ++--
 .../adapter/enumerable/StrictAggImplementor.java   |   8 +-
 .../enumerable/StrictWinAggImplementor.java        |   2 +-
 .../adapter/enumerable/impl/AggAddContextImpl.java |   4 +-
 .../enumerable/impl/AggResetContextImpl.java       |   4 +-
 .../enumerable/impl/AggResultContextImpl.java      |   4 +-
 .../enumerable/impl/WinAggAddContextImpl.java      |   8 +-
 .../enumerable/impl/WinAggResetContextImpl.java    |  12 +-
 .../enumerable/impl/WinAggResultContextImpl.java   |  28 +-
 .../adapter/java/AbstractQueryableTable.java       |   4 +-
 .../calcite/adapter/java/ReflectiveSchema.java     |  30 +-
 .../calcite/adapter/jdbc/JdbcImplementor.java      |   1 +
 .../calcite/adapter/jdbc/JdbcQueryProvider.java    |   2 +-
 .../org/apache/calcite/adapter/jdbc/JdbcRules.java |  38 +-
 .../apache/calcite/adapter/jdbc/JdbcSchema.java    |  22 +-
 .../org/apache/calcite/adapter/jdbc/JdbcTable.java |  16 +-
 .../apache/calcite/adapter/jdbc/JdbcTableScan.java |   2 +-
 .../adapter/jdbc/JdbcToEnumerableConverter.java    |   7 +-
 .../org/apache/calcite/adapter/jdbc/JdbcUtils.java |   4 +-
 .../config/CalciteConnectionConfigImpl.java        |  50 +-
 .../calcite/config/CalciteConnectionProperty.java  |  13 +-
 .../{package-info.java => CharLiteralStyle.java}   |  19 +-
 .../main/java/org/apache/calcite/config/Lex.java   |  40 +-
 .../apache/calcite/interpreter/AggregateNode.java  |  28 +-
 .../calcite/interpreter/BindableConvention.java    |  14 +-
 .../org/apache/calcite/interpreter/Bindables.java  |  86 +--
 .../org/apache/calcite/interpreter/FilterNode.java |   2 +-
 .../interpreter/InterpretableConvention.java       |  14 +-
 .../interpreter/InterpretableConverter.java        |   4 +-
 .../apache/calcite/interpreter/Interpreter.java    |  42 +-
 .../apache/calcite/interpreter/Interpreters.java   |   4 +-
 .../calcite/interpreter/JaninoRexCompiler.java     |   2 +-
 .../org/apache/calcite/interpreter/JoinNode.java   |   6 +-
 .../org/apache/calcite/interpreter/MatchNode.java  |   2 +-
 .../apache/calcite/interpreter/ProjectNode.java    |   2 +-
 .../org/apache/calcite/interpreter/SetOpNode.java  |   3 +
 .../org/apache/calcite/interpreter/SortNode.java   |   6 +-
 .../org/apache/calcite/interpreter/Source.java     |   2 +-
 .../apache/calcite/interpreter/TableScanNode.java  |   2 +-
 .../org/apache/calcite/interpreter/UnionNode.java  |   2 +-
 .../org/apache/calcite/interpreter/ValuesNode.java |   2 +-
 .../org/apache/calcite/interpreter/WindowNode.java |   2 +-
 .../apache/calcite/jdbc/CachingCalciteSchema.java  |  41 +-
 .../org/apache/calcite/jdbc/CalciteConnection.java |   4 +-
 .../apache/calcite/jdbc/CalciteConnectionImpl.java |  85 ++-
 .../org/apache/calcite/jdbc/CalciteFactory.java    |   6 +-
 .../apache/calcite/jdbc/CalciteJdbc41Factory.java  |  48 +-
 .../org/apache/calcite/jdbc/CalciteMetaImpl.java   |  42 +-
 .../org/apache/calcite/jdbc/CalcitePrepare.java    |  10 +-
 .../org/apache/calcite/jdbc/CalciteSchema.java     |  62 +-
 .../main/java/org/apache/calcite/jdbc/Driver.java  |   2 +
 .../apache/calcite/jdbc/JavaTypeFactoryImpl.java   |  38 +-
 .../org/apache/calcite/jdbc/MetadataSchema.java    |   8 +-
 .../apache/calcite/jdbc/SimpleCalciteSchema.java   |  27 +-
 .../CachingLatticeStatisticProvider.java           |   7 +-
 .../DelegatingLatticeStatisticProvider.java        |   2 +-
 .../org/apache/calcite/materialize/Lattice.java    |  27 +-
 .../calcite/materialize/LatticeChildNode.java      |   2 +-
 .../calcite/materialize/LatticeRootNode.java       |   2 +-
 .../apache/calcite/materialize/LatticeSpace.java   |   3 +-
 .../calcite/materialize/LatticeSuggester.java      |  29 +-
 .../materialize/MaterializationService.java        |  15 +-
 .../apache/calcite/materialize/MutableNode.java    |   2 +-
 .../ProfilerLatticeStatisticProvider.java          |   2 +-
 .../materialize/SqlLatticeStatisticProvider.java   |   2 +-
 .../java/org/apache/calcite/materialize/Step.java  |   5 +-
 .../apache/calcite/materialize/TileSuggester.java  |  38 +-
 .../org/apache/calcite/model/JsonCustomSchema.java |   2 +-
 .../org/apache/calcite/model/JsonCustomTable.java  |   2 +-
 .../java/org/apache/calcite/model/JsonView.java    |   2 +-
 .../org/apache/calcite/model/ModelHandler.java     |   2 +
 .../apache/calcite/plan/AbstractRelOptPlanner.java |  56 +-
 .../apache/calcite/plan/CommonRelSubExprRule.java  |   2 +-
 .../java/org/apache/calcite/plan/Contexts.java     |   4 +-
 .../java/org/apache/calcite/plan/Convention.java   |  14 +-
 .../apache/calcite/plan/ConventionTraitDef.java    |  14 +-
 .../calcite/plan/MulticastRelOptListener.java      |  10 +-
 .../org/apache/calcite/plan/RelCompositeTrait.java |   6 +-
 .../apache/calcite/plan/RelOptAbstractTable.java   |  28 +-
 .../org/apache/calcite/plan/RelOptCluster.java     |   4 +-
 .../java/org/apache/calcite/plan/RelOptCost.java   |   3 +-
 .../org/apache/calcite/plan/RelOptCostImpl.java    |  37 +-
 .../calcite/plan/RelOptMaterializations.java       |   4 +-
 .../apache/calcite/plan/RelOptPredicateList.java   |   5 +-
 .../java/org/apache/calcite/plan/RelOptRule.java   |  18 +-
 .../org/apache/calcite/plan/RelOptRuleOperand.java |   4 +-
 .../java/org/apache/calcite/plan/RelOptUtil.java   |  86 ++-
 .../main/java/org/apache/calcite/plan/RelRule.java |  22 +-
 .../java/org/apache/calcite/plan/RelTrait.java     |   6 +-
 .../java/org/apache/calcite/plan/RelTraitDef.java  |   2 +
 .../calcite/plan/RelTraitPropagationVisitor.java   |   2 +-
 .../java/org/apache/calcite/plan/RelTraitSet.java  |  14 +-
 .../apache/calcite/plan/RexImplicationChecker.java |   8 +-
 .../main/java/org/apache/calcite/plan/Strong.java  |   2 +-
 .../apache/calcite/plan/SubstitutionVisitor.java   |  85 ++-
 .../org/apache/calcite/plan/TableAccessMap.java    |   2 +-
 .../org/apache/calcite/plan/ViewExpanders.java     |  12 +-
 .../apache/calcite/plan/VisitorDataContext.java    |   8 +-
 .../apache/calcite/plan/hep/HepInstruction.java    |  30 +-
 .../org/apache/calcite/plan/hep/HepPlanner.java    |  22 +-
 .../calcite/plan/hep/HepRelMetadataProvider.java   |   4 +-
 .../calcite/plan/volcano/AbstractConverter.java    |   6 +-
 .../org/apache/calcite/plan/volcano/Dumpers.java   |   2 +-
 .../calcite/plan/volcano/IterativeRuleQueue.java   |   8 +-
 .../org/apache/calcite/plan/volcano/RelSubset.java |   6 +-
 .../calcite/plan/volcano/TopDownRuleDriver.java    |   7 +-
 .../calcite/plan/volcano/TopDownRuleQueue.java     |  20 +-
 .../apache/calcite/plan/volcano/VolcanoCost.java   |  45 +-
 .../calcite/plan/volcano/VolcanoPlanner.java       |  32 +-
 .../plan/volcano/VolcanoRelMetadataProvider.java   |   4 +-
 .../calcite/plan/volcano/VolcanoRuleCall.java      |   5 +-
 .../calcite/plan/volcano/VolcanoRuleMatch.java     |   2 +-
 .../calcite/prepare/CalciteCatalogReader.java      |  34 +-
 .../calcite/prepare/CalciteMaterializer.java       |  38 +-
 .../apache/calcite/prepare/CalcitePrepareImpl.java |  75 +-
 .../org/apache/calcite/prepare/PlannerImpl.java    |  42 +-
 .../java/org/apache/calcite/prepare/Prepare.java   |  63 +-
 .../calcite/prepare/QueryableRelBuilder.java       | 210 +++---
 .../apache/calcite/prepare/RelOptTableImpl.java    |  43 +-
 .../java/org/apache/calcite/profile/Profiler.java  |   8 +-
 .../org/apache/calcite/profile/ProfilerImpl.java   |  22 +-
 .../org/apache/calcite/profile/SimpleProfiler.java |  11 +-
 .../org/apache/calcite/rel/AbstractRelNode.java    |  74 +-
 .../main/java/org/apache/calcite/rel/BiRel.java    |   8 +-
 .../org/apache/calcite/rel/RelCollationImpl.java   |  18 +-
 .../apache/calcite/rel/RelCollationTraitDef.java   |  10 +-
 .../java/org/apache/calcite/rel/RelCollations.java |  54 +-
 .../org/apache/calcite/rel/RelDistribution.java    |   2 +-
 .../calcite/rel/RelDistributionTraitDef.java       |  10 +-
 .../org/apache/calcite/rel/RelDistributions.java   |  12 +-
 .../org/apache/calcite/rel/RelFieldCollation.java  |   2 +-
 .../main/java/org/apache/calcite/rel/RelNode.java  |  23 +-
 .../main/java/org/apache/calcite/rel/RelNodes.java |   2 +-
 .../org/apache/calcite/rel/RelShuttleImpl.java     |  34 +-
 .../java/org/apache/calcite/rel/SingleRel.java     |   4 +-
 .../apache/calcite/rel/convert/ConverterImpl.java  |   4 +-
 .../apache/calcite/rel/convert/ConverterRule.java  |  10 +-
 .../apache/calcite/rel/convert/NoneConverter.java  |   2 +-
 .../org/apache/calcite/rel/core/Aggregate.java     |  12 +-
 .../org/apache/calcite/rel/core/AggregateCall.java |   2 +-
 .../java/org/apache/calcite/rel/core/Calc.java     |   6 +-
 .../org/apache/calcite/rel/core/Correlate.java     |   2 +-
 .../org/apache/calcite/rel/core/CorrelationId.java |   4 +-
 .../java/org/apache/calcite/rel/core/EquiJoin.java |  12 +-
 .../java/org/apache/calcite/rel/core/Exchange.java |   4 +-
 .../java/org/apache/calcite/rel/core/Filter.java   |   4 +-
 .../org/apache/calcite/rel/core/Intersect.java     |   2 +-
 .../java/org/apache/calcite/rel/core/Match.java    |   7 +-
 .../java/org/apache/calcite/rel/core/Minus.java    |   2 +-
 .../java/org/apache/calcite/rel/core/Project.java  |   9 +-
 .../org/apache/calcite/rel/core/RelFactories.java  |  66 +-
 .../org/apache/calcite/rel/core/RepeatUnion.java   |   4 +-
 .../java/org/apache/calcite/rel/core/Sample.java   |   2 +-
 .../java/org/apache/calcite/rel/core/SetOp.java    |   3 +-
 .../java/org/apache/calcite/rel/core/Snapshot.java |   2 +-
 .../java/org/apache/calcite/rel/core/Sort.java     |  14 +-
 .../org/apache/calcite/rel/core/SortExchange.java  |   4 +-
 .../apache/calcite/rel/core/TableFunctionScan.java |   4 +-
 .../org/apache/calcite/rel/core/TableModify.java   |   2 +-
 .../org/apache/calcite/rel/core/TableSpool.java    |   2 +-
 .../org/apache/calcite/rel/core/Uncollect.java     |   2 +-
 .../java/org/apache/calcite/rel/core/Values.java   |   6 +-
 .../java/org/apache/calcite/rel/core/Window.java   |  18 +-
 .../calcite/rel/externalize/RelDotWriter.java      | 291 +++++++
 .../apache/calcite/rel/externalize/RelJson.java    |   4 +-
 .../calcite/rel/externalize/RelJsonReader.java     |  54 +-
 .../calcite/rel/externalize/RelJsonWriter.java     |  20 +-
 .../calcite/rel/externalize/RelWriterImpl.java     |  17 +-
 .../calcite/rel/externalize/RelXmlWriter.java      |   2 +-
 .../apache/calcite/rel/hint/HintStrategyTable.java |   6 +-
 .../calcite/rel/hint/NodeTypeHintPredicate.java    |   1 +
 .../apache/calcite/rel/logical/LogicalFilter.java  |   2 +-
 .../apache/calcite/rel/logical/LogicalJoin.java    |   4 +-
 .../rel/logical/LogicalTableFunctionScan.java      |   2 +-
 .../apache/calcite/rel/logical/LogicalUnion.java   |   2 +-
 .../apache/calcite/rel/logical/LogicalWindow.java  |   8 +-
 .../rel/metadata/CachingRelMetadataProvider.java   |   6 +-
 .../rel/metadata/ChainedRelMetadataProvider.java   |  12 +-
 .../rel/metadata/JaninoRelMetadataProvider.java    |   7 +-
 .../calcite/rel/metadata/MetadataFactoryImpl.java  |   5 +-
 .../metadata/ReflectiveRelMetadataProvider.java    |   7 +-
 .../calcite/rel/metadata/RelColumnOrigin.java      |   4 +-
 .../calcite/rel/metadata/RelMdAllPredicates.java   |  16 +-
 .../calcite/rel/metadata/RelMdCollation.java       |  54 +-
 .../calcite/rel/metadata/RelMdColumnOrigins.java   |   8 +-
 .../rel/metadata/RelMdColumnUniqueness.java        |  24 +-
 .../rel/metadata/RelMdDistinctRowCount.java        |  30 +-
 .../calcite/rel/metadata/RelMdDistribution.java    |   2 +-
 .../rel/metadata/RelMdExplainVisibility.java       |   2 +-
 .../rel/metadata/RelMdExpressionLineage.java       |   5 +-
 .../calcite/rel/metadata/RelMdLowerBoundCost.java  |   2 +-
 .../calcite/rel/metadata/RelMdMaxRowCount.java     |   2 +-
 .../apache/calcite/rel/metadata/RelMdMemory.java   |   2 +-
 .../calcite/rel/metadata/RelMdMinRowCount.java     |   2 +-
 .../calcite/rel/metadata/RelMdNodeTypes.java       |   2 +-
 .../calcite/rel/metadata/RelMdParallelism.java     |   2 +-
 .../rel/metadata/RelMdPercentageOriginalRows.java  |   2 +-
 .../calcite/rel/metadata/RelMdPopulationSize.java  |   2 +-
 .../calcite/rel/metadata/RelMdPredicates.java      |  22 +-
 .../apache/calcite/rel/metadata/RelMdRowCount.java |   3 +-
 .../calcite/rel/metadata/RelMdSelectivity.java     |   2 +-
 .../org/apache/calcite/rel/metadata/RelMdSize.java |   4 +-
 .../calcite/rel/metadata/RelMdTableReferences.java |   2 +-
 .../calcite/rel/metadata/RelMdUniqueKeys.java      |  77 +-
 .../org/apache/calcite/rel/metadata/RelMdUtil.java |  48 +-
 .../calcite/rel/metadata/RelMetadataQuery.java     |   2 +-
 .../apache/calcite/rel/mutable/MutableBiRel.java   |   6 +-
 .../apache/calcite/rel/mutable/MutableLeafRel.java |   6 +-
 .../apache/calcite/rel/mutable/MutableMatch.java   |   6 +-
 .../calcite/rel/mutable/MutableMultiRel.java       |   5 +-
 .../org/apache/calcite/rel/mutable/MutableRel.java |   4 +-
 .../apache/calcite/rel/mutable/MutableRels.java    |   8 +-
 .../calcite/rel/mutable/MutableSingleRel.java      |   6 +-
 .../calcite/rel/rel2sql/RelToSqlConverter.java     |  29 +-
 .../apache/calcite/rel/rel2sql/SqlImplementor.java | 342 ++++++---
 .../AggregateExpandDistinctAggregatesRule.java     |   8 +-
 .../rel/rules/AggregateExtractProjectRule.java     |  31 +-
 .../calcite/rel/rules/AggregateJoinRemoveRule.java |   2 +-
 .../rel/rules/AggregateJoinTransposeRule.java      |   7 +-
 .../rel/rules/AggregateProjectMergeRule.java       |   4 +-
 .../rel/rules/AggregateReduceFunctionsRule.java    |   2 +-
 .../calcite/rel/rules/AggregateStarTableRule.java  |   2 +-
 .../apache/calcite/rel/rules/CalcRelSplitter.java  |  22 +-
 .../apache/calcite/rel/rules/DateRangeRules.java   |  18 +-
 .../org/apache/calcite/rel/rules/EquiJoin.java     |   2 +-
 .../rules/FilterRemoveIsNotDistinctFromRule.java   |   2 +-
 .../calcite/rel/rules/JoinAssociateRule.java       |   1 +
 .../calcite/rel/rules/JoinExtractFilterRule.java   |   2 +-
 .../calcite/rel/rules/JoinToMultiJoinRule.java     |   6 +-
 .../org/apache/calcite/rel/rules/LoptJoinTree.java |   4 +-
 .../calcite/rel/rules/LoptSemiJoinOptimizer.java   |   4 +-
 .../org/apache/calcite/rel/rules/MultiJoin.java    |   9 +-
 .../rel/rules/MultiJoinOptimizeBushyRule.java      |   2 +-
 .../rel/rules/ProjectAggregateMergeRule.java       |   3 +
 .../calcite/rel/rules/ProjectJoinRemoveRule.java   |   2 +-
 .../calcite/rel/rules/ProjectTableScanRule.java    |   2 +-
 .../calcite/rel/rules/ProjectToWindowRule.java     |  29 +-
 .../apache/calcite/rel/rules/PushProjector.java    |  16 +-
 .../calcite/rel/rules/ReduceDecimalsRule.java      |  14 +-
 .../calcite/rel/rules/ReduceExpressionsRule.java   |   7 +-
 .../org/apache/calcite/rel/rules/SemiJoinRule.java |  21 +-
 .../calcite/rel/rules/SubQueryRemoveRule.java      |  13 +-
 .../apache/calcite/rel/rules/ValuesReduceRule.java |   2 +-
 .../materialize/MaterializedViewAggregateRule.java |   1 +
 .../materialize/MaterializedViewJoinRule.java      |   2 +-
 .../materialize/MaterializedViewOnlyJoinRule.java  |   2 +-
 .../MaterializedViewProjectFilterRule.java         |   4 +-
 .../MaterializedViewProjectJoinRule.java           |   4 +-
 .../rules/materialize/MaterializedViewRule.java    |  16 +-
 .../calcite/rel/type/DelegatingTypeSystem.java     |  32 +-
 .../apache/calcite/rel/type/DynamicRecordType.java |   2 +-
 .../calcite/rel/type/DynamicRecordTypeImpl.java    |   2 +-
 .../org/apache/calcite/rel/type/RelCrossType.java  |   6 +-
 .../org/apache/calcite/rel/type/RelDataType.java   |   6 +-
 .../calcite/rel/type/RelDataTypeFactoryImpl.java   |  50 +-
 .../calcite/rel/type/RelDataTypeFieldImpl.java     |  16 +-
 .../apache/calcite/rel/type/RelDataTypeImpl.java   |  59 +-
 .../calcite/rel/type/RelDataTypeSystemImpl.java    |   6 +-
 .../org/apache/calcite/rel/type/RelRecordType.java |   4 +-
 .../java/org/apache/calcite/rex/LogicVisitor.java  |   5 +
 .../java/org/apache/calcite/rex/RexAnalyzer.java   |   5 +-
 .../org/apache/calcite/rex/RexBiVisitorImpl.java   |  20 +-
 .../java/org/apache/calcite/rex/RexBuilder.java    | 169 ++++-
 .../main/java/org/apache/calcite/rex/RexCall.java  |   9 +-
 .../org/apache/calcite/rex/RexCallBinding.java     |   8 +-
 .../java/org/apache/calcite/rex/RexCopier.java     |  18 +-
 .../org/apache/calcite/rex/RexCorrelVariable.java  |   4 +-
 .../org/apache/calcite/rex/RexDynamicParam.java    |   6 +-
 .../org/apache/calcite/rex/RexExecutorImpl.java    |   4 +-
 .../org/apache/calcite/rex/RexFieldAccess.java     |   8 +-
 .../java/org/apache/calcite/rex/RexInputRef.java   |   4 +-
 .../org/apache/calcite/rex/RexInterpreter.java     |  38 +-
 .../java/org/apache/calcite/rex/RexLiteral.java    | 318 ++++----
 .../java/org/apache/calcite/rex/RexLocalRef.java   |   8 +-
 .../org/apache/calcite/rex/RexMultisetUtil.java    |   2 +-
 .../main/java/org/apache/calcite/rex/RexNode.java  |   2 +-
 .../main/java/org/apache/calcite/rex/RexOver.java  |   6 +-
 .../apache/calcite/rex/RexPermutationShuttle.java  |   2 +-
 .../java/org/apache/calcite/rex/RexProgram.java    |  30 +-
 .../org/apache/calcite/rex/RexProgramBuilder.java  |  29 +-
 .../java/org/apache/calcite/rex/RexRangeRef.java   |   6 +-
 .../java/org/apache/calcite/rex/RexShuttle.java    |  20 +-
 .../java/org/apache/calcite/rex/RexSimplify.java   | 399 ++++++++--
 .../main/java/org/apache/calcite/rex/RexSlot.java  |   4 +-
 .../rex/RexSqlReflectiveConvertletTable.java       |   2 +-
 .../calcite/rex/RexSqlStandardConvertletTable.java |   2 +-
 .../java/org/apache/calcite/rex/RexSubQuery.java   |   4 +-
 .../calcite/rex/RexToSqlNodeConverterImpl.java     |  10 +-
 .../main/java/org/apache/calcite/rex/RexUtil.java  | 220 +++++-
 .../java/org/apache/calcite/rex/RexVariable.java   |   2 +-
 .../org/apache/calcite/rex/RexVisitorImpl.java     |  20 +-
 .../java/org/apache/calcite/rex/RexWindow.java     |   6 +-
 .../calcite/runtime/AbstractImmutableList.java     |  34 +-
 .../org/apache/calcite/runtime/ArrayBindable.java  |   2 +-
 .../apache/calcite/runtime/ArrayComparator.java    |   2 +-
 .../calcite/runtime/ArrayEnumeratorCursor.java     |   2 +-
 .../apache/calcite/runtime/CalciteResource.java    |   9 +
 .../java/org/apache/calcite/runtime/ConsList.java  |  14 +-
 .../org/apache/calcite/runtime/Enumerables.java    |  10 +-
 .../apache/calcite/runtime/EnumeratorCursor.java   |   6 +-
 .../java/org/apache/calcite/runtime/FlatLists.java | 165 ++--
 .../org/apache/calcite/runtime/GeoFunctions.java   |   6 +-
 .../org/apache/calcite/runtime/Geometries.java     |  24 +-
 .../org/apache/calcite/runtime/HilbertCurve2D.java |   6 +-
 .../main/java/org/apache/calcite/runtime/Hook.java |   4 +-
 .../java/org/apache/calcite/runtime/HttpUtils.java |  17 +-
 .../org/apache/calcite/runtime/JsonFunctions.java  |  17 +-
 .../main/java/org/apache/calcite/runtime/Like.java |   2 +-
 .../java/org/apache/calcite/runtime/Matcher.java   |   4 +-
 .../calcite/runtime/ObjectEnumeratorCursor.java    |   8 +-
 .../java/org/apache/calcite/runtime/Pattern.java   |   5 +-
 .../org/apache/calcite/runtime/PredicateImpl.java  |   4 +-
 .../calcite/runtime/RecordEnumeratorCursor.java    |   2 +-
 .../java/org/apache/calcite/runtime/Resources.java |  26 +-
 .../calcite/runtime/ResultSetEnumerable.java       |  10 +-
 .../org/apache/calcite/runtime/SortedMultiMap.java |   6 +-
 .../calcite/runtime/SpaceFillingCurve2D.java       |  12 +-
 .../org/apache/calcite/runtime/SqlFunctions.java   |  75 +-
 .../calcite/runtime/TrustAllSslSocketFactory.java  |   7 +-
 .../main/java/org/apache/calcite/runtime/Unit.java |   4 +-
 .../java/org/apache/calcite/schema/SchemaPlus.java |   4 +-
 .../java/org/apache/calcite/schema/Schemas.java    |  45 +-
 .../java/org/apache/calcite/schema/Statistic.java  |  24 +-
 .../java/org/apache/calcite/schema/Statistics.java |  63 +-
 .../apache/calcite/schema/impl/AbstractSchema.java |  24 +-
 .../apache/calcite/schema/impl/AbstractTable.java  |   6 +-
 .../schema/impl/AbstractTableQueryable.java        |  10 +-
 .../calcite/schema/impl/AggregateFunctionImpl.java |   6 +-
 .../calcite/schema/impl/DelegatingSchema.java      |  22 +-
 .../calcite/schema/impl/ListTransientTable.java    |   6 +-
 .../calcite/schema/impl/LongSchemaVersion.java     |   8 +-
 .../calcite/schema/impl/ModifiableViewTable.java   |   8 +-
 .../schema/impl/ReflectiveFunctionBase.java        |  12 +-
 .../calcite/schema/impl/ScalarFunctionImpl.java    |   6 +-
 .../org/apache/calcite/schema/impl/StarTable.java  |   4 +-
 .../calcite/schema/impl/TableFunctionImpl.java     |   8 +-
 .../apache/calcite/schema/impl/TableMacroImpl.java |   2 +-
 .../org/apache/calcite/schema/impl/ViewTable.java  |   6 +-
 .../apache/calcite/schema/impl/ViewTableMacro.java |   4 +-
 .../calcite/sql/ExplicitOperatorBinding.java       |   8 +-
 .../calcite/sql/SqlAbstractDateTimeLiteral.java    |   6 +-
 .../java/org/apache/calcite/sql/SqlAccessType.java |   2 +-
 .../org/apache/calcite/sql/SqlAggFunction.java     |   2 +-
 .../main/java/org/apache/calcite/sql/SqlAlter.java |   4 +-
 .../java/org/apache/calcite/sql/SqlAsOperator.java |   8 +-
 .../java/org/apache/calcite/sql/SqlBasicCall.java  |   6 +-
 .../org/apache/calcite/sql/SqlBinaryOperator.java  |  11 +-
 .../apache/calcite/sql/SqlBinaryStringLiteral.java |   4 +-
 .../main/java/org/apache/calcite/sql/SqlCall.java  |  14 +-
 .../org/apache/calcite/sql/SqlCallBinding.java     |  16 +-
 .../apache/calcite/sql/SqlCharStringLiteral.java   |   4 +-
 .../java/org/apache/calcite/sql/SqlCollation.java  |   2 +-
 .../java/org/apache/calcite/sql/SqlCreate.java     |   4 +-
 .../org/apache/calcite/sql/SqlDataTypeSpec.java    |  27 +-
 .../org/apache/calcite/sql/SqlDateLiteral.java     |   6 +-
 .../main/java/org/apache/calcite/sql/SqlDdl.java   |   4 +-
 .../java/org/apache/calcite/sql/SqlDelete.java     |   6 +-
 .../java/org/apache/calcite/sql/SqlDialect.java    |  93 ++-
 .../apache/calcite/sql/SqlDialectFactoryImpl.java  |   9 +-
 .../main/java/org/apache/calcite/sql/SqlDrop.java  |   4 +-
 .../org/apache/calcite/sql/SqlDynamicParam.java    |  14 +-
 .../java/org/apache/calcite/sql/SqlExplain.java    |   6 +-
 .../org/apache/calcite/sql/SqlExplainFormat.java   |   5 +-
 .../org/apache/calcite/sql/SqlFilterOperator.java  |   4 +-
 .../java/org/apache/calcite/sql/SqlFunction.java   |   8 +-
 .../apache/calcite/sql/SqlFunctionCategory.java    |   1 +
 .../apache/calcite/sql/SqlFunctionalOperator.java  |   2 +-
 .../main/java/org/apache/calcite/sql/SqlHint.java  |   4 +-
 .../apache/calcite/sql/SqlHopTableFunction.java    |   3 +
 .../java/org/apache/calcite/sql/SqlIdentifier.java |  19 +-
 .../org/apache/calcite/sql/SqlInfixOperator.java   |   2 +-
 .../java/org/apache/calcite/sql/SqlInsert.java     |   6 +-
 .../org/apache/calcite/sql/SqlIntervalLiteral.java |  10 +-
 .../apache/calcite/sql/SqlIntervalQualifier.java   |  42 +-
 .../apache/calcite/sql/SqlJdbcFunctionCall.java    |  16 +-
 .../main/java/org/apache/calcite/sql/SqlJoin.java  |   8 +-
 .../main/java/org/apache/calcite/sql/SqlKind.java  |  16 +
 .../java/org/apache/calcite/sql/SqlLiteral.java    |  22 +-
 .../main/java/org/apache/calcite/sql/SqlMerge.java |   6 +-
 .../main/java/org/apache/calcite/sql/SqlNode.java  |  38 +-
 .../java/org/apache/calcite/sql/SqlNodeList.java   |  18 +-
 .../calcite/sql/SqlNullTreatmentOperator.java      |   2 +-
 .../org/apache/calcite/sql/SqlNumericLiteral.java  |   6 +-
 .../java/org/apache/calcite/sql/SqlOperator.java   |   4 +-
 .../org/apache/calcite/sql/SqlOperatorBinding.java |   4 +-
 .../java/org/apache/calcite/sql/SqlOrderBy.java    |   8 +-
 .../org/apache/calcite/sql/SqlOverOperator.java    |   9 +-
 .../main/java/org/apache/calcite/sql/SqlPivot.java | 197 +++++
 .../org/apache/calcite/sql/SqlPostfixOperator.java |   6 +-
 .../org/apache/calcite/sql/SqlPrefixOperator.java  |   9 +-
 .../calcite/sql/SqlProcedureCallOperator.java      |   2 +-
 .../java/org/apache/calcite/sql/SqlSampleSpec.java |   4 +-
 .../java/org/apache/calcite/sql/SqlSelect.java     |   4 +-
 .../org/apache/calcite/sql/SqlSelectOperator.java  |  10 +-
 .../calcite/sql/SqlSessionTableFunction.java       |  31 +-
 .../org/apache/calcite/sql/SqlSetOperator.java     |   2 +-
 .../org/apache/calcite/sql/SqlSpecialOperator.java |   4 +-
 .../calcite/sql/SqlSplittableAggFunction.java      |  30 +-
 .../java/org/apache/calcite/sql/SqlStateCodes.java |   1 +
 .../java/org/apache/calcite/sql/SqlSyntax.java     |  16 +-
 .../java/org/apache/calcite/sql/SqlTableRef.java   |   4 +-
 .../org/apache/calcite/sql/SqlTimeLiteral.java     |   6 +-
 .../apache/calcite/sql/SqlTimestampLiteral.java    |   6 +-
 .../apache/calcite/sql/SqlTumbleTableFunction.java |   5 +-
 .../org/apache/calcite/sql/SqlTypeNameSpec.java    |   2 +-
 .../org/apache/calcite/sql/SqlUnnestOperator.java  |   2 +-
 .../java/org/apache/calcite/sql/SqlUpdate.java     |   6 +-
 .../main/java/org/apache/calcite/sql/SqlUtil.java  |  67 ++
 .../org/apache/calcite/sql/SqlValuesOperator.java  |   2 +-
 .../java/org/apache/calcite/sql/SqlWindow.java     |  17 +-
 .../apache/calcite/sql/SqlWindowTableFunction.java |  30 +-
 .../main/java/org/apache/calcite/sql/SqlWith.java  |   4 +-
 .../java/org/apache/calcite/sql/SqlWithItem.java   |   6 +-
 .../apache/calcite/sql/SqlWithinGroupOperator.java |   4 +-
 .../java/org/apache/calcite/sql/SqlWriter.java     |   8 +-
 .../org/apache/calcite/sql/advise/SqlAdvisor.java  |   8 +-
 .../sql/advise/SqlAdvisorGetHintsFunction.java     |   8 +-
 .../sql/advise/SqlAdvisorGetHintsFunction2.java    |   8 +-
 .../calcite/sql/advise/SqlAdvisorValidator.java    |  22 +-
 .../apache/calcite/sql/advise/SqlSimpleParser.java |  25 +-
 .../calcite/sql/ddl/SqlCreateForeignSchema.java    |   4 +-
 .../calcite/sql/ddl/SqlCreateMaterializedView.java |   2 +-
 .../org/apache/calcite/sql/ddl/SqlCreateTable.java |   2 +-
 .../org/apache/calcite/sql/ddl/SqlCreateView.java  |   2 +-
 .../org/apache/calcite/sql/ddl/SqlDropObject.java  |   2 +-
 .../org/apache/calcite/sql/ddl/SqlDropSchema.java  |   2 +-
 .../calcite/sql/dialect/BigQuerySqlDialect.java    |  15 +
 .../calcite/sql/dialect/ClickHouseSqlDialect.java  |   2 +
 .../apache/calcite/sql/dialect/HiveSqlDialect.java |   6 +
 .../calcite/sql/dialect/JethroDataSqlDialect.java  |   4 +-
 .../calcite/sql/dialect/MysqlSqlDialect.java       |   6 +-
 .../calcite/sql/dialect/PrestoSqlDialect.java      |   2 +
 .../calcite/sql/fun/SqlAbstractTimeFunction.java   |   6 +-
 .../calcite/sql/fun/SqlBaseContextVariable.java    |   4 +-
 .../apache/calcite/sql/fun/SqlBetweenOperator.java |  17 +-
 .../calcite/sql/fun/SqlBitOpAggFunction.java       |  19 +-
 .../java/org/apache/calcite/sql/fun/SqlCase.java   |   4 +-
 .../apache/calcite/sql/fun/SqlCaseOperator.java    |  28 +-
 .../apache/calcite/sql/fun/SqlCastFunction.java    |  39 +-
 .../calcite/sql/fun/SqlCoalesceFunction.java       |   2 +-
 .../calcite/sql/fun/SqlColumnListConstructor.java  |   2 +-
 .../apache/calcite/sql/fun/SqlConvertFunction.java |   6 +-
 .../calcite/sql/fun/SqlCountAggFunction.java       |   6 +-
 .../calcite/sql/fun/SqlCurrentDateFunction.java    |   4 +-
 .../calcite/sql/fun/SqlCursorConstructor.java      |   6 +-
 .../calcite/sql/fun/SqlDatePartFunction.java       |   6 +-
 .../calcite/sql/fun/SqlDatetimePlusOperator.java   |   2 +-
 .../sql/fun/SqlDatetimeSubtractionOperator.java    |   2 +-
 .../org/apache/calcite/sql/fun/SqlDotOperator.java |   6 +-
 .../apache/calcite/sql/fun/SqlExtractFunction.java |   7 +-
 .../sql/fun/SqlFirstLastValueAggFunction.java      |   4 +-
 .../apache/calcite/sql/fun/SqlFloorFunction.java   |   3 +-
 .../apache/calcite/sql/fun/SqlGeoFunctions.java    |  10 +-
 .../calcite/sql/fun/SqlHistogramAggFunction.java   |   4 +-
 .../org/apache/calcite/sql/fun/SqlInOperator.java  |   7 +-
 .../calcite/sql/fun/SqlInternalOperators.java      |  59 ++
 .../sql/fun/SqlLibraryOperatorTableFactory.java    |   8 +-
 .../apache/calcite/sql/fun/SqlLikeOperator.java    |   8 +-
 .../calcite/sql/fun/SqlLiteralChainOperator.java   |  15 +-
 .../calcite/sql/fun/SqlMapValueConstructor.java    |   8 +-
 .../calcite/sql/fun/SqlMinMaxAggFunction.java      |   4 +-
 .../sql/fun/SqlMonotonicBinaryOperator.java        |   4 +
 .../sql/fun/SqlMultisetMemberOfOperator.java       |  14 +-
 .../sql/fun/SqlMultisetQueryConstructor.java       |  16 +-
 .../calcite/sql/fun/SqlMultisetSetOperator.java    |   1 +
 .../sql/fun/SqlMultisetValueConstructor.java       |  11 +-
 .../org/apache/calcite/sql/fun/SqlNewOperator.java |   4 +-
 .../apache/calcite/sql/fun/SqlNullifFunction.java  |   2 +-
 .../calcite/sql/fun/SqlOverlapsOperator.java       |   6 +-
 .../apache/calcite/sql/fun/SqlOverlayFunction.java |   6 +-
 .../calcite/sql/fun/SqlPositionFunction.java       |   6 +-
 .../calcite/sql/fun/SqlPosixRegexOperator.java     |   8 +-
 .../apache/calcite/sql/fun/SqlRandFunction.java    |   4 +-
 .../calcite/sql/fun/SqlRandIntegerFunction.java    |   4 +-
 .../apache/calcite/sql/fun/SqlRollupOperator.java  |   2 +
 .../org/apache/calcite/sql/fun/SqlRowOperator.java |  10 +-
 ...ageSizeFunction.java => SqlSearchOperator.java} |  21 +-
 .../calcite/sql/fun/SqlSingleValueAggFunction.java |   4 +-
 .../calcite/sql/fun/SqlStdOperatorTable.java       |  21 +-
 .../calcite/sql/fun/SqlSubstringFunction.java      |  19 +-
 .../apache/calcite/sql/fun/SqlSumAggFunction.java  |   4 +-
 .../sql/fun/SqlSumEmptyIsZeroAggFunction.java      |   4 +-
 .../apache/calcite/sql/fun/SqlThrowOperator.java   |   2 +-
 .../apache/calcite/sql/fun/SqlTrimFunction.java    |   8 +-
 .../calcite/sql/parser/SqlAbstractParserImpl.java  |  69 +-
 .../calcite/sql/parser/SqlParseException.java      |   2 +-
 .../org/apache/calcite/sql/parser/SqlParser.java   | 201 +++--
 .../apache/calcite/sql/parser/SqlParserPos.java    |  26 +-
 .../apache/calcite/sql/parser/SqlParserUtil.java   | 127 +---
 .../apache/calcite/sql/parser/StringAndPos.java    |  92 +++
 .../apache/calcite/sql/pretty/SqlPrettyWriter.java |  78 +-
 .../apache/calcite/sql/type/AbstractSqlType.java   |  16 +-
 .../org/apache/calcite/sql/type/ArraySqlType.java  |  10 +-
 .../sql/type/AssignableOperandTypeChecker.java     |  15 +-
 .../org/apache/calcite/sql/type/BasicSqlType.java  |   2 +-
 .../sql/type/ComparableOperandTypeChecker.java     |   4 +-
 .../sql/type/CompositeOperandTypeChecker.java      |  22 +-
 .../type/CompositeSingleOperandTypeChecker.java    |   2 +-
 .../sql/type/CursorReturnTypeInference.java        |   2 +-
 .../sql/type/ExplicitOperandTypeChecker.java       |  10 +-
 .../sql/type/ExplicitOperandTypeInference.java     |   2 +-
 .../sql/type/ExplicitReturnTypeInference.java      |   2 +-
 .../calcite/sql/type/FamilyOperandTypeChecker.java |  22 +-
 .../org/apache/calcite/sql/type/InferTypes.java    |   3 +-
 .../apache/calcite/sql/type/IntervalSqlType.java   |   2 +-
 .../sql/type/LiteralOperandTypeChecker.java        |  12 +-
 .../org/apache/calcite/sql/type/MapSqlType.java    |   4 +-
 .../calcite/sql/type/MatchReturnTypeInference.java |   2 +-
 .../sql/type/MultisetOperandTypeChecker.java       |  16 +-
 .../apache/calcite/sql/type/MultisetSqlType.java   |  10 +-
 .../org/apache/calcite/sql/type/ObjectSqlType.java |  15 +-
 .../org/apache/calcite/sql/type/OperandTypes.java  |  61 +-
 .../sql/type/OrdinalReturnTypeInference.java       |   2 +-
 .../org/apache/calcite/sql/type/ReturnTypes.java   |   4 +-
 .../calcite/sql/type/SameOperandTypeChecker.java   |  12 +-
 .../SameOperandTypeExceptLastOperandChecker.java   |   4 +-
 .../calcite/sql/type/SetopOperandTypeChecker.java  |  14 +-
 .../calcite/sql/type/SqlOperandCountRanges.java    |   6 +-
 .../sql/type/SqlReturnTypeInferenceChain.java      |   2 +-
 .../sql/type/SqlTypeExplicitPrecedenceList.java    |   4 +-
 .../calcite/sql/type/SqlTypeFactoryImpl.java       |  20 +-
 .../calcite/sql/type/SqlTypeMappingRules.java      |   6 +-
 .../org/apache/calcite/sql/type/SqlTypeName.java   |  18 +-
 .../calcite/sql/type/SqlTypeTransformCascade.java  |   2 +-
 .../apache/calcite/sql/type/SqlTypeTransforms.java |   4 +-
 .../org/apache/calcite/sql/type/SqlTypeUtil.java   |  68 +-
 .../sql/type/TableFunctionReturnTypeInference.java |   2 +-
 .../calcite/sql/util/ChainedSqlOperatorTable.java  |   4 +-
 .../calcite/sql/util/ListSqlOperatorTable.java     |   4 +-
 .../sql/util/ReflectiveSqlOperatorTable.java       |   9 +-
 .../apache/calcite/sql/util/SqlBasicVisitor.java   |  18 +-
 .../org/apache/calcite/sql/util/SqlShuttle.java    |  18 +-
 .../calcite/sql/validate/AbstractNamespace.java    |  34 +-
 .../apache/calcite/sql/validate/AggChecker.java    |   6 +-
 .../org/apache/calcite/sql/validate/AggFinder.java |   4 +-
 .../apache/calcite/sql/validate/AggVisitor.java    |   2 +-
 .../sql/validate/AggregatingSelectScope.java       |  33 +-
 .../calcite/sql/validate/AliasNamespace.java       |   6 +-
 .../apache/calcite/sql/validate/CatalogScope.java  |   2 +-
 .../calcite/sql/validate/CollectNamespace.java     |   4 +-
 .../apache/calcite/sql/validate/CollectScope.java  |   3 +-
 .../calcite/sql/validate/DelegatingNamespace.java  |  32 +-
 .../calcite/sql/validate/DelegatingScope.java      |  37 +-
 .../DelegatingSqlValidatorCatalogReader.java       |  10 +-
 .../sql/validate/DelegatingSqlValidatorTable.java  |  10 +-
 .../apache/calcite/sql/validate/EmptyScope.java    |  36 +-
 .../calcite/sql/validate/FieldNamespace.java       |  10 +-
 .../apache/calcite/sql/validate/GroupByScope.java  |   4 +-
 .../calcite/sql/validate/IdentifierNamespace.java  |   8 +-
 .../apache/calcite/sql/validate/JoinNamespace.java |   6 +-
 .../org/apache/calcite/sql/validate/JoinScope.java |   6 +-
 .../org/apache/calcite/sql/validate/ListScope.java |  13 +-
 .../apache/calcite/sql/validate/OrderByScope.java  |  10 +-
 .../org/apache/calcite/sql/validate/OverScope.java |   4 +-
 .../calcite/sql/validate/ParameterNamespace.java   |   7 +-
 .../calcite/sql/validate/ParameterScope.java       |   4 +-
 ...RecognizeNamespace.java => PivotNamespace.java} |  21 +-
 .../PivotScope.java}                               |  33 +-
 .../calcite/sql/validate/ProcedureNamespace.java   |   4 +-
 .../calcite/sql/validate/SchemaNamespace.java      |   4 +-
 .../calcite/sql/validate/SelectNamespace.java      |   4 +-
 .../apache/calcite/sql/validate/SelectScope.java   |   8 +-
 .../calcite/sql/validate/SetopNamespace.java       |   6 +-
 .../sql/validate/SqlAbstractConformance.java       |  56 +-
 .../calcite/sql/validate/SqlConformance.java       |  23 +
 .../calcite/sql/validate/SqlConformanceEnum.java   |  56 +-
 .../calcite/sql/validate/SqlIdentifierMoniker.java |  10 +-
 .../apache/calcite/sql/validate/SqlMoniker.java    |   2 +-
 .../calcite/sql/validate/SqlMonikerImpl.java       |  10 +-
 .../calcite/sql/validate/SqlNameMatchers.java      |  14 +-
 .../calcite/sql/validate/SqlScopedShuttle.java     |   2 +-
 .../sql/validate/SqlUserDefinedFunction.java       |   5 +-
 .../sql/validate/SqlUserDefinedTableFunction.java  |   2 +-
 .../sql/validate/SqlUserDefinedTableMacro.java     |   5 +-
 .../calcite/sql/validate/SqlValidatorImpl.java     | 330 ++++++--
 .../calcite/sql/validate/SqlValidatorScope.java    |  10 +-
 .../calcite/sql/validate/SqlValidatorUtil.java     |  31 +-
 .../sql/validate/TableConstructorNamespace.java    |   4 +-
 .../calcite/sql/validate/TableNamespace.java       |   4 +-
 .../apache/calcite/sql/validate/TableScope.java    |   2 +-
 .../calcite/sql/validate/UnnestNamespace.java      |   4 +-
 .../calcite/sql/validate/WithItemNamespace.java    |   2 +-
 .../apache/calcite/sql/validate/WithNamespace.java |   4 +-
 .../org/apache/calcite/sql/validate/WithScope.java |   2 +-
 .../validate/implicit/AbstractTypeCoercion.java    |  11 +-
 .../sql/validate/implicit/TypeCoercionImpl.java    |  20 +-
 .../apache/calcite/sql2rel/AuxiliaryConverter.java |   2 +-
 .../sql2rel/NullInitializerExpressionFactory.java  |  10 +-
 .../calcite/sql2rel/ReflectiveConvertletTable.java |   2 +-
 .../apache/calcite/sql2rel/RelDecorrelator.java    |  74 +-
 .../apache/calcite/sql2rel/RelFieldTrimmer.java    |  50 +-
 .../sql2rel/RelStructuredTypeFlattener.java        |   6 +-
 .../calcite/sql2rel/SqlNodeToRexConverterImpl.java |   6 +-
 .../apache/calcite/sql2rel/SqlToRelConverter.java  | 832 +++++++++++----------
 .../calcite/sql2rel/StandardConvertletTable.java   |  29 +-
 .../statistic/CachingSqlStatisticProvider.java     |  15 +-
 .../calcite/statistic/MapSqlStatisticProvider.java |  13 +-
 .../statistic/QuerySqlStatisticProvider.java       |   6 +-
 .../java/org/apache/calcite/tools/Frameworks.java  |  36 +-
 .../main/java/org/apache/calcite/tools/Hoist.java  |   2 +-
 .../org/apache/calcite/tools/PigRelBuilder.java    |  15 +-
 .../java/org/apache/calcite/tools/Planner.java     |   2 +-
 .../java/org/apache/calcite/tools/Programs.java    |  12 +-
 .../java/org/apache/calcite/tools/RelBuilder.java  | 471 ++++++++++--
 .../java/org/apache/calcite/tools/RuleSets.java    |   2 +-
 .../calcite/util/BarfingInvocationHandler.java     |   2 +-
 .../main/java/org/apache/calcite/util/BitSets.java |  12 +-
 .../java/org/apache/calcite/util/BitString.java    |   4 +-
 .../src/main/java/org/apache/calcite/util/Bug.java |  15 +
 .../org/apache/calcite/util/BuiltInMethod.java     |   5 +
 .../java/org/apache/calcite/util/CastingList.java  |  10 +-
 .../java/org/apache/calcite/util/ChunkList.java    |  20 +-
 .../main/java/org/apache/calcite/util/Closer.java  |   2 +-
 .../org/apache/calcite/util/CompositeList.java     |   4 +-
 .../java/org/apache/calcite/util/CompositeMap.java |  24 +-
 .../apache/calcite/util/ControlFlowException.java  |   2 +-
 .../calcite/util/DelegatingInvocationHandler.java  |   2 +-
 .../org/apache/calcite/util/EquivalenceSet.java    |   4 +-
 .../java/org/apache/calcite/util/Filterator.java   |   6 +-
 .../org/apache/calcite/util/ImmutableBeans.java    |  44 +-
 .../org/apache/calcite/util/ImmutableBitSet.java   |  54 +-
 .../org/apache/calcite/util/ImmutableIntList.java  |  38 +-
 .../apache/calcite/util/ImmutableNullableMap.java  | 110 +++
 .../apache/calcite/util/ImmutableNullableSet.java  | 279 +++++++
 .../apache/calcite/util/IntegerIntervalSet.java    |   8 +-
 .../main/java/org/apache/calcite/util/Litmus.java  |  12 +-
 .../java/org/apache/calcite/util/NlsString.java    |  10 +-
 .../java/org/apache/calcite/util/NumberUtil.java   |   8 +
 .../main/java/org/apache/calcite/util/Pair.java    | 169 ++---
 .../apache/calcite/util/PartiallyOrderedSet.java   |  23 +-
 .../java/org/apache/calcite/util/Permutation.java  |  40 +-
 .../calcite/util/PrecedenceClimbingParser.java     |   2 +-
 .../java/org/apache/calcite/util/RangeSets.java    | 388 +++++++++-
 .../java/org/apache/calcite/util/ReflectUtil.java  |  68 +-
 .../apache/calcite/util/RelToSqlConverterUtil.java |   2 +-
 .../org/apache/calcite/util/SaffronProperties.java |   6 +-
 .../main/java/org/apache/calcite/util/Sarg.java    | 152 ++++
 .../apache/calcite/util/SerializableCharset.java   |   1 +
 .../main/java/org/apache/calcite/util/Sources.java |   2 +-
 .../java/org/apache/calcite/util/StackWriter.java  |   6 +-
 .../main/java/org/apache/calcite/util/Unsafe.java  |   3 +
 .../main/java/org/apache/calcite/util/Util.java    | 343 +++++++--
 .../java/org/apache/calcite/util/XmlOutput.java    |   6 +-
 .../util/graph/AttributedDirectedGraph.java        |   4 +-
 .../calcite/util/graph/BreadthFirstIterator.java   |   6 +-
 .../calcite/util/graph/DefaultDirectedGraph.java   |  18 +-
 .../calcite/util/graph/DepthFirstIterator.java     |   6 +-
 .../java/org/apache/calcite/util/graph/Graphs.java |   4 +-
 .../util/graph/TopologicalOrderIterator.java       |   6 +-
 .../apache/calcite/util/javac/JaninoCompiler.java  |  16 +-
 .../util/mapping/AbstractSourceMapping.java        |  20 +-
 .../util/mapping/AbstractTargetMapping.java        |  20 +-
 .../org/apache/calcite/util/mapping/IntPair.java   |  27 +-
 .../org/apache/calcite/util/mapping/Mapping.java   |  12 +-
 .../org/apache/calcite/util/mapping/Mappings.java  | 248 +++---
 .../calcite/runtime/CalciteResource.properties     |   3 +
 core/src/test/codegen/config.fmpp                  | 379 +---------
 .../calcite/jdbc/CalciteRemoteDriverTest.java      |   5 +-
 .../calcite/materialize/LatticeSuggesterTest.java  |  14 +-
 .../org/apache/calcite/plan/RelOptUtilTest.java    |   6 +-
 .../org/apache/calcite/plan/RelWriterTest.java     | 114 ++-
 .../calcite/plan/volcano/VolcanoPlannerTest.java   |  40 +-
 .../org/apache/calcite/rel/RelCollationTest.java   |  72 +-
 .../rel/logical/ToLogicalConverterTest.java        |   4 +-
 .../rel/rel2sql/RelToSqlConverterStructsTest.java  |  25 -
 .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 172 +++--
 .../calcite/rel/rules/DateRangeRulesTest.java      |  10 +-
 .../apache/calcite/rex/RexProgramBuilderBase.java  |   7 +-
 .../org/apache/calcite/rex/RexProgramTest.java     | 169 ++++-
 .../org/apache/calcite/rex/RexProgramTestBase.java |  59 +-
 .../rex/RexSqlStandardConvertletTableTest.java     |   2 +-
 .../apache/calcite/runtime/EnumerablesTest.java    | 188 ++++-
 .../apache/calcite/sql/parser/SqlParserTest.java   | 585 +++++++++++----
 .../apache/calcite/sql/test/AbstractSqlTester.java |  47 +-
 .../apache/calcite/sql/test/SqlAdvisorTest.java    |  14 +-
 .../calcite/sql/test/SqlOperatorBaseTest.java      |  64 +-
 .../apache/calcite/sql/test/SqlRuntimeTester.java  |  33 +-
 .../apache/calcite/sql/test/SqlTestFactory.java    |  13 +-
 .../org/apache/calcite/sql/test/SqlTester.java     |  32 +-
 .../java/org/apache/calcite/sql/test/SqlTests.java |   5 +-
 .../calcite/sql/validate/LexCaseSensitiveTest.java |   2 +-
 .../apache/calcite/sql/validate/LexEscapeTest.java |   2 +-
 .../calcite/test/AbstractMaterializedViewTest.java |   5 +-
 .../org/apache/calcite/test/HepPlannerTest.java    |  29 +
 .../org/apache/calcite/test/JdbcAdapterTest.java   |   9 +-
 .../java/org/apache/calcite/test/JdbcTest.java     |  46 +-
 .../java/org/apache/calcite/test/Matchers.java     |  30 +
 .../test/MaterializedViewRelOptRulesTest.java      |  46 +-
 .../MaterializedViewSubstitutionVisitorTest.java   |  71 ++
 .../apache/calcite/test/MockSqlOperatorTable.java  |  23 +
 .../java/org/apache/calcite/test/QuidemTest.java   |   3 +-
 .../org/apache/calcite/test/RelBuilderTest.java    | 208 +++++-
 .../org/apache/calcite/test/RelMetadataTest.java   |  96 ++-
 .../org/apache/calcite/test/RelOptRulesTest.java   |  98 ++-
 .../org/apache/calcite/test/RelOptTestBase.java    |  46 +-
 .../apache/calcite/test/SqlAdvisorJdbcTest.java    |   4 +-
 .../apache/calcite/test/SqlHintsConverterTest.java |  43 +-
 .../java/org/apache/calcite/test/SqlTestGen.java   |   5 +-
 .../apache/calcite/test/SqlToRelConverterTest.java | 278 +++++--
 .../org/apache/calcite/test/SqlToRelTestBase.java  | 177 +++--
 .../apache/calcite/test/SqlValidatorMatchTest.kt   |   5 +-
 .../org/apache/calcite/test/SqlValidatorTest.java  | 442 +++++++++--
 .../apache/calcite/test/SqlValidatorTestCase.java  |  66 +-
 .../org/apache/calcite/test/TopDownOptTest.java    |  48 +-
 .../calcite/test/TypeCoercionConverterTest.java    |   9 +-
 .../org/apache/calcite/test/catalog/Fixture.java   |   2 +-
 .../EnumerableBatchNestedLoopJoinTest.java         |  24 +
 .../test/enumerable/EnumerableCorrelateTest.java   |   1 +
 .../test/enumerable/EnumerableHashJoinTest.java    |   4 +
 .../enumerable/EnumerableStringComparisonTest.java |  43 ++
 .../org/apache/calcite/tools/FrameworksTest.java   |  10 +-
 .../java/org/apache/calcite/tools/PlannerTest.java |  15 +-
 .../org/apache/calcite/util/ImmutableBeanTest.java | 182 +++++
 .../apache/calcite/util/ImmutableBitSetTest.java   |  22 +
 .../java/org/apache/calcite/util/RangeSetTest.java | 413 ++++++++++
 .../java/org/apache/calcite/util/TestUtil.java     |  39 +
 .../java/org/apache/calcite/util/TestUtilTest.java |   5 +
 .../java/org/apache/calcite/util/UtilTest.java     | 323 ++++++--
 .../apache/calcite/util/mapping/MappingTest.java   |  13 +-
 .../org/apache/calcite/test/RelOptRulesTest.xml    | 103 ++-
 .../apache/calcite/test/SqlToRelConverterTest.xml  | 347 ++++++++-
 .../org/apache/calcite/test/TopDownOptTest.xml     | 150 ++++
 core/src/test/resources/sql/agg.iq                 |  15 +
 core/src/test/resources/sql/blank.iq               |  24 +-
 core/src/test/resources/sql/misc.iq                |  58 +-
 core/src/test/resources/sql/pivot.iq               | 339 +++++++++
 core/src/test/resources/sql/sort.iq                |   2 +-
 core/src/test/resources/sql/sub-query.iq           |  82 +-
 .../calcite/adapter/druid/DruidConnectionImpl.java |  35 +-
 .../calcite/adapter/druid/DruidDateTimeUtils.java  |  47 +-
 .../calcite/adapter/druid/DruidJsonFilter.java     |  55 +-
 .../apache/calcite/adapter/druid/DruidQuery.java   |  48 +-
 .../apache/calcite/adapter/druid/DruidRules.java   | 130 ++--
 .../calcite/adapter/druid/DruidSchemaFactory.java  |   2 +-
 .../apache/calcite/adapter/druid/DruidTable.java   |   6 +-
 .../calcite/adapter/druid/DruidTableFactory.java   |   2 +-
 .../apache/calcite/adapter/druid/DruidType.java    |   4 +-
 .../calcite/adapter/druid/Granularities.java       |   4 +-
 .../adapter/druid/DruidQueryFilterTest.java        |  15 +-
 .../org/apache/calcite/test/DruidAdapter2IT.java   | 569 +++++++-------
 .../org/apache/calcite/test/DruidAdapterIT.java    | 386 +++++-----
 .../elasticsearch/ElasticsearchEnumerators.java    |   2 +
 .../elasticsearch/ElasticsearchMapping.java        |   2 +
 .../adapter/elasticsearch/ElasticsearchMethod.java |   1 +
 .../elasticsearch/ElasticsearchSchemaFactory.java  |  23 +-
 .../adapter/elasticsearch/ElasticsearchTable.java  |   7 +-
 .../elasticsearch/ElasticsearchTransport.java      |   3 +-
 .../adapter/elasticsearch/PredicateAnalyzer.java   |   8 +-
 .../adapter/elasticsearch/QueryBuilders.java       |   2 +
 .../calcite/adapter/csv/CsvFilterableTable.java    |   6 +-
 .../calcite/adapter/csv/CsvScannableTable.java     |   6 +-
 .../calcite/adapter/csv/CsvSchemaFactory.java      |   2 +-
 .../adapter/csv/CsvStreamScannableTable.java       |   6 +-
 .../calcite/adapter/csv/CsvStreamTableFactory.java |   2 +-
 .../org/apache/calcite/adapter/csv/CsvTable.java   |   2 +-
 .../calcite/adapter/csv/CsvTableFactory.java       |   2 +-
 .../apache/calcite/adapter/csv/CsvTableScan.java   |   2 +-
 .../calcite/adapter/csv/CsvTranslatableTable.java  |  12 +-
 .../java/org/apache/calcite/example/maze/Maze.java |  11 +-
 .../org/apache/calcite/example/maze/MazeTable.java |   6 +-
 .../apache/calcite/adapter/file/CsvEnumerator.java |  13 +-
 .../calcite/adapter/file/CsvStreamReader.java      |   4 +-
 .../org/apache/calcite/adapter/file/CsvTable.java  |   2 +-
 .../calcite/adapter/file/CsvTableFactory.java      |   2 +-
 .../apache/calcite/adapter/file/CsvTableScan.java  |   2 +-
 .../calcite/adapter/file/CsvTranslatableTable.java |  12 +-
 .../calcite/adapter/file/FileEnumerator.java       |   8 +-
 .../apache/calcite/adapter/file/FileReader.java    |  12 +-
 .../calcite/adapter/file/FileRowConverter.java     |   4 +-
 .../calcite/adapter/file/FileSchemaFactory.java    |   2 +-
 .../org/apache/calcite/adapter/file/FileTable.java |  14 +-
 .../apache/calcite/adapter/file/FileTableScan.java |   2 +-
 .../calcite/adapter/file/JsonEnumerator.java       |  10 +-
 .../calcite/adapter/file/JsonScannableTable.java   |   6 +-
 .../org/apache/calcite/adapter/file/JsonTable.java |   4 +-
 .../calcite/adapter/geode/rel/GeodeAggregate.java  |   3 +-
 .../calcite/adapter/geode/rel/GeodeFilter.java     |  11 +-
 .../calcite/adapter/geode/rel/GeodeRules.java      |   8 +-
 .../adapter/geode/rel/GeodeSchemaFactory.java      |   2 +-
 .../calcite/adapter/geode/rel/GeodeTable.java      |  11 +-
 .../geode/rel/GeodeToEnumerableConverter.java      |   9 +-
 .../geode/simple/GeodeSimpleEnumerator.java        |   3 +-
 .../geode/simple/GeodeSimpleScannableTable.java    |   2 +-
 .../adapter/geode/simple/GeodeSimpleSchema.java    |   5 +
 .../calcite/adapter/geode/util/GeodeUtils.java     |   2 +
 .../adapter/geode/rel/GeodeBookstoreTest.java      |   2 +-
 .../calcite/adapter/geode/rel/GeodeZipsTest.java   |   4 +-
 gradle.properties                                  |  16 +-
 .../adapter/kafka/KafkaMessageEnumerator.java      |   5 +-
 .../calcite/adapter/kafka/KafkaStreamTable.java    |   2 +-
 .../apache/calcite/linq4j/AbstractEnumerable.java  |   2 +-
 .../apache/calcite/linq4j/AbstractEnumerable2.java |   2 +-
 .../org/apache/calcite/linq4j/BaseQueryable.java   |  12 +-
 .../calcite/linq4j/CartesianProductEnumerator.java |   6 +-
 .../apache/calcite/linq4j/DefaultEnumerable.java   | 292 ++++----
 .../apache/calcite/linq4j/DefaultQueryable.java    | 140 ++--
 .../java/org/apache/calcite/linq4j/Enumerable.java |   2 +-
 .../apache/calcite/linq4j/EnumerableDefaults.java  | 440 +++++++----
 .../calcite/linq4j/EnumerableOrderedQueryable.java |   8 +-
 .../apache/calcite/linq4j/EnumerableQueryable.java | 156 ++--
 .../java/org/apache/calcite/linq4j/Enumerator.java |   2 +-
 .../apache/calcite/linq4j/ExtendedQueryable.java   |  40 +-
 .../java/org/apache/calcite/linq4j/Extensions.java |   2 +-
 .../org/apache/calcite/linq4j/GroupingImpl.java    |  14 +-
 .../java/org/apache/calcite/linq4j/Linq4j.java     |  70 +-
 .../java/org/apache/calcite/linq4j/LookupImpl.java |  76 +-
 .../main/java/org/apache/calcite/linq4j/Ord.java   |  22 +-
 .../apache/calcite/linq4j/QueryProviderImpl.java   |  10 +-
 .../apache/calcite/linq4j/QueryableDefaults.java   |  20 +-
 .../apache/calcite/linq4j/QueryableRecorder.java   | 412 +++++-----
 .../calcite/linq4j/TransformedEnumerator.java      |  10 +-
 .../apache/calcite/linq4j/function/Functions.java  |  47 +-
 .../apache/calcite/linq4j/tree/AbstractNode.java   |   4 +-
 .../linq4j/tree/ArrayLengthRecordField.java        |  12 +-
 .../calcite/linq4j/tree/BinaryExpression.java      |   6 +-
 .../apache/calcite/linq4j/tree/BlockBuilder.java   |   2 +-
 .../apache/calcite/linq4j/tree/BlockStatement.java |   2 +-
 .../calcite/linq4j/tree/ClassDeclaration.java      |   6 +-
 .../calcite/linq4j/tree/ConditionalExpression.java |   2 +-
 .../calcite/linq4j/tree/ConditionalStatement.java  |   2 +-
 .../calcite/linq4j/tree/ConstantExpression.java    |   4 +-
 .../linq4j/tree/ConstructorDeclaration.java        |  11 +-
 .../calcite/linq4j/tree/DeclarationStatement.java  |   2 +-
 .../calcite/linq4j/tree/DefaultExpression.java     |   2 +-
 .../linq4j/tree/DeterministicCodeOptimizer.java    |   4 +-
 .../calcite/linq4j/tree/DynamicExpression.java     |   2 +-
 .../org/apache/calcite/linq4j/tree/Expression.java |   2 +-
 .../apache/calcite/linq4j/tree/ExpressionType.java |   4 +-
 .../apache/calcite/linq4j/tree/Expressions.java    |  30 +-
 .../calcite/linq4j/tree/FieldDeclaration.java      |   4 +-
 .../calcite/linq4j/tree/ForEachStatement.java      |   2 +-
 .../apache/calcite/linq4j/tree/ForStatement.java   |   2 +-
 .../calcite/linq4j/tree/FunctionExpression.java    |   2 +-
 .../apache/calcite/linq4j/tree/GotoStatement.java  |   2 +-
 .../calcite/linq4j/tree/IndexExpression.java       |   2 +-
 .../calcite/linq4j/tree/InvocationExpression.java  |   2 +-
 .../apache/calcite/linq4j/tree/LabelStatement.java |   2 +-
 .../calcite/linq4j/tree/LambdaExpression.java      |   2 +-
 .../calcite/linq4j/tree/ListInitExpression.java    |   2 +-
 .../calcite/linq4j/tree/MemberDeclaration.java     |   2 +-
 .../calcite/linq4j/tree/MemberExpression.java      |   4 +-
 .../calcite/linq4j/tree/MemberInitExpression.java  |   2 +-
 .../calcite/linq4j/tree/MethodCallExpression.java  |   2 +-
 .../calcite/linq4j/tree/MethodDeclaration.java     |   9 +-
 .../calcite/linq4j/tree/NewArrayExpression.java    |   2 +-
 .../apache/calcite/linq4j/tree/NewExpression.java  |   3 +-
 .../calcite/linq4j/tree/OptimizeShuttle.java       |  14 +
 .../calcite/linq4j/tree/ParameterExpression.java   |   4 +-
 .../org/apache/calcite/linq4j/tree/Primitive.java  |  11 +-
 .../calcite/linq4j/tree/ReflectedPseudoField.java  |  10 +-
 .../calcite/linq4j/tree/SwitchStatement.java       |   2 +-
 .../calcite/linq4j/tree/TernaryExpression.java     |   4 +-
 .../apache/calcite/linq4j/tree/ThrowStatement.java |   2 +-
 .../apache/calcite/linq4j/tree/TryStatement.java   |   2 +-
 .../calcite/linq4j/tree/TypeBinaryExpression.java  |   5 +-
 .../java/org/apache/calcite/linq4j/tree/Types.java |   7 +-
 .../calcite/linq4j/tree/UnaryExpression.java       |   6 +-
 .../apache/calcite/linq4j/tree/VisitorImpl.java    |  69 +-
 .../apache/calcite/linq4j/tree/WhileStatement.java |   2 +-
 .../apache/calcite/linq4j/test/LimitSortTest.java  | 165 ++++
 .../calcite/adapter/mongodb/MongoAggregate.java    |   2 +-
 .../calcite/adapter/mongodb/MongoEnumerator.java   |   9 +-
 .../calcite/adapter/mongodb/MongoFilter.java       |  18 +-
 .../calcite/adapter/mongodb/MongoMethod.java       |   1 +
 .../calcite/adapter/mongodb/MongoProject.java      |   2 +-
 .../apache/calcite/adapter/mongodb/MongoRel.java   |   7 +-
 .../apache/calcite/adapter/mongodb/MongoRules.java |   1 +
 .../adapter/mongodb/MongoSchemaFactory.java        |   4 +-
 .../apache/calcite/adapter/mongodb/MongoSort.java  |   4 +-
 .../apache/calcite/adapter/mongodb/MongoTable.java |  14 +-
 .../calcite/adapter/mongodb/MongoTableScan.java    |   2 +-
 .../mongodb/MongoToEnumerableConverter.java        |  27 +-
 .../apache/calcite/adapter/pig/PigDataType.java    |   4 +-
 .../calcite/adapter/pig/PigSchemaFactory.java      |   2 +-
 .../calcite/adapter/pig/PigTableFactory.java       |   2 +-
 .../adapter/pig/PigToEnumerableConverter.java      |   2 +-
 .../java/org/apache/calcite/piglet/Handler.java    |   9 +
 .../org/apache/calcite/piglet/PigRelBuilder.java   |  13 +-
 .../org/apache/calcite/piglet/PigRelOpVisitor.java |   5 +-
 .../org/apache/calcite/piglet/PigRelSqlUdfs.java   |  10 +-
 .../calcite/piglet/PigRelToSqlConverter.java       |   2 +-
 .../java/org/apache/calcite/piglet/PigTypes.java   |   2 +-
 plus/build.gradle.kts                              |   2 +-
 .../apache/calcite/adapter/os/DuTableFunction.java |  12 +-
 .../calcite/adapter/os/FilesTableFunction.java     |  25 +-
 .../adapter/os/GitCommitsTableFunction.java        |  22 +-
 .../calcite/adapter/os/JpsTableFunction.java       |  12 +-
 .../org/apache/calcite/adapter/os/Processes.java   |  22 +-
 .../apache/calcite/adapter/os/PsTableFunction.java |  14 +-
 .../org/apache/calcite/adapter/os/SqlShell.java    |  16 +-
 .../calcite/adapter/os/StdinTableFunction.java     |  22 +-
 .../calcite/adapter/os/VmstatTableFunction.java    |  16 +-
 .../apache/calcite/adapter/tpcds/TpcdsSchema.java  |   8 +-
 .../calcite/adapter/tpcds/TpcdsSchemaFactory.java  |   2 +-
 .../apache/calcite/adapter/tpch/TpchSchema.java    |  41 +-
 .../calcite/adapter/tpch/TpchSchemaFactory.java    |   2 +-
 .../apache/calcite/chinook/ConnectionFactory.java  |   2 +-
 .../apache/calcite/adapter/tpcds/TpcdsTest.java    |  58 +-
 .../org/apache/calcite/adapter/tpch/TpchTest.java  |   4 +-
 .../calcite/adapter/redis/RedisDataFormat.java     |   2 +-
 .../calcite/adapter/redis/RedisDataType.java       |   2 +-
 .../calcite/adapter/redis/RedisEnumerator.java     |   8 +-
 .../calcite/adapter/redis/RedisSchemaFactory.java  |   2 +-
 .../apache/calcite/adapter/redis/RedisTable.java   |   4 +-
 server/src/main/codegen/config.fmpp                | 374 +--------
 .../apache/calcite/server/MutableArrayTable.java   |  13 +-
 settings.gradle.kts                                |   1 +
 site/_docs/adapter.md                              |  12 +-
 site/_docs/algebra.md                              |   3 +-
 site/_docs/druid_adapter.md                        |   2 +-
 site/_docs/elasticsearch_adapter.md                |   8 +-
 site/_docs/file_adapter.md                         |   6 +-
 site/_docs/history.md                              | 194 ++++-
 site/_docs/howto.md                                |  11 +-
 site/_docs/reference.md                            |  29 +-
 site/_posts/2020-08-22-release-1.25.0.md           |   1 -
 ...ease-1.25.0.md => 2020-10-06-release-1.26.0.md} |  28 +-
 site/downloads/index.md                            |   6 +-
 .../adapter/spark/EnumerableToSparkConverter.java  |   7 +-
 .../apache/calcite/adapter/spark/HttpServer.java   |  21 +-
 .../adapter/spark/JdbcToSparkConverter.java        |   2 +-
 .../calcite/adapter/spark/SparkHandlerImpl.java    |  10 +-
 .../apache/calcite/adapter/spark/SparkMethod.java  |   1 +
 .../org/apache/calcite/adapter/spark/SparkRel.java |   2 +-
 .../apache/calcite/adapter/spark/SparkRules.java   |   7 +-
 .../adapter/spark/SparkToEnumerableConverter.java  |  10 +-
 .../org/apache/calcite/test/SparkAdapterTest.java  |   6 +-
 .../calcite/adapter/splunk/SplunkDriver.java       |  17 +-
 .../calcite/adapter/splunk/SplunkPushDownRule.java |   7 +-
 .../apache/calcite/adapter/splunk/SplunkQuery.java |   4 +-
 .../apache/calcite/adapter/splunk/SplunkTable.java |  10 +-
 .../calcite/adapter/splunk/SplunkTableScan.java    |   2 +-
 .../splunk/search/SplunkConnectionImpl.java        |  17 +-
 .../calcite/adapter/splunk/util/StringUtils.java   |   6 +-
 src/main/config/forbidden-apis/signatures.txt      |   8 +-
 .../apache/calcite/benchmarks/ParserBenchmark.java |   2 +
 .../apache/calcite/benchmarks/StatementTest.java   |   4 +-
 1014 files changed, 18292 insertions(+), 9989 deletions(-)
 create mode 100644 core/src/main/codegen/default_config.fmpp
 create mode 100644 
core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableLimitSort.java
 create mode 100644 
core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableLimitSortRule.java
 copy core/src/main/java/org/apache/calcite/config/{package-info.java => 
CharLiteralStyle.java} (62%)
 create mode 100644 
core/src/main/java/org/apache/calcite/rel/externalize/RelDotWriter.java
 create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlPivot.java
 create mode 100644 
core/src/main/java/org/apache/calcite/sql/fun/SqlInternalOperators.java
 copy 
core/src/main/java/org/apache/calcite/sql/fun/{SqlJsonStorageSizeFunction.java 
=> SqlSearchOperator.java} (66%)
 create mode 100644 
core/src/main/java/org/apache/calcite/sql/parser/StringAndPos.java
 copy 
core/src/main/java/org/apache/calcite/sql/validate/{MatchRecognizeNamespace.java
 => PivotNamespace.java} (67%)
 copy 
core/src/main/java/org/apache/calcite/sql/{type/OrdinalReturnTypeInference.java 
=> validate/PivotScope.java} (56%)
 create mode 100644 
core/src/main/java/org/apache/calcite/util/ImmutableNullableMap.java
 create mode 100644 
core/src/main/java/org/apache/calcite/util/ImmutableNullableSet.java
 create mode 100644 core/src/main/java/org/apache/calcite/util/Sarg.java
 create mode 100644 core/src/test/java/org/apache/calcite/util/RangeSetTest.java
 create mode 100755 core/src/test/resources/sql/pivot.iq
 create mode 100644 
linq4j/src/test/java/org/apache/calcite/linq4j/test/LimitSortTest.java
 copy site/_posts/{2020-08-22-release-1.25.0.md => 
2020-10-06-release-1.26.0.md} (51%)

Reply via email to