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