You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by vl...@apache.org on 2020/11/29 22:47:30 UTC

[calcite] branch master updated (b7e90e1 -> 3d13846)

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

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


    from b7e90e1  [CALCITE-4251] Avoid NPE in LoptMultiJoin when mq.getColumnOrigin(left, i) returns null
     add 2de7237  [CALCITE-4214] Make org.apache.calcite.rel.type.RelDataType#getSqlTypeName non-nullable
     add 6908d21  [CALCITE-4199] Add CheckerFramework to GitHub Actions CI
     add 2f2fc40  [CALCITE-4199] Add package-level NonNull annotations to calcite packages
     add d9a81b8  [CALCITE-4199] Add nullability annotations
     add 853fb03  [CALCITE-4284] ImmutableBeans: make reference properties non-nullable by default
     add 3d13846  Refactor SqlParserPos

No new revisions were added by this update.

Summary of changes:
 .editorconfig                                      |   3 +
 .github/workflows/main.yml                         |  18 +
 bom/build.gradle.kts                               |   4 +-
 build.gradle.kts                                   |  44 ++
 .../calcite/adapter/cassandra/CassandraFilter.java |   4 +-
 .../calcite/adapter/cassandra/CassandraLimit.java  |   4 +-
 .../adapter/cassandra/CassandraProject.java        |   4 +-
 .../calcite/adapter/cassandra/CassandraSort.java   |   4 +-
 .../cassandra/CassandraToEnumerableConverter.java  |   4 +-
 core/build.gradle.kts                              |   3 +-
 core/src/main/codegen/templates/Parser.jj          |  17 +-
 .../main/java/org/apache/calcite/DataContext.java  |  10 +-
 .../apache/calcite/adapter/clone/ArrayTable.java   | 108 +--
 .../apache/calcite/adapter/clone/CloneSchema.java  |   6 +-
 .../apache/calcite/adapter/clone/ColumnLoader.java |  49 +-
 .../calcite/adapter/enumerable/AggAddContext.java  |   4 +-
 .../calcite/adapter/enumerable/AggImpState.java    |  19 +-
 .../adapter/enumerable/AggResultContext.java       |   4 +-
 .../calcite/adapter/enumerable/EnumUtils.java      | 161 +++--
 .../adapter/enumerable/EnumerableAggregate.java    |  17 +-
 .../enumerable/EnumerableAggregateBase.java        |  19 +-
 .../enumerable/EnumerableAggregateRule.java        |   4 +-
 .../enumerable/EnumerableBatchNestedLoopJoin.java  |  11 +-
 .../adapter/enumerable/EnumerableBindable.java     |  13 +-
 .../calcite/adapter/enumerable/EnumerableCalc.java |   6 +-
 .../adapter/enumerable/EnumerableConvention.java   |   8 +-
 .../adapter/enumerable/EnumerableCorrelate.java    |   6 +-
 .../adapter/enumerable/EnumerableFilter.java       |   6 +-
 .../adapter/enumerable/EnumerableHashJoin.java     |   8 +-
 .../enumerable/EnumerableInterpretable.java        |  23 +-
 .../adapter/enumerable/EnumerableInterpreter.java  |  10 +-
 .../adapter/enumerable/EnumerableIntersect.java    |   4 +-
 .../adapter/enumerable/EnumerableLimit.java        |  14 +-
 .../adapter/enumerable/EnumerableLimitSort.java    |  19 +-
 .../adapter/enumerable/EnumerableMatch.java        |  33 +-
 .../adapter/enumerable/EnumerableMergeJoin.java    |  44 +-
 .../enumerable/EnumerableMergeJoinRule.java        |   4 +-
 .../adapter/enumerable/EnumerableMinus.java        |   6 +-
 .../enumerable/EnumerableNestedLoopJoin.java       |   8 +-
 .../adapter/enumerable/EnumerableProject.java      |   6 +-
 .../calcite/adapter/enumerable/EnumerableRel.java  |   6 +-
 .../adapter/enumerable/EnumerableRelFactories.java |   7 +-
 .../enumerable/EnumerableRelImplementor.java       |   6 +-
 .../calcite/adapter/enumerable/EnumerableSort.java |  14 +-
 .../adapter/enumerable/EnumerableSortRule.java     |   4 +-
 .../enumerable/EnumerableSortedAggregate.java      |  24 +-
 .../enumerable/EnumerableSortedAggregateRule.java  |   4 +-
 .../enumerable/EnumerableTableFunctionScan.java    |  19 +-
 .../adapter/enumerable/EnumerableTableModify.java  |   6 +-
 .../enumerable/EnumerableTableModifyRule.java      |   4 +-
 .../adapter/enumerable/EnumerableTableScan.java    |  19 +-
 .../enumerable/EnumerableTableScanRule.java        |   4 +-
 .../adapter/enumerable/EnumerableTraitsUtils.java  |   9 +-
 .../adapter/enumerable/EnumerableUncollect.java    |   4 +-
 .../adapter/enumerable/EnumerableUnion.java        |   4 +-
 .../adapter/enumerable/EnumerableValues.java       |  12 +-
 .../adapter/enumerable/EnumerableWindow.java       |  73 +-
 .../calcite/adapter/enumerable/JavaRowFormat.java  |  16 +-
 .../adapter/enumerable/NestedBlockBuilderImpl.java |   1 +
 .../calcite/adapter/enumerable/PhysType.java       |   6 +-
 .../calcite/adapter/enumerable/PhysTypeImpl.java   |  12 +-
 .../calcite/adapter/enumerable/RexImpTable.java    |  76 +-
 .../adapter/enumerable/RexToLixTranslator.java     | 113 +--
 .../adapter/enumerable/StrictAggImplementor.java   |   5 +-
 .../enumerable/impl/AggResultContextImpl.java      |  27 +-
 .../calcite/adapter/java/ReflectiveSchema.java     |  39 +-
 .../calcite/adapter/jdbc/JdbcCatalogSchema.java    |  20 +-
 .../calcite/adapter/jdbc/JdbcQueryProvider.java    |   4 +-
 .../org/apache/calcite/adapter/jdbc/JdbcRules.java |  93 ++-
 .../apache/calcite/adapter/jdbc/JdbcSchema.java    |  68 +-
 .../org/apache/calcite/adapter/jdbc/JdbcTable.java |  27 +-
 .../apache/calcite/adapter/jdbc/JdbcTableScan.java |   4 +-
 .../adapter/jdbc/JdbcToEnumerableConverter.java    |  27 +-
 .../jdbc/JdbcToEnumerableConverterRule.java        |   4 +-
 .../org/apache/calcite/adapter/jdbc/JdbcUtils.java |  44 +-
 .../org/apache/calcite/adapter/package-info.java   |   7 +
 .../calcite/config/CalciteConnectionConfig.java    |  33 +-
 .../config/CalciteConnectionConfigImpl.java        |  19 +-
 .../calcite/config/CalciteConnectionProperty.java  |  16 +-
 .../calcite/config/CalciteSystemProperty.java      |   7 +-
 .../org/apache/calcite/config/package-info.java    |   7 +
 .../apache/calcite/interpreter/AggregateNode.java  |  69 +-
 .../calcite/interpreter/BindableConvention.java    |   4 +-
 .../org/apache/calcite/interpreter/Bindables.java  |  71 +-
 .../apache/calcite/interpreter/CollectNode.java    |   4 +-
 .../org/apache/calcite/interpreter/Compiler.java   |   4 +-
 .../org/apache/calcite/interpreter/Context.java    |   5 +-
 .../interpreter/InterpretableConverter.java        |   4 +-
 .../calcite/interpreter/InterpretableRel.java      |   6 +-
 .../apache/calcite/interpreter/Interpreter.java    |  86 ++-
 .../apache/calcite/interpreter/Interpreters.java   |   4 +-
 .../org/apache/calcite/interpreter/JoinNode.java   |  12 +-
 .../java/org/apache/calcite/interpreter/Nodes.java |   4 +-
 .../interpreter/NoneToBindableConverterRule.java   |   4 +-
 .../java/org/apache/calcite/interpreter/Row.java   |  28 +-
 .../org/apache/calcite/interpreter/Scalar.java     |   6 +-
 .../org/apache/calcite/interpreter/SortNode.java   |  12 +-
 .../org/apache/calcite/interpreter/Source.java     |   4 +-
 .../apache/calcite/interpreter/TableScanNode.java  |  33 +-
 .../org/apache/calcite/interpreter/ValuesNode.java |   5 +-
 .../apache/calcite/interpreter/package-info.java   |   7 +
 .../apache/calcite/jdbc/CachingCalciteSchema.java  |  38 +-
 .../apache/calcite/jdbc/CalciteConnectionImpl.java |  53 +-
 .../org/apache/calcite/jdbc/CalciteFactory.java    |   4 +-
 .../apache/calcite/jdbc/CalciteJdbc41Factory.java  |  52 +-
 .../org/apache/calcite/jdbc/CalciteMetaImpl.java   |  36 +-
 .../org/apache/calcite/jdbc/CalcitePrepare.java    |  62 +-
 .../calcite/jdbc/CalcitePreparedStatement.java     |   4 +-
 .../org/apache/calcite/jdbc/CalciteSchema.java     |  61 +-
 .../org/apache/calcite/jdbc/CalciteStatement.java  |   4 +-
 .../main/java/org/apache/calcite/jdbc/Driver.java  |  17 +-
 .../org/apache/calcite/jdbc/JavaCollation.java     |   9 +-
 .../org/apache/calcite/jdbc/JavaRecordType.java    |   6 +-
 .../apache/calcite/jdbc/JavaTypeFactoryImpl.java   |  27 +-
 .../apache/calcite/jdbc/SimpleCalciteSchema.java   |  32 +-
 .../java/org/apache/calcite/jdbc/package-info.java |   7 +
 .../org/apache/calcite/materialize/Lattice.java    | 109 +--
 .../calcite/materialize/LatticeChildNode.java      |   7 +-
 .../apache/calcite/materialize/LatticeNode.java    |  17 +-
 .../calcite/materialize/LatticeRootNode.java       |   1 +
 .../apache/calcite/materialize/LatticeSpace.java   |   9 +-
 .../calcite/materialize/LatticeSuggester.java      |  62 +-
 .../apache/calcite/materialize/LatticeTable.java   |   9 +-
 .../calcite/materialize/MaterializationActor.java  |  18 +-
 .../calcite/materialize/MaterializationKey.java    |   4 +-
 .../materialize/MaterializationService.java        |  59 +-
 .../apache/calcite/materialize/MutableNode.java    |  21 +-
 .../java/org/apache/calcite/materialize/Path.java  |   4 +-
 .../ProfilerLatticeStatisticProvider.java          |   6 +-
 .../materialize/SqlLatticeStatisticProvider.java   |  20 +-
 .../java/org/apache/calcite/materialize/Step.java  |  11 +-
 .../org/apache/calcite/materialize/TileKey.java    |   4 +-
 .../apache/calcite/materialize/TileSuggester.java  |   7 +-
 .../apache/calcite/materialize/package-info.java   |   7 +
 .../java/org/apache/calcite/model/JsonColumn.java  |  12 +-
 .../org/apache/calcite/model/JsonCustomSchema.java |  25 +-
 .../org/apache/calcite/model/JsonCustomTable.java  |  23 +-
 .../org/apache/calcite/model/JsonFunction.java     |  27 +-
 .../org/apache/calcite/model/JsonJdbcSchema.java   |  48 +-
 .../java/org/apache/calcite/model/JsonLattice.java |  60 +-
 .../org/apache/calcite/model/JsonMapSchema.java    |  14 +
 .../apache/calcite/model/JsonMaterialization.java  |  27 +-
 .../java/org/apache/calcite/model/JsonMeasure.java |  19 +-
 .../java/org/apache/calcite/model/JsonRoot.java    |  19 +-
 .../java/org/apache/calcite/model/JsonSchema.java  |  18 +-
 .../java/org/apache/calcite/model/JsonStream.java  |  17 +-
 .../java/org/apache/calcite/model/JsonTable.java   |  13 +-
 .../java/org/apache/calcite/model/JsonTile.java    |  14 +-
 .../java/org/apache/calcite/model/JsonType.java    |  19 +-
 .../apache/calcite/model/JsonTypeAttribute.java    |  17 +-
 .../java/org/apache/calcite/model/JsonView.java    |  25 +-
 .../org/apache/calcite/model/ModelHandler.java     | 121 ++--
 .../org/apache/calcite/model/package-info.java     |   7 +
 .../apache/calcite/plan/AbstractRelOptPlanner.java |  53 +-
 .../java/org/apache/calcite/plan/Contexts.java     |  10 +-
 .../java/org/apache/calcite/plan/Convention.java   |   6 +-
 .../apache/calcite/plan/ConventionTraitDef.java    |  17 +-
 .../org/apache/calcite/plan/RelCompositeTrait.java |   4 +-
 .../apache/calcite/plan/RelOptAbstractTable.java   |  14 +-
 .../org/apache/calcite/plan/RelOptCluster.java     |  28 +-
 .../org/apache/calcite/plan/RelOptCostImpl.java    |   4 +-
 .../org/apache/calcite/plan/RelOptLattice.java     |   7 +-
 .../org/apache/calcite/plan/RelOptListener.java    |  10 +-
 .../apache/calcite/plan/RelOptMaterialization.java |  55 +-
 .../calcite/plan/RelOptMaterializations.java       |   2 +-
 .../org/apache/calcite/plan/RelOptPlanner.java     |  19 +-
 .../apache/calcite/plan/RelOptPredicateList.java   |  17 +
 .../java/org/apache/calcite/plan/RelOptQuery.java  |   4 +-
 .../java/org/apache/calcite/plan/RelOptRule.java   |  22 +-
 .../org/apache/calcite/plan/RelOptRuleCall.java    |   9 +-
 .../org/apache/calcite/plan/RelOptRuleOperand.java |  26 +-
 .../java/org/apache/calcite/plan/RelOptSchema.java |   4 +-
 .../calcite/plan/RelOptSchemaWithSampling.java     |   8 +-
 .../java/org/apache/calcite/plan/RelOptTable.java  |  16 +-
 .../java/org/apache/calcite/plan/RelOptUtil.java   | 199 +++---
 .../main/java/org/apache/calcite/plan/RelRule.java |  15 +-
 .../java/org/apache/calcite/plan/RelTrait.java     |   4 +-
 .../java/org/apache/calcite/plan/RelTraitDef.java  |   4 +-
 .../calcite/plan/RelTraitPropagationVisitor.java   |   4 +-
 .../java/org/apache/calcite/plan/RelTraitSet.java  |  32 +-
 .../apache/calcite/plan/RexImplicationChecker.java |  58 +-
 .../apache/calcite/plan/SubstitutionVisitor.java   | 102 +--
 .../org/apache/calcite/plan/TableAccessMap.java    |   5 +-
 .../org/apache/calcite/plan/ViewExpanders.java     |   8 +-
 .../apache/calcite/plan/VisitorDataContext.java    |  33 +-
 .../apache/calcite/plan/hep/HepInstruction.java    |  29 +-
 .../org/apache/calcite/plan/hep/HepPlanner.java    | 100 ++-
 .../org/apache/calcite/plan/hep/HepProgram.java    |   6 +-
 .../apache/calcite/plan/hep/HepProgramBuilder.java |  11 +-
 .../calcite/plan/hep/HepRelMetadataProvider.java   |  17 +-
 .../org/apache/calcite/plan/hep/HepRelVertex.java  |   6 +-
 .../org/apache/calcite/plan/hep/HepRuleCall.java   |   4 +-
 .../java/org/apache/calcite/plan/package-info.java |   7 +
 .../calcite/plan/volcano/AbstractConverter.java    |   7 +-
 .../org/apache/calcite/plan/volcano/Dumpers.java   |  29 +-
 .../calcite/plan/volcano/IterativeRuleDriver.java  |   5 +-
 .../calcite/plan/volcano/IterativeRuleQueue.java   |  14 +-
 .../org/apache/calcite/plan/volcano/RelSet.java    |  30 +-
 .../org/apache/calcite/plan/volcano/RelSubset.java |  76 +-
 .../org/apache/calcite/plan/volcano/RuleQueue.java |   2 +-
 .../calcite/plan/volcano/TopDownRuleDriver.java    |  64 +-
 .../calcite/plan/volcano/TopDownRuleQueue.java     |   4 +-
 .../apache/calcite/plan/volcano/VolcanoCost.java   |   4 +-
 .../calcite/plan/volcano/VolcanoPlanner.java       | 160 +++--
 .../plan/volcano/VolcanoRelMetadataProvider.java   |  17 +-
 .../calcite/plan/volcano/VolcanoRuleCall.java      |  23 +-
 .../calcite/plan/volcano/VolcanoRuleMatch.java     |   1 +
 .../calcite/prepare/CalciteCatalogReader.java      |  18 +-
 .../calcite/prepare/CalciteMaterializer.java       |  13 +-
 .../apache/calcite/prepare/CalcitePrepareImpl.java |  68 +-
 .../apache/calcite/prepare/LixToRelTranslator.java |  51 +-
 .../org/apache/calcite/prepare/PlannerImpl.java    |  76 +-
 .../java/org/apache/calcite/prepare/Prepare.java   |  99 +--
 .../calcite/prepare/QueryableRelBuilder.java       |  25 +-
 .../apache/calcite/prepare/RelOptTableImpl.java    |  89 +--
 .../org/apache/calcite/prepare/package-info.java   |   7 +
 .../java/org/apache/calcite/profile/Profiler.java  |  32 +-
 .../org/apache/calcite/profile/ProfilerImpl.java   |  48 +-
 .../org/apache/calcite/profile/SimpleProfiler.java |  39 +-
 .../org/apache/calcite/profile/package-info.java   |   7 +
 .../org/apache/calcite/rel/AbstractRelNode.java    |  66 +-
 .../java/org/apache/calcite/rel/PhysicalNode.java  |  10 +-
 .../java/org/apache/calcite/rel/RelCollation.java  |   5 +-
 .../org/apache/calcite/rel/RelCollationImpl.java   |   7 +-
 .../apache/calcite/rel/RelCollationTraitDef.java   |   4 +-
 .../java/org/apache/calcite/rel/RelCollations.java |   6 +-
 .../org/apache/calcite/rel/RelDistribution.java    |   5 +-
 .../calcite/rel/RelDistributionTraitDef.java       |   4 +-
 .../org/apache/calcite/rel/RelDistributions.java   |  11 +-
 .../org/apache/calcite/rel/RelFieldCollation.java  |  13 +-
 .../main/java/org/apache/calcite/rel/RelInput.java |  20 +-
 .../main/java/org/apache/calcite/rel/RelNode.java  |  21 +-
 .../java/org/apache/calcite/rel/RelVisitor.java    |  10 +-
 .../java/org/apache/calcite/rel/RelWriter.java     |   8 +-
 .../org/apache/calcite/rel/convert/Converter.java  |   4 +-
 .../apache/calcite/rel/convert/ConverterImpl.java  |  10 +-
 .../apache/calcite/rel/convert/ConverterRule.java  |   8 +-
 .../calcite/rel/convert/TraitMatchingRule.java     |   4 +-
 .../org/apache/calcite/rel/core/Aggregate.java     |  16 +-
 .../org/apache/calcite/rel/core/AggregateCall.java |  30 +-
 .../java/org/apache/calcite/rel/core/Calc.java     |   9 +-
 .../java/org/apache/calcite/rel/core/Collect.java  |   4 +-
 .../org/apache/calcite/rel/core/Correlate.java     |  26 +-
 .../org/apache/calcite/rel/core/CorrelationId.java |   4 +-
 .../java/org/apache/calcite/rel/core/Exchange.java |   4 +-
 .../java/org/apache/calcite/rel/core/Filter.java   |  19 +-
 .../org/apache/calcite/rel/core/Intersect.java     |   7 +-
 .../java/org/apache/calcite/rel/core/Join.java     |  11 +-
 .../java/org/apache/calcite/rel/core/Match.java    |  10 +-
 .../java/org/apache/calcite/rel/core/Project.java  |  32 +-
 .../org/apache/calcite/rel/core/RelFactories.java  | 131 ++--
 .../java/org/apache/calcite/rel/core/Sample.java   |   4 +-
 .../java/org/apache/calcite/rel/core/Snapshot.java |   5 +-
 .../java/org/apache/calcite/rel/core/Sort.java     |  14 +-
 .../apache/calcite/rel/core/TableFunctionScan.java |  27 +-
 .../org/apache/calcite/rel/core/TableModify.java   |  42 +-
 .../org/apache/calcite/rel/core/TableScan.java     |  10 +-
 .../org/apache/calcite/rel/core/Uncollect.java     |   6 +-
 .../java/org/apache/calcite/rel/core/Values.java   |   8 +-
 .../java/org/apache/calcite/rel/core/Window.java   |  17 +-
 .../calcite/rel/externalize/RelDotWriter.java      |  22 +-
 .../calcite/rel/externalize/RelEnumTypes.java      |   8 +-
 .../apache/calcite/rel/externalize/RelJson.java    | 178 +++--
 .../calcite/rel/externalize/RelJsonReader.java     |  91 ++-
 .../calcite/rel/externalize/RelJsonWriter.java     |  33 +-
 .../calcite/rel/externalize/RelWriterImpl.java     |  16 +-
 .../calcite/rel/externalize/RelXmlWriter.java      |  15 +-
 .../org/apache/calcite/rel/hint/HintStrategy.java  |  10 +-
 .../apache/calcite/rel/hint/HintStrategyTable.java |  23 +-
 .../java/org/apache/calcite/rel/hint/RelHint.java  |   5 +-
 .../calcite/rel/logical/LogicalAggregate.java      |  10 +-
 .../calcite/rel/logical/LogicalCorrelate.java      |   7 +-
 .../apache/calcite/rel/logical/LogicalFilter.java  |   4 +-
 .../apache/calcite/rel/logical/LogicalJoin.java    |  14 +-
 .../apache/calcite/rel/logical/LogicalMatch.java   |  10 +-
 .../apache/calcite/rel/logical/LogicalProject.java |  11 +-
 .../apache/calcite/rel/logical/LogicalSort.java    |   8 +-
 .../rel/logical/LogicalTableFunctionScan.java      |  21 +-
 .../calcite/rel/logical/LogicalTableModify.java    |  10 +-
 .../apache/calcite/rel/logical/LogicalValues.java  |   2 +-
 .../apache/calcite/rel/logical/LogicalWindow.java  |   6 +-
 .../calcite/rel/metadata/BuiltInMetadata.java      |  72 +-
 .../rel/metadata/CachingRelMetadataProvider.java   |  21 +-
 .../rel/metadata/ChainedRelMetadataProvider.java   |   9 +-
 .../rel/metadata/JaninoRelMetadataProvider.java    |   7 +-
 .../calcite/rel/metadata/MetadataFactory.java      |   4 +-
 .../calcite/rel/metadata/MetadataFactoryImpl.java  |  31 +-
 .../apache/calcite/rel/metadata/NullSentinel.java  |   6 +-
 .../metadata/ReflectiveRelMetadataProvider.java    |  11 +-
 .../calcite/rel/metadata/RelColumnOrigin.java      |   4 +-
 .../calcite/rel/metadata/RelMdAllPredicates.java   |  43 +-
 .../calcite/rel/metadata/RelMdCollation.java       |  83 ++-
 .../calcite/rel/metadata/RelMdColumnOrigins.java   |  29 +-
 .../rel/metadata/RelMdColumnUniqueness.java        |  41 +-
 .../rel/metadata/RelMdDistinctRowCount.java        |  49 +-
 .../calcite/rel/metadata/RelMdDistribution.java    |   6 +-
 .../rel/metadata/RelMdExplainVisibility.java       |   4 +-
 .../rel/metadata/RelMdExpressionLineage.java       |  49 +-
 .../calcite/rel/metadata/RelMdLowerBoundCost.java  |   8 +-
 .../calcite/rel/metadata/RelMdMaxRowCount.java     |  26 +-
 .../apache/calcite/rel/metadata/RelMdMemory.java   |   8 +-
 .../calcite/rel/metadata/RelMdMinRowCount.java     |  12 +-
 .../calcite/rel/metadata/RelMdNodeTypes.java       |  50 +-
 .../rel/metadata/RelMdPercentageOriginalRows.java  |  30 +-
 .../calcite/rel/metadata/RelMdPopulationSize.java  |  20 +-
 .../calcite/rel/metadata/RelMdPredicates.java      |  56 +-
 .../apache/calcite/rel/metadata/RelMdRowCount.java |  28 +-
 .../calcite/rel/metadata/RelMdSelectivity.java     |  39 +-
 .../org/apache/calcite/rel/metadata/RelMdSize.java |  97 +--
 .../calcite/rel/metadata/RelMdTableReferences.java |  36 +-
 .../calcite/rel/metadata/RelMdUniqueKeys.java      |  28 +-
 .../org/apache/calcite/rel/metadata/RelMdUtil.java | 127 ++--
 .../calcite/rel/metadata/RelMetadataProvider.java  |   4 +-
 .../calcite/rel/metadata/RelMetadataQuery.java     |  94 +--
 .../calcite/rel/metadata/RelMetadataQueryBase.java |  13 +-
 .../calcite/rel/metadata/UnboundMetadata.java      |   4 +-
 .../calcite/rel/mutable/MutableAggregate.java      |   8 +-
 .../apache/calcite/rel/mutable/MutableBiRel.java   |   1 +
 .../apache/calcite/rel/mutable/MutableCalc.java    |   4 +-
 .../apache/calcite/rel/mutable/MutableCollect.java |   4 +-
 .../calcite/rel/mutable/MutableCorrelate.java      |   4 +-
 .../calcite/rel/mutable/MutableExchange.java       |   4 +-
 .../apache/calcite/rel/mutable/MutableFilter.java  |   4 +-
 .../apache/calcite/rel/mutable/MutableJoin.java    |   4 +-
 .../apache/calcite/rel/mutable/MutableMatch.java   |  20 +-
 .../calcite/rel/mutable/MutableMultiRel.java       |   1 +
 .../apache/calcite/rel/mutable/MutableProject.java |   6 +-
 .../org/apache/calcite/rel/mutable/MutableRel.java |  10 +-
 .../calcite/rel/mutable/MutableRelVisitor.java     |  12 +-
 .../apache/calcite/rel/mutable/MutableRels.java    |  20 +-
 .../apache/calcite/rel/mutable/MutableSample.java  |   4 +-
 .../apache/calcite/rel/mutable/MutableScan.java    |  25 +-
 .../apache/calcite/rel/mutable/MutableSetOp.java   |   4 +-
 .../calcite/rel/mutable/MutableSingleRel.java      |   1 +
 .../apache/calcite/rel/mutable/MutableSort.java    |  12 +-
 .../rel/mutable/MutableTableFunctionScan.java      |  12 +-
 .../calcite/rel/mutable/MutableTableModify.java    |  16 +-
 .../calcite/rel/mutable/MutableUncollect.java      |   4 +-
 .../apache/calcite/rel/mutable/MutableValues.java  |   4 +-
 .../apache/calcite/rel/mutable/MutableWindow.java  |   4 +-
 .../java/org/apache/calcite/rel/package-info.java  |   7 +
 .../calcite/rel/rel2sql/RelToSqlConverter.java     |  76 +-
 .../apache/calcite/rel/rel2sql/SqlImplementor.java | 126 ++--
 .../rel/rules/AggregateCaseToFilterRule.java       |   3 +-
 .../AggregateExpandDistinctAggregatesRule.java     |  41 +-
 .../rel/rules/AggregateJoinTransposeRule.java      |  34 +-
 .../calcite/rel/rules/AggregateMergeRule.java      |  11 +-
 .../rel/rules/AggregateProjectMergeRule.java       |  10 +-
 .../rules/AggregateProjectPullUpConstantsRule.java |  11 +-
 .../rel/rules/AggregateReduceFunctionsRule.java    |   9 +-
 .../calcite/rel/rules/AggregateRemoveRule.java     |  12 +-
 .../calcite/rel/rules/AggregateStarTableRule.java  |  18 +-
 .../rel/rules/AggregateUnionTransposeRule.java     |   4 +-
 .../apache/calcite/rel/rules/CalcRelSplitter.java  |   8 +-
 .../apache/calcite/rel/rules/CoerceInputsRule.java |   4 +-
 .../apache/calcite/rel/rules/DateRangeRules.java   |  82 ++-
 .../rel/rules/ExchangeRemoveConstantKeysRule.java  |   4 +-
 .../apache/calcite/rel/rules/FilterJoinRule.java   |   9 +-
 .../rel/rules/FilterMultiJoinMergeRule.java        |   4 +-
 .../apache/calcite/rel/rules/JoinCommuteRule.java  |   8 +-
 .../rel/rules/JoinProjectTransposeRule.java        |   9 +-
 .../calcite/rel/rules/JoinToMultiJoinRule.java     |  44 +-
 .../org/apache/calcite/rel/rules/LoptJoinTree.java |  14 +-
 .../apache/calcite/rel/rules/LoptMultiJoin.java    |  82 ++-
 .../calcite/rel/rules/LoptOptimizeJoinRule.java    |  66 +-
 .../calcite/rel/rules/LoptSemiJoinOptimizer.java   |  29 +-
 .../org/apache/calcite/rel/rules/MultiJoin.java    |  32 +-
 .../rel/rules/MultiJoinOptimizeBushyRule.java      |   4 +-
 .../rel/rules/ProjectAggregateMergeRule.java       |   3 +-
 .../rel/rules/ProjectCorrelateTransposeRule.java   |   9 +-
 .../rel/rules/ProjectFilterTransposeRule.java      |   4 +-
 .../rel/rules/ProjectJoinJoinRemoveRule.java       |   2 +-
 .../calcite/rel/rules/ProjectJoinRemoveRule.java   |   5 +-
 .../rel/rules/ProjectJoinTransposeRule.java        |   4 +-
 .../apache/calcite/rel/rules/PushProjector.java    |  32 +-
 .../calcite/rel/rules/ReduceDecimalsRule.java      |  29 +-
 .../calcite/rel/rules/ReduceExpressionsRule.java   |  18 +-
 .../rel/rules/SemiJoinProjectTransposeRule.java    |   5 +-
 .../org/apache/calcite/rel/rules/SemiJoinRule.java |   4 +-
 .../rel/rules/SortRemoveConstantKeysRule.java      |   2 +-
 .../apache/calcite/rel/rules/SortRemoveRule.java   |   3 +-
 .../org/apache/calcite/rel/rules/SpatialRules.java |  18 +-
 .../calcite/rel/rules/SubQueryRemoveRule.java      |   8 +-
 .../rel/rules/UnionPullUpConstantsRule.java        |   2 +-
 .../apache/calcite/rel/rules/ValuesReduceRule.java |  13 +-
 .../materialize/MaterializedViewAggregateRule.java |  72 +-
 .../materialize/MaterializedViewJoinRule.java      |  60 +-
 .../rules/materialize/MaterializedViewRule.java    |  84 ++-
 .../calcite/rel/type/DelegatingTypeSystem.java     |   4 +-
 .../calcite/rel/type/DynamicRecordTypeImpl.java    |   9 +-
 .../org/apache/calcite/rel/type/RelCrossType.java  |   1 +
 .../org/apache/calcite/rel/type/RelDataType.java   |  27 +-
 .../calcite/rel/type/RelDataTypeFactory.java       |   8 +-
 .../calcite/rel/type/RelDataTypeFactoryImpl.java   |  58 +-
 .../apache/calcite/rel/type/RelDataTypeField.java  |   2 +
 .../calcite/rel/type/RelDataTypeFieldImpl.java     |   4 +-
 .../apache/calcite/rel/type/RelDataTypeImpl.java   |  50 +-
 .../apache/calcite/rel/type/RelDataTypeSystem.java |  12 +-
 .../calcite/rel/type/RelDataTypeSystemImpl.java    |   4 +-
 .../org/apache/calcite/rel/type/RelRecordType.java |   9 +-
 .../java/org/apache/calcite/rex/LogicVisitor.java  |  23 +-
 .../org/apache/calcite/rex/RexBiVisitorImpl.java   |   4 +-
 .../java/org/apache/calcite/rex/RexBuilder.java    |  73 +-
 .../main/java/org/apache/calcite/rex/RexCall.java  |  38 +-
 .../org/apache/calcite/rex/RexCallBinding.java     |   6 +-
 .../java/org/apache/calcite/rex/RexChecker.java    |  15 +-
 .../org/apache/calcite/rex/RexCorrelVariable.java  |   6 +-
 .../org/apache/calcite/rex/RexDynamicParam.java    |   4 +-
 .../java/org/apache/calcite/rex/RexExecutable.java |  36 +-
 .../org/apache/calcite/rex/RexExecutorImpl.java    |   4 +-
 .../org/apache/calcite/rex/RexFieldAccess.java     |   4 +-
 .../java/org/apache/calcite/rex/RexInputRef.java   |   4 +-
 .../org/apache/calcite/rex/RexInterpreter.java     |   4 +-
 .../java/org/apache/calcite/rex/RexLiteral.java    | 109 +--
 .../java/org/apache/calcite/rex/RexLocalRef.java   |   4 +-
 .../org/apache/calcite/rex/RexMultisetUtil.java    |   4 +-
 .../main/java/org/apache/calcite/rex/RexNode.java  |  11 +-
 .../java/org/apache/calcite/rex/RexNormalize.java  |   2 +-
 .../main/java/org/apache/calcite/rex/RexOver.java  |   9 +-
 .../calcite/rex/RexPermuteInputsShuttle.java       |   4 +-
 .../java/org/apache/calcite/rex/RexProgram.java    |  61 +-
 .../org/apache/calcite/rex/RexProgramBuilder.java  |  46 +-
 .../java/org/apache/calcite/rex/RexRangeRef.java   |   4 +-
 .../java/org/apache/calcite/rex/RexShuttle.java    |  21 +-
 .../java/org/apache/calcite/rex/RexSimplify.java   | 107 +--
 .../org/apache/calcite/rex/RexSqlConvertlet.java   |   4 +-
 .../apache/calcite/rex/RexSqlConvertletTable.java  |   4 +-
 .../rex/RexSqlReflectiveConvertletTable.java       |   6 +-
 .../calcite/rex/RexSqlStandardConvertletTable.java |  14 +-
 .../java/org/apache/calcite/rex/RexSubQuery.java   |   7 +-
 .../org/apache/calcite/rex/RexTableInputRef.java   |   9 +-
 .../apache/calcite/rex/RexToSqlNodeConverter.java  |  10 +-
 .../calcite/rex/RexToSqlNodeConverterImpl.java     |  33 +-
 .../org/apache/calcite/rex/RexUnaryBiVisitor.java  |   4 +-
 .../java/org/apache/calcite/rex/RexUnknownAs.java  |   4 +-
 .../main/java/org/apache/calcite/rex/RexUtil.java  | 106 +--
 .../org/apache/calcite/rex/RexVisitorImpl.java     |   4 +-
 .../java/org/apache/calcite/rex/RexWindow.java     |   5 +-
 .../org/apache/calcite/rex/RexWindowBound.java     |  13 +-
 .../org/apache/calcite/rex/RexWindowBounds.java    |  11 +-
 .../java/org/apache/calcite/rex/package-info.java  |   7 +
 .../calcite/runtime/AbstractImmutableList.java     |  29 +-
 .../org/apache/calcite/runtime/ArrayBindable.java  |   4 +-
 .../calcite/runtime/ArrayEnumeratorCursor.java     |   6 +-
 .../java/org/apache/calcite/runtime/Automaton.java |   4 +-
 .../apache/calcite/runtime/AutomatonBuilder.java   |   2 +
 .../calcite/runtime/CalciteContextException.java   |  19 +-
 .../apache/calcite/runtime/CalciteException.java   |   1 +
 .../apache/calcite/runtime/CalciteResource.java    |  10 +-
 .../calcite/runtime/CompressionFunctions.java      |   4 +-
 .../java/org/apache/calcite/runtime/ConsList.java  |  28 +-
 .../calcite/runtime/DeterministicAutomaton.java    |   5 +-
 .../org/apache/calcite/runtime/Enumerables.java    |  14 +-
 .../java/org/apache/calcite/runtime/FlatLists.java | 113 +--
 .../org/apache/calcite/runtime/GeoFunctions.java   |  84 ++-
 .../org/apache/calcite/runtime/Geometries.java     |   8 +-
 .../main/java/org/apache/calcite/runtime/Hook.java |  11 +-
 .../org/apache/calcite/runtime/JsonFunctions.java  |  96 +--
 .../main/java/org/apache/calcite/runtime/Like.java |   6 +-
 .../java/org/apache/calcite/runtime/Matcher.java   |   6 +-
 .../org/apache/calcite/runtime/PredicateImpl.java  |   2 +-
 .../org/apache/calcite/runtime/RandomFunction.java |   4 +-
 .../java/org/apache/calcite/runtime/Resources.java | 148 ++--
 .../calcite/runtime/ResultSetEnumerable.java       |  47 +-
 .../calcite/runtime/SpaceFillingCurve2D.java       |   1 +
 .../org/apache/calcite/runtime/SqlFunctions.java   | 299 ++++----
 .../calcite/runtime/TrustAllSslSocketFactory.java  |  12 +-
 .../java/org/apache/calcite/runtime/Utilities.java |  21 +-
 .../org/apache/calcite/runtime/XmlFunctions.java   |  44 +-
 .../org/apache/calcite/runtime/package-info.java   |   7 +
 .../org/apache/calcite/schema/FilterableTable.java |   4 +-
 .../org/apache/calcite/schema/ModifiableTable.java |   8 +-
 .../calcite/schema/ProjectableFilterableTable.java |   8 +-
 .../org/apache/calcite/schema/ScannableTable.java  |   4 +-
 .../java/org/apache/calcite/schema/Schema.java     |  10 +-
 .../java/org/apache/calcite/schema/SchemaPlus.java |   8 +-
 .../java/org/apache/calcite/schema/Schemas.java    |  89 ++-
 .../java/org/apache/calcite/schema/Statistic.java  |  12 +-
 .../java/org/apache/calcite/schema/Statistics.java |  26 +-
 .../main/java/org/apache/calcite/schema/Table.java |   4 +-
 .../org/apache/calcite/schema/TableFactory.java    |   5 +-
 .../org/apache/calcite/schema/TableFunction.java   |   6 +-
 .../java/org/apache/calcite/schema/TableMacro.java |   4 +-
 .../org/apache/calcite/schema/TemporalTable.java   |   6 +-
 .../java/org/apache/calcite/schema/Wrapper.java    |  26 +-
 .../apache/calcite/schema/impl/AbstractSchema.java |  22 +-
 .../apache/calcite/schema/impl/AbstractTable.java  |   6 +-
 .../calcite/schema/impl/AggregateFunctionImpl.java |  12 +-
 .../calcite/schema/impl/DelegatingSchema.java      |  10 +-
 .../calcite/schema/impl/ListTransientTable.java    |  19 +-
 .../calcite/schema/impl/LongSchemaVersion.java     |   4 +-
 .../calcite/schema/impl/MaterializedViewTable.java |  13 +-
 .../calcite/schema/impl/ModifiableViewTable.java   |  22 +-
 .../schema/impl/ReflectiveFunctionBase.java        |   4 +-
 .../calcite/schema/impl/ScalarFunctionImpl.java    |   4 +-
 .../org/apache/calcite/schema/impl/StarTable.java  |  11 +-
 .../calcite/schema/impl/TableFunctionImpl.java     |  22 +-
 .../apache/calcite/schema/impl/TableMacroImpl.java |  15 +-
 .../org/apache/calcite/schema/impl/ViewTable.java  |  13 +-
 .../apache/calcite/schema/impl/ViewTableMacro.java |  25 +-
 .../org/apache/calcite/schema/package-info.java    |   7 +
 .../calcite/server/CalciteServerStatement.java     |   6 +-
 .../org/apache/calcite/server/DdlExecutorImpl.java |   1 +
 .../org/apache/calcite/server/package-info.java    |   7 +
 .../calcite/sql/ExplicitOperatorBinding.java       |   6 +-
 .../calcite/sql/SqlAbstractDateTimeLiteral.java    |   4 +-
 .../org/apache/calcite/sql/SqlAggFunction.java     |  31 +-
 .../main/java/org/apache/calcite/sql/SqlAlter.java |  11 +-
 .../java/org/apache/calcite/sql/SqlBasicCall.java  |  23 +-
 .../apache/calcite/sql/SqlBasicTypeNameSpec.java   |  10 +-
 .../org/apache/calcite/sql/SqlBinaryOperator.java  |  17 +-
 .../apache/calcite/sql/SqlBinaryStringLiteral.java |  12 +-
 .../main/java/org/apache/calcite/sql/SqlCall.java  |  49 +-
 .../org/apache/calcite/sql/SqlCallBinding.java     |  28 +-
 .../apache/calcite/sql/SqlCharStringLiteral.java   |  17 +-
 .../java/org/apache/calcite/sql/SqlCollation.java  |  19 +-
 .../org/apache/calcite/sql/SqlDataTypeSpec.java    |  22 +-
 .../org/apache/calcite/sql/SqlDateLiteral.java     |   6 +-
 .../java/org/apache/calcite/sql/SqlDelete.java     |  26 +-
 .../org/apache/calcite/sql/SqlDescribeSchema.java  |  10 +-
 .../org/apache/calcite/sql/SqlDescribeTable.java   |  22 +-
 .../java/org/apache/calcite/sql/SqlDialect.java    | 161 ++---
 .../apache/calcite/sql/SqlDialectFactoryImpl.java  |   4 +-
 .../org/apache/calcite/sql/SqlDynamicParam.java    |   6 +-
 .../java/org/apache/calcite/sql/SqlExplain.java    |  24 +-
 .../java/org/apache/calcite/sql/SqlFunction.java   |  53 +-
 .../apache/calcite/sql/SqlFunctionalOperator.java  |   8 +-
 .../calcite/sql/SqlGroupedWindowFunction.java      |  18 +-
 .../main/java/org/apache/calcite/sql/SqlHint.java  |  22 +-
 .../java/org/apache/calcite/sql/SqlIdentifier.java |  30 +-
 .../org/apache/calcite/sql/SqlInfixOperator.java   |   8 +-
 .../java/org/apache/calcite/sql/SqlInsert.java     |  22 +-
 .../apache/calcite/sql/SqlInternalOperator.java    |   4 +-
 .../org/apache/calcite/sql/SqlIntervalLiteral.java |  10 +-
 .../apache/calcite/sql/SqlIntervalQualifier.java   |  28 +-
 .../apache/calcite/sql/SqlJdbcDataTypeName.java    |   8 +-
 .../apache/calcite/sql/SqlJdbcFunctionCall.java    |  56 +-
 .../main/java/org/apache/calcite/sql/SqlJoin.java  |  44 +-
 .../java/org/apache/calcite/sql/SqlLiteral.java    | 103 +--
 .../org/apache/calcite/sql/SqlMatchFunction.java   |   4 +-
 .../org/apache/calcite/sql/SqlMatchRecognize.java  |  51 +-
 .../main/java/org/apache/calcite/sql/SqlMerge.java |  48 +-
 .../main/java/org/apache/calcite/sql/SqlNode.java  |  33 +-
 .../java/org/apache/calcite/sql/SqlNodeList.java   |  87 ++-
 .../calcite/sql/SqlNullTreatmentOperator.java      |   6 +-
 .../org/apache/calcite/sql/SqlNumericLiteral.java  |  36 +-
 .../java/org/apache/calcite/sql/SqlOperator.java   |  79 ++-
 .../org/apache/calcite/sql/SqlOperatorBinding.java |  14 +-
 .../org/apache/calcite/sql/SqlOperatorTable.java   |   4 +-
 .../java/org/apache/calcite/sql/SqlOrderBy.java    |  14 +-
 .../main/java/org/apache/calcite/sql/SqlPivot.java |  10 +-
 .../org/apache/calcite/sql/SqlPostfixOperator.java |  14 +-
 .../org/apache/calcite/sql/SqlPrefixOperator.java  |  22 +-
 .../org/apache/calcite/sql/SqlRowTypeNameSpec.java |   3 +-
 .../java/org/apache/calcite/sql/SqlSelect.java     |  98 +--
 .../org/apache/calcite/sql/SqlSelectOperator.java  |  19 +-
 .../java/org/apache/calcite/sql/SqlSetOption.java  |  28 +-
 .../java/org/apache/calcite/sql/SqlSnapshot.java   |   9 +-
 .../org/apache/calcite/sql/SqlSpecialOperator.java |  12 +-
 .../calcite/sql/SqlSplittableAggFunction.java      |  21 +-
 .../java/org/apache/calcite/sql/SqlSyntax.java     |   8 +-
 .../java/org/apache/calcite/sql/SqlTableRef.java   |  12 +-
 .../org/apache/calcite/sql/SqlTimeLiteral.java     |   6 +-
 .../apache/calcite/sql/SqlTimestampLiteral.java    |   6 +-
 .../org/apache/calcite/sql/SqlUnnestOperator.java  |  14 +-
 .../apache/calcite/sql/SqlUnresolvedFunction.java  |  10 +-
 .../java/org/apache/calcite/sql/SqlUpdate.java     |  30 +-
 .../main/java/org/apache/calcite/sql/SqlUtil.java  |  96 +--
 .../java/org/apache/calcite/sql/SqlWindow.java     |  86 ++-
 .../apache/calcite/sql/SqlWindowTableFunction.java |   6 +-
 .../main/java/org/apache/calcite/sql/SqlWith.java  |  10 +-
 .../java/org/apache/calcite/sql/SqlWithItem.java   |  17 +-
 .../java/org/apache/calcite/sql/SqlWriter.java     |  24 +-
 .../org/apache/calcite/sql/SqlWriterConfig.java    |  50 +-
 .../org/apache/calcite/sql/advise/SqlAdvisor.java  |  43 +-
 .../sql/advise/SqlAdvisorGetHintsFunction.java     |   8 +-
 .../sql/advise/SqlAdvisorGetHintsFunction2.java    |   8 +-
 .../apache/calcite/sql/advise/SqlAdvisorHint.java  |   8 +-
 .../apache/calcite/sql/advise/SqlAdvisorHint2.java |   7 +-
 .../apache/calcite/sql/advise/SqlSimpleParser.java |  36 +-
 .../calcite/sql/ddl/SqlAttributeDefinition.java    |  24 +-
 .../apache/calcite/sql/ddl/SqlCheckConstraint.java |   7 +-
 .../calcite/sql/ddl/SqlColumnDeclaration.java      |  15 +-
 .../calcite/sql/ddl/SqlCreateForeignSchema.java    |  25 +-
 .../calcite/sql/ddl/SqlCreateMaterializedView.java |   7 +-
 .../org/apache/calcite/sql/ddl/SqlCreateTable.java |   9 +-
 .../org/apache/calcite/sql/ddl/SqlCreateType.java  |   9 +-
 .../org/apache/calcite/sql/ddl/SqlCreateView.java  |   7 +-
 .../apache/calcite/sql/ddl/SqlKeyConstraint.java   |   7 +-
 .../calcite/sql/dialect/BigQuerySqlDialect.java    |  23 +-
 .../calcite/sql/dialect/ClickHouseSqlDialect.java  |  14 +-
 .../apache/calcite/sql/dialect/Db2SqlDialect.java  |   2 +-
 .../apache/calcite/sql/dialect/HiveSqlDialect.java |  10 +-
 .../calcite/sql/dialect/HsqldbSqlDialect.java      |   6 +-
 .../calcite/sql/dialect/JethroDataSqlDialect.java  |  14 +-
 .../calcite/sql/dialect/MssqlSqlDialect.java       |  19 +-
 .../calcite/sql/dialect/MysqlSqlDialect.java       |  12 +-
 .../calcite/sql/dialect/OracleSqlDialect.java      |   4 +-
 .../calcite/sql/dialect/PostgresqlSqlDialect.java  |   4 +-
 .../calcite/sql/dialect/PrestoSqlDialect.java      |  14 +-
 .../calcite/sql/dialect/RedshiftSqlDialect.java    |   6 +-
 .../calcite/sql/dialect/SparkSqlDialect.java       |   6 +-
 .../calcite/sql/dialect/SybaseSqlDialect.java      |  13 +-
 .../calcite/sql/fun/OracleSqlOperatorTable.java    |   6 +-
 .../calcite/sql/fun/SqlAbstractGroupFunction.java  |   4 +-
 .../calcite/sql/fun/SqlAbstractTimeFunction.java   |   3 +-
 .../calcite/sql/fun/SqlArrayValueConstructor.java  |   6 +-
 .../calcite/sql/fun/SqlBasicAggFunction.java       |  33 +-
 .../apache/calcite/sql/fun/SqlBetweenOperator.java |   5 +-
 .../calcite/sql/fun/SqlBitOpAggFunction.java       |   4 +-
 .../java/org/apache/calcite/sql/fun/SqlCase.java   |  22 +-
 .../apache/calcite/sql/fun/SqlCaseOperator.java    |  24 +-
 .../apache/calcite/sql/fun/SqlCastFunction.java    |   4 +-
 .../apache/calcite/sql/fun/SqlConvertFunction.java |   3 +-
 .../calcite/sql/fun/SqlCountAggFunction.java       |   4 +-
 .../org/apache/calcite/sql/fun/SqlDotOperator.java |  19 +-
 .../apache/calcite/sql/fun/SqlExtractFunction.java |   8 +-
 .../apache/calcite/sql/fun/SqlFloorFunction.java   |   3 +-
 .../apache/calcite/sql/fun/SqlGeoFunctions.java    |   6 +-
 .../calcite/sql/fun/SqlInternalOperators.java      |   8 +-
 .../calcite/sql/fun/SqlIntervalOperator.java       |   4 +-
 .../apache/calcite/sql/fun/SqlItemOperator.java    |  23 +-
 .../sql/fun/SqlJsonArrayAggAggFunction.java        |   9 +-
 .../calcite/sql/fun/SqlJsonArrayFunction.java      |  15 +-
 .../calcite/sql/fun/SqlJsonDepthFunction.java      |   4 +-
 .../calcite/sql/fun/SqlJsonObjectFunction.java     |  14 +-
 .../calcite/sql/fun/SqlJsonPrettyFunction.java     |   4 +-
 .../calcite/sql/fun/SqlJsonQueryFunction.java      |  13 +-
 .../calcite/sql/fun/SqlJsonTypeFunction.java       |   4 +-
 .../calcite/sql/fun/SqlJsonValueFunction.java      |   8 +-
 .../org/apache/calcite/sql/fun/SqlLibrary.java     |   8 +-
 .../sql/fun/SqlLibraryOperatorTableFactory.java    |   6 +-
 .../calcite/sql/fun/SqlLibraryOperators.java       |   6 +-
 .../apache/calcite/sql/fun/SqlLikeOperator.java    |   4 +-
 .../calcite/sql/fun/SqlLiteralChainOperator.java   |   9 +-
 .../calcite/sql/fun/SqlMapValueConstructor.java    |  17 +-
 .../calcite/sql/fun/SqlMinMaxAggFunction.java      |   4 +-
 .../sql/fun/SqlMonotonicBinaryOperator.java        |   4 -
 .../calcite/sql/fun/SqlMonotonicUnaryFunction.java |   4 +-
 .../sql/fun/SqlMultisetQueryConstructor.java       |  11 +-
 .../sql/fun/SqlMultisetValueConstructor.java       |  10 +-
 .../apache/calcite/sql/fun/SqlOverlayFunction.java |   4 +-
 .../calcite/sql/fun/SqlPosixRegexOperator.java     |   8 +-
 .../apache/calcite/sql/fun/SqlSearchOperator.java  |   4 +-
 .../calcite/sql/fun/SqlStdOperatorTable.java       |  22 +-
 .../calcite/sql/fun/SqlSubstringFunction.java      |   4 +-
 .../apache/calcite/sql/fun/SqlSumAggFunction.java  |   4 +-
 .../sql/fun/SqlSumEmptyIsZeroAggFunction.java      |   4 +-
 .../calcite/sql/fun/SqlTimestampAddFunction.java   |   4 +-
 .../apache/calcite/sql/fun/SqlTrimFunction.java    |   6 +-
 .../java/org/apache/calcite/sql/package-info.java  |   7 +
 .../java/org/apache/calcite/sql/parser/Span.java   |   9 +-
 .../calcite/sql/parser/SqlAbstractParserImpl.java  |  20 +-
 .../org/apache/calcite/sql/parser/SqlParser.java   |  12 +-
 .../apache/calcite/sql/parser/SqlParserPos.java    | 203 +++---
 .../apache/calcite/sql/parser/SqlParserUtil.java   | 130 ++--
 .../apache/calcite/sql/parser/StringAndPos.java    |   6 +-
 .../apache/calcite/sql/pretty/SqlPrettyWriter.java |  94 +--
 .../apache/calcite/sql/type/AbstractSqlType.java   |   4 +-
 .../org/apache/calcite/sql/type/ArraySqlType.java  |  18 +-
 .../sql/type/AssignableOperandTypeChecker.java     |   6 +-
 .../org/apache/calcite/sql/type/BasicSqlType.java  |  16 +-
 .../sql/type/CompositeOperandTypeChecker.java      |  20 +-
 .../type/CompositeSingleOperandTypeChecker.java    |   4 +-
 .../sql/type/CursorReturnTypeInference.java        |   4 +-
 .../sql/type/ExplicitOperandTypeChecker.java       |   6 +-
 .../sql/type/ExplicitOperandTypeInference.java     |   3 +-
 .../sql/type/JavaToSqlTypeConversionRules.java     |   4 +-
 .../calcite/sql/type/MatchReturnTypeInference.java |   4 +-
 .../sql/type/MultisetOperandTypeChecker.java       |   7 +-
 .../apache/calcite/sql/type/MultisetSqlType.java   |  16 +-
 .../calcite/sql/type/NonNullableAccessors.java     |  55 ++
 .../org/apache/calcite/sql/type/ObjectSqlType.java |  12 +-
 .../org/apache/calcite/sql/type/OperandTypes.java  |   2 +-
 .../org/apache/calcite/sql/type/ReturnTypes.java   |  28 +-
 .../calcite/sql/type/SameOperandTypeChecker.java   |  13 +-
 .../SameOperandTypeExceptLastOperandChecker.java   |  15 +-
 .../calcite/sql/type/SetopOperandTypeChecker.java  |   4 +-
 .../calcite/sql/type/SqlOperandMetadata.java       |   2 -
 .../calcite/sql/type/SqlOperandTypeChecker.java    |   4 +-
 .../calcite/sql/type/SqlReturnTypeInference.java   |   4 +-
 .../sql/type/SqlReturnTypeInferenceChain.java      |   4 +-
 .../calcite/sql/type/SqlTypeCoercionRule.java      |   7 +-
 .../sql/type/SqlTypeExplicitPrecedenceList.java    |   4 +-
 .../calcite/sql/type/SqlTypeFactoryImpl.java       |  19 +-
 .../org/apache/calcite/sql/type/SqlTypeFamily.java |   6 +-
 .../calcite/sql/type/SqlTypeMappingRules.java      |   4 +-
 .../org/apache/calcite/sql/type/SqlTypeName.java   |  20 +-
 .../calcite/sql/type/SqlTypeTransformCascade.java  |   4 +-
 .../apache/calcite/sql/type/SqlTypeTransforms.java |  20 +-
 .../org/apache/calcite/sql/type/SqlTypeUtil.java   |  62 +-
 .../sql/type/TableFunctionReturnTypeInference.java |  17 +-
 .../calcite/sql/util/ChainedSqlOperatorTable.java  |   4 +-
 .../java/org/apache/calcite/sql/util/IdPair.java   |   4 +-
 .../calcite/sql/util/ListSqlOperatorTable.java     |   4 +-
 .../sql/util/ReflectiveSqlOperatorTable.java       |   8 +-
 .../apache/calcite/sql/util/SqlBasicVisitor.java   |  14 +-
 .../org/apache/calcite/sql/util/SqlShuttle.java    |  34 +-
 .../org/apache/calcite/sql/util/SqlString.java     |  13 +-
 .../calcite/sql/validate/AbstractNamespace.java    |  34 +-
 .../apache/calcite/sql/validate/AggChecker.java    |  15 +-
 .../org/apache/calcite/sql/validate/AggFinder.java |  15 +-
 .../apache/calcite/sql/validate/AggVisitor.java    |   5 +-
 .../sql/validate/AggregatingSelectScope.java       |  17 +-
 .../calcite/sql/validate/AliasNamespace.java       |  10 +-
 .../calcite/sql/validate/CollectNamespace.java     |   4 +-
 .../apache/calcite/sql/validate/CollectScope.java  |   6 +-
 .../calcite/sql/validate/DelegatingNamespace.java  |  12 +-
 .../calcite/sql/validate/DelegatingScope.java      |  32 +-
 .../DelegatingSqlValidatorCatalogReader.java       |   8 +-
 .../apache/calcite/sql/validate/EmptyScope.java    |  12 +-
 .../calcite/sql/validate/FieldNamespace.java       |  12 +-
 .../calcite/sql/validate/IdentifierNamespace.java  |  32 +-
 .../apache/calcite/sql/validate/JoinNamespace.java |   8 +-
 .../org/apache/calcite/sql/validate/JoinScope.java |  16 +-
 .../org/apache/calcite/sql/validate/ListScope.java |  26 +-
 .../sql/validate/MatchRecognizeNamespace.java      |   8 +-
 .../calcite/sql/validate/MatchRecognizeScope.java  |   2 +-
 .../apache/calcite/sql/validate/OrderByScope.java  |  13 +-
 .../calcite/sql/validate/ParameterNamespace.java   |   4 +-
 .../calcite/sql/validate/ParameterScope.java       |   4 +-
 .../calcite/sql/validate/PivotNamespace.java       |   4 +-
 .../apache/calcite/sql/validate/PivotScope.java    |   6 +-
 .../calcite/sql/validate/ProcedureNamespace.java   |  10 +-
 .../calcite/sql/validate/SchemaNamespace.java      |  10 +-
 .../calcite/sql/validate/SelectNamespace.java      |  17 +-
 .../apache/calcite/sql/validate/SelectScope.java   |  24 +-
 .../calcite/sql/validate/SetopNamespace.java       |  21 +-
 .../calcite/sql/validate/SqlMonikerImpl.java       |   4 +-
 .../calcite/sql/validate/SqlNameMatcher.java       |   6 +-
 .../calcite/sql/validate/SqlNameMatchers.java      |  12 +-
 .../sql/validate/SqlNonNullableAccessors.java      | 111 +++
 .../apache/calcite/sql/validate/SqlQualified.java  |  12 +-
 .../calcite/sql/validate/SqlScopedShuttle.java     |  12 +-
 .../sql/validate/SqlUserDefinedAggFunction.java    |  10 +-
 .../sql/validate/SqlUserDefinedFunction.java       |  12 +-
 .../sql/validate/SqlUserDefinedTableFunction.java  |  10 +-
 .../sql/validate/SqlUserDefinedTableMacro.java     |  16 +-
 .../apache/calcite/sql/validate/SqlValidator.java  |  40 +-
 .../sql/validate/SqlValidatorCatalogReader.java    |   8 +-
 .../sql/validate/SqlValidatorException.java        |   1 +
 .../calcite/sql/validate/SqlValidatorImpl.java     | 767 ++++++++++++---------
 .../sql/validate/SqlValidatorNamespace.java        |  14 +-
 .../calcite/sql/validate/SqlValidatorScope.java    |  26 +-
 .../calcite/sql/validate/SqlValidatorTable.java    |   5 +
 .../calcite/sql/validate/SqlValidatorUtil.java     | 128 ++--
 .../sql/validate/SqlValidatorWithHints.java        |   6 +-
 .../sql/validate/TableConstructorNamespace.java    |   4 +-
 .../calcite/sql/validate/TableNamespace.java       |  12 +-
 .../apache/calcite/sql/validate/TableScope.java    |   4 +-
 .../calcite/sql/validate/UnnestNamespace.java      |   9 +-
 .../calcite/sql/validate/WithItemNamespace.java    |  14 +-
 .../apache/calcite/sql/validate/WithNamespace.java |   4 +-
 .../org/apache/calcite/sql/validate/WithScope.java |   6 +-
 .../validate/implicit/AbstractTypeCoercion.java    |  70 +-
 .../sql/validate/implicit/TypeCoercion.java        |  20 +-
 .../sql/validate/implicit/TypeCoercionImpl.java    |  66 +-
 .../sql2rel/CorrelationReferenceFinder.java        |   7 +-
 .../sql2rel/DeduplicateCorrelateVariables.java     |   7 +-
 .../sql2rel/InitializerExpressionFactory.java      |   4 +-
 .../sql2rel/NullInitializerExpressionFactory.java  |   5 +-
 .../calcite/sql2rel/ReflectiveConvertletTable.java |  36 +-
 .../apache/calcite/sql2rel/RelDecorrelator.java    | 164 +++--
 .../apache/calcite/sql2rel/RelFieldTrimmer.java    |  13 +-
 .../sql2rel/RelStructuredTypeFlattener.java        |  45 +-
 .../calcite/sql2rel/SqlRexConvertletTable.java     |   4 +-
 .../apache/calcite/sql2rel/SqlToRelConverter.java  | 614 ++++++++++-------
 .../calcite/sql2rel/StandardConvertletTable.java   |  72 +-
 .../org/apache/calcite/sql2rel/package-info.java   |   7 +
 .../calcite/statistic/MapSqlStatisticProvider.java |  13 +-
 .../statistic/QuerySqlStatisticProvider.java       |  17 +-
 .../org/apache/calcite/statistic/package-info.java |   7 +
 .../org/apache/calcite/tools/FrameworkConfig.java  |  12 +-
 .../java/org/apache/calcite/tools/Frameworks.java  |  44 +-
 .../main/java/org/apache/calcite/tools/Hoist.java  |   6 +-
 .../org/apache/calcite/tools/PigRelBuilder.java    |  15 +-
 .../java/org/apache/calcite/tools/Programs.java    |  11 +-
 .../java/org/apache/calcite/tools/RelBuilder.java  | 220 +++---
 .../apache/calcite/tools/RelBuilderFactory.java    |   4 +-
 .../java/org/apache/calcite/tools/RuleSets.java    |   4 +-
 .../org/apache/calcite/tools/package-info.java     |   7 +
 .../calcite/util/BarfingInvocationHandler.java     |   6 +-
 .../main/java/org/apache/calcite/util/BitSets.java |   7 +-
 .../java/org/apache/calcite/util/BitString.java    |   4 +-
 .../java/org/apache/calcite/util/BlackholeMap.java |   6 +-
 .../org/apache/calcite/util/BuiltInMethod.java     |  15 +-
 .../java/org/apache/calcite/util/CastingList.java  |  10 +-
 .../java/org/apache/calcite/util/ChunkList.java    | 126 ++--
 .../java/org/apache/calcite/util/Compatible.java   |   4 +-
 .../java/org/apache/calcite/util/CompositeMap.java |  18 +-
 .../org/apache/calcite/util/ConversionUtil.java    |   4 +-
 .../java/org/apache/calcite/util/DateString.java   |   8 +-
 .../calcite/util/DelegatingInvocationHandler.java  |   8 +-
 .../org/apache/calcite/util/EquivalenceSet.java    |   4 +-
 .../java/org/apache/calcite/util/Filterator.java   |  12 +-
 .../java/org/apache/calcite/util/Glossary.java     |  56 +-
 .../org/apache/calcite/util/ImmutableBeans.java    |  60 +-
 .../org/apache/calcite/util/ImmutableBitSet.java   |  82 ++-
 .../org/apache/calcite/util/ImmutableIntList.java  |  35 +-
 .../apache/calcite/util/ImmutableNullableList.java |   6 +-
 .../apache/calcite/util/ImmutableNullableMap.java  |  15 +-
 .../apache/calcite/util/ImmutableNullableSet.java  |  23 +-
 .../apache/calcite/util/IntegerIntervalSet.java    |   4 +-
 .../java/org/apache/calcite/util/JsonBuilder.java  |  21 +-
 .../main/java/org/apache/calcite/util/Litmus.java  |  15 +-
 .../main/java/org/apache/calcite/util/NameMap.java |   6 +-
 .../java/org/apache/calcite/util/NameMultimap.java |   4 +-
 .../main/java/org/apache/calcite/util/NameSet.java |  10 +-
 .../java/org/apache/calcite/util/NlsString.java    |  49 +-
 .../java/org/apache/calcite/util/NumberUtil.java   |  60 +-
 .../main/java/org/apache/calcite/util/Pair.java    |  48 +-
 .../apache/calcite/util/PartiallyOrderedSet.java   |  58 +-
 .../java/org/apache/calcite/util/Permutation.java  |  10 +-
 .../calcite/util/PrecedenceClimbingParser.java     |  83 ++-
 .../java/org/apache/calcite/util/ReflectUtil.java  |  44 +-
 .../calcite/util/ReflectiveVisitDispatcher.java    |   9 +-
 .../apache/calcite/util/RelToSqlConverterUtil.java |   9 +-
 .../org/apache/calcite/util/SaffronProperties.java |   7 +-
 .../main/java/org/apache/calcite/util/Sarg.java    |  10 +-
 .../apache/calcite/util/SerializableCharset.java   |   9 +-
 .../calcite/util/SimpleNamespaceContext.java       |   5 +-
 .../main/java/org/apache/calcite/util/Source.java  |   4 +-
 .../apache/calcite/util/SourceStringReader.java    |   5 +-
 .../main/java/org/apache/calcite/util/Sources.java |  26 +-
 .../java/org/apache/calcite/util/Template.java     |   6 +-
 .../java/org/apache/calcite/util/TimeString.java   |   8 +-
 .../calcite/util/TimeWithTimeZoneString.java       |   4 +-
 .../org/apache/calcite/util/TimestampString.java   |   4 +-
 .../calcite/util/TimestampWithTimeZoneString.java  |   4 +-
 .../org/apache/calcite/util/TryThreadLocal.java    |   4 +-
 .../main/java/org/apache/calcite/util/Util.java    | 134 ++--
 .../java/org/apache/calcite/util/XmlOutput.java    |  27 +-
 .../util/graph/AttributedDirectedGraph.java        |  31 +-
 .../calcite/util/graph/DefaultDirectedGraph.java   |  60 +-
 .../org/apache/calcite/util/graph/DefaultEdge.java |  10 +-
 .../apache/calcite/util/graph/DirectedGraph.java   |   8 +-
 .../java/org/apache/calcite/util/graph/Graphs.java |   7 +-
 .../util/graph/TopologicalOrderIterator.java       |  27 +-
 .../apache/calcite/util/javac/JaninoCompiler.java  |  45 +-
 .../calcite/util/javac/JavaCompilerArgs.java       |   5 +-
 .../util/mapping/AbstractSourceMapping.java        |   1 +
 .../util/mapping/AbstractTargetMapping.java        |   1 +
 .../org/apache/calcite/util/mapping/IntPair.java   |   4 +-
 .../org/apache/calcite/util/mapping/Mappings.java  |  28 +-
 .../java/org/apache/calcite/util/package-info.java |   7 +
 .../apache/calcite/util/trace/CalciteLogger.java   |  35 +-
 .../calcite/util/trace/CalciteTimingTracer.java    |   3 +-
 .../apache/calcite/util/trace/CalciteTrace.java    |   5 +-
 .../calcite/adapter/generate/RangeTable.java       |   4 +-
 .../plan/volcano/CollationConversionTest.java      |   9 +-
 .../apache/calcite/plan/volcano/ComboRuleTest.java |   3 +-
 .../apache/calcite/plan/volcano/PlannerTests.java  |  12 +-
 .../calcite/plan/volcano/TraitConversionTest.java  |   9 +-
 .../calcite/plan/volcano/TraitPropagationTest.java |  11 +-
 .../plan/volcano/VolcanoPlannerTraitTest.java      |  15 +-
 .../rel/rel2sql/RelToSqlConverterStructsTest.java  |   7 +-
 .../org/apache/calcite/rex/RexExecutorTest.java    |   7 +-
 .../apache/calcite/rex/RexProgramBuilderBase.java  |   7 +-
 .../apache/calcite/schemas/HrClusteredSchema.java  |   4 +-
 .../apache/calcite/sql/parser/SqlParserTest.java   |   5 +-
 .../calcite/test/AbstractMaterializedViewTest.java |  10 +-
 .../org/apache/calcite/test/CalciteAssert.java     |   7 +-
 .../apache/calcite/test/CollectionTypeTest.java    |  13 +-
 .../calcite/test/CountriesTableFunction.java       |   6 +-
 .../org/apache/calcite/test/InterpreterTest.java   |   7 +-
 .../java/org/apache/calcite/test/JdbcTest.java     |   3 +-
 .../apache/calcite/test/MaterializationTest.java   |   3 +-
 .../org/apache/calcite/test/MockRelOptPlanner.java |   6 +-
 .../java/org/apache/calcite/test/ModelTest.java    |  15 +-
 .../org/apache/calcite/test/RelBuilderTest.java    |   2 +-
 .../org/apache/calcite/test/RelMetadataTest.java   |   2 -
 .../apache/calcite/test/ScannableTableTest.java    |  13 +-
 .../apache/calcite/test/SqlHintsConverterTest.java |   3 +-
 .../apache/calcite/test/SqlJsonFunctionsTest.java  |   8 +-
 .../apache/calcite/test/SqlToRelConverterTest.java |   3 +-
 .../org/apache/calcite/test/SqlToRelTestBase.java  |  28 +-
 .../apache/calcite/test/SqlValidatorTestCase.java  |   3 +-
 .../apache/calcite/test/StatesTableFunction.java   |   6 +-
 .../java/org/apache/calcite/test/StreamTest.java   |  23 +-
 .../calcite/test/catalog/MockCatalogReader.java    |   6 +-
 .../calcite/test/fuzzer/RexProgramFuzzyTest.java   |   3 +-
 .../org/apache/calcite/tools/FrameworksTest.java   |   5 +-
 .../org/apache/calcite/util/ImmutableBeanTest.java |  70 +-
 .../test/java/org/apache/calcite/util/Smalls.java  |   8 +-
 .../java/org/apache/calcite/util/UtilTest.java     |   4 +-
 druid/build.gradle.kts                             |   2 +-
 .../adapter/druid/CeilOperatorConversion.java      |   6 +-
 .../calcite/adapter/druid/DimensionSpec.java       |   2 +-
 .../calcite/adapter/druid/DruidDateTimeUtils.java  |  23 +-
 .../calcite/adapter/druid/DruidExpressions.java    |   9 +-
 .../calcite/adapter/druid/DruidJsonFilter.java     |  36 +-
 .../apache/calcite/adapter/druid/DruidQuery.java   |  46 +-
 .../adapter/druid/DruidSqlOperatorConverter.java   |   2 +-
 .../apache/calcite/adapter/druid/DruidTable.java   |   3 +-
 .../calcite/adapter/druid/DruidTableFactory.java   |   3 +-
 .../adapter/druid/ExtractionDimensionSpec.java     |   6 +-
 .../adapter/druid/FloorOperatorConversion.java     |   6 +-
 .../calcite/adapter/druid/Granularities.java       |   7 +-
 .../apache/calcite/adapter/druid/Granularity.java  |   3 +-
 .../adapter/druid/NaryOperatorConverter.java       |   6 +-
 .../adapter/druid/SubstringOperatorConversion.java |   5 +-
 .../adapter/druid/TimeExtractionFunction.java      |   6 +-
 elasticsearch/build.gradle.kts                     |   2 +-
 .../elasticsearch/ElasticsearchAggregate.java      |   5 +-
 .../adapter/elasticsearch/ElasticsearchFilter.java |   5 +-
 .../elasticsearch/ElasticsearchMapping.java        |   3 +-
 .../elasticsearch/ElasticsearchProject.java        |   5 +-
 .../adapter/elasticsearch/ElasticsearchSort.java   |   5 +-
 .../elasticsearch/ElasticsearchTableScan.java      |   5 +-
 .../ElasticsearchToEnumerableConverter.java        |   5 +-
 .../calcite/adapter/csv/CsvFilterableTable.java    |  18 +-
 .../calcite/adapter/csv/CsvScannableTable.java     |  14 +-
 .../adapter/csv/CsvStreamScannableTable.java       |  14 +-
 .../calcite/adapter/csv/CsvStreamTableFactory.java |   4 +-
 .../org/apache/calcite/adapter/csv/CsvTable.java   |  10 +-
 .../calcite/adapter/csv/CsvTableFactory.java       |   4 +-
 .../apache/calcite/adapter/csv/CsvTableScan.java   |   4 +-
 .../calcite/adapter/csv/CsvTranslatableTable.java  |   6 +-
 .../org/apache/calcite/example/maze/MazeTable.java |   8 +-
 .../apache/calcite/adapter/file/CsvEnumerator.java |  36 +-
 .../apache/calcite/adapter/file/CsvFieldType.java  |   6 +-
 .../calcite/adapter/file/CsvTableFactory.java      |   4 +-
 .../apache/calcite/adapter/file/CsvTableScan.java  |   4 +-
 .../calcite/adapter/file/CsvTranslatableTable.java |   6 +-
 .../calcite/adapter/file/JsonEnumerator.java       |  10 +-
 .../calcite/adapter/file/JsonScannableTable.java   |  14 +-
 .../org/apache/calcite/adapter/file/JsonTable.java |   6 +-
 .../calcite/adapter/geode/rel/GeodeAggregate.java  |   5 +-
 .../calcite/adapter/geode/rel/GeodeFilter.java     |   5 +-
 .../calcite/adapter/geode/rel/GeodeProject.java    |   5 +-
 .../calcite/adapter/geode/rel/GeodeSort.java       |   4 +-
 .../geode/rel/GeodeToEnumerableConverter.java      |   4 +-
 .../geode/simple/GeodeSimpleScannableTable.java    |  12 +-
 gradle.properties                                  |   4 +-
 .../calcite/adapter/innodb/InnodbFilter.java       |   5 +-
 .../adapter/innodb/InnodbFilterTranslator.java     |   3 +-
 .../calcite/adapter/innodb/InnodbProject.java      |   4 +-
 .../apache/calcite/adapter/innodb/InnodbSort.java  |   4 +-
 .../calcite/adapter/innodb/InnodbTableScan.java    |   3 +-
 .../innodb/InnodbToEnumerableConverter.java        |   4 +-
 .../adapter/kafka/KafkaMessageEnumerator.java      |  10 +-
 .../calcite/adapter/kafka/KafkaStreamTable.java    |  12 +-
 .../calcite/adapter/kafka/KafkaTableFactory.java   |   4 +-
 linq4j/build.gradle.kts                            |   1 +
 .../org/apache/calcite/linq4j/BaseQueryable.java   |   8 +-
 .../apache/calcite/linq4j/DefaultEnumerable.java   |  69 +-
 .../apache/calcite/linq4j/DefaultQueryable.java    |  11 +-
 .../java/org/apache/calcite/linq4j/Enumerable.java |   3 +
 .../apache/calcite/linq4j/EnumerableDefaults.java  | 319 +++++----
 .../calcite/linq4j/EnumerableOrderedQueryable.java |   4 +-
 .../apache/calcite/linq4j/EnumerableQueryable.java |  25 +-
 .../java/org/apache/calcite/linq4j/Enumerator.java |   3 +
 .../apache/calcite/linq4j/ExtendedEnumerable.java  |  67 +-
 .../apache/calcite/linq4j/ExtendedQueryable.java   |  22 +-
 .../java/org/apache/calcite/linq4j/Grouping.java   |   3 +
 .../org/apache/calcite/linq4j/GroupingImpl.java    |   7 +-
 .../java/org/apache/calcite/linq4j/Linq4j.java     |  17 +-
 .../java/org/apache/calcite/linq4j/LookupImpl.java |  23 +-
 .../apache/calcite/linq4j/MemoryEnumerator.java    |   4 +-
 .../org/apache/calcite/linq4j/MemoryFactory.java   |   8 +-
 .../org/apache/calcite/linq4j/ModularInteger.java  |   4 +-
 .../java/org/apache/calcite/linq4j/Nullness.java   |  57 ++
 .../java/org/apache/calcite/linq4j/Queryable.java  |   3 +
 .../apache/calcite/linq4j/QueryableDefaults.java   |  10 +-
 .../apache/calcite/linq4j/QueryableFactory.java    |  19 +-
 .../apache/calcite/linq4j/QueryableRecorder.java   |  23 +-
 .../org/apache/calcite/linq4j/RawEnumerable.java   |   3 +
 .../org/apache/calcite/linq4j/RawQueryable.java    |   7 +-
 .../calcite/linq4j/TransformedEnumerator.java      |   4 +-
 .../apache/calcite/linq4j/function/Functions.java  |  27 +-
 .../org/apache/calcite/linq4j/package-info.java    |   7 +
 .../apache/calcite/linq4j/tree/AbstractNode.java   |   6 +-
 .../linq4j/tree/ArrayLengthRecordField.java        |  10 +-
 .../calcite/linq4j/tree/BinaryExpression.java      |  70 +-
 .../apache/calcite/linq4j/tree/BlockBuilder.java   |  23 +-
 .../apache/calcite/linq4j/tree/BlockStatement.java |  12 +-
 .../org/apache/calcite/linq4j/tree/Blocks.java     |   4 +-
 .../org/apache/calcite/linq4j/tree/CatchBlock.java |   4 +-
 .../calcite/linq4j/tree/ClassDeclaration.java      |   8 +-
 .../linq4j/tree/ClassDeclarationFinder.java        |   8 +-
 .../calcite/linq4j/tree/ConditionalExpression.java |   4 +-
 .../calcite/linq4j/tree/ConditionalStatement.java  |   4 +-
 .../calcite/linq4j/tree/ConstantExpression.java    |  30 +-
 .../calcite/linq4j/tree/ConstantUntypedNull.java   |   4 +-
 .../linq4j/tree/ConstructorDeclaration.java        |   4 +-
 .../calcite/linq4j/tree/DeclarationStatement.java  |   8 +-
 .../linq4j/tree/DeterministicCodeOptimizer.java    |  16 +-
 .../org/apache/calcite/linq4j/tree/Evaluator.java  |  10 +-
 .../apache/calcite/linq4j/tree/ExpressionType.java |  12 +-
 .../calcite/linq4j/tree/ExpressionWriter.java      |   6 +-
 .../apache/calcite/linq4j/tree/Expressions.java    | 131 ++--
 .../calcite/linq4j/tree/FieldDeclaration.java      |   8 +-
 .../calcite/linq4j/tree/ForEachStatement.java      |   4 +-
 .../apache/calcite/linq4j/tree/ForStatement.java   |  10 +-
 .../calcite/linq4j/tree/FunctionExpression.java    |  30 +-
 .../apache/calcite/linq4j/tree/GotoStatement.java  |  18 +-
 .../calcite/linq4j/tree/IndexExpression.java       |  12 +-
 .../apache/calcite/linq4j/tree/LabelStatement.java |   4 +-
 .../apache/calcite/linq4j/tree/LabelTarget.java    |   4 +-
 .../calcite/linq4j/tree/MemberExpression.java      |  10 +-
 .../calcite/linq4j/tree/MethodCallExpression.java  |  20 +-
 .../calcite/linq4j/tree/MethodDeclaration.java     |   4 +-
 .../calcite/linq4j/tree/NewArrayExpression.java    |  17 +-
 .../apache/calcite/linq4j/tree/NewExpression.java  |  13 +-
 .../calcite/linq4j/tree/OptimizeShuttle.java       |   8 +-
 .../calcite/linq4j/tree/ParameterExpression.java   |   6 +-
 .../org/apache/calcite/linq4j/tree/Primitive.java  |  73 +-
 .../apache/calcite/linq4j/tree/PseudoField.java    |   4 +-
 .../calcite/linq4j/tree/ReflectedPseudoField.java  |   6 +-
 .../org/apache/calcite/linq4j/tree/Shuttle.java    |  32 +-
 .../calcite/linq4j/tree/TernaryExpression.java     |   4 +-
 .../apache/calcite/linq4j/tree/ThrowStatement.java |   4 +-
 .../apache/calcite/linq4j/tree/TryStatement.java   |   8 +-
 .../calcite/linq4j/tree/TypeBinaryExpression.java  |   4 +-
 .../java/org/apache/calcite/linq4j/tree/Types.java |  43 +-
 .../calcite/linq4j/tree/UnaryExpression.java       |   4 +-
 .../apache/calcite/linq4j/tree/VisitorImpl.java    |  10 +-
 .../apache/calcite/linq4j/tree/WhileStatement.java |   4 +-
 .../calcite/adapter/mongodb/MongoFilter.java       |   4 +-
 .../calcite/adapter/mongodb/MongoProject.java      |   4 +-
 .../apache/calcite/adapter/mongodb/MongoSort.java  |   4 +-
 .../calcite/adapter/mongodb/MongoTableScan.java    |   4 +-
 .../mongodb/MongoToEnumerableConverter.java        |   4 +-
 .../calcite/adapter/pig/PigTableFactory.java       |   4 +-
 .../apache/calcite/adapter/pig/PigTableScan.java   |   6 +-
 piglet/build.gradle.kts                            |   2 +-
 .../org/apache/calcite/piglet/PigRelBuilder.java   |   4 +-
 .../java/org/apache/calcite/piglet/PigTable.java   |   4 +-
 .../org/apache/calcite/piglet/PigUdfFinder.java    |   3 +-
 piglet/src/main/javacc/PigletParser.jj             |   3 +-
 .../apache/calcite/adapter/os/DuTableFunction.java |   6 +-
 .../calcite/adapter/os/FilesTableFunction.java     |  30 +-
 .../adapter/os/GitCommitsTableFunction.java        |  16 +-
 .../calcite/adapter/os/JpsTableFunction.java       |   6 +-
 .../apache/calcite/adapter/os/PsTableFunction.java |  12 +-
 .../calcite/adapter/os/StdinTableFunction.java     |   6 +-
 .../calcite/adapter/os/VmstatTableFunction.java    |  12 +-
 .../apache/calcite/adapter/tpcds/TpcdsSchema.java  |  20 +-
 .../chinook/PreferredAlbumsTableFactory.java       |   4 +-
 .../chinook/PreferredGenresTableFactory.java       |   4 +-
 redis/build.gradle.kts                             |   1 -
 .../apache/calcite/adapter/redis/RedisTable.java   |   4 +-
 .../calcite/adapter/redis/RedisTableFactory.java   |   4 +-
 .../calcite/server/MaterializedViewTable.java      |   6 +-
 .../apache/calcite/server/MutableArrayTable.java   |   4 +-
 .../apache/calcite/server/ServerDdlExecutor.java   |  11 +-
 settings.gradle.kts                                |   1 +
 site/_docs/howto.md                                |   2 +-
 site/develop/index.md                              | 119 +++-
 .../adapter/spark/EnumerableToSparkConverter.java  |   4 +-
 .../adapter/spark/JdbcToSparkConverter.java        |   4 +-
 .../apache/calcite/adapter/spark/SparkRules.java   |   4 +-
 .../adapter/spark/SparkToEnumerableConverter.java  |   4 +-
 .../main/config/checkerframework/Collection.astub  |  15 +-
 .../main/config/checkerframework/Constructor.astub |  10 +-
 .../main/config/checkerframework/Field.astub       |  12 +-
 .../checkerframework/InvocationHandler.astub       |  14 +-
 .../main/config/checkerframework/List.astub        |  19 +-
 .../main/config/checkerframework/Map.astub         |  24 +-
 .../main/config/checkerframework/Method.astub      |  10 +-
 .../config/checkerframework/MethodHandle.astub     |  10 +-
 .../main/config/checkerframework/Objects.astub     |  45 +-
 .../main/config/checkerframework/Proxy.astub       |  14 +-
 .../main/config/checkerframework/Set.astub         |  15 +-
 .../main/config/checkerframework/String.astub      |  11 +-
 .../main/config/checkerframework/URI.astub         |  15 +-
 .../checkerframework/aggdesigner/Attribute.astub   |  13 +-
 .../checkerframework/aggdesigner/Table.astub       |  11 +-
 .../checkerframework/avatica/AvaticaFactory.astub  |  30 +-
 .../avatica/AvaticaPreparedStatement.astub         |  16 +-
 .../avatica/AvaticaResultMetaData.astub            |  16 +-
 .../avatica/AvaticaResultSet.astub                 |  18 +-
 .../avatica/AvaticaResultSetMetaData.astub         |  18 +-
 .../checkerframework/avatica/AvaticaSite.astub     |  61 ++
 .../avatica/AvaticaStatement.astub                 |  30 +-
 .../checkerframework/avatica/ColumnMetaData.astub  |  33 +-
 .../avatica/ConnectionConfigImpl.astub             |  13 +-
 .../avatica/ConnectionProperty.astub               |  22 +-
 .../config/checkerframework/avatica/Handler.astub  |  15 +-
 .../config/checkerframework/avatica/Meta.astub     |  36 +-
 .../config/checkerframework/avatica/MetaImpl.astub |  64 ++
 .../checkerframework/avatica/TimeUnitRange.astub   |  16 +-
 .../commons-dbcp2/BasicDataSource.astub            |  20 +-
 .../esri-geometry/OperatorBoundary.astub           |  14 +-
 .../esri-geometry/OperatorSimpleRelation.astub     |  14 +-
 .../config/checkerframework/guava/Function.astub   |  19 +-
 .../config/checkerframework/guava/Iterables.astub  |  15 +-
 .../config/checkerframework/guava/Ordering.astub   |  22 +-
 .../config/checkerframework/guava/Predicate.astub  |  18 +-
 .../checkerframework/jackson/ObjectMapper.astub    |  13 +-
 .../checkerframework/jackson/ObjectWriter.astub    |  13 +-
 .../config/checkerframework/janino/ICookable.astub |  14 +-
 .../janino/JavaSourceClassLoader.astub             |  34 +-
 .../config/checkerframework/janino/Scanner.astub   |  10 +-
 .../checkerframework/janino/SimpleCompiler.astub   |  11 +-
 .../checkerframework/jdbc/DatabaseMetaData.astub   |  11 +-
 .../jsonpath/JacksonJsonProvider.astub             |  10 +-
 .../config/checkerframework/slf4j/Logger.astub     | 101 +++
 .../checkerframework/slf4j/MessageFormatter.astub  |  14 +-
 1099 files changed, 14476 insertions(+), 8852 deletions(-)
 create mode 100644 core/src/main/java/org/apache/calcite/sql/type/NonNullableAccessors.java
 create mode 100644 core/src/main/java/org/apache/calcite/sql/validate/SqlNonNullableAccessors.java
 create mode 100644 linq4j/src/main/java/org/apache/calcite/linq4j/Nullness.java
 copy plus/src/main/java/org/apache/calcite/chinook/ChosenCustomerEmail.java => src/main/config/checkerframework/Collection.astub (79%)
 copy core/src/main/java/org/apache/calcite/schema/SemiMutableSchema.java => src/main/config/checkerframework/Constructor.astub (82%)
 copy core/src/main/java/org/apache/calcite/schema/SemiMutableSchema.java => src/main/config/checkerframework/Field.astub (81%)
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/InvocationHandler.astub (80%)
 copy linq4j/src/main/java/org/apache/calcite/linq4j/tree/Node.java => src/main/config/checkerframework/List.astub (73%)
 copy linq4j/src/main/java/org/apache/calcite/linq4j/tree/PseudoField.java => src/main/config/checkerframework/Map.astub (65%)
 copy core/src/main/java/org/apache/calcite/schema/SemiMutableSchema.java => src/main/config/checkerframework/Method.astub (82%)
 copy core/src/main/java/org/apache/calcite/schema/SemiMutableSchema.java => src/main/config/checkerframework/MethodHandle.astub (82%)
 copy core/src/main/java/org/apache/calcite/plan/volcano/RuleDriver.java => src/main/config/checkerframework/Objects.astub (52%)
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/Proxy.astub (80%)
 copy plus/src/main/java/org/apache/calcite/chinook/ChosenCustomerEmail.java => src/main/config/checkerframework/Set.astub (79%)
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonValueReturning.java => src/main/config/checkerframework/String.astub (81%)
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/URI.astub (80%)
 copy plus/src/main/java/org/apache/calcite/chinook/ChosenCustomerEmail.java => src/main/config/checkerframework/aggdesigner/Attribute.astub (79%)
 copy core/src/main/java/org/apache/calcite/sql/SqlAccessEnum.java => src/main/config/checkerframework/aggdesigner/Table.astub (85%)
 copy core/src/main/java/org/apache/calcite/Demo.java => src/main/config/checkerframework/avatica/AvaticaFactory.astub (60%)
 copy core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcRel.java => src/main/config/checkerframework/avatica/AvaticaPreparedStatement.astub (70%)
 copy buildSrc/subprojects/javacc/javacc.gradle.kts => src/main/config/checkerframework/avatica/AvaticaResultMetaData.astub (76%)
 copy core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcRel.java => src/main/config/checkerframework/avatica/AvaticaResultSet.astub (70%)
 copy core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcRel.java => src/main/config/checkerframework/avatica/AvaticaResultSetMetaData.astub (70%)
 create mode 100644 src/main/config/checkerframework/avatica/AvaticaSite.astub
 copy core/src/main/java/org/apache/calcite/Demo.java => src/main/config/checkerframework/avatica/AvaticaStatement.astub (63%)
 copy buildSrc/subprojects/javacc/javacc.gradle.kts => src/main/config/checkerframework/avatica/ColumnMetaData.astub (56%)
 copy plus/src/main/java/org/apache/calcite/chinook/ChosenCustomerEmail.java => src/main/config/checkerframework/avatica/ConnectionConfigImpl.astub (77%)
 copy core/src/main/java/org/apache/calcite/interpreter/Context.java => src/main/config/checkerframework/avatica/ConnectionProperty.astub (69%)
 copy linq4j/src/main/java/org/apache/calcite/linq4j/tree/Node.java => src/main/config/checkerframework/avatica/Handler.astub (78%)
 copy core/src/main/java/org/apache/calcite/sql/dialect/VerticaSqlDialect.java => src/main/config/checkerframework/avatica/Meta.astub (54%)
 create mode 100644 src/main/config/checkerframework/avatica/MetaImpl.astub
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/avatica/TimeUnitRange.astub (80%)
 copy core/src/main/java/org/apache/calcite/rel/metadata/CyclicMetadataException.java => src/main/config/checkerframework/commons-dbcp2/BasicDataSource.astub (72%)
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/esri-geometry/OperatorBoundary.astub (80%)
 copy buildSrc/subprojects/javacc/javacc.gradle.kts => src/main/config/checkerframework/esri-geometry/OperatorSimpleRelation.astub (76%)
 copy core/src/main/java/org/apache/calcite/tools/RelRunner.java => src/main/config/checkerframework/guava/Function.astub (70%)
 copy core/src/main/java/org/apache/calcite/interpreter/BindableRel.java => src/main/config/checkerframework/guava/Iterables.astub (67%)
 copy core/src/main/java/org/apache/calcite/interpreter/Sink.java => src/main/config/checkerframework/guava/Ordering.astub (62%)
 copy core/src/main/java/org/apache/calcite/tools/RelRunner.java => src/main/config/checkerframework/guava/Predicate.astub (72%)
 copy linq4j/src/main/java/org/apache/calcite/linq4j/tree/Node.java => src/main/config/checkerframework/jackson/ObjectMapper.astub (78%)
 copy linq4j/src/main/java/org/apache/calcite/linq4j/tree/Node.java => src/main/config/checkerframework/jackson/ObjectWriter.astub (78%)
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/janino/ICookable.astub (80%)
 copy core/src/main/java/org/apache/calcite/Demo.java => src/main/config/checkerframework/janino/JavaSourceClassLoader.astub (61%)
 copy core/src/main/java/org/apache/calcite/schema/SemiMutableSchema.java => src/main/config/checkerframework/janino/Scanner.astub (83%)
 copy core/src/main/java/org/apache/calcite/interpreter/Node.java => src/main/config/checkerframework/janino/SimpleCompiler.astub (81%)
 copy core/src/main/java/org/apache/calcite/interpreter/Node.java => src/main/config/checkerframework/jdbc/DatabaseMetaData.astub (81%)
 copy core/src/main/java/org/apache/calcite/schema/SemiMutableSchema.java => src/main/config/checkerframework/jsonpath/JacksonJsonProvider.astub (83%)
 create mode 100644 src/main/config/checkerframework/slf4j/Logger.astub
 copy core/src/main/java/org/apache/calcite/sql/SqlJsonExistsErrorBehavior.java => src/main/config/checkerframework/slf4j/MessageFormatter.astub (80%)