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